Hmily 发表于 2009-9-27 16:10

常见壳的特点的总结

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。(:em16:这个是最简单的了!)

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's Crypter特点:这个壳总体来说特点还是比较鲜明的,所以也比较好脱。首先运行后会来到
                        一堆的“00 00 00 00”的代码这里异常,这时我们就得到了下个SE的地址,CTRL+G,下断,
                        SHIFT+F9,这里就是这个壳最有特点的地方了!前面一堆什么不管,最后三句是:
                         5F                  pop edi//在这里的时候,EDI的值就是OEP了
                         C9                  leave
                         C3                  retn
                     讲到这个壳就顺便提一下仙剑壳,其实仙剑壳就是在前面加了一堆花指令的yoda's Crypter壳
                     前面一路SHIFT+F9也会来到一个很熟悉的地方:一堆“00000000”,不过仙剑壳会多点其他的
                     数字,但是没什么大差别,对付的方法都是一模一样的,这里就不多说了。

小黑冰 发表于 2009-9-29 17:47

本帖最后由 小黑冰 于 2009-9-29 17:49 编辑

学习了:victory:

xiehuis 发表于 2009-9-29 17:53

学习了!!!!!!!!!!!!

miaoronghua 发表于 2009-9-29 19:33

rlmtolove 发表于 2009-9-30 02:28

只能崇拜了.............

flygo 发表于 2009-10-4 00:36

请问“晓博淘宝专用浏览器3.1.3”这个的壳你是怎么脱的啊!

hkfans007 发表于 2009-10-4 09:08

有没有强壳的脱壳总结啊如TMD/VMP?哈哈

gylaighm 发表于 2009-10-29 16:48

謝謝分享建議樓主發個圖片
页: [1]
查看完整版本: 常见壳的特点的总结