以前一向以为那些64kb intro常用的壳就是UPX或者就是UPX的farbrausch修改版本,后来发现原来有专用的了...
这就是kkrunchy,当然仍旧是farbrausch做得壳...
利用peid查看程序签名,会发现程序section只有一个,就是"kkrunchy"。并且只有这一个段了
下面是官方对这个壳的描述:
http://www.farbrausch.de/~fg/kkrunchy/
well, kkrunchy is a small exe packer primarily meant for 64k intros. it's relatively useless for anything else actually, because the depacker was relatively slow in older releases (about 1-2MB per second on my machine) and is dog slow in the newest version (about 90-120k per second for typical data on my p4 2.4GHz). kkrunchy also doesn't try to pack DLLs and can't handle exports or TLS (thread local storage) - as said, it's meant for 64ks.
据说是采用了PAQ7压缩算法,具有很高的压缩比,不过代价就是上文中提到的“ slow in older releases “ 一秒钟内只能解压缩1-2MB数据,不过对于64kb intro这根本不会让用户察觉什么。
后来发现很多手头的demo都用了这个壳,当然有一部分是用demo引擎制作的,至少CONSPIRACY和farbrausch都在用它。还有一些小组织的手写demo作品最终也用了kkrunchy加壳。大家可以验证下~
我简单说下这个壳的一些特点
首先它采用了段合并,这也是为什么它加壳的程序都只有"kkrunchy"这个section的道理,要知道平时编译参数中的段合并一般是不提倡加上的,不过这的确对文件体积减小有积极作用,但未必所有程序都能这么干...
所以并不是所有程序都适合用这个壳来压缩的,同时由于段合并,资源(resource)的提取也造成了一定的问题。因为资源段也被合并了...
不过对于demo而言这不会带来什么问题...
当然如果把软件保护寄希望于它那就错了...我是用OllyICE直接用OEP定律就脱掉了...没费一点功夫...
好了,Sence Demo不只能停留在那些工具本身,从根本上去了解还是有必要的。今天介绍了这个罕见的壳希望能对大家有用~