首页
社区
课程
招聘
eXPressor 1.2 主程序的脱壳+PEDIY
发表于: 2005-7-26 20:45 3832

eXPressor 1.2 主程序的脱壳+PEDIY

2005-7-26 20:45
3832
其实这个壳是很简单的啦~
只是为了练练手,顺便给大家参考一下的~

【破文标题】eXPressor 1.2 主程序的脱壳+PEDIY
【破文作者】Cater
【作者主页】fb8K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3k6D9P5g2)9J5k6h3y4U0k6$3k6G2M7Y4g2E0i4K6u0W2K9h3&6X3L8H3`.`.
【作者邮箱】24882688@qq.com
【所属组织】目前是 一蓑烟雨 脱壳班的学员
【软件名称】eXPressor 1.2 主程序
【破解工具】OD,LoadPE,W32dsm,WinHex,PeID9.3
【保护方式】Nag
【软件限制】只知道这个是 DEmo 版的加壳程序
【破解难度】简单
-----------------------------------------------------------------
【软件介绍】
    由于是 E 文 所以我不想多说~
-----------------------------------------------------------------
【破解声明】
    申请 POJE论坛  成员文章之一

BTW: 我今天去填志愿的,心情不好~
-----------------------------------------------------------------
【破解分析】
    一。 脱壳

PEID 检测主程序是   eXPressor 1.2 -> CGSoftLabs *  
主程序运行时会有 NAg 提示~

OD 加载程序,来到

00463645 e>/$  55            push ebp         //这里
00463646   |.  8BEC          mov ebp,esp
00463648   |.  81EC D4010000 sub esp,1D4
0046364E   |.  53            push ebx
0046364F   |.  56            push esi
00463650   |.  57            push edi
00463651   |.  EB 0C         jmp short eXPresso.0046365F           //F8单步跟踪来到这,跳
00463653   |   45            db 45                                             ;  CHAR 'E'
00463654   |   78            db 78                                             ;  CHAR 'x'
00463655   |   50            db 50                                             ;  CHAR 'P'
00463656   |   72            db 72                                             ;  CHAR 'r'
00463657   |   2D            db 2D                                             ;  CHAR '-'
00463658   |   76            db 76                                             ;  CHAR 'v'
00463659   |   2E            db 2E                                             ;  CHAR '.'
0046365A   |   31            db 31                                             ;  CHAR '1'
0046365B   |   2E            db 2E                                             ;  CHAR '.'
0046365C   |   32            db 32                                             ;  CHAR '2'
0046365D   |   2E            db 2E                                             ;  CHAR '.'
0046365E   |   2E            db 2E                                             ;  CHAR '.'
0046365F   |>  B8 45364600   mov eax,eXPresso.<ModuleEntryPoint>   // 来到这里啦
00463664   |.  2B05 84304600 sub eax,dword ptr ds:[463084]
0046366A   |.  A3 58454600   mov dword ptr ds:[464558],eax
0046366F   |.  833D 5C454600>cmp dword ptr ds:[46455C],0
00463676   |. /74 16         je short eXPresso.0046368E           // 单步跟踪来到这,OD显示跳了,距离很短
00463678   |. |A1 58454600   mov eax,dword ptr ds:[464558]
0046367D   |. |0305 80304600 add eax,dword ptr ds:[463080]
00463683   |. |8985 54FEFFFF mov dword ptr ss:[ebp-1AC],eax
00463689   |. |E9 21070000   jmp eXPresso.00463DAF                // 很奇怪,JE 跳过了他,而且这个 JMP 是个远距离跳转,有手动脱壳经验的人应该知道,有鬼的 我们 跟到  463dAF 去看下

