首页
社区
课程
招聘
Dxpack V0.86主程序脱壳手记
发表于: 2005-1-10 11:47 5594

Dxpack V0.86主程序脱壳手记

2005-1-10 11:47
5594
Dxpack V0.86主程序脱壳手记
=============================================

【目标软件】Dxpack V0.86主程序

【脱文作者】KuNgBiM[D.4s][CZG][DFCG]

【软件简介】国产的一个壳

【加壳方式】DxPack 1.0x -〉dxpack (我的PEiD查出来的结果)

【调试环境】:WinXP、Ollydbg、PEiD、LordPE、ImportREC 1.6F

1.前言

    为了练习脱壳,前一段时间从网上下了一个Dxpack V0.86,然后看了看加壳程序的主程序,当然本人初学破解,参考了很多大虾们的文章,然后自己模仿脱壳,可是当我使用401000段“第2内存断点大法”想到达那个盼望已久的OEP的时候,意外出现了:F9后,程序中断,F8/F7/F4全部都是来回打转!是我做法错误?还是???然后我又实验了N遍,依然如此,为什么?随后又在看雪论坛不停的搜索着,想找一些有关的知识,终于找到了,fly兄的,但是。。我任笨,还是使用我的偷懒方法吧。。。。呵呵。。。这点还要向fly兄请赐教,我是“黑防迷”经常看你的文章,嘿嘿~~~~废话就不多说了。。GO!!!

=============================================
2.脱壳过程(分以下几步进行)

(1)查找OEP(偷懒办法!)

用PEiD载入目标程序Dxpack.exe,再使用PEiD的插件“Generic OEP Finder”寻找OEP!

结果:OEP=00406B10

=============================================
(2)dump文件

运行OD,设置Ollydbg忽略所有的异常选项,用IsDebug 1.4插件去掉Ollydbg的调试器标志。

知道了OEP就好办了,在命令栏下和he 00406B10,F9运行,断下!

00406B10     55             DB 55                                    ;  CHAR 'U'
00406B11     8B             DB 8B
00406B12     EC             DB EC
00406B13     6A             DB 6A                                    ;  CHAR 'j'
00406B14     FF             DB FF
00406B15     68             DB 68                                    ;  CHAR 'h'
00406B16     E8             DB E8
00406B17     F0             DB F0
00406B18     41             DB 41                                    ;  CHAR 'A'
00406B19     00             DB 00
00406B1A     68             DB 68                                    ;  CHAR 'h'
00406B1B     E0             DB E0
00406B1C     B0             DB B0
.........

2种Dump方法:

1.用OD的插件“OllyDump”dump出来!我另存为unpacked.exe  (大小为:209KB)
2.用LordPE找到Dxpack.exe的进程,完整Dump!我另存为dumped.exe (大小为:204KB)

OD请勿关闭以下要用!
=============================================

(3)修复输入表

因为Dxpack的加壳,使得ImportREC的“IAT AutoSearch(自动搜索IAT)”失效,所以必须重新确定IAT的RAV以及大小。

记得我们最初找到的那个OEP值吗?用ESP定律!

真正OEP=00406B10-00400000=00006B10

在ImportREC同样找到Dxpack.exe的进程,然后再“IAT需要的信息”内填以下内容:

OEP=00006B10

“IAT AutoSearch(自动搜索IAT)”得到以下信息:

RAV=0001D000  SIZE=00000494

=============================================
填写完后就重新“获取输入表”,然后“抓取修复文件”。。。。Fix Dump!!完成。

试运行2个被我们Dump+修复的文件:
unpacked_.exe(大小为:2162KB)
dumped_.exe(大小为:208KB)

OK!成功!!!程序由 Microsoft Visual C++ 6.0 编译!

=============================================

文章写得不好,请大虾们不要见笑!

KuNgBiM[D.4s][CZG][DFCG]     2005.01.10

下载:
附件:UnDxpack086.rar

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 392
活跃值: (909)
能力值: ( LV9,RANK:690 )
在线值:
发帖
回帖
粉丝
2
鼓励一下~
另外内存断点法的使用必须选择合适的时机,如果在loader解压代码段之前使用,那么就会断在解压代码上来回打转。
2005-1-10 11:59
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
3
Ctrl+S:
popad
jmp eax
2005-1-10 12:11
0
雪    币: 817
活跃值: (1927)
能力值: ( LV12,RANK:2670 )
在线值:
发帖
回帖
粉丝
4
最初由 fly 发布
Ctrl+S:
popad
jmp eax


谢谢fly兄!
2005-1-10 13:03
0
雪    币: 159
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
呵呵,用peid的插件,可以秒脱了!:D
2005-1-10 13:53
0
游客
登录 | 注册 方可回帖
返回
//