Compression 自解压程序是如何工作的?

Compression 自解压程序是如何工作的?,compression,machine-code,dep,Compression,Machine Code,Dep,最近,我一直在写一个用于绘制计算器程序的图形,其中空间最小,计算器操作系统不关心是否将指令指针设置为任意地址 我实现了基本的DEFLATE,然后尝试在谷歌上搜索压缩算法,这些算法可能在可执行代码上工作得更好 但我的问题是:任何一个使用DEP的现代操作系统都不会禁止程序执行提取的代码(至少不会直接执行)。那么,是否所有“打包可执行文件”都仅限于解压缩数据,或者让未压缩的解释器运行提取的代码,或者介于两者之间 任何一个使用DEP的现代操作系统都不允许程序执行提取的代码吗(至少不允许直接执行) 不那么

最近,我一直在写一个用于绘制计算器程序的图形,其中空间最小,计算器操作系统不关心是否将指令指针设置为任意地址

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

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

任何一个使用DEP的现代操作系统都不允许程序执行提取的代码吗(至少不允许直接执行)

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

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

任何一个使用DEP的现代操作系统都不允许程序执行提取的代码吗(至少不允许直接执行)

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


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

通常,自解压存档会将其代码转储到磁盘上,然后作为单独的程序运行。至少可以说,在主进程中提取和执行代码是有问题的。这是恶意软件和病毒所做的事情。通常自解压档案会将其代码转储到磁盘上,然后作为单独的程序运行。至少可以说,在主进程中提取和执行代码是有问题的。这是恶意软件和病毒所做的事情。