首页
社区
课程
招聘
[求助]下 bp GetDriveTypeA断点后~~~~!!
发表于: 2009-3-27 22:46 5337

[求助]下 bp GetDriveTypeA断点后~~~~!!

2009-3-27 22:46
5337
大家好~~!麻烦高手提示一下,,我有一个光盘映像文件,,用虚拟光驱能够正常播放,,但每次装载虚拟光驱太麻烦了,,我就用Winrar解压了ISO映像文件,,然后双击解压后的EXE文件进行播放,,但提示“只有装入光盘才能播放”,,,,,我用OD载入后下了bp GetDriveTypeA断点,,程序在提示错误前断了下来,,,可是我转悠了半天还是在系统的领空,,,转不出去了~!程序断下来以后应该做什么呢???就我这个水平的理解,,应该返回到程序的领空,,然后改关键跳转,,不让其检测光驱,,对吗???希望高手帮忙点拨点拨~~!!我研究了好多天了,目前我的自学进程已经停滞到这里了~!    想哭~!!!
    一个人学习,,,,好苦~!!!
      先谢谢了,谢谢了~!!

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 149
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
没人理吗???我在这开着双OD对比,,眼睛都快冒出来了 @@  
2009-3-27 23:04
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
唉,一个人学习是好苦,理解楼主,我也一个人学习。。。。。。楼主努力。。。ALT+F9可以返回程序领空吗?
2009-3-28 08:14
0
雪    币: 149
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
知音啊之音~!ALT加F9也没回去,呵呵~!
2009-3-28 13:16
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
5
断点触发后,直接看堆栈,在返回地址处按F4就可以了。

顺便说句题外话:如果不是加密光盘,试试LTT他们的产品WinMount,中文版免费,很棒的国产软件,目前仍在不断完善中,相信有不错的前景。
2009-3-29 13:47
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
把內容給po上來,樓主是不是下断点在dll裡,還是exe?
2009-3-29 14:09
0
雪    币: 149
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
20003755 >  55                push ebp
20003756    8BEC              mov ebp,esp
20003758    6A FF             push -1
2000375A    68 E0710020       push 2WB.200071E0
2000375F    68 7C470020       push 2WB.2000477C
20003764    64:A1 00000000    mov eax,dword ptr fs:[0]
2000376A    50                push eax
2000376B    64:8925 00000000  mov dword ptr fs:[0],esp
20003772    83EC 58           sub esp,58
20003775    53                push ebx
20003776    56                push esi
20003777    57                push edi
20003778    8965 E8           mov dword ptr ss:[ebp-18],esp
2000377B    FF15 30710020     call dword ptr ds:[<&KERNEL32.GetVersion>; kernel32.GetVersion
20003781    33D2              xor edx,edx
20003783    8AD4              mov dl,ah
20003785    8915 C48A0020     mov dword ptr ds:[20008AC4],edx
2000378B    8BC8              mov ecx,eax
2000378D    81E1 FF000000     and ecx,0FF
20003793    890D C08A0020     mov dword ptr ds:[20008AC0],ecx
20003799    C1E1 08           shl ecx,8
2000379C    03CA              add ecx,edx
2000379E    890D BC8A0020     mov dword ptr ds:[20008ABC],ecx
200037A4    C1E8 10           shr eax,10
200037A7    A3 B88A0020       mov dword ptr ds:[20008AB8],eax
200037AC    6A 01             push 1
200037AE    E8 930E0000       call 2WB.20004646

以上是载入OD后~~~~~~~~~~~~~~~!然后我下bp GetDriveTypeA断点!~~停到了

7C8214CB >  8BFF              mov edi,edi
7C8214CD    55                push ebp
7C8214CE    8BEC              mov ebp,esp
7C8214D0    837D 08 00        cmp dword ptr ss:[ebp+8],0
7C8214D4    74 1D             je short kernel32.7C8214F3
7C8214D6    FF75 08           push dword ptr ss:[ebp+8]
7C8214D9    E8 26CCFEFF       call kernel32.7C80E104
7C8214DE    85C0              test eax,eax
7C8214E0    0F84 27030200     je kernel32.7C84180D
7C8214E6    8B40 04           mov eax,dword ptr ds:[eax+4]
7C8214E9    50                push eax
7C8214EA    E8 719EFEFF       call kernel32.GetDriveTypeW
7C8214EF    5D                pop ebp
7C8214F0    C2 0400           retn 4
7C8214F3    33C0              xor eax,eax
7C8214F5  ^ EB F2             jmp short kernel32.7C8214E9
7C8214F7    3B45 14           cmp eax,dword ptr ss:[ebp+14]
7C8214FA    7C 45             jl short kernel32.7C821541
7C8214FC    E9 84000000       jmp kernel32.7C821585
7C821501    FF45 0C           inc dword ptr ss:[ebp+C]
7C821504    EB 7F             jmp short kernel32.7C821585
7C821506    90                nop
7C821507    90                nop
7C821508    90                nop
7C821509    90                nop
7C82150A    90                nop

堆栈里显示
0012F560     08932FA5    /CALL 到 GetDriveTypeA 来自 FILEXTRA.08932F9F
0012F564     0012F568    \RootPathName = "D:\"
0012F568     005C3A44
0012F56C     08931FE1    返回到 FILEXTRA.08931FE1
0012F570     07836320
0012F574     0012F588
0012F578     08931FEB    返回到 FILEXTRA.08931FEB 来自 FILEXTRA.089310A5

然后我ALT+F9返回到程序领空,,,然后就一片茫然~!!
2009-3-29 15:30
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
GetDriveType結束後就是看eax是否==5,若是則為光碟機,之後還有可能有像createfile,getfilesize...之類的check,樓主最好多了解些api,若是映像檔不大的話把它傳到免空,我幫你看看,若是太大的話那就不用了
2009-3-31 18:14
0
雪    币: 149
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
映像文件大概300M,我没传!不管怎么说也要感谢你的热心帮助!谢谢,呵呵!
我还在自己苦苦的寻觅当中~~~~~~~~~~~~~~
但还是没有头绪!!!!!!!!!!!!!!!!!!!
呵呵~!
2009-3-31 18:59
0
雪    币: 102
活跃值: (50)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
你直接到FILEXTRA.08932F9F去看看?
2009-3-31 19:33
0
雪    币: 228
活跃值: (100)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
我也遇到同样的问题了,哎
2009-4-3 14:48
0
雪    币: 149
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
不知道这位兄弟的光盘映像文件大不大?要不是特别大,弄到哪里我们一起学习研究啊???
2009-4-4 08:24
0
雪    币: 228
活跃值: (100)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
我的也挺大的
2009-4-13 17:26
0
游客
登录 | 注册 方可回帖
返回
//