断点打补丁问题
遇到一个NX的小东西,(NX牛鼻){:5_189:}丢OD里下CreateWindowExA断点解码,发现迟了,已经过了NX验证段。{:5_188:}
两处返回搞定:
0055C00F C3 retn (NX验证段首)
0040133C C3 retn (奔溃)
试下下很多API断点都不行,不是太早就是太迟。
后来发现下申请内存断点bp VirtualAlloc可以,感觉看到了一丝阳光,结果发现用申请内存断点打补丁是无效的,想了下好像申请内存断点不属于API断点,打补丁原理是HOOKAPI函数,所以这个是HOOK不住是吧?我是这样理解的。
那么问题来了,什么API断点在解码后验证段的前面呢?{:5_191:}
大佬们醉爱的难瘦云 https://lanzouw.com/icqxv7e
本帖最后由 new882 于 2020-5-18 12:21 编辑
VirtualAlloc HOOK 这个函数测试可以
附上成功图
本帖最后由 梨花压海棠丶 于 2020-5-18 10:08 编辑
不是太迟 太早的问题 不会写判断吗?瞎搞!
挂钩后 不能盲目去写· 写早了 后面被原始代码覆盖
你的懂的判断堆栈里面的一些参数东西来看.NX区段里面是否是正常解码了
然后在操作读写内存!
用异常中断可以解决吧 大白 本帖最后由 影风 于 2020-5-18 11:21 编辑
1.通过劫持补丁的方式hook函数
2.读指定地址的代码是否为XXXX(用来判断是否解码)
3.写入指令
这是我之前写过的一个补丁,虽然函数不一样 但过程差不多
页:
[1]