2022年安徽省大学生网络安全攻防赛(本科组)

文章讲述了使用KaliLinux进行文件处理,包括gunzip命令的使用和文件挂载。通过IDA分析ELF文件,追踪函数以获取flag。还涉及到图像处理、基于方向的迷宫解谜和加密解密技术,如DES,以及线性同余生成器的逆向工程。最后,文章涵盖了解密base32和rot13编码来获取最终的flag。
摘要由CSDN通过智能技术生成

MISC

没有文件后缀

使用kali对justfile文件进行挂载:

查看文件夹内容:

使用gunzip < 1进行查看大约再153行位置可以看到内容:

拼出flag即可: gunzip < *

 瞅啥

使用kali对图片进行分离得到一个加密压缩:

修改图片长宽高得到解压密码:

直接对压缩包进行解压得到flag:

misc103

直接使用strings对文件进行检索

RE

debug32:

查壳:无壳,32位ELF文件:

在linux中运行无反应:

之后直接拖入IDA:

main函数,里面没东西,找字符串:.rodata:080485F0 0000000E   C     Printing

flag

跟踪,找到函数unsigned int

sub_804849B():

这里可以看出是直接输出flag值的,看一用C去写脚本,运行一下出flag:

flag{i_has_debugger_skill}

迷宫又来了

查壳:

64位exe的程序,拖入IDA中:

找到main()函数,之后进行跟踪,分析

根据题描述:得到迷宫的地图,以及走的方向

这里可以看出是按照字符键盘的方向,上:w;下:s;左:a;右:d;

找到地图:map

长度为:200,观察可得一行为20,共10行:

手动改图:*为0,.为1:

直接走迷宫,第一行与最后一行不算:

得到步骤:ddsssddsdsdddwwwddssssdddsdddd

步骤传给了:str,

最后有个^运算,得到脚本:

result;

Exp:

li-elf:

拖进IDA,F5 代码如下(修改了部分的):

整体特征为流程未输入,加密,然后加密后的结果满足上面的方程即可,使用 z3 即可求解加密输出:

import z3

import struct

solver = z3.Solver()

result = [z3.BitVec(f'x{i}', 32) for i in range(4)]

solver.add(result[0] * result[3] == 0x73BC53B7FD0436EC)

solver.add(result[0] - result[1] == 0x5587EBBD)

solver.add(result[3] - result[2] == 0x18AF7242)

solver.add(result[2] * result[1] == 0x316CBFAD58F2D963)

if solver.check() == z3.sat:

temp = solver.model()

print(''.join(struct.pack('L', temp[result[i]].as_long()).hex() for i in

range(4)))

else:

print("无解")

加密结果为: 743d42aab751ba54b5855595f7f704ae

使用IDA插件 signsrch 发现了 DES 的特征:

分析发现,sub_400E20 函数为 des 算法函数,参数含义为 待加密数据,密钥,加密解密标志位,16应

该是输入长度,最后的参数是des的结果

发现 d 表示解密。

结合上述得出的加密结果,动态调试设置sub_400E20 函数的第三个参数为解密标志位d,输入设置为刚

刚得出的加密结果:

执行后内存里拿数据即可

最后flag{hope_u_good_game}

CRYPTO题

下载文件得到base32加密,通过在线网站解密得到ro13加密串

对rot13进行解密得到flag

crypto-4-LCG

线性同余算法,用文中的算法即可得到a,b,再可求出seed

seed,a,b,q已知,撰写脚本可以直接得到flag

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值