首页
社区
课程
招聘
[原创]VMware虚拟机上如何调试运行DNF
发表于: 2011-2-23 20:41 70383

[原创]VMware虚拟机上如何调试运行DNF

2011-2-23 20:41
70383

以前调试游戏都是在实体机调试的,没有用虚拟机,因为看了它HOOK了三个函数,无法再虚拟机上使用,曾经看到有人更改KdDisableDebugger让其直接返回,能在虚拟机上使用,今天测试了一下,游戏一旦加载驱动直接蓝屏,今天就想办法让它不蓝屏,并可以调试(据听说有的人的虚拟机可以正常运行,不知道为啥!!!!!!难道我人品问题)。

不做任何处理直接在虚拟机中运行,系统蓝了如图:
 

然后咱开始处理了,这东西不难,难的是思路,这里来讲一下,系统蓝屏,调试器又收不到信号,同时用工具检测到,游戏的驱动挂钩了
KDCOM.dll:KdReceivePacket  //这两个是COM串口的接受和发送数据
KDCOM.dll:KdSendPacket      //主要用来方式别人双机调试 
这两个函数
同时用IDA检测到使用了KdDisableDebugger来禁用双机调试
因此正常的思路是把他们全部恢复过来,禁用KdDisableDebugger十分简单,我不赞同直接修改KdDisableDebugger的代码,反而喜欢直接把调用KdDisableDebugger的代码给NOP掉,至于如何NOP,看完下面的估计你就会的差不多了。
首先找到对:KdReceivePacket和KdSendPacket   HOOK的代码,这个我是在实体机上找到的,因为在实体机上一挂系统调试器就没法截屏,没有图十分遗憾,抽个空找个照相机照下来,这个以后补上。
一下是对这两个函数进行HOOK的代码:

 

找到这两个就好办了,然后挂上双机调试,开启游戏,但是别点登陆,否则系统又蓝了!
 

回到WINDBG,然后下断点,bp          nt!IopLoadDriver+0x66a
系统不同,下的地址也不同,以前我说过,不在重复
最后在给个贴图

 

然后g 运行
回到虚拟机,登陆游戏吧!
一会就中断到调试器中了,
 
进入这个CALL


 
算出它的驱动的基地址
这里算出基地址是EE276000
然后找到它HOOK的地址
输入命令
s -b EE276000 L5000 89 19 0F 20 C0 0D 00 00 01
得到如下图

 

然后反汇编uf ee27837c
得到如下
 

还等什么,把HOOK的位置直接NOP掉就行了



 
然后输入G
得到如下所示
 


啊!咋从新启动计算机了,呵呵别着急,因为咱只处理了两个地方,还有个KdDisableDebugger
没有处理,即使处理了,游戏也可能检测到系统运行在虚拟机环境中,至于如何不让他重启,且听下回分解!这里先给个思路,驱动中的重启代码


 
根据它就能找到了
休息会,找重启代码的就不贴了,下次再贴
搞掉重启后 系统还是蓝屏,但蓝屏后断下来了,调试器也能收到调试信息,游戏的驱动加载完毕了


,VMX_FB出错,
初步排除是虚拟机显卡的事情,然后我从网上找了个虚拟机显卡,比较早的,还是VM5的,我这个是是VM7的,没办法,试试呗,
 

进去了,有声音,就是黑屏,100%是虚拟机显卡的事情了,下次再找个合适的虚拟机显卡驱动吧。(我的操作系统是W7)。这里还有一个KdDisableDebugger还没处理,下次再说。


[招生]系统0day安全班,企业级设备固件漏洞挖掘,Linux平台漏洞挖掘!

上传的附件:
  • 1.jpg (52.50kb,2658次下载)
  • 2.jpg (50.33kb,2663次下载)
  • 3.jpg (31.06kb,2651次下载)
  • 4.jpg (52.78kb,2655次下载)
  • 5.jpg (111.24kb,2659次下载)
  • 6.jpg (98.53kb,2654次下载)
  • 7.jpg (56.39kb,2640次下载)
  • 8.jpg (129.79kb,2662次下载)
  • 9.jpg (112.44kb,2646次下载)
  • 10.jpg (30.78kb,2624次下载)
  • 11.jpg (44.94kb,2646次下载)
  • 12.jpg (176.90kb,2641次下载)
  • 13.jpg (28.91kb,2636次下载)
