-
-
[原创]利用VEH之给游戏添加检测(二)
-
发表于:
2018-1-1 18:28
12308
-
https://bbs.pediy.com/thread-190668.htm
这里有资料 @
机械瞑衍 牛讲的很清晰.透彻.
重新挂上INT3还原HOOK
TF(bit 8) [Trap flag] 将该位设置为1以允许单步调试模式,清零则禁用该模式。
这是一张调用种物CALL结果检测到堆栈错误的信息。
众所周知,通常在进入一个CALL (函数) 时候会把下一条指令的地址压入 esp 寄存器中,后面随着各种指令的执行 esp 也会发生变化,例如(pushad,popad,push,pop )等指令堆栈都会发生改变,而 esp 中存放着栈顶的的地址当然也会跟着变化,知道遇到 retn 指令时候 [esp]
的值为返回地址,这就是我们常说的堆栈平衡。 (以上内容纯属个人理解,如有错误还请多多指正。)
可以看到上图 [esp+0x24] 为第一层返回地址
[esp+0x48] 为第二层返回地址,当我们调用功能 CALL 的时候,这些返回地址肯定会发生变化。
这个很简单,无非就是拿现在的返回地址跟原始的返回地址做比较就好。
这个很简单,无非就是拿现在的返回地址跟原始的返回地址做比较就好。
这个很简单,无非就是拿现在的返回地址跟原始的返回地址做比较就好。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2019-2-1 15:18
被admin编辑
,原因: