目录
reverse1
1.解压后发现是exe程序,但不能正常运行。
2.用exeinfo查壳发现是64位无壳的。
3.在ida打开未发现main函数,选择查看字符串窗口。
4.发现”this is the right flag“,跟进查看(原本以为{hello_world}就是flag,发现自己太天真了)
5.该字符串被sub_1400118C0函数调用,猜测sub_1400118C0为关键函数,跟进查看。
6.f5得到伪代码,分析后发现str1与str2相等时flag正确,即flag为str2,而str2的初值为{hello_world},前两个if语句将str2中的o换为0,所以最终的flag为flag{hell0_w0rld} 。
revers2
1.解压后放进exeinfo查看,发现是64位无壳的elf文件。
2.ida打开后,找到main函数,F5得到伪代码,经分析flag初始值为"hacking_for_fun}",if语句将i与r均转换为1,最终flag为flag{hack1ng_fo1_fun}。
新年快乐
1.压缩包中为exe程序,打开发现需要输入flag,可以用来验证。
2.查壳发现有upx壳,可以直接用UPX脱壳,在DOS系统下输入命令“upx -d 文件名”(目标文件与upx文目录件在同一文件夹下)即可。
3.用IDA打开,简单分析main函数的伪代码就可以知道最终的flag为flag{HappyNewYear!}。
内涵的软件
1.运行程序,没有特别的发现。
2.查壳,是32位无壳exe程序。
2.用ida加载,先找到了main函数,发现关键函数是main_0()。
3.结合程序运行结果分析了一下函数,没有找到有关flag的信息,根据题目的提示,我猜flag是result的值,试了一下发现错了,再试一下v5的值,最终得到flag为flag{49d3c93df25caad81232130f3d2ebfad}。
xor
1.用exeinfo查壳,是32位无壳的
2.用ida得到main函数伪代码,阅读代码可以知道global的值就是经过或运算的flag
3.经过追踪后发现global为一组不同类型的数据 'f',0x0A,'k',0x0C,'w&O.@',0x11,'x',0x0D,'Z;U',0x11,'p',0x19,'F',0x1F,'v"M#D',0x0E,'g',6,'h',0x0F,'G2O',0
4.python脚本如下:
s = ['f', 0x0A, 'k', 0x0C, 'w&O.@', 0x11, 'x', 0x0D, 'Z;U', 0x11, 'p', 0x19, 'F', 0x1F, 'v"M#D', 0x0E, 'g', 6, 'h', 0x0F, 'G2O', 0]
for i in range(len(s)):
if type(s[i]) == int:
s[i] = chr(s[i])
s = ''.join(s)
flag = 'f'
for i in range(1, len(s)):
flag += chr(ord(s[i]) ^ ord(s[i-1]))
print(flag)
5.得到flag{QianQiuWanDai_YiTongJiangHu}