第一次做hook的题目
打开看到main函数
经过整理得到主要的函数和主要的逻辑判断
点击发现sub_401240()这个函数会比较像,然后就进入分析了,然后发现根本算不了
特别是里面v4里面的,我们输入的flag被当作了下标处理,就很不合理
然后根据题解和题目的提示,这道题的考点就是hook
关键1
分析第一个被我们忽视的函数
发现调用了好多系统函数
各函数的作用
以及
这里总结来看
参考1:
参考2:
关键2
还有一个主要的函数在return处
跟进查看,看到三个系统函数
分析
他的意思就是
总结为
那我们继续跟进关键函数
分析得到
分析关键 的加密函数,即真正求解flag的加密函数
写出逆向的脚本得
str=[0x61, 0x6A, 0x79, 0x67, 0x6B, 0x46, 0x6D, 0x2E, 0x7F, 0x5F, 0x7E, 0x2D, 0x53, 0x56, 0x7B, 0x38, 0x6D, 0x4C, 0x6E] flag=list("-------------------") flag[-1]=chr(str[18]^0x13) for i in range(0,18): tmp=str[i]^i if i%2==1: flag[i]=chr(tmp+i) else: flag[i+2]=chr(tmp) print(''.join(flag))
参考:
攻防世界 Reverse--EASYHOOK_easyhook攻防世界_BinaryNoob的博客-CSDN博客
攻防世界逆向高手题之EASYHOOK_沐一 · 林的博客-CSDN博客
RE套路/从EASYHOOK学inline hook - c10udlnk - 博客园 (cnblogs.com)
标签:tmp,函数,chr,hook,flag,EASYHOOK From: https://www.cnblogs.com/lhqrusht0p/p/17834674.html