【文章标题】: ASPack 2.12 外壳流程分析
【作者声明】: 初学脱壳,没什么好东西。个人的一些经验,希望与大家分享,错误之处,欢迎指正!
【测试软件】:Notepad + ASPack
--------------------------------------------------------------------------------
【详细过程】
从脱壳的角度来说ASPack 1.08.03, 2.11 和 2.12 这3个版本都非常相似。
在流程分析中,我只对2.12作了详细的分析,其他两个也就没必要了。
————————————————————脱壳流程(ASPack 2.12)————————————————————
01013000 90 nop
01013001 > 60 pushad
01013002 E8 03000000 call 0101300A ; 进
01013007 - E9 EB045D45 jmp 465E34F7
0101300C 55 push ebp
0101300D C3 retn
0101300E E8 01000000 call 01013014 ; 进
01013013 90 nop ; 花指令
01013014 5D pop ebp ; Notepad_.01013013
01013015 BB EDFFFFFF mov ebx, -13
0101301A 03DD add ebx, ebp
0101301C 81EB 00300100 sub ebx, 13000
01013022 83BD 22040000 0>cmp dword ptr [ebp+422], 0
01013029 899D 22040000 mov [ebp+422], ebx
0101302F 0F85 65030000 jnz 0101339A ; 长跳转跟随
01013035 8D85 2E040000 lea eax, [ebp+42E]
0101303B 50 push eax
0101303C FF95 4D0F0000 call [ebp+F4D]
01013042 8985 26040000 mov [ebp+426], eax
01013048 8BF8 mov edi, eax
0101304A 8D5D 5E lea ebx, [ebp+5E]
跟随后来到:
0101339A B8 9D730000 mov eax, 739D ; 鼠标点击这一行,F4
0101339F 50 push eax
010133A0 0385 22040000 add eax, [ebp+422]
010133A6 59 pop ecx
010133A7 0BC9 or ecx, ecx
010133A9 8985 A8030000 mov [ebp+3A8], eax ;执行这一行之后,OEP值出现
010133AF 61 popad
010133B0 75 08 &nb