学习VM上运行dnf(整理)
<br />选自http://bbs.pediy.com/showthread.php?t=129810&highlight=dnf<br />本文是对该文章进行一些整理加自己的思考和提问 以便在日后的学习中带着问题去学<br />1.dnf上HOOK了三个函数,无法再虚拟机上使用,游戏一旦加载驱动直接蓝屏。<br /> <br />2.系统蓝屏,调试器又收不到信号,同时用工具检测到,游戏的驱动挂
选自http://bbs.pediy.com/showthread.php?t=129810&highlight=dnf
本文是对该文章进行一些整理加自己的思考和提问 以便在日后的学习中带着问题去学
1.dnf上HOOK了三个函数,无法再虚拟机上使用,游戏一旦加载驱动直接蓝屏。
2.系统蓝屏,调试器又收不到信号,同时用工具检测到,游戏的驱动挂钩了,用IDA检测到使用了KdDisableDebugger来禁用双机调试
3.正常的思路是把他们全部恢复过来,即禁用KdDisableDebugger
4.作者不赞同直接修改KdDisableDebugger的代码,反而喜欢直接把调用KdDisableDebugger的代码给NOP掉
5.首先找到对:KdReceivePacket 和 KdSendPacket HOOK的代码,在实体机上找 ;如何找 为何找
6.然后挂上双机调试,开启游戏,但是别点登陆,否则系统又蓝了!
7.回到WINDBG,然后下断点,bp nt!IopLoadDriver+0x66a ;为什么是nt!IopLoadDriver+0x66a
8.然后g 运行 回到虚拟机,登陆游戏 一会就中断到调试器中
9.发现中断处是一个call 进入该call
10.算出它的驱动的基地址 设为EE276000 ;怎么算的
11.然后找到它HOOK的地址
输入命令
s -b EE276000 L5000 89 19 0F 20 C0 0D 00 00 01
12.反汇编uf ee27837c
13.HOOK的位置直接NOP掉就行了 ;如何知道哪里是hook
14.输入 g 发现重新启动
15.目前只处理了两个地方,还有个KdDisableDebugger
16.作者没有处理 给了个思路,驱动中的重启代码 ;好了 至此彻底看不懂 有需要朋友的可以看原版
系统不同,下的地址也不同
更多推荐
所有评论(0)