1.下载附件,exeinfo查壳,无壳
2.IDA32位分析,找到主函数,F5反编译,并分析。
3.sub_4011C0进入函数,并分析代码。
代码仔细分析完之后有了逆向思路:GONDPHyGjPEKruv{{pj]X@rF 为
v4,将 v4 和 byte_4420B0 异或后再将 sub_4013C0 里面的运算逆回去,
得出大小写相反的 flag(前面大小写替换过)
进入函数
shift+e提取字符,选择decimal十进制的数表示。
4.编写脚本:
yihuo_qian =( 13, 19, 23, 17, 2, 1, 32, 29, 12, 2,
25, 47, 23, 43, 36, 31, 30, 22, 9, 15,
21, 39, 19, 38, 10, 47, 30, 26, 45, 12,
34)
flag = ''
yihuo_result='GONDPHyGjPEKruv{{pj]X@rF'
for i in range(len(yihuo_result)):
flag+=chr(((ord(yihuo_result[i])^yihuo_qian[i])-72)^85)
print(flag)
运行结果:WADX_TDGK_AIHC_IHKN_PJLM
最终的flag:EIS{WADX_TDGK_AIHC_IHKN_PJLM}
5.总结:当需要大量代码分析时;先从输出的结果开始分析,反推过程,这样反而更有效。