最后一次异常法脱:ASProtect 1.2 1.2c- Alexey Solodovnikov
最后一次异常法脱:ASProtect 1.21.2c- Alexey Solodovnikov前一段时间在一家餐厅打工,一直也没有学习破解,现在要写毕业论文了,又要碰电脑了,忍不住玩玩破解,玩壳子不行,找个软柿子捏捏,丑文奉上,偶的一点心得愿与大家共同分享*_*
1.查壳:ASProtect 1.2 / 1.2c-> Alexey Solodovnikov;
2.将目标程序载入OD,忽略所有异常,Shift+F9 N次,程序运行起来的时候记录下次数;
3.重新加载程序,Shift+F9 N-1次,来到下面:
(本程序在我这里Shift+F9 21次后运行起来,那么我们重新加载程序Shift+F9 20次):
01407986 FF07 INC DWORD PTR DS: ; //Shift+F9 20次以后停在这里!
01407988^ EB E8 JMP SHORT 01407972
0140798A E8 0B000000 CALL 0140799A
0140798F 1BC0 SBB EAX,EAX
01407991 F8 CLC
01407992 E9 0A000000 JMP 014079A1
01407997 F8 CLC
01407998 23C6 AND EAX,ESI
0140799A 98 CWDE
0140799B 13C0 ADC EAX,EAX
0140799D C3 RETN ; //在这里下断点,Shift+F9运行到这里,然后取消断点,打开内存镜像, 在code段下断点,Shift+F9即可直接到达程序OEP!
0140799E C1E8 D3 SHR EAX,0D3 ; Shift constant out of range 1..31
----------------------------------------------------------------------------------------------
00441AF0 55 PUSH EBP ; //OEP is here!
00441AF1 8BEC MOV EBP,ESP
00441AF3 6A FF PUSH -1
00441AF5 68 509E4400 PUSH FullScr3.00449E50
00441AFA 68 8E1C4400 PUSH FullScr3.00441C8E ; JMP to MSVCRT._except_handler3
00441AFF 64:A1 00000000 MOV EAX,DWORD PTR FS:
00441B05 50 PUSH EAX ; FullScr3.00441AF0
00441B06 64:8925 00000000 MOV DWORD PTR FS:,ESP
00441B0D 83EC 68 SUB ESP,68
00441B10 53 PUSH EBX
00441B11 56 PUSH ESI
00441B12 57 PUSH EDI ; ntdll.7C930208
----------------------------------------------------------------------------------------------
4.脱壳修复
①OD自带插件脱壳修复→能运行;
②LordPE转存修复→不能运行。
5.查壳:Microsoft Visual C++ 6.0
我的小问题:
1.为什么用这样的方法就可以到达程序OEP,这里只是学习一下脱壳的方法,原理之类的东西不懂,希望有经验的前辈抽时间讲解一下;
2.本程序用LordPE转存的话再修复,修复后的程序不能运行,用OD自带的插件脱壳修复能运行,不知道是怎么回事,望前辈指点;
By:yAtEs 2010.4.18
教程就到这里,谢谢大家观看! 附件中是脱壳后的? 学习了很不错的
页:
[1]