首页
社区
课程
招聘
[求助]手动脱壳
发表于: 2005-8-8 13:43 4375

[求助]手动脱壳

2005-8-8 13:43
4375
侦壳脱壳:用PEiD查壳,ASPack 2.12 -> Alexey Solodovnikov加壳。

使用法宝:我们既然知道了是ASPack所加壳保护的,所以拿出Ollydbg结合文章题目手动脱之~~

――――――――――――――――――――
Ollydbg载入主程序:

005FA001 >  60                    pushad                               ; 载入程序后停在这里,F8一次
005FA002    E8 03000000           call MakeSign.005FA00A               ; 到这里,这时查看寄存器窗口
005FA007  - E9 EB045D45           jmp 45BCA4F7
005FA00C    55                    push ebp
005FA00D    C3                    retn

\\\\\\\\\\\\\\\寄存器\\\\\\\\\\\\\\\\

EAX 00000000
ECX 0012FFB0
EDX 7FFE0304
EBX 7FFDF000
ESP 0012FFA4       ; esp=0012ffa4
EBP 0012FFF0
ESI 77F57D70 ntdll.77F57D70
EDI 77F944A8 ntdll.77F944A8
EIP 005FA002 MakeSign.005FA002

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

根据ESP定律规则,现在在命令栏中下 hr 0012ffa4 命令,回车,F9运行:

005FA3B0   /75 08                 jnz short MakeSign.005FA3BA          ; 这里断下,F7继续
005FA3B2   |B8 01000000           mov eax,1
005FA3B7   |C2 0C00               retn 0C
005FA3BA   \68 10CA5800           push MakeSign.0058CA10               ; 这里0058CA10所指的就是OEP,F7继续
005FA3BF    C3                    retn                                 ; 返回到程序原始入口,飞向光明之颠~~ F7继续

返回到这里:

0058CA10    55                    push ebp                             ; 在这儿用LordPE纠正ImageSize后完全DUMP这个进程
0058CA11    8BEC                  mov ebp,esp
0058CA13    83C4 F0               add esp,-10
0058CA16    B8 E0C55800           mov eax,MakeSign.0058C5E0
0058CA1B    E8 64A2E7FF           call MakeSign.00406C84
0058CA20    A1 A48B5900           mov eax,dword ptr ds:[598BA4]
0058CA25    8B00                  mov eax,dword ptr ds:[eax]
0058CA27    E8 4427EEFF           call MakeSign.0046F170
0058CA2C    A1 A48B5900           mov eax,dword ptr ds:[598BA4]
0058CA31    8B00                  mov eax,dword ptr ds:[eax]
0058CA33    BA 70CA5800           mov edx,MakeSign.0058CA70
0058CA38    E8 3F23EEFF           call MakeSign.0046ED7C
0058CA3D    8B0D 90885900         mov ecx,dword ptr ds:[598890]          ; MakeSign.005A5BE8
0058CA43    A1 A48B5900           mov eax,dword ptr ds:[598BA4]
0058CA48    8B00                  mov eax,dword ptr ds:[eax]

脱壳修复:

运行ImportREC 1.6,选择这个进程,把OEP改为 0018CA10 ,点IT AutoSearch,指针全部有效。FixDump!

再用LordPE重建优化一下,程序大小变为 1.83 MB,Borland Delphi 6.0 - 7.0编译。

我始终没搞懂这意思(在这儿用LordPE纠正ImageSize后完全DUMP这个进程
)....请老大指教一下.我对工具的使用才刚开始..

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 288
活跃值: (415)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
2
一个小小提醒:
1:用hr esp比hr 0012ffa4更方便
2:不是所有的壳都加密了IAT的,
如Aspack,UPX,PEC都不用重建IAT的
DUMP程程序我一般是用OllyDump的
2005-8-8 14:05
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
3
一般壳用LordPE Dump时不需要纠正ImageSize
2005-8-8 14:47
0
雪    币: 177
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我脱的是DLL文件...壳是ASPACK 2.12.OD得到OEP后...
0096E001 m>  60              pushad

