能力值:
( LV9,RANK:3410 )
|
-
-
26 楼
试试stripper ;)
|
能力值:
( LV9,RANK:3410 )
|
-
-
29 楼
最初由 illiperson 发布 IDA 4.7 的插件就是用ASPack 加的壳,照此脱文忙了半天没有结果,fly兄可否看看,写一篇脱文? 确定是ASPack ?
给个链接我看看
|
能力值:
( LV2,RANK:10 )
|
-
-
32 楼
谢谢,但不是ida.wll 的壳,ida.wll 的壳可以脱去。而 pdb.plw 的壳却不好弄,照同样的方法脱壳,一启动 ida pro 系统就提示不能载入插件 pdb.plw,麻烦再看一下 pdb.plw 这个插件如何?
|
能力值:
( LV9,RANK:3410 )
|
-
-
33 楼
你把你脱的pdb.plw传上来看一下
|
能力值:
( LV2,RANK:10 )
|
-
-
36 楼
[QUOTE]最初由 fly 发布
try
可以正常使用,非常佩服!
能否告知我脱的错误所在?
|
能力值:
( LV2,RANK:10 )
|
-
-
38 楼
我看了一下,我原来得到的是1594 而你得到的是724 ,这个724是如何得到的?
|
能力值:
( LV9,RANK:3410 )
|
-
-
39 楼
跟踪
重定位表处理完毕 减一下就行了
|
能力值:
( LV2,RANK:10 )
|
-
-
40 楼
明白了,谢谢!最好能有一个脱文,让我等菜鸟学习一下就好了。
|
能力值:
( LV9,RANK:3410 )
|
-
-
41 楼
不客气
方法和上面脱文中写的一样
|
能力值:
( LV2,RANK:10 )
|
-
-
42 楼
刚跟了下,将原程序中
1000D1DC JE SHORT pdb.1000D257
处的跳转改为不跳,让程序处理一下,到
1000D25D MOV ESI,DWORD PTR SS:[EBP+541]
处得到了正确的结果。
谢谢!!!!!
|
能力值:
( LV2,RANK:10 )
|
-
-
44 楼
最初由 fly 发布 判断重定位表的方法见《加密与解密》 你可以对程序中需要重定位的地方下断 ........
我买了加密与解密,但是不知道相关的章节,还有IAT的处理是什么时候开始处理有没有特征,有很多关于ARm的破文里只告诉Magic Jmp在哪里,但附近的特征是什么?我希望能举一反三,望回复,谢谢。
|
能力值:
( LV9,RANK:3410 )
|
-
-
45 楼
建议你先看几遍《加密与解密》
许多问题就可以自然明白了
熟能生巧
|
能力值:
( LV2,RANK:10 )
|
-
-
46 楼
FLY
在重定位处理那里 改变Z的标志跳过处理后
程序几个地方call API都会找不到,而且import也无法找到IAT
那里能否修改Z标志直接跳过这样来处理呢?
|
能力值:
( LV9,RANK:3410 )
|
-
-
47 楼
不至于的,虽然无法继续运行了,但ImportREC可以修复输入表
其实ASPack加壳的在适当的时机dump就不必用ImportREC了
|
能力值:
( 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哥能帮我解决一下.非常感谢!
|
能力值:
( LV9,RANK:3410 )
|
-
-
49 楼
Alt+E,查看此模块的Base
然后用008DFB14-基址-0006A000得到Size
另外,你可以用ASPack All Versions UnPacKer.By.PE_Kill脱壳机脱壳
|
能力值:
( LV2,RANK:10 )
|
-
-
50 楼
感谢FLY大哥!
我回去后再试试。
还有我用了你所说的脱壳工具,但是在:找到OEP。。。。就卡住了。这是什么原因呢?
|