事情的起源是:要反编译一个 Symbian 的程序, IDA Pro 报错。一直以为是 IDA Pro 自己的问题,只好搁置。前两天偶然发现那个杀千刀的 Symbian 系统竟然支持压缩过的可执行文件,想必 IDA 遇到的就是这种东西。了解了一下 Symbian 可执行文件的格式后,打开那个该死的文件作了一下验证,果然是经过压缩的。能解压么?
文档里说压缩算法是 Deflate,可是 zlib 死活解不出来,我一怒之下甚至把 bzip2 的解压缩法都试了,结果还是不行。
再后来在 Symbian 的新 SDK 里发现了个工具,可以帮很大的忙。围绕这个工具,我老人家做了大量的试验,终于算是写出来一个解压器。试了若干个文件,效果还算理想。
我想这个工具除了 Symbian 自己的程序之外,恐怕是全球首创,嘿嘿!