首页
社区
课程
招聘
[求助]OD调试时的2个问题
发表于: 2006-3-19 15:40 4271

[求助]OD调试时的2个问题

2006-3-19 15:40
4271
OD载入程序,停在这里:
005256B0 >    55            PUSH EBP
005256B1  |.  8BEC          MOV EBP,ESP
005256B3  |.  83C4 F4       ADD ESP,-0C
005256B6  |.  E8 15E1EDFF   CALL TMS22.004037D0
005256BB  |.  E8 340AEEFF   CALL TMS22.004060F4
005256C0  |.  E8 2F56EEFF   CALL TMS22.0040ACF4
005256C5  |.  E8 9AC5EEFF   CALL TMS22.00411C64
005256CA  |.  E8 6DD5EEFF   CALL TMS22.00412C3C

F9。来到这里:
7C81EB33    5E              POP ESI
7C81EB34    C9              LEAVE
7C81EB35    C2 1000         RETN 10
7C81EB38    85FF            TEST EDI,EDI
7C81EB3A  ^ 0F8E E6D0FEFF   JLE kernel32.7C80BC26
7C81EB40    8B55 FC         MOV EDX,DWORD PTR SS:[EBP-4]
7C81EB43    8955 0C         MOV DWORD PTR SS:[EBP+C],EDX
7C81EB46    0FB716          MOVZX EDX,WORD PTR DS:[ESI]
7C81EB49    8B7D F8         MOV EDI,DWORD PTR SS:[EBP-8]
7C81EB4C    8A143A          MOV DL,BYTE PTR DS:[EDX+EDI]
7C81EB4F    8811            MOV BYTE PTR DS:[ECX],DL
7C81EB51    8B78 0C         MOV EDI,DWORD PTR DS:[EAX+C]
7C81EB54    0FB6D2          MOVZX EDX,DL
CPU窗口下方显示:
Stack [0012FD04]=FFFFFFFF
ESI=0012FD8C
整个窗口下方提示:
例外 OEEDFACE-使用 Shift+F7/F8/F9来通过程序例外。
此时的寄存器窗口情况如下:
EAX 0012FD08
ECX 00000000
EDX 0044E150 TMS22.0044E150
EBX 00122208
ESP 0012FD04
EBP 0012FD58
ESI 0012FD8C
EDI 7C930738 ntdll.7C930738
EIP 7C81EB33 kernel32.7C81EB33
C 0  ES 0023 32位 0(FFFFFFFF)
P 0  CS 001B 32位 0(FFFFFFFF)
A 0  SS 0023 32位 0(FFFFFFFF)
Z 0  DS 0023 32位 0(FFFFFFFF)
S 0  FS 003B 32位 7FFDF000(FFF)
T 0  GS 0000 NULL
D 0
O 0  LastErr ERROR_SUCCESS (00000000)
EFL 00000202 (NO,NB,NE,A,NS,PO,GE,G)
ST0 empty 7.3425752709623961600
ST1 empty 23.352865954566005760
ST2 empty 111.29743639608906240
ST3 empty 2035.6020761245672960
ST4 empty 11345.481353325642240
ST5 empty 1.0000000000000000000
ST6 empty 1.0000000000000000000
ST7 empty 1.0000000000000000000
               3 2 1 0      E S P U O Z D I
FST 4020  Cond 1 0 0 0  Err 0 0 1 0 0 0 0 0  (EQ)
FCW 1272  Prec NEAR,53  Mask    1 1 0 0 1 0
堆栈情况如下:
0012FD04   FFFFFFFF
0012FD08   0EEDFACE
0012FD0C   00000001
0012FD10   00000000
0012FD14   7C81EB33  RETURN to kernel32.7C81EB33 from ntdll.RtlRaiseException
0012FD18   00000007
0012FD1C   0044E150  RETURN to TMS22.0044E150 from TMS22.004035A8
0012FD20   00FAE35C

