00439616 > \6A 00
PUSH
0
00439618 . 68 14574D00
PUSH
OLLYDBG.004D5714
0043961D . E8 E85B0700
CALL
<
JMP
.&KERNEL32.WaitForDebugEvent>
00439622 . 85C0
TEST
EAX
,
EAX
00439624 . 75 44
JNZ
SHORT
OLLYDBG.0043966A
...
0043977D . 51
PUSH
ECX
0043977E . E8 4D54FFFF
CALL
OLLYDBG.0042EBD0
0042EBD0 /$ 55
PUSH
EBP
0042EBD1 |. 8BEC
MOV
EBP
,
ESP
0042EBD3 |. 81C4 04F0FFFF
ADD
ESP
,-0FFC
0042EBD9 |. 50
PUSH
EAX
0042EBDA |. 81C4 00F5FFFF
ADD
ESP
,-0B00
0042EBE0 |. 53
PUSH
EBX
0042EBE1 |. 56
PUSH
ESI
0042EBE2 |. 57
PUSH
EDI
0042EBE3 |. 8B35 1C574D00
MOV
ESI
,
DWORD
PTR
DS
:[4D571C]
0042EBE9 |. 56
PUSH
ESI
0042EBEA |. E8 5DF8FFFF
CALL
OLLYDBG.0042E44C
0042EBEF |. 8BF8
MOV
EDI
,
EAX
0042EBF1 |. 8B45 08
MOV
EAX
,
DWORD
PTR
SS
:[
EBP
+8]
0042EBF4 |. 59
POP
ECX
0042EBF5 |. 8938
MOV
DWORD
PTR
DS
:[
EAX
],
EDI
0042EBF7 |. 8B15 14574D00
MOV
EDX
,
DWORD
PTR
DS
:[4D5714]
0042EBFD |. 83FA 09
CMP
EDX
,9
0042EC00 |. 0F87 EE270000
JA
OLLYDBG.004313F4
0042EC06 |. FF2495 0DEC42>
JMP
DWORD
PTR
DS
:[
EDX
*4+42EC0D]
0042EC0D |. F4134300
DD
OLLYDBG.004313F4
0042EC11 |. 35EC4200
DD
OLLYDBG.0042EC35
0042EC15 |. FF0C4300
DD
OLLYDBG.00430CFF
0042EC19 |. D70D4300
DD
OLLYDBG.00430DD7
0042EC1D |. 3F0F4300
DD
OLLYDBG.00430F3F
0042EC21 |. 37104300
DD
OLLYDBG.00431037
0042EC25 |. 2D114300
DD
OLLYDBG.0043112D
0042EC29 |. B7114300
DD
OLLYDBG.004311B7
0042EC2D |. 76124300
DD
OLLYDBG.00431276
0042EC31 |. C7134300
DD
OLLYDBG.004313C7
00431276 |> \830D 74574D00>
OR
DWORD
PTR
DS
:[4D5774],4
0043127D |. 68 0A674B00
PUSH
OLLYDBG.004B670A
00431282 |. 8D95 98FDFFFF
LEA
EDX
,
DWORD
PTR
SS
:[
EBP
-268]
00431288 |. 52
PUSH
EDX
00431289 |. E8 9E590700
CALL
OLLYDBG.004A6C2C
0043128E |. 83C4 08
ADD
ESP
,8
00431291 |. 8945 F4
MOV
DWORD
PTR
SS
:[
EBP
-
C
],
EAX
00431294 |. 0FB71D 26574D>
MOVZX
EBX
,
WORD
PTR
DS
:[4D5726]
0043129B |. 85DB
TEST
EBX
,
EBX
0043129D |. 7D 0A
JGE
SHORT
OLLYDBG.004312A9
0043129F |. B8 01000000
MOV
EAX
,1
004312A4 |. E9 7C010000
JMP
OLLYDBG.00431425
004312A9 |> 66:833D 24574>
CMP
WORD
PTR
DS
:[4D5724],0
004312B1 |. 74 6B
JE
SHORT
OLLYDBG.0043131E
0043131E |> BA 00010000
MOV
EDX
,100
00431323 |. 2B55 F4
SUB
EDX
,
DWORD
PTR
SS
:[
EBP
-
C
]
00431326 |. 4A
DEC
EDX
00431327 |. 3BDA
CMP
EBX
,
EDX
00431329 |. 7E 09
JLE
SHORT
OLLYDBG.00431334
0043132B |. BB 00010000
MOV
EBX
,100
00431330 |. 2B5D F4
SUB
EBX
,
DWORD
PTR
SS
:[
EBP
-
C
]
00431333 |. 4B
DEC
EBX
00431334 |> 6A 03
PUSH
3
00431336 |. 53
PUSH
EBX
00431337 |. A1 20574D00
MOV
EAX
,
DWORD
PTR
DS
:[4D5720]
0043133C |. 50
PUSH
EAX
0043133D |. 8D95 98FDFFFF
LEA
EDX
,
DWORD
PTR
SS
:[
EBP
-268]
00431343 |. 0355 F4
ADD
EDX
,
DWORD
PTR
SS
:[
EBP
-
C
]
00431346 |. 52
PUSH
EDX
00431347 |. E8 C0FF0200
CALL
OLLYDBG._Readmemory
0043134C |. 83C4 10
ADD
ESP
,10
0043134F |. 3BC3
CMP
EAX
,
EBX
00431351 |. 74 0A
JE
SHORT
OLLYDBG.0043135D
00431353 |. B8 01000000
MOV
EAX
,1
00431358 |. E9 C8000000
JMP
OLLYDBG.00431425
0043135D |> 015D F4
ADD
DWORD
PTR
SS
:[
EBP
-
C
],
EBX
00431360 |> 8B55 F4
MOV
EDX
,
DWORD
PTR
SS
:[
EBP
-
C
]
00431363 |. 8D8415 97FDFF>
LEA
EAX
,
DWORD
PTR
SS
:[
EBP
+
EDX
-269]
0043136A |. EB 04
JMP
SHORT
OLLYDBG.00431370
0043136C |> FF4D F4 /
DEC
DWORD
PTR
SS
:[
EBP
-
C
]
0043136F |. 48 |
DEC
EAX
00431370 |> 8038 00
CMP
BYTE
PTR
DS
:[
EAX
],0
00431373 |.^ 74 F7 |
JE
SHORT
OLLYDBG.0043136C
00431375 |. 33D2 |
XOR
EDX
,
EDX
00431377 |. 8A10 |
MOV
DL
,
BYTE
PTR
DS
:[
EAX
]
00431379 |. 83FA 0D |
CMP
EDX
,0D
0043137C |.^ 74 EE |
JE
SHORT
OLLYDBG.0043136C
0043137E |. 33C9 |
XOR
ECX
,
ECX
00431380 |. 8A08 |
MOV
CL
,
BYTE
PTR
DS
:[
EAX
]
00431382 |. 83F9 0A |
CMP
ECX
,0A
00431385 |.^ 74 E5 \
JE
SHORT
OLLYDBG.0043136C
00431387 |. 8B45 F4
MOV
EAX
,
DWORD
PTR
SS
:[
EBP
-
C
]
0043138A |. 8D95 98FDFFFF
LEA
EDX
,
DWORD
PTR
SS
:[
EBP
-268]
00431390 |. 85FF
TEST
EDI
,
EDI
00431392 |. C68405 98FDFF>
MOV
BYTE
PTR
SS
:[
EBP
+
EAX
-268],0
0043139A |. 52
PUSH
EDX
0043139B |. 75 04
JNZ
SHORT
OLLYDBG.004313A1
0043139D |. 33C9
XOR
ECX
,
ECX
0043139F |. EB 03
JMP
SHORT
OLLYDBG.004313A4
004313A1 |> 8B4F 2C
MOV
ECX
,
DWORD
PTR
DS
:[
EDI
+2C]
004313A4 |> 51
PUSH
ECX
004313A5 |. E8 56CDFFFF
CALL
OLLYDBG.0042E100
004313AA |. 83C4 08
ADD
ESP
,8
0042E100 /$ 55
PUSH
EBP
0042E101 |. 8BEC
MOV
EBP
,
ESP
0042E103 |. 81C4 04F0FFFF
ADD
ESP
,-0FFC
0042E109 |. 50
PUSH
EAX
0042E10A |. 81C4 FCFDFFFF
ADD
ESP
,-204
0042E110 |. 53
PUSH
EBX
0042E111 |. 56
PUSH
ESI
0042E112 |. 57
PUSH
EDI
0042E113 |. 8D5D 10
LEA
EBX
,
DWORD
PTR
SS
:[
EBP
+10]
0042E116 |. 837D 0C 00
CMP
DWORD
PTR
SS
:[
EBP
+
C
],0
0042E11A |. 74 3D
JE
SHORT
OLLYDBG.0042E159
0042E11C |. 6A 00
PUSH
0
0042E11E |. E8 59340000
CALL
OLLYDBG.0043157C
0042E123 |. 59
POP
ECX
0042E124 |. 53
PUSH
EBX
0042E125 |. 8B45 0C
MOV
EAX
,
DWORD
PTR
SS
:[
EBP
+
C
]
0042E128 |. 50
PUSH
EAX
0042E129 |. 8D95 FCEDFFFF
LEA
EDX
,
DWORD
PTR
SS
:[
EBP
-1204]
0042E12F |. 52
PUSH
EDX
0042E130 |. E8 1F8B0700
CALL
OLLYDBG.004A6C54
这时如果 F8, OllyDbg 在 4a74cf 出现访问 [00000001]异常, 看一下 Stack, 很容易知道原因
0012DA9C |03A9066C
0012DAA0 |004B59E6 ASCII
"%s - %s"
0012DAA4 |00000001
argptr=12DA9C
第1个 %s 就是 03A9066C 指向的字符串, [03A9066C]=0
第2个 %s 就是 004B59E6 指向的字符串
"%s - %s"
(这完全是巧合)
第3个 %s 就是 00000001 指向的字符串, 哈
如果 是 Test1.eXe , 只有1个%s, 运气非常好, 能走过去, 12C888 变成
"Debug string: "
, 以后也不会有问题了. OK
如果 是 Test2.exe , 只有2个%s, 暂时运气不错, 能走过去, 12C888 变成
"Debug string: %s - %s"
继续走
0042E21B |. 50
PUSH
EAX
0042E21C |. 6A 00
PUSH
0
0042E21E |. 8B55 08
MOV
EDX
,
DWORD
PTR
SS
:[
EBP
+8]
0042E221 |. 52
PUSH
EDX
0042E222 |. E8 E5C30200
CALL
OLLYDBG._Addtolist
0042E227 |. 83C4 0C
ADD
ESP
,0C
0045A60C >/$ 55
PUSH
EBP
0045A60D |. 8BEC
MOV
EBP
,
ESP
0045A60F |. 81C4 F8FDFFFF
ADD
ESP
,-208
0045A615 |. 53
PUSH
EBX
0045A616 |. 56
PUSH
ESI
0045A617 |. 837D 10 00
CMP
DWORD
PTR
SS
:[
EBP
+10],0
0045A61B |. 0F84 0E020000
JE
OLLYDBG.0045A82F
0045A621 |. 8D45 14
LEA
EAX
,
DWORD
PTR
SS
:[
EBP
+14]
0045A624 |. 50
PUSH
EAX
0045A628 |. 52
PUSH
EDX
0045A62F |. 51
PUSH
ECX
0045A630 |. E8 1FC60400
CALL
OLLYDBG.004A6C54
这时如果 F8, OllyDbg 在 4a74cf 出现访问 [00000260]异常, 看一下 Stack, 很容易知道原因
0012C87C |03A902EC
0012C880 |00000260
argptr=12C87C
第1个 %s 就是 03A902EC 指向的字符串, [03A902EC]=0
第2个 %s 就是 00000260 指向的字符串,