别让我再为难了,
为了这么一小段代码 已经为难了一个星期了 求解答
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 编辑 ]