F8

0096E002     E8 03000000     call mhxm.0096E00A
0096E007   - E9 EB045D45     jmp 45F3E4F7
0096E00C     55              push ebp
0096E00D     C3              retn

下命令 HR ESP
F9

0096E3B0    /75 08           jnz short mhxm.0096E3BA
0096E3B2    |B8 01000000     mov eax,1
0096E3B7    |C2 0C00         retn 0C
0096E3BA    \68 D08E9200     push mhxm.00928ED0     OEP
0096E3BF     C3              retn

F7
F7

00928ED0       55            db 55                                    ;  CHAR 'U'
00928ED1       8B            db 8B
00928ED2       EC            db EC
00928ED3       83            db 83
00928ED4       C4            db C4
00928ED5       C4            db C4
00928ED6       B8            db B8
00928ED7       A88A9200      dd mhxm.00928AA8

用OLLYDUMP调试脱壳说
无法读取被调试的内存
2005-8-8 15:28
0
雪    币: 177
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
源文件:MHXM.DLL
壳///ASPACK 2.12

0096E001 m> 60       pushad ; 载入程序后停在这里,F8一次
0096E002   E8 03000000   call mhxm.0096E00A ; 到这里,这时查看寄存器窗口
0096E007  - E9 EB045D45   
jmp 45F3E4F7<br>0096E00C   55       push ebp
0096E00D   C3       retn
///////////////寄存器////////////////////
EAX 0006F930
ECX 0006F8B0
EDX 7C92EB94 ntdll.KiFastSystemCallRet
EBX 0096E001 offset mhxm.<ModuleEntryPoint>
ESP 0006F888     ESP
EBP 0006F8C4
ESI 0006F8B8
EDI 00000001
EIP 0096E002 mhxm.0096E002
/////////////////////////////////////////

根据ESP定律规则,现在在命令栏中下 HR ESP 命令,回车,F9运行:
0096E3B0  /75 08      jnz short mhxm.0096E3BA      ;这里断下,F7继续
0096E3B2  |B8 01000000   mov eax,1
0096E3B7  |C2 0C00     retn 0C
0096E3BA  \68 D08E9200   push mhxm.00928ED0   ; 这里0058CA10所指的就是OEP,F7继续
0096E3BF   C3       retn  ; 返回到程序原始入口,飞向光明之颠~~ F7继续

返回到这里:

00928ED0    55      db 55                  ; CHAR 'U'
00928ED1    8B      db 8B
00928ED2    EC      db EC
00928ED3    83      db 83
00928ED4    C4      db C4
00928ED5    C4      db C4
00928ED6    B8      db B8
00928ED7    A88A9200   dd mhxm.00928AA8

用OLLYDUMP调试脱壳提示无法读取被调试的内存,请指教
2005-8-8 15:47
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
6
LordPE dump
搜索脱壳教程
2005-8-8 19:17
0
雪    币: 13606
活跃值: (4398)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
7
最初由 netrace 发布
源文件:MHXM.DLL
壳///ASPACK 2.12

0096E001 m> 60 pushad ; 载入程序后停在这里,F8一次
0096E002 E8 03000000 call mhxm.0096E00A ; 到这里,这时查看寄存器窗口
........

OLLYDUMP不支持DLL文件转存的说.用LORDPE或者其他PE工具DUMP.也可以使用PEDUMPER插件来DUMP
2005-8-8 19:34
0
雪    币: 111
活跃值: (55)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
因为某些壳为了anti dump,在进程信息peb中把进程size值改掉了,比如说改为1000. 这样有些比较傻的dump软件dump出来的文件大小就只有1000了.

所以要修正ImageSize后再dump.
2005-8-9 16:44
0
游客
登录 | 注册 方可回帖
返回
//