樊盟 发表于 2010-4-18 08:50:41

最后一次异常法脱: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

教程就到这里,谢谢大家观看!

jfaumt 发表于 2010-4-22 19:16:17

附件中是脱壳后的?

kmjyq 发表于 2012-2-14 11:32:18

学习了很不错的
页: [1]
查看完整版本: 最后一次异常法脱:ASProtect 1.2 1.2c- Alexey Solodovnikov