首页
社区
课程
招聘
各位大哥,帮忙看一下这个壳,给点思路。(不断的重新载入)
2004-7-3 11:14 5199

各位大哥,帮忙看一下这个壳,给点思路。(不断的重新载入)

2004-7-3 11:14
5199
 
 这个软件用OD载入后提示有壳,可它与一般的软件不同的是,怎么直接就运

行,而且不断的调用别的进程,又通过它们来调用自己!!!

(我也不知道说的对不对,但感觉是这样!

主进程不断的“退,进--退,进”的)

一点头绪也找不到,不知从哪下手!

谢谢各位,谢谢!

软件下载地址:http://www.c51bbs.com/product/zimo3.htm     (新版本V3.52推出,批量转换大提速,增加版本升级自动通知功能。new! )

阿里云助力开发者!2核2G 3M带宽不限流量!6.18限时价,开 发者可享99元/年,续费同价!

收藏
点赞3
打赏
分享
最新回复 (11)
雪    币: 299
活跃值: (300)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
clide2000 7 2004-7-3 12:55
2
0
这是一个动过手脚的aspack的壳,首先在OD中,把调试选项中的事件项,设置为"标记首先暂停在系统断点",之后就可以用OD正常载入了.
载入后,Alt+M,在401000段上设置内存写入断点,F9运行,即会中断在aspack的解码段中,之后的方法与脱普通的aspack就没区别了.
oep:401000
写的有些乱,希望对你有所帮助
雪    币: 896
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2004-7-3 14:42
3
0
最初由 FishSeeWater 发布
 
 这个软件用OD载入后提示有壳,可它与一般的软件不同的是,怎么直接就运

行,而且不断的调用别的进程,又通过它们来调用自己!!!

(我也不知道说的对不对,但感觉是这样!

主进程不断的“退,进--退,进”的)

一点头绪也找不到,不知从哪下手!

谢谢各位,谢谢!

软件下载地址:http://www.c51bbs.com/product/zimo3.htm (新版本V3.52推出,批量转换大提速,增加版本升级自动通知功能。new! )


设置OD的暂停选项,不会直接运行

外面是罗聪老大的LC Crypto V0.1
里面是ASPack 2.12

脱壳很简单
OEP: 00001000	IATRVA: 001471D0	IATSize: 000012D0


LC Crypto
http://www.luocong.com/myworks/zipped/LCCrypto.zip



雪    币: 768
活跃值: (430)
能力值: ( LV13,RANK:460 )
在线值:
发帖
回帖
粉丝
FishSeeWater 11 2004-7-3 15:01
4
0
再请教两个问题:
 
一:壳脱下来了!!可是无法运行,现在是怎样修复输入表???

  (我用的工具是 LoadPE + ImportREC )一运行程序就自动退出

 我跟了一下原程序,发现有些(很多)函数ImportREC没有发现!!(如USER32)不知道下一步再怎么进行?

二:“这是一个动过手脚的aspack的壳”请问怎么个动手脚法??(请教原理)

谢谢!!谢谢!!!鞠躬!鞠躬!!!!
雪    币: 768
活跃值: (430)
能力值: ( LV13,RANK:460 )
在线值:
发帖
回帖
粉丝
FishSeeWater 11 2004-7-3 15:16
5
0
嘻嘻!!真是巧!!正在编辑回复FLY大哥先发了!!!

  主要是第一个问题了!!怎么办??

我的脱壳水平只是入门级的!!有很多东东只是看教程做,

根本不明白是怎么回事!!唉PE这东西,真难懂,大家可多教教我原理方面的东

东。谢谢各位的热心!! :);)
雪    币: 299
活跃值: (300)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
clide2000 7 2004-7-3 16:15
6
0
还是Fly牛啊,我还以为外面的是手动修改成的呢,原来是LC Crypto,当回去研究一下:D
1关于对Aspack的输入表的修复,个人认为用<<加密与解密>>第二版中的方法较好,就是在aspack解码完毕后,又未对输入破坏之前脱壳最好了,这样只要修改一个入口点和输入表入口地址就好了.
2另外,以可以在跟到程序入口点外再脱,最后用ImportREC修复就行了
雪    币: 299
活跃值: (300)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
clide2000 7 2004-7-3 16:24
7
0
[QUOTE]最初由 fly 发布


