感觉对我而言有点复杂,但是还能看到关键在这几句
去看看sub_401220
函数呢
感觉没有头绪,动态调试看看
输入值后发现这句以后输入的值发生了变化
经过这步以后值改变了,说明可能hook就在里面,步入进去看看
到了sub_401000
发现执行了此函数,我们输入的lpBuffer
就发生了变化
那么就来重点分析一下这个函数
可以看到sub_401000返回的是判断是否为真flag的依据
这有一个假的flag
然后逆向写出步骤
当i等于0的时候 执行flag[2] = tmp[0] ^ i 而没有任何数据存储在flag[0]导致flag开头是0
把0换成f就对了
第一次做hook的题,有点头大不过还是有点思路。
hook我看来就是放一个警报器,来探测某功能代码,如果执行代码并且遇到了警报器的报警范围,那么就把他勾出来,紧急处理后继续放回去处理前面没处理的事情,有点像中断。