收藏
免费 7
支持
分享
最新回复 (31)
雪    币: 31
活跃值: (53)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
强贴呐,顶了。
2011-2-23 21:25
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
厉害,学习了~~~~~~~~~~~:)
2011-2-24 12:59
0
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
楼主太给力了!!!
2011-2-24 22:39
0
雪    币: 274
活跃值: (358)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
5
弱弱的问一下蓝屏是虚拟机里面蓝屏了还是主机蓝屏了?
2011-2-24 22:52
0
雪    币: 325
活跃值: (97)
能力值: ( LV13,RANK:530 )
在线值:
发帖
回帖
粉丝
6
其实我一直在想DNF是如何在我的Win7 64位上面跑起来的。
2011-2-25 06:12
0
雪    币: 284
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
[QUOTE=foxabu;929406]其实我一直在想DNF是如何在我的Win7 64位上面跑起来的。[/QUOTE]

这要问韩国程序员了~

无泪现在越来越xxoo了~
2011-2-25 08:49
0
雪    币: 3134
活跃值: (1279)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
8
[QUOTE=foxabu;929406]其实我一直在想DNF是如何在我的Win7 64位上面跑起来的。[/QUOTE]

是不是64位直接不保护了?哈。是的话,可以trick下
2011-2-25 08:57
0
雪    币: 76
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
现在的虚拟机太强大了
2011-2-25 09:08
0
雪    币: 195
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
看到此贴,太感激了。无泪兄是为了俺才这么努力。。。。。。加油!
2011-2-25 09:32
0
雪    币: 5
活跃值: (1156)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
win7 64位上 有pageguard功能,  不能hook内核函数。
嘿嘿 所以 dnf的驱动保护在win7 64上无效。
2011-2-26 13:08
0
雪    币: 33
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
图文并茂 , 技术人,非常赞赏!
2011-2-26 21:15
0
雪    币: 325
活跃值: (97)
能力值: ( LV13,RANK:530 )
在线值:
发帖
回帖
粉丝
13
关键是怎么拿到微软的驱动签名,或者说没有签名又是如何不重启加载驱动,或者如何在用户态defeat,kernel mode debugger?
2011-2-27 01:17
0
雪    币: 220
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
哈哈,我得支持一下无泪。
2011-2-27 01:20
0
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
win7+vmware6.5.3 xpsp3ghost版能玩,不过键盘控制有点迟钝。
2011-2-28 20:34
0
雪    币: 212
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
winXP SP3+vmware7.1.3 xpsp3 运行没任何问题 很流畅
2011-3-1 03:58
0
雪    币: 5224
活跃值: (3006)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
貌似我win7 + vm7.01 直接就能跑起来dnf 不过我没调试

http://blog.csdn.net/whitehack/archive/2010/12/17/6081247.aspx

不知道这个对你是否有用
2011-3-1 08:13
0
雪    币: 67
活跃值: (91)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
18
要是nop掉,和直接ret没啥区别啊……它会陷入死循环,虚拟机会很卡 = =
2011-3-8 14:39
0
雪    币: 224
活跃值: (157)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
太强大了,学习。。
2011-3-9 09:27
0
雪    币: 335
活跃值: (313)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
希望楼主可以继续更新!多谢!
2011-3-14 17:34
0
雪    币: 244
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
强贴。多谢楼主的思路
2011-3-19 13:06
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
22
我的虚拟机可以DNF啊,不用改啥啥设置~~当然想要调试还得动点手脚
2011-3-19 23:23
0
雪    币: 201
活跃值: (155)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
希望你能把它解决了。
2011-3-21 16:21
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
DNF蓝屏也有可能是Direct3D加速没开
2011-5-21 20:15
0
雪    币: 985
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
楼主强大!学习中
2011-5-22 08:49
0
游客
登录 | 注册 方可回帖
返回
// // 统计代码