且行且远
分类: 逆向手札 由 ssfighter 于 2006年7月15日 发表

这是shoooo大侠写的一个压缩壳,我是一个小菜鸟,简单脱了一下这个壳,只是研究,没有其他目的,希望大侠看了不要怪我。

脱壳目标:堀北压缩0.28 beta主程序

用OD载入之后来到这里:
00401000 >/$  68 71EA4A00   push    004AEA71
00401005  |.  E8 01000000   call    0040100B
0040100A  \.  C3            retn
0040100B   $  C3            retn

命令行下断点:bp VirtualFree,中断十五次之后,观察堆栈:
0012FF94   00432A70  /CALL 到 VirtualFree
0012FF98   00380000  |Address = 00380000
0012FF9C   00000000  |Size = 0
0012FFA0   00008000  \FreeType = MEM_RELEASE
0012FFA4   7C930738  ntdll.7C930738

这时清除断点,按F9返回,来到这里:
00432A70    61              popad
00432A71    B8 E5A70000     mov     eax, 0A7E5
00432A76    BA 00004000     mov     edx, 00400000
00432A7B    03C2            add     eax, edx
00432A7D    FFE0            jmp     eax                              ; 跳向OEP

0040A7E5    55              push    ebp                              ; Dump!
0040A7E6    8BEC            mov     ebp, esp
0040A7E8    6A FF           push    -1
0040A7EA    68 C0F54000     push    0040F5C0
0040A7EF    68 00BC4000     push    0040BC00
0040A7F4    64:A1 00000000  mov     eax, fs:[0]
0040A7FA    50              push    eax
0040A7FB    64:8925 0000000>mov     fs:[0], esp
0040A802    83EC 58         sub     esp, 58
0040A805    53              push    ebx
0040A806    56              push    esi
0040A807    57              push    edi
0040A808    8965 E8         mov     [ebp-18], esp
0040A80B    FF15 28F04000   call    [40F028]                         ; kernel32.GetVersion

Dump之后直接用ImportRec修复,添入OEP:A7E5,自动查找IAT后修复即可。
比较简单的一个压缩壳,嘻嘻,最近比较忙,一直没时间,拿来练练手。



发表评论

昵称:  (必须)
邮件:  (必须)
网址: 
评论: