首页
社区
课程
招聘
用OllyDbg调试程序,得到“访问违反”信息后,
发表于: 2004-4-27 17:22 9290

用OllyDbg调试程序,得到“访问违反”信息后,

2004-4-27 17:22
9290
得到“访问违反”的信息后应该怎么办才能找到是由哪条语句引起的访问违反呢?
谢谢
收藏
免费 6
支持
分享
最新回复 (10)
雪    币: 218
活跃值: (100)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
是不是太简单了反而没有人回答?
2004-4-28 08:55
0
雪    币: 279
活跃值: (375)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
3
看一下STACK的值
2004-4-28 09:21
0
雪    币: 218
活跃值: (100)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
比如说现在得到:
访问违反:读取[9BCC9BCC]

这时的指令是:
090F4114    8B10            MOV EDX,DWORD PTR DS:[EAX]
信息窗口:
DS:[9BCC9BCC]=???
EDX=096C6F18

这时的寄存器(FPU)是:
EAX 9BCC9BCC
ECX 096C6FD0
EDX 096C6F18
EBX 01325F64
ESP 0012FD94
EBP 0012FDA4
ESI 00000113
EDI 0012FEE4
EIP 090F4114 DVRPlaye.090F4114
C 0  ES 0023 32bit 0(FFFFFFFF)
P 0  CS 001B 32bit 0(FFFFFFFF)
A 1  SS 0023 32bit 0(FFFFFFFF)
Z 0  DS 0023 32bit 0(FFFFFFFF)
S 0  FS 0038 32bit 7FFDE000(FFF)
T 0  GS 0000 NULL
D 0
O 0  LastErr ERROR_SUCCESS (00000000)
EFL 00010212 (NO,NB,NE,A,NS,PO,GE,G)
ST0 empty 38105.395652662036480
ST1 empty 38105.000000000000000
ST2 empty 34176781.000000000000
ST3 empty +UNORM 1F80 00000000 00000000
ST4 empty -UNORM 9424 00000000 00000000
ST5 empty -UNORM 8854 7FFDE200 0000F0F0
ST6 empty 82500.000000000000000
ST7 empty 3.2923084627960002560e+12
               3 2 1 0      E S P U O Z D I
FST 0020  Cond 0 0 0 0  Err 0 0 1 0 0 0 0 0  (GT)
FCW 1372  Prec NEAR,64  Mask    1 1 0 0 1 0

堆栈是:
调用堆栈
地址         堆栈          例程 / 参数                                       调用来自                                    Frame
0012FDA8     090F40D3      ? DVRPlaye.090F40E4                               DVRPlaye.090F40CE                           0012FDA4
0012FDB8     090E7E3A      DVRPlaye.090F40B0                                 DVRPlaye.090E7E35                           0012FDB4
0012FDCC     09129AD2      包含 DVRPlaye.090E7E3A                              DVRPlaye.09129ACF                           0012FDC8
0012FDD4     091299B8      DVRPlaye.09159388                                 DVRPlaye.091299B3                           0012FDF4
0012FDF8     0911F0F6      包含 DVRPlaye.091299B8                              DVRPlaye.0911F0F4                           0012FDF4
0012FE10     77DF1EF0      包含 DVRPlaye.0911F0F6                              USER32.77DF1EED                             0012FE0C
0012FE30     77DF204C      ? USER32.77DF1ED8                                 USER32.77DF2047                             0012FE2C
0012FE34     09300FBB        Arg1 = 09300FBB
0012FE38     000403C8        Arg2 = 000403C8
0012FE3C     00000113        Arg3 = 00000113
0012FE40     00000001        Arg4 = 00000001
0012FE44     00000000        Arg5 = 00000000
0012FEBC     77DF5F69      USER32.77DF1F44                                   USER32.77DF5F64                             0012FEB8
0012FEC8     00508C74      <JMP.&USER32.DispatchMessageA>                    RemoteDv.@Forms@TApplication@ProcessMessag  0012FF30
0012FECC     0012FEE4        pMsg = WM_TIMER hw = 403C8 (class="TPUtilWindo
0012FEE0     00508C93      RemoteDv.@Forms@TApplication@ProcessMessage$qqrr  RemoteDv.@Forms@TApplication@HandleMessage  0012FF30
0012FF04     00508EB3      RemoteDv.@Forms@TApplication@HandleMessage$qqrv   RemoteDv.00508EAE                           0012FF30
0012FF34     00401997      RemoteDv.@Forms@TApplication@Run                  RemoteDv.00401992                           0012FF30
0012FF8C     0054C533      包含 RemoteDv.00401997                              RemoteDv.__startup+14C                      0012FF88

怎么分析呢?谢谢
2004-4-28 10:15
0
雪    币: 279
活跃值: (375)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
5
DS:[9BCC9BCC]=???

这里指针指向的无内容,引起异常
2004-4-28 12:30
0
雪    币: 218
活跃值: (100)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
这条指令之前有这样两句:
MOV DWORD PTR SS:[EBP-4],EAX
MOV EAX,DWORD PTR SS:[EBP-4]

觉得挺奇怪的
2004-4-28 12:36
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
7
看SE句柄走
或者忽略相关异常选项
2004-4-28 12:37
0
雪    币: 218
活跃值: (100)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
这个访问违反的异常是不能忽略的,而且不是每次都会引起这个异常

不好意思的问:“看SE句柄走”是什么意思?
2004-4-28 12:42
0
雪    币: 218
活跃值: (100)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
请帮忙
2004-4-28 14:16
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
如果程序不是很大 就程序的下载地址贴出来~ 让大家看看~~~  
还有把引起程序访问违反的地址也写上........
2004-4-28 17:09
0
雪    币: 218
活跃值: (100)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
谢谢大家

程序是自己写的,比较大,不是下载的。
因为里面用到别人写的ActiveX控件,所以调试比较麻烦。所以想到用调试工具,在网上搜了一下就决定用OllyDbg了,但是还不太会用。
2004-4-28 17:19
0
游客
登录 | 注册 方可回帖
返回
//