F9后,停在这里:
00FAE343    0016            ADD BYTE PTR DS:[ESI],DL
00FAE345    0000            ADD BYTE PTR DS:[EAX],AL
00FAE347    0090 C4FA0070   ADD BYTE PTR DS:[EAX+7000FAC4],DL
00FAE34D    C5FA            LDS EDI,EDX                              ; 非法使用寄存器
00FAE34F    0030            ADD BYTE PTR DS:[EAX],DH
00FAE351    3030            XOR BYTE PTR DS:[EAX],DH
00FAE353    3900            CMP DWORD PTR DS:[EAX],EAX
00FAE355    65:             PREFIX GS:                               ; 多余前缀
00FAE356    64:0D 16000000  OR EAX,16                                ; 多余前缀
00FAE35C  ^ E0 C3           LOOPDNE SHORT 00FAE321
00FAE35E    44              INC ESP
00FAE35F    00B4E3 FA000000 ADD BYTE PTR DS:[EBX+FA],DH
00FAE366    0000            ADD BYTE PTR DS:[EAX],AL
00FAE368  ^ 70 E3           JO SHORT 00FAE34D

CPU窗口下方显示:
DL=50 ('P')
DS:[FFFFFFFF]=???
整个窗口下方提示:
当写入到 [FFFFFFFF]时访问违规。
此时寄存器窗口如下:
EAX 0012FD08
ECX FFFFFFFF
EDX 0044E150 TMS22.0044E150
EBX 0044E150 TMS22.0044E150
ESP 0012FD78
EBP 0012FF5C
ESI FFFFFFFF
EDI 7C930738 ntdll.7C930738
EIP 00FAE343
C 0  ES 0023 32位 0(FFFFFFFF)
P 1  CS 001B 32位 0(FFFFFFFF)
A 1  SS 0023 32位 0(FFFFFFFF)
Z 0  DS 0023 32位 0(FFFFFFFF)
S 0  FS 003B 32位 7FFDF000(FFF)
T 0  GS 0000 NULL
D 0
O 0  LastErr ERROR_SUCCESS (00000000)
EFL 00010216 (NO,NB,NE,A,NS,PE,GE,G)
ST0 empty 7.3425752709623961600
ST1 empty 23.352865954566005760
ST2 empty 111.29743639608906240
ST3 empty 2035.6020761245672960
ST4 empty 11345.481353325642240
ST5 empty 1.0000000000000000000
ST6 empty 1.0000000000000000000
ST7 empty 1.0000000000000000000
               3 2 1 0      E S P U O Z D I
FST 4020  Cond 1 0 0 0  Err 0 0 1 0 0 0 0 0  (EQ)
FCW 1272  Prec NEAR,53  Mask    1 1 0 0 1 0
此时堆栈窗口如下:
0012FD78   00122208
0012FD7C   FFFFFFFF
0012FD80   7C930738  ntdll.7C930738
0012FD84   0012FF5C
0012FD88   0012FD8C
0012FD8C   00522D4C  ASCII "TMSDATA"
0012FD90   0044E15E  RETURN to TMS22.0044E15E from TMS22.0044E12C
0012FD94   0044EEDF  RETURN to TMS22.0044EEDF from TMS22.0044E154
0012FD98   0012FDA4  Pointer to next SEH record
0012FD9C   0044EEF5  SE handler
0012FDA0   0012FF5C
0012FDA4   0012FDB0  Pointer to next SEH record
0012FDA8   0044EF92  SE handler

请问各位DX。这两次停顿说明了什么问题。如何修改?谢谢

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
第一处该为程序入口吧。
第二处按SHIFT+F9往下走,不用管的。
2006-3-19 15:53
0
雪    币: 697
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
最初由 云飘飘 发布
第一处该为程序入口吧。
第二处按SHIFT+F9往下走,不用管的。


我是问第一个停顿处为什么异常。第二个停顿也就是写入异常是为什么?
不过还是谢谢你
2006-3-19 17:44
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
脱壳了吗?如没脱壳会出现异常的。我就知道这点。真惭愧。
2006-3-25 22:21
0
游客
登录 | 注册 方可回帖
返回
//