什么是可执行压缩?

逆向工程 解压 包装工 恶意软件
2021-06-11 00:43:39

我不知道这是这个问题的正确位置还是这个问题太基本了。

我正在阅读 Antivirus Hacker's Handbook,在那里他们谈到了一些关于软件打包程序、保护程序可执行文件压缩的​​内容我在谷歌上搜索了很多关于这些主题的内容,并找到了一些网站,但我无法对关键字Software PackerSoftware ProtectorExecutable Compression是什么以及它们为什么是一个东西有任何基本的了解

有人能解释一下什么是可执行压缩和打包,以及它们为什么存在于最基本的层面吗?

1个回答

可执行压缩(AKA 可执行打包)是一种想法,PE、ELF 和 MACHO 文件格式由于显而易见的原因没有完全设计为紧凑的。过去,当内存稀缺时,缩小可执行文件的大小通常是一个目标,要么是强制性的,要么是更可取的。

出于这个原因,创建了工具来保持可执行文件的功能,同时缩小它的大小。为此,对可执行文件的代码和数据部分采用了不同的压缩算法,并添加了一个小的解压缩代码存根以在可执行文件的运行时逆转该过程。

基本思想是您获取给定的可执行文件并压缩它的整个代码和数据部分(通常是文件的大部分)。然后,您可以将压缩输出作为新可执行文件的一部分包含在该新可执行文件中,并在该新可执行文件中包含一个执行相反操作的子例程 - 将压缩数据解压缩回其原始(更大)形式,然后执行原始未压缩入口点,就好像代码从未被压缩。

随着存储内存变得更便宜,对紧凑型可执行文件的需求逐渐减弱,人们发现了压缩可执行文件的一个有趣特性:压缩的可执行文件的代码在没有事先解压的情况下更难阅读。开发人员和编码人员开始使用压缩来隐藏他们想对第三方隐藏的代码。打包成为避免或使逆向工程过程复杂化的一种方式,并且打包者将重点从压缩转移到混淆、加密和反逆向工程工具。