能力值:
(RANK:550 )
|
-
-
2 楼
004002EB |. 8D7D D4 lea edi, dword ptr [ebp-2C]
004002EE |. F3:A5 rep movs dword ptr es:[edi], dword ptr [esi]
004002F0 |> 5F pop edi
004002F1 |. 33C0 xor eax, eax
004002F3 |. 5E pop esi
004002F4 |. C9 leave
004002F5 \. C3 retn
通过分析前面的计算,可以得出当test.txt前4位值为0x8AD397F7时,这里的rep次数为13次,正好覆盖了栈里面retn的返回地址,让这里返回地址指向004002F5,再次返回后,就来到了程序前面分配的堆空间。在堆里构造代码,使可以得出正确的结果就OK了。
00960000 /EB 7C jmp short 0096007E
00960002 |CF iretd
00960003 |45 inc ebp
00960004 |94 xchg eax, esp
00960005 |1C 94 sbb al, 94
00960007 1C
00960008 E8 00000000 call 0096000D
0096000D 58 pop eax
0096000E 8D40 6D lea eax, dword ptr [eax+6D]
00960011 8D6C24 1C lea ebp, dword ptr [esp+1C]
00960015 59 pop ecx
00960016 57 push edi
00960017 50 push eax
00960018 50 push eax
00960019 68 90034000 push 400390
0096001E C3 retn
0096001F 0000 add byte ptr [eax], al
00960021 0000 add byte ptr [eax], al
00960023 0000 add byte ptr [eax], al
00960025 0000 add byte ptr [eax], al
00960027 0000 add byte ptr [eax], al
00960029 0000 add byte ptr [eax], al
0096002B 0000 add byte ptr [eax], al
0096002D 0000 add byte ptr [eax], al
0096002F 00F5 add ch, dh
00960031 0240 00 add al, byte ptr [eax]
00960034 0000 add byte ptr [eax], al
00960036 0000 add byte ptr [eax], al
00960038 0000 add byte ptr [eax], al
0096003A 0000 add byte ptr [eax], al
0096003C 0000 add byte ptr [eax], al
0096003E 0000 add byte ptr [eax], al
00960040 0000 add byte ptr [eax], al
00960042 0000 add byte ptr [eax], al
00960044 0000 add byte ptr [eax], al
00960046 0000 add byte ptr [eax], al
00960048 0000 add byte ptr [eax], al
0096004A 0000 add byte ptr [eax], al
0096004C 0000 add byte ptr [eax], al
0096004E 0000 add byte ptr [eax], al
00960050 0000 add byte ptr [eax], al
00960052 0000 add byte ptr [eax], al
00960054 0000 add byte ptr [eax], al
00960056 0000 add byte ptr [eax], al
00960058 0000 add byte ptr [eax], al
0096005A 0000 add byte ptr [eax], al
0096005C 0000 add byte ptr [eax], al
0096005E 0000 add byte ptr [eax], al
00960060 0000 add byte ptr [eax], al
00960062 0000 add byte ptr [eax], al
00960064 0000 add byte ptr [eax], al
00960066 0000 add byte ptr [eax], al
00960068 0000 add byte ptr [eax], al
0096006A 0000 add byte ptr [eax], al
0096006C 0000 add byte ptr [eax], al
0096006E 0000 add byte ptr [eax], al
00960070 0000 add byte ptr [eax], al
00960072 0000 add byte ptr [eax], al
00960074 0000 add byte ptr [eax], al
00960076 0000 add byte ptr [eax], al
00960078 0000 add byte ptr [eax], al
0096007A 4F dec edi
0096007B 4B dec ebx
0096007C 2100 and dword ptr [eax], eax
0096007E ^ EB 88 jmp short 00960008
|
能力值:
(RANK:570 )
|
-
-
3 楼
验证通过~~
|
能力值:
(RANK:570 )
|
-
-
4 楼
78.591812814374327662608365753498
|