一个未知压缩算法还原的应对方法

Posted on 2011-06-14 16:41 CrHackOS 阅读(430) 评论(0)  编辑 收藏 引用 所属分类: 技术随笔
  多年前写的日志,其中的思路可能对汉化或者其他一些工作有借鉴作用,在这里再贴一遍。
  如果包文件或图片里用了他们自己设计的压缩算法,想要回过去,但又不想分析他的程序,除了利用他算法里的一些简单的编码方式做伪压缩外,还可以使用替换压缩算法的方法。
  一般来说,那些自己设计的压缩算法都是弱压缩(字典不大或考虑性能因素),我们可以使用一些现成的压缩算法来替换,只要保证压缩后的大小比他原来的大小小即可。这样做有一个好处就是不需要重新生成包文件了,只要在原来的文件位置上覆盖即可,不需要修改其他文件的偏移。
  当然不是全部换成我们的算法了。只要在我们想要修改的文件数据块前加一个标志,然后 hook 了他的解码入口处,check 一下标志来决定使用那种解码即可,方便有效。至于压缩算法嘛可以使用 zlib,外挂一个 dll,也可以使用日本佬写的那几个 LZHUF/LZARI,都是相对的 call,可以直接植入 exe,虽然滑窗小了点效果还是不错的,压 3M 的高度图(24 位的灰度 BMP 文件)比 zlib 大了几十 K 而已。顺便补充一下,aPLib 也是很好的选择,只是小得有点让人受不了。

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理