别让我再为难了,
为了这么一小段代码 已经为难了一个星期了
求解答
OD 反汇编的程序
CPU Disasm
地址
十六进制 转存
命令
备注
00401005
/$ /E9 06000000
JMP 00401010
; xc.00401005(guessed Arg1,Arg2,Arg3)
0040100A
|
|CC
INT3
0040100B
|
|CC
INT3
0040100C
|
|CC
INT3
0040100D
|
|CC
INT3
0040100E
|
|CC
INT3
0040100F
|
|CC
INT3
00401010
|> \55
PUSH EBP
00401011
|.
8BEC
MOV EBP,ESP
00401013
|.
83EC 44
SUB ESP,44
00401016
|.
53
PUSH EBX
00401017
|.
56
PUSH ESI
00401018
|.
57
PUSH EDI
00401019
|.
8D7D BC
LEA EDI,[LOCAL.17]
0040101C
|.
B9 11000000
MOV ECX,11
00401021
|.
B8 CCCCCCCC
MOV EAX,CCCCCCCC
00401026
|.
F3:AB
REP STOS DWORD PTR ES:[EDI]
00401028
|.
C745 FC 64000 MOV DWORD PTR SS:[LOCAL.1],64
0040102F
|?
8B75 04
MOV ESI,DWORD PTR SS:[EBP+4]
00401032
|?
81E6 0000FFFF |AND ESI,FFFF0000
00401038
|.
66:813E 4D5A
|CMP WORD PTR DS:[ESI],5A4D
0040103D
|?
74 08
|JE SHORT 00401047
0040103F
|?
81EE 00000100 SUB ESI,10000
00401045
|?
EB F1
JMP SHORT 00401038
00401047
|.
8975 FC
MOV DWORD PTR SS:[LOCAL.1],ESI
0040104A
|.
8B45 FC
MOV EAX,DWORD PTR SS:[LOCAL.1]
0040104D
|?
50
PUSH EAX
0040104E
|?
68 A42F4200
PUSH OFFSET 00422FA4
; ASCII "%X
"
00401053
|?
E8 38000000
CALL 00401090
00401058
|.
83C4 08
ADD ESP,8
0040105B
|.
5F
POP EDI
0040105C
|?
5E
POP ESI
0040105D
|?
5B
POP EBX
0040105E
|.
83C4 44
ADD ESP,44
00401061
|?
3BEC
CMP EBP,ESP
00401063
|?
E8 A8000000
CALL 00401110
00401068
\.
8BE5
MOV ESP,EBP
图片附件: 游客没有浏览图片的权限,请
登录 或
注册
栈的情况
变量a的地址
图片附件: 游客没有浏览图片的权限,请
登录 或
注册
痛苦啊 ebp-4的位置是 12FFBC
变量a的地址是 12ff7c
这个地方不懂
更改ebp-4 后面的 4 又会影响到
变量a 的值
打印出的结果又不对
[
本帖最后由 朱三哥 于 2012-12-12 17:42 编辑 ]