0

最近我一直在为图形计算器程序编写一个压缩器,它的空间很小,计算器操作系统并不关心你是否将指令指针设置为任意地址。

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

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

4

1 回答 1

2

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

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

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

于 2017-11-07T12:58:50.320 回答