首页
社区
课程
招聘
用Ollydbg手脱ASPack加壳的DLL
发表于: 2004-6-2 11:43 25376

用Ollydbg手脱ASPack加壳的DLL

fly 活跃值
85
2004-6-2 11:43
25376
收藏
免费 11
支持
分享
最新回复 (52)
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
26
试试stripper    ;)
2004-11-13 19:22
0
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
27
stripper 2.11 以下版本均无效。
2004-11-13 21:25
0
雪    币: 671
活跃值: (723)
能力值: ( LV9,RANK:1060 )
在线值:
发帖
回帖
粉丝
28
谢谢,正在学习中。
2004-11-13 22:19
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
29
最初由 illiperson 发布
IDA 4.7 的插件就是用ASPack 加的壳,照此脱文忙了半天没有结果,fly兄可否看看,写一篇脱文?


确定是ASPack ?
给个链接我看看
2004-11-14 14:32
0
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
30
上传一个给你看看:附件:pdb.rar
2004-11-14 16:17
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
31
最初由 illiperson 发布
上传一个给你看看


Try  

附件:UnPacked.rar
2004-11-14 16:52
0
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
32
谢谢,但不是ida.wll 的壳,ida.wll 的壳可以脱去。而 pdb.plw 的壳却不好弄,照同样的方法脱壳,一启动 ida pro 系统就提示不能载入插件 pdb.plw,麻烦再看一下 pdb.plw 这个插件如何?
2004-11-14 17:30
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
33
你把你脱的pdb.plw传上来看一下
2004-11-14 17:36
0
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
34
麻烦看看:附件:dumped_.rar
2004-11-14 18:06
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
35
2004-11-14 18:16
0
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
36
[QUOTE]最初由 fly 发布
try

可以正常使用,非常佩服!
能否告知我脱的错误所在?
2004-11-15 08:47
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
37
重定位表的Size
2004-11-15 08:51
0
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
38
我看了一下,我原来得到的是1594 而你得到的是724 ,这个724是如何得到的?
2004-11-15 08:55
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
39
跟踪
重定位表处理完毕 减一下就行了
2004-11-15 08:55
0
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
40
明白了,谢谢!最好能有一个脱文,让我等菜鸟学习一下就好了。
2004-11-15 09:01
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
41
不客气
方法和上面脱文中写的一样
2004-11-15 09:04
0
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
42
刚跟了下,将原程序中

1000D1DC JE SHORT pdb.1000D257

处的跳转改为不跳,让程序处理一下,到

1000D25D MOV ESI,DWORD PTR SS:[EBP+541]

处得到了正确的结果。

谢谢!!!!!
2004-11-15 09:05
0
雪    币: 61
活跃值: (160)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
43
跟随研究
2004-11-15 14:56
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
44
最初由 fly 发布
判断重定位表的方法见《加密与解密》
你可以对程序中需要重定位的地方下断
........

我买了加密与解密,但是不知道相关的章节,还有IAT的处理是什么时候开始处理有没有特征,有很多关于ARm的破文里只告诉Magic Jmp在哪里,但附近的特征是什么?我希望能举一反三,望回复,谢谢。
2004-11-16 19:40
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
45
建议你先看几遍《加密与解密》
许多问题就可以自然明白了
熟能生巧
2004-11-16 19:51
0
雪    币: 209
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
46
FLY

在重定位处理那里 改变Z的标志跳过处理后

程序几个地方call API都会找不到,而且import也无法找到IAT

那里能否修改Z标志直接跳过这样来处理呢?
2004-12-22 20:31
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
47
不至于的,虽然无法继续运行了,但ImportREC可以修复输入表
其实ASPack加壳的在适当的时机dump就不必用ImportREC了
2004-12-22 20:47
0
雪    币: 21
活跃值: (761)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
48
今天我碰到一个用ASPACK 2.12加壳的DLL文件,我按照FLY大哥的方法做了一遍,发现有几个问题:
找到在003B71F6处!我们在其上的003B71DA处下断,F9运行,中断。
         
