首页
社区
课程
招聘
为什么我用ollydbg调试某些全屏游戏时ollydbg死了?
发表于: 2005-12-4 10:48 5029

为什么我用ollydbg调试某些全屏游戏时ollydbg死了?

2005-12-4 10:48
5029
收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
游戏进入独占式全屏模式,如果下了断点的话,就无法跳回来,也无法切换到其它程序,机子并没有死,只是屏幕死在那个画面上,好像应用directx的游戏都会.你可以在程序代码上找找有没有让游戏窗口进入WINDOW MODE的办法.比如暗黑破坏神,在命令后打上-W参数,就OK!
2005-12-4 19:28
0
雪    币: 44229
活跃值: (19965)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
3
如果解决不了,可以换上SoftICE。
2005-12-4 19:48
0
雪    币: 67
活跃值: (66)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
4
搜索引用字符串 ASCII "m_pD3D->CreateDevice FAIL\n"
找到引用处向上看 找到CALL    DWORD PTR DS:[EAX+40]

来到这里d3d->createdevice
00422667  |.  51            PUSH    ECX                              ;  ppReturnedDeviceInterface
00422668  |.  8B95 A0FDFFFF MOV     EDX,DWORD PTR SS:[EBP-260]
0042266E  |.  81C2 A8000000 ADD     EDX,0A8
下面代码改为 jmp 自己代码
00422674  |.  52            PUSH    EDX                              ;  pPresentationParameters
00422675  |.  8B45 FC       MOV     EAX,DWORD PTR SS:[EBP-4]
00422678  |.  50            PUSH    EAX                              ;  BehaviorFlags

00422679  |.  8B8D A0FDFFFF MOV     ECX,DWORD PTR SS:[EBP-260]
0042267F  |.  8B91 E4000000 MOV     EDX,DWORD PTR DS:[ECX+E4]
00422685  |.  52            PUSH    EDX                              ;  hFocusWindow
00422686  |.  8B45 F0       MOV     EAX,DWORD PTR SS:[EBP-10]
00422689  |.  50            PUSH    EAX                              ;  DeviceType
0042268A  |.  8B4D E8       MOV     ECX,DWORD PTR SS:[EBP-18]
0042268D  |.  51            PUSH    ECX                              ;  Adapter
0042268E  |.  8B95 A0FDFFFF MOV     EDX,DWORD PTR SS:[EBP-260]
00422694  |.  8B82 EC000000 MOV     EAX,DWORD PTR DS:[EDX+EC]
0042269A  |.  8B8D A0FDFFFF MOV     ECX,DWORD PTR SS:[EBP-260]
004226A0  |.  8B91 EC000000 MOV     EDX,DWORD PTR DS:[ECX+EC]
004226A6  |.  8B00          MOV     EAX,DWORD PTR DS:[EAX]
004226A8  |.  52            PUSH    EDX                              ;  this
004226A9  |.  FF50 40       CALL    DWORD PTR DS:[EAX+40]            ;  d3d->createdevice

为exe增加段 填入如下代码
007D7000    C742 20 01000000     MOV     DWORD PTR DS:[EDX+20],1
007D7007    52                   PUSH    EDX
007D7008    8B45 FC              MOV     EAX,DWORD PTR SS:[EBP-4]
007D700B    50                   PUSH    EAX
007D700C  - E9 68B6C4FF          JMP     engine.00422679 返回刀修改处下方
007D7011    90                   NOP

取消鼠标范围限制
00421454    - E9 AFDB3A00   JMP     ENGINE.007CF008                  ;  pPresentationParameters
00421459  |.  8B8D A0FDFFFF MOV     ECX,DWORD PTR SS:[EBP-260]

00420A98  |.  FF15 70336700 CALL    DWORD PTR DS:[<&USER32.ClipCurso>; \ClipCursor
某游戏的窗口化 作完这些可以用与od调试了
2005-12-4 22:09
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢你
我要调试的游戏是地狱火,没发现有进入WINDOW MODE的办法
最初由 光之翼 发布
游戏进入独占式全屏模式,如果下了断点的话,就无法跳回来,也无法切换到其它程序,机子并没有死,只是屏幕死在那个画面上,好像应用directx的游戏都会.你可以在程序代码上找找有没有让游戏窗口进入WINDOW MODE的办法.比如暗黑破坏神,在命令后打上-W参数,就OK!
2005-12-5 11:49
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
不知道什么原英,我的机子总是装上SoftICE就死了,我得系统是XP
最初由 kanxue 发布
如果解决不了,可以换上SoftICE。
2005-12-5 11:52
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我先好好看看
最初由 goodcode 发布
搜索引用字符串 ASCII "m_pD3D->CreateDevice FAIL\n"
找到引用处向上看 找到CALL DWORD PTR DS:[EAX+40]

来到这里d3d->createdevice
00422667 |. 51 PUSH ECX ; ppReturnedDeviceInterface
........
2005-12-5 11:52
0
雪    币: 213
活跃值: (96)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
这么简单的问题也问
2005-12-5 14:25
0
游客
登录 | 注册 方可回帖
返回
//