00463D99   |> \E8 7F000000   call eXPresso.00463E1D
00463D9E   |.  A1 58454600   mov eax,dword ptr ds:[464558]
00463DA3   |.  0305 80304600 add eax,dword ptr ds:[463080]
00463DA9   |.  8985 54FEFFFF mov dword ptr ss:[ebp-1AC],eax
00463DAF   |>  8B85 54FEFFFF mov eax,dword ptr ss:[ebp-1AC]      // JMP 到这里
00463DB5   |.  5F            pop edi
00463DB6   |.  5E            pop esi
00463DB7   |.  5B            pop ebx
00463DB8   |.  81C4 D4010000 add esp,1D4
00463DBE   |.  5D            pop ebp
00463DBF   |.  FFE0          jmp eax                             //不用多说了 JMP EAX 一看就敏感,F4 过来~
啊? 程序运行啦? 点下弹出的对话框 确定,中断过来了。汗~还以为跟飞了,原来是运行的是 外壳程序!  F8来到

0041F515     55              push ebp                            // OEP 到了,OD 插件以默认方式 DUMP!保存为 Unpack.exe

0041F516     8BEC            mov ebp,esp
0041F518     6A FF           push -1
0041F51A     68 80F34300     push eXPresso.0043F380
0041F51F     68 503D4200     push eXPresso.00423D50
0041F524     64:A1 00000000  mov eax,dword ptr fs:[0]
0041F52A     50              push eax
0041F52B     64:8925 0000000>mov dword ptr fs:[0],esp

KO~ 到这里 eXPressor 1.2.0.1主程序已经脱壳了~
PEID 显示 Microsoft Visual C++ 6.0,运行正常~原先的 NAG 也没有了,也证明那个  NAG 是在外壳里面的~

二。 资源修复
    使用 dREAMtHEATER 老大的 DT_FixRes,修复下 Unpack.exe  发现区段由原先的 4个变成了五个~
本来到这里文章应该完了`可是我用脱壳后的程序加壳98记事本,还是有那个烦人的 外壳 NAG,如果你修改 有Nag 的加壳记事本那当然也可以,不过每次搞,好累的~

修改他的加壳主程序才是解决办法~

三。eXPressor 1.2.0.1脱壳主程序外壳代码的爆破~

ResHacker  保存 DAT 资源,以 1234 保存~
发现程序目录多了三个文件 Data_2.bin Data_1.bin 1234.rc

W32Dsm 反汇编 data_2.bin (由于本人每个 Bin 文件测试过了,知道外壳 Nag 在 Data_2.bin 里面,测试方法和下面说的一样),点串式数据参考,找到熟悉的 那句

This program was packed with a demo Version of eXPressor

由于不能复制代码,所以我就说的简单点~

来到
1000016EA
上面有个提示显示是  100016c5 跳转到这里的~

我们发先 100016c5  和 100016d4 组成了一个循环指令,所以我门不能用通常做的方法把 je 100016d6 Nop 掉~
我们就直接跳过  那个 NEG(MessageBoxA) 运行吧~

修改 je 100016d6 到 100016f7

用 Winhex 十六进制搜索
740F8B8538FEFFFF48898538FEFFFFEBE38B8538
替换成
74308B8538FEFFFF48898538FEFFFFEBE38B8538
保存!

四。PEDIY

替换 主程序 资源 DAT 里面的 136 文件,用 Data_2.bin 去替换
资源类型:DAT
资源名称:136
资源语言:1033

跟替换前的 设置保持一直~

另存为

Cracked.exe

运行一下,正常,加壳其他程序没有 Nag~ O~ 成功 DIY~

当然你也可以保留 Neg~把 Neg 换成你自己的信息~

PEDIY 到此结束~

五.PE重建,优化原来程序!

LoadPE 清楚垃圾区段,第三区段,重建 PE
大小变成 86%~
运行正常~

注意:有些平台脱的壳用LoadPE 修复,不可以在别人电脑运行,那可以省了这步~

我打包上传的文件里面那个 Cracked.exe 就是为了这一点省去了这一步的操作~

KO~

-----------------------------------------------------------------
【版权信息】
    Cater
Poje 论坛
d90K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4m8G2K9X3g2Q4x3X3g2C8L8h3W2H3i4K6u0W2L8X3g2@1i4K6y4m8z5o6p5`.
                                        本文章写于2005-7-26 20:35:36

附件:expressor 1.2.rar

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

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回