一些壳的特征
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's Crypter特点:这个壳总体来说特点还是比较鲜明的,所以也比较好脱。首先运行后会来到
一堆的“00 00 00 00”的代码这里异常,这时我们就得到了下个SE的地址,CTRL+G,下断,
SHIFT+F9,这里就是这个壳最有特点的地方了!前面一堆什么不管,最后三句是:
5Fpop edi//在这里的时候,EDI的值就是OEP了
C9leave
C3retn
讲到这个壳就顺便提一下仙剑壳,其实仙剑壳就是在前面加了一堆花指令的yoda's Crypter壳
前面一路SHIFT+F9也会来到一个很熟悉的地方:一堆“00000000”,不过仙剑壳会多点其他的
数字,但是没什么大差别,对付的方法都是一模一样的,这里就不多说了 哦学习下 看来俺也得好好总结下了
引用楼主xiaozi41195于2008-08-11 14:49发表的 一些壳的特征 :
6、UPX特点:一路F8(刚实战一个UPX壳:SnInput,是UPX1.2的壳,发现在LOOP解压结束之后
有个未实现的je short SnInput.0041001E,要回车跟过去F4才行),找到POPAD
.......
这里的未实现跳是图 多谢楼主的总结啊!!!!! 多谢楼主的总结 但是不是非常全 有待增加哦。。。。 这个总结还是比较全面的,以后我也要好好总结一下! 多谢楼主分享 辛苦了
总结的很好
多谢楼主的分享
页:
[1]