自解压程序如何工作



最近我一直在为图形计算器程序编写压缩器,其中空间很小,计算器操作系统不在乎您是否将指令指针设置为任意地址。

我实现了基本的 DEFLATE,然后尝试在谷歌上搜索压缩算法,这些算法可能在可执行代码上效果更好。

但这是我的问题:任何带有 DEP 的现代操作系统都不允许程序执行提取的代码(至少不是直接执行)。那么,所有"打包的可执行文件"是否仅限于解压缩数据,或者让未压缩的解释器运行提取的代码,或者介于两者之间?

任何带有 DEP 的现代操作系统都不会禁止程序执行提取的代码(至少不是直接执行)

不那么直接当然没有问题。即使使用 W^X,解包器也可以简单地将代码写入可写内存,然后才将其转换为可执行内存。

尽管在许多操作系统上,即使有 DEP 支持,也允许程序分配可写和可执行的内存。DEP 不会阻止您做您有权做的事情。

最新更新