大家好!!
麻烦各位点出我过程的错误所在,为什么跟教程的结果都不一样了
入门的一步都走不进去..请帮我看看...谢谢!!
原教程:
http://www.cc.ntut.edu.tw/~hcn/_themes/global/_vti_cnf/global/fsg.exe
问题录像:
http://www.cc.ntut.edu.tw/~hcn/_themes/global/_vti_cnf/global/Question.exe
待脱壳?:
http://www.cc.ntut.edu.tw/~hcn/_themes/global/_vti_cnf/global/crackme.exe
找出 oep 前的步骤(取自原作者文章write by luax 2004.5.26):
按住f8,使其单不营运,等会我们会发现一个地址老是往回跳,可以在下面一个地址设断,
然后按f9跳过这无数次的循环。
004307D6 ^ EB 9D JMP SHORT 1551-cra.00430775 //这里一直往回跳
004307D8 8BD6 MOV EDX,ESI //在这里设断
.
.
004307E7 ^|EB 87 JMP SHORT 1551-cra.00430770 //这里还有一处
004307E9 AD LODS DWORD PTR DS:[ESI] //同样在此设断
.
.
004307F6 ^ 75 FB JNZ SHORT 1551-cra.004307F3 //用同样的方法跳过
004307F8 FE0E DEC BYTE PTR DS:[ESI]
.
.
00430805 - 0F84 5B1EFDFF JE 1551-cra.00402666 //看到了吧,这就是跨"段"的jmp
.
.
到这里程序还在壳中,我们取消断点,直接在入口点00402666下断点,bp 00402666到达指定地点
启用插件ollydump,dump.保存为dump.exe.营运脱壳后的程序,无发正常执行.调试一下再说吧。
用ollydbg载入dump.exe,按住f8,int3中断???
0040126C |. 51 PUSH ECX ; |Arg1
0040126D |. E8 00F00000 CALL dumpd.00410272 ; \dumpd.00410272
00401272 |. 81BD D8FDFFFF>CMP DWORD PTR SS:[EBP-228],0FB45
0040127C |. 7E 02 JLE SHORT dumpd.00401280
0040127E |. CD 13 INT 13 //改成nop就可以了
00401280 |> 8D4D E4 LEA ECX,DWORD PTR SS:[EBP-1C]
00401283 |. 895E 64 MOV DWORD PTR DS:[ESI+64],EBX
保存,再营运,程序不再报错,用peid查看,是用vc++6编写的,脱壳成功
问题来了:
为何原本的教程当中,再开启dump.exe时..应该是可以用单步执行F8来找出INT13,可是我的状况却是卡在00402666的地方不能动
希望大大们能告知哪个步骤错了,我是超级新手,很多地方不懂,请多包含,书我买了,可是找不到衔接的答案...@@
谢谢各位观看!!
[课程]FART 脱壳王!加量不加价!FART作者讲授!