xiaozi41195 发表于 2008-8-11 14:49

一些壳的特征

1、通常情况下只能向下跳不要往回跳(因为壳在解压的时候会有很多的循环,在里面一直转的话头会晕的!)

2、出壳点一般在POPAD

3、F8能过的CALL就过,F8会运行的CALL就F7跟进

4、PECOMPACT特点:第一个 CALL PECOMPACT.******** 要F7跟入,未实现的向下跳转要实现

5、ASPACK特点:遇到CALL就F7跟入,遇到向下的跳转就实现(或直接搜索POPAD,找到后面跟

J** DELPHI.****的出壳点)

6、UPX特点:一路F8(刚实战一个UPX壳:SnInput,是UPX1.2的壳,发现在LOOP解压结束之后

有个未实现的je short SnInput.0041001E,要回车跟过去F4才行),找到POPAD

7、EXE32PACK特点:先用"BP IsDebuggerPresent"在调用"IsDebuggerPresent"函数的地方下断

(EXE32PACK会检测是否有调试程序),然后用ALT+F9运行到用户区,用F8运行到

出现SS=00400000(基址)同时EDI=??????(入口实际地址的绝对地址),用

SS+EDI就得到了程序的入口点,然后用CTRL+G前往入口点(CTRL+A可以重新分析

代码),!!不要F4!!,直接DUMP。

8、EZIP1特点:EZIP1是在壳内循环解压缩完成后再跳到程序入口点,J**特别多,所以先一路F8

(包括CALL),当到达第一个往回大段的JMP时要小心了,跳过去,跟着一串代码,在

后面有个未实现的JNZ(在里面解压,解压未完成时不跳出去),来到JNZ这行,回车,

F4,就来到程序的入口点了。记下入口点的地址,用LOADPE脱壳(因为EZIP1会修改PE

头,所以用OD脱壳再修复也没用),再修复。(脱出来的程序比较大,可以用LOADPE的

重建PE功能重建后再修复,不过重建前必须是已经修复过的程序)

9、JDPACK特点:JDPACK会分几次解压缩,所以会出现多次POPAD或POPFD,所以前面先一路F8,

出现往回的JMP就往后面F4(特别是有两个靠得很近的往回的JMP就要小心了,出口不远

了),等到出现POPAD后面不远就跟着RETN的就到了出口点了,F8来到程序入口点,

DUMP。

10、FSG1.33特点:FSG1.33是个加密壳,没有PUSHAD等语句,ESP定律不适用,单步跟踪很费时间,

API断点也慢,但是它没有SEH所以最好用TC命令进行模拟跟踪,查看内存镜像,它分为好

几段,其中有CODE段、有SFX,imports,resources段,OEP(入口点)就在CODE段里,模

拟跟踪的地址下在CODE段的位置上(即CODE段后面一段之前,如CODE段开始在

401000,后面跟的段开始在404000,则下在404000前),格式为:TC EIP<********

(到了入口点以后要想看得习惯点就点清除分析)

11、PKLITE32 1.1特点:开始后就有一个CALL后面跟了一个往回跨大段的JMP,直接来到这个JMP 回车就

来到OEP(入口点)了,然后F4,DUMP。(这个是最简单的了!)

12、VGCrypt PE Encryptor V0.75特点:这个壳的OEP很好找,一路F8,有向下的跳转就回车让跳转实

现,很快就来到OEP了,DUMP。但是这个壳DUMP有个特点,DUMP出来的程序无法运行,

并且修复后仍然不能运行,这时不用急,用LOADPE将修复过的程序重建一下(ReBuild PE)

就行了。

13、Petite2.2特点:这个壳的特点是CALL基本上都要跟入,所以直接追OEP会很麻烦。所以脱这个壳就要

用到ESP定律,首先按照ESP定律下硬件断点,F9运行后会提示硬件错误,这时按SHIFT+F8

忽略,紧接着后面的CALL全部都F7跟进,接下来会有一个未实现的向下大跳,用回车跳

过去,F4,接下来就会看到下面有一堆的JMP,F8运行下去,一个JMP就跳回到程序的空

间了,这里就是OEP,DUMP

14、TELock098特点:这个壳的特点就是SEH(花指令)特别的多,所以脱这个壳之前一定要做好几项准

备工作:1、把调试选项中,除了“忽略KERNEL32中的内存访问异常”外的忽略异常都去掉;

2、一边数一边按SHIFT+F9(跳过SEH),一直到按下去以后程序运行了;3、重新运行,

刚才不是数了按多少下就运行了吗?现在少按一下,这样就会中断在最后一个SEH的前面

了,OD右下方会显示下一个SE的句柄,按CTRL+G到那个地址,F2,SHIFT+F9,

接下来就按照常规跟,一直跟到在一个POPAD后面不远跟着个“jmp dword ptr ss:”

这里就是跳向OEP的了!回车,F4,DUMP。修复时会出现获取输入信息会出现无效的,先点

“显示无效的”,然后右键“追踪层次3”,追踪好以后再显示无效的,剪切掉就好了,修复。

15、yoda&#39;s Crypter特点:这个壳总体来说特点还是比较鲜明的,所以也比较好脱。首先运行后会来到

一堆的“00 00 00 00”的代码这里异常,这时我们就得到了下个SE的地址,CTRL+G,下断,

SHIFT+F9,这里就是这个壳最有特点的地方了!前面一堆什么不管,最后三句是:

5Fpop edi//在这里的时候,EDI的值就是OEP了

C9leave

C3retn

讲到这个壳就顺便提一下仙剑壳,其实仙剑壳就是在前面加了一堆花指令的yoda&#39;s Crypter壳

前面一路SHIFT+F9也会来到一个很熟悉的地方:一堆“00000000”,不过仙剑壳会多点其他的

数字,但是没什么大差别,对付的方法都是一模一样的,这里就不多说了

wgz001 发表于 2008-8-11 14:51

哦学习下 看来俺也得好好总结下了


小黑冰 发表于 2008-8-11 14:55

引用楼主xiaozi41195于2008-08-11 14:49发表的 一些壳的特征 :
6、UPX特点:一路F8(刚实战一个UPX壳:SnInput,是UPX1.2的壳,发现在LOOP解压结束之后

有个未实现的je short SnInput.0041001E,要回车跟过去F4才行),找到POPAD
.......
这里的未实现跳是图

浩哥 发表于 2008-8-12 11:26

多谢楼主的总结啊!!!!!

yfyf 发表于 2008-8-19 01:33

多谢楼主的总结

uzcool 发表于 2008-8-19 07:01

但是不是非常全 有待增加哦。。。。

zzq0628 发表于 2008-8-19 08:35

这个总结还是比较全面的,以后我也要好好总结一下!

xyjx0044 发表于 2008-8-19 19:32

多谢楼主分享 辛苦了

mibvg 发表于 2008-8-26 01:08

总结的很好

多谢楼主的分享
页: [1]
查看完整版本: 一些壳的特征