nettao 发表于 2007-6-1 15:44:07

【已解决】关于一个DLL文件脱壳问题的求助

首先自我说明一下,接触软件反汇编很长时间了,由于不是专业的计算机水平,还一直徘徊不前,平时自己在下面研究,看一些DX的教程。由于我语言编排水平欠佳,不知道怎么提问,所以也没有信心在论坛上发贴。最近在学习脱壳的时候,偶然遇到一个Upack加壳的DLL文件,由于本人水平有限,按照教程和一些常规的方法,脱不下来,Upack加壳的EXE,基本上还能搞明白,但DLL这方面,就没有什么经验了,所以鼓足勇气,想请高水平的兄弟帮忙看一看,到底是哪出错了?首先在此谢谢各位了。

论坛不允许上传图片,那我就简单描述一下吧。
用OD载入,出现了CPU地址异常,然后忽略所有异常,载入,就直接到软件内部(不知道是不是跑起来了?)
ESP定律搞不定,然后尝试用脚本来跑,但出现跑过现象。
然后用LOAD直接脱,出现了错误。

以前脱过UPACK加壳的EXE文件,没有出现过这个现象,所以一时间摸不到头脑了,还请论坛的兄弟帮忙看看,附件在下面,谢谢了!

[ 本帖最后由 nettao 于 2007-6-5 16:56 编辑 ]

nettao 发表于 2007-6-2 18:35:04

希望有哪位大大帮我指点一二,谢谢了!

glts 发表于 2007-6-2 23:28:46

你试下!脱DLL和EXE是有区别的,建议先从基础的学起!

[ 本帖最后由 glts 于 2007-6-3 12:13 编辑 ]

nettao 发表于 2007-6-2 23:37:46

真的非常非常感谢版主,版主可能误会了,我想知道的是过程,研究了一个晚上,没有头绪,版主能否指点一二,真的非常感谢。

版主说的先从基础学起,是不是这个壳很有难度?

glts 发表于 2007-6-3 12:15:04

原帖由 nettao 于 2007-6-2 23:37 发表 https://www.chinapyg.com/images/common/back.gif
真的非常非常感谢版主,版主可能误会了,我想知道的是过程,研究了一个晚上,没有头绪,版主能否指点一二,真的非常感谢。

版主说的先从基础学起,是不是这个壳很有难度?


EXE和DLL有些区别就是DLL脱下来后需要做重定位。所以你得对此有一定的了解!如果你是急用则完事,如果你是想学习,那么你应该从基础开始更进一步的去了解!论坛里资源众多,可以搜一下,也可下载07版教程。

nettao 发表于 2007-6-3 13:37:34

爱上PYG!/:09 /:09 /:09 /:09

版主没有丝毫的架子,平易近人,乃众人之所爱也!

glts 发表于 2007-6-3 15:42:59

我来PYG时比你还不如,因为这里就是我们初学者的家。我们应该爱她。

nettao 发表于 2007-6-3 18:34:51

感谢版主帮忙,相对于结果而言,我更喜欢的是过程,因为过程交流真的是“授人以渔”。

到现在,自己还是没有完全的搞懂,不管怎样,还是谢谢版主了,如果能有一篇,哪怕是简短跟踪思路,我真的是非常感激了!

glts 发表于 2007-6-3 22:24:37

一、OD载入
10001000   .E8 05000000       call bak007.1000100A
10001005   .E9 0B000000       jmp bak007.10001015
1000100A   $B9 550D0610       mov ecx,bak007.10060D55
1000100F   .- FF25 F8A00110   jmp dword ptr ds:       ;MSVCP60.std::ios_base::Init::Init
10001015   >68 21100010       push bak007.10001021
1000101A   .E8 BF7D0100       call bak007.10018DDE
1000101F   .59                pop ecx
10001020   .C3                retn

二、F9运行,关掉DLL加载器的小框框来到下面
1028A1FD > $60                pushad
1028A1FE   .E8 09000000       call bak007.1028A20C
1028A203   .0000            add byte ptr ds:,al
1028A205   .0000            add byte ptr ds:,al
1028A207   >E9 06020000       jmp bak007.1028A412
1028A20C   $33C9            xor ecx,ecx
1028A20E   .5E                pop esi
1028A20F   .870E            xchg dword ptr ds:,ecx
1028A211   .^ E3 F4             jecxz short bak007.1028A207

三、F8单步 HR 0006FDF0(ESP定律)

1028A413   .- E9 39E1FEFF       jmp bak007.10278551               ;飞向大陆

10278551   >^/E9 310BDAFF       jmp bak007.10019087               ;再F8

四、到达OEP
10019087/> /55                push ebp
10019088|. |8BEC            mov ebp,esp
1001908A|. |53                push ebx
1001908B|. |8B5D 08         mov ebx,dword ptr ss:
1001908E|. |56                push esi
1001908F|. |8B75 0C         mov esi,dword ptr ss:
10019092|. |57                push edi
10019093|. |8B7D 10         mov edi,dword ptr ss:
10019096|. |85F6            test esi,esi
10019098|. |75 09             jnz short bak007.100190A3
1001909A|. |833D A81C2710 00cmp dword ptr ds:,0
100190A1|. |EB 26             jmp short bak007.100190C9
100190A3|> |83FE 01         cmp esi,1
100190A6|. |74 05             je short bak007.100190AD
100190A8|. |83FE 02         cmp esi,2
100190AB|. |75 22             jnz short bak007.100190CF
100190AD|> |A1 B01C2710       mov eax,dword ptr ds:
100190B2|. |85C0            test eax,eax
100190B4|. |74 09             je short bak007.100190BF

五、DUMP&修复

六、重定位

famsky 发表于 2008-4-25 10:29:17

先下了,好好研究一下。
多谢 glts 。。。。
页: [1] 2
查看完整版本: 【已解决】关于一个DLL文件脱壳问题的求助