008F61C8   .  8785 35050000 xchg    [ebp+535], eax
008F61CE   >  8B95 22040000 mov     edx, [ebp+422]
008F61D4   .  8B85 2D050000 mov     eax, [ebp+52D]
008F61DA   .  2BD0          sub     edx, eax
008F61DC   .  74 79         je      short multOSD.008F6257
008F61DE   .  8BC2          mov     eax, edx
008F61E0   .  C1E8 10       shr     eax, 10
008F61E3   .  33DB          xor     ebx, ebx
008F61E5   .  8BB5 39050000 mov     esi, [ebp+539] //这里我得到的重定位表的RVA是0006A000
008F61EB   .  03B5 22040000 add     esi, [ebp+422]
008F61F1   >  833E 00       cmp     dword ptr [esi], 0
008F61F4   .  74 61         je      short multOSD.008F6257
008F61F6   .  8B4E 04       mov     ecx, [esi+4]
008F61F9   .  83E9 08       sub     ecx, 8
008F61FC   .  D1E9          shr     ecx, 1
008F61FE   .  8B3E          mov     edi, [esi]
008F6200   .  03BD 22040000 add     edi, [ebp+422]
008F6206   .  83C6 08       add     esi, 8
008F6209   >  66:8B1E       mov     bx, [esi]
008F620C   .  C1EB 0C       shr     ebx, 0C
008F620F   .  83FB 01       cmp     ebx, 1                           ;  Switch (cases 1..3)
008F6212   .  74 0C         je      short multOSD.008F6220
008F6214   .  83FB 02       cmp     ebx, 2
008F6217   .  74 16         je      short multOSD.008F622F
008F6219   .  83FB 03       cmp     ebx, 3
008F621C   .  74 20         je      short multOSD.008F623E
008F621E   .  EB 2C         jmp     short multOSD.008F624C
008F6220   >  66:8B1E       mov     bx, [esi]                        ;  Case 1 of switch 008F620F
008F6223   .  81E3 FF0F0000 and     ebx, 0FFF
008F6229   .  66:01041F     add     [edi+ebx], ax
008F622D   .  EB 1D         jmp     short multOSD.008F624C
008F622F   >  66:8B1E       mov     bx, [esi]                        ;  Case 2 of switch 008F620F
008F6232   .  81E3 FF0F0000 and     ebx, 0FFF
008F6238   .  66:01141F     add     [edi+ebx], dx
008F623C   .  EB 0E         jmp     short multOSD.008F624C
008F623E   >  66:8B1E       mov     bx, [esi]                        ;  Case 3 of switch 008F620F
008F6241   .  81E3 FF0F0000 and     ebx, 0FFF
008F6247   .  01141F        add     [edi+ebx], edx
008F624A   .  EB 00         jmp     short multOSD.008F624C
008F624C   >  66:830E FF    or      word ptr [esi], 0FFFF            ;  Default case of switch 008F620F
008F6250   .  83C6 02       add     esi, 2
008F6253   .^ E2 B4         loopd   short multOSD.008F6209
008F6255   .^ EB 9A         jmp     short multOSD.008F61F1
008F6257   >  8B95 22040000 mov     edx, [ebp+422] //这里我得到的ESI=008DFB14                  ;  multOSD.00870000
008F625D   .  8BB5 41050000 mov     esi, [ebp+541]
008F6263   .  0BF6          or      esi, esi
008F6265   .  74 11         je      short multOSD.008F6278

/////当我们中断在003B7257处时,重定位处理完毕。此时ESI=003B63B0,就是重定位表的结束地址啦。
得到重定位表信息:
RVA=00006000,大小=003B63B0-003B6000=000003B0///////

问题一:此时我不知道该怎么算这个大小了!

Ctrl+B 在当前位置下搜索Hex值:61 75,即popad、jnz
这个我找到了:

008F63AF   .  61            popad
008F63B0   .  75 08         jnz     short multOSD.008F63BA
008F63B2   .  B8 01000000   mov     eax, 1
008F63B7   .  C2 0C00       retn    0C
008F63BA   >  68 00000000   push    0
008F63BF   .  C3            retn

执行到retn返回时,OEP是这样的
008CF9E4   .  55            push    ebp
008CF9E5   ?  8BEC          mov     ebp, esp
008CF9E7   ?  83C4 C4       add     esp, -3C
008CF9EA   .  B8 0CF88C00   mov     eax, multOSD.008CF80C
008CF9EF   ?  E8 B46DFAFF   call    multOSD.008767A8
008CF9F4   .  E8 8748FAFF   call    multOSD.00874280
008CF9F9   ?  8D40 00       lea     eax, [eax]
008CF9FC   .  0000          add     [eax], al
008CF9FE   .  0000          add     [eax], al
008CFA00   .  0000          add     [eax], al
008CFA02   .  0000          add     [eax], al
008CFA04   .  0000          add     [eax], al
008CFA06   .  0000          add     [eax], al
008CFA08   .  0000          add     [eax], al
008CFA0A   .  0000          add     [eax], al
008CFA0C   .  0000          add     [eax], al
008CFA0E   .  0000          add     [eax], al
008CFA10   .  0000          add     [eax], al

问题二:这个地方之前我是不是有一些地方搞错了.

以上两个问题,请FLY哥能帮我解决一下.非常感谢!
2006-9-10 22:54
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
49
Alt+E,查看此模块的Base
然后用008DFB14-基址-0006A000得到Size

另外,你可以用ASPack All Versions UnPacKer.By.PE_Kill脱壳机脱壳
2006-9-11 00:10
0
雪    币: 21
活跃值: (761)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
50
感谢FLY大哥!
我回去后再试试。

还有我用了你所说的脱壳工具,但是在:找到OEP。。。。就卡住了。这是什么原因呢?
2006-9-11 08:31
0
游客
登录 | 注册 方可回帖
返回
//