很简单的一个压缩自检壳,完全用Delphi编写。原理:将目标程序的压缩流附加到Loader的尾部,加载时还原道内存并执行。

压缩是通过Delphi自带的TCompressionStream压缩流实现的。而自效验部分是自己弄了个Hash函数,移位亦或了一下。没什么特别的东西,所以说是个“很”简单的壳... 
作用就很明显了,给常用的几个程序都打上了这个壳后,有病毒感染会因为Hash值不一样而报警,这样就知道该Ghost恢复一下,不用实时装个后台进程一大堆的杀毒软件占资源了。具体的可以看压缩包2里的“说明.doc”。


起因是看到了Anskya的MemRun单元,感觉挺有意思的,于是写了这个压缩壳。由于没有做图标处理,所以加过壳的程序都是Loader的图标。PELoader.res中是一个全白的图标,你可以用资源编辑器改成其它的,比如“烧香的熊猫”,或者“在河边做俯卧撑的人”…… 


附件中:
HashShell_Src.rar (63.0 KB)    是源码(Delphi 的)
压缩自检壳.rar (241.8 KB)      编译好的程序,其中Shell.ex_为了减小大小而打了UPX

ps: 最好给Loader程序再打个UPX,这样可以减小加壳后的文件大小,还可以提高脱壳难度(压缩自检壳.rar里那个Shell.ex_就是)。


---------------------------------------------------------------------------
写这个壳只是为了测试一下MemRun的可行性,这个不同于一般的壳是jmp到解压缩后的OEP,手动把PE文件加载到内存更难脱掉。按照传统的脱壳方法跟下去是没用的,因为Loader是通过CreateThread()加载目标,自己完成SetThreadContext()后就僵死在那儿了。
不过仔细想了一下,知道MemRun原理后要脱掉这个壳也相当容易:在ResumeThread()上下断点,然后Attach到该线程中,此时EIP就是入口点,然后就是dump整个程序了

上传的附件 HashShell_Src.rar [解压密码:pediy]
压缩自检壳.rar