设置OD的暂停选项,不会直接运行

Fly兄说的暂停选项是哪个呀?我只能设置暂停在系统断点才管用,不然它总是直接就运行了
雪    币: 896
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2004-7-3 16:46
8
0
用修改版的配置文件就行
首先暂停在 主要模块的入口点
雪    币: 896
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2004-7-3 16:49
9
0
最初由 FishSeeWater 发布
嘻嘻!!真是巧!!正在编辑回复FLY大哥先发了!!!

  主要是第一个问题了!!怎么办??

我的脱壳水平只是入门级的!!有很多东东只是看教程做,

根本不明白是怎么回事!!唉PE这东西,真难懂,大家可多教教我原理方面的东

东。谢谢各位的热心!! :);)


帖子里面已经告诉你IAT的参数了

学习关键是自己的努力
多看看《加密与解密》、《看雪论坛精华》

这个程序脱壳很简单,你脱几个压缩壳就明白了
雪    币: 768
活跃值: (430)
能力值: ( LV13,RANK:460 )
在线值:
发帖
回帖
粉丝
FishSeeWater 11 2004-7-3 17:33
10
0
TO clide2000大哥 AND fly大哥,我跟到401000了,并且也DUMP了。

如果直接在 ImportREC 的 OEP 输入 1000 点 AUTOSEARCH 得不到正确的 IAT 与 SIZE。

现在是不明白IAT与SIZE是怎么得到的?

(是不是我知识面有问题?我一贯是用 ImportREC 输入 OEP 后直接获取并修复)
 
另:FLY大哥这三个参数输入到 ImportREC 后点 GET Imports 后还是有那么多NO。

不过FIX后能用:)

平时我一般没时间搞这个东西,这个软件在网上找不到破解版,所以只能自己动手了。

再次感谢两位大哥的热心帮助!!!
雪    币: 299
活跃值: (300)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
clide2000 7 2004-7-3 22:22
11
0
说明:原来我是用OD1.9调试的,后来改用OK1.10后,就可以正常的载入程序并中断在入口处了(不用做什么4特别的设置了)
说一下对aspack壳的输入的简单处理,主要是如何确定正确的脱壳时机,即在壳解码后还没来的极破坏输入表就脱壳,从而可以得到一个正常的输入表(注:此方法源于《加密与解密》第二版)
1在401000设置内存写入断点后,F9运行程序,会中断在下面这里
2移除内存断点
0061D115    C607 C3         mov byte ptr ds:[edi], 0C3
0061D118    FFD7            call edi
0061D11A    8F07            pop dword ptr ds:[edi]
0061D11C    50              push eax
0061D11D    51              push ecx
0061D11E    56              push esi
0061D11F    53              push ebx
0061D120    8BC8            mov ecx, eax
0061D122    83E9 06         sub ecx, 6
0061D125    8BB5 52010000   mov esi, dword ptr ss:[ebp+152]
0061D12B    33DB            xor ebx, ebx
0061D12D    0BC9            or ecx, ecx
0061D12F    74 2E           je short ZimoIII.0061D15F
0061D131    78 2C           js short ZimoIII.0061D15F
0061D133    AC              lods byte ptr ds:[esi]
0061D134    3C E8           cmp al, 0E8
0061D136    74 0A           je short ZimoIII.0061D142
0061D138    EB 00           jmp short ZimoIII.0061D13A
0061D13A    3C E9           cmp al, 0E9
0061D13C    74 04           je short ZimoIII.0061D142
0061D13E    43              inc ebx
0061D13F    49              dec ecx
0061D140  ^ EB EB           jmp short ZimoIII.0061D12D
0061D142    8B06            mov eax, dword ptr ds:[esi]
0061D144    EB 00           jmp short ZimoIII.0061D146
0061D146    803E 31         cmp byte ptr ds:[esi], 31
0061D149  ^ 75 F3           jnz short ZimoIII.0061D13E
0061D14B    24 00           and al, 0
0061D14D    C1C0 18         rol eax, 18
0061D150    2BC3            sub eax, ebx
0061D152    8906            mov dword ptr ds:[esi], eax
0061D154    83C3 05         add ebx, 5
0061D157    83C6 04         add esi, 4
0061D15A    83E9 05         sub ecx, 5
0061D15D  ^ EB CE           jmp short ZimoIII.0061D12D
0061D15F    5B              pop ebx
0061D160    5E              pop esi
0061D161    59              pop ecx
0061D162    58              pop eax
0061D163    EB 08           jmp short ZimoIII.0061D16D
0061D165    0000            add byte ptr ds:[eax], al
0061D167    0102            add dword ptr ds:[edx], eax
0061D169    0000            add byte ptr ds:[eax], al
0061D16B    FE01            inc byte ptr ds:[ecx]
0061D16D    8BC8            mov ecx, eax
0061D16F    8B3E            mov edi, dword ptr ds:[esi]
0061D171    03BD 22040000   add edi, dword ptr ss:[ebp+422] ;edi指向区块数据大小(VOffset)
0061D177    8BB5 52010000   mov esi, dword ptr ss:[ebp+152] ;esi指向已还原的数据
0061D17D    C1F9 02         sar ecx, 2                      ;ecx是区块数据大小(VSize)
0061D180    F3:A5           rep movs dword ptr es:[edi], dword ptr d>
0061D182    8BC8            mov ecx, eax
0061D184    83E1 03         and ecx, 3
0061D187    F3:A4           rep movs byte ptr es:[edi], byte ptr ds:>
0061D189    5E              pop esi
0061D18A    68 00800000     push 8000
0061D18F    6A 00           push 0
0061D191    FFB5 52010000   push dword ptr ss:[ebp+152]
0061D197    FF95 51050000   call dword ptr ss:[ebp+551]
0061D19D    83C6 08         add esi, 8
0061D1A0    833E 00         cmp dword ptr ds:[esi], 0
0061D1A3  ^ 0F85 1EFFFFFF   jnz ZimoIII.0061D0C7   ;注意这里,可在此设断,dump出文件
说明:上面的这段代码作用是aspack外壳将已还原的区块数据放回将要执行的区块空间里.当上面的jnz不在跳转时,表示已经所有加壳区块已经还原完毕,这个软件这时会跳转三次(不同的软件的区块数大都不会一样,所以这里的跳转次数会根据软件的实际区块数而有所不同)。当所有区块都还原后,此时的输入表还是完整的,所以只要在此时dump出文件,就不用再修复输入表了。
不过应该注意的是,虽然不需要用ImportREC修复输入表了,但要找到输入表的地址,并用LoadPE之类的工具手动修改正确才可以(这个在这就不多说了)。
注:此方法试用于所有的aspack加壳的程序
雪    币: 768
活跃值: (430)
能力值: ( LV13,RANK:460 )
在线值:
发帖
回帖
粉丝
FishSeeWater 11 2004-7-4 17:54
12
0
To  clide2000 大哥:

    您的留言大部分能看明白,

    这个地方可是真不懂!去书店请回《加密与解密》第二版,照猫画虎,是找到了KERNEL32.DLL 可是找不到它的地址啊!!

    (我的步骤是在0061D1A3 ^ 0F85 1EFFFFFF   jnz    ZimoIII.0061D0C7 处下断,不跳时用不着LoadPE DUMP Full然后用HEX WorkSHOP 打开查找KERNEL32.DLL得到了一个地址 向上看全00地址是 11223344 ,然后查找44332211,找不到啊?:( )

    假如(地址没找到只能假如了:))找到了地址,是不是直接将这个地址用PEditor 修改 ImageTable 就可以了????

    (2)假如我是在 OEP 处 DUMP 用 ImporREC 修复输入表,输入 1000 点 AUTOSEARCH 然后点Get Imports无法得到正确的函数。就必须手动输入 IAT 与SIZE 可这 IAT 与 SIZE 怎样得到?是从下面的三个地址计算的吗??还是???

0061D171 03BD 22040000 add edi, dword ptr ss:[ebp+422] ;edi指向区块数据大小(VOffset)
0061D177 8BB5 52010000 mov esi, dword ptr ss:[ebp+152] ;esi指向已还原的数据
0061D17D C1F9 02 sar ecx, 2 ;ecx是区块数据大小(VSize)

    本来这个软件到我第三次复时就已经可以用了!不过想借这机会一并学习一门新知识.

    再次谢谢您的热心帮助!!
游客
登录 | 注册 方可回帖
返回