不包含可执行文件的软件包实际上如何工作?

不包含可执行文件的软件包实际上如何工作?

.rsrc_1仅包含( 、[0]等)文件的安装程序实际上如何.rdata工作?

例子: 例子

为了比较:

我可以想象包含诸如此类文件的安装程序是如何.msi工作.cab的——它们将自身提取到某个地方并启动安装。

例子: 例子

答案1

仅包含(.rsrc_1、[0]、.rdata 等)文件的安装程序实际上如何工作?

您的第二个示例是一个自解压的 exe 文件。

第一个例子是一个普通的exe文件。要执行的代码位于部分中.text

有关详细信息,请参阅windows - .exe文件中有什么? - 堆栈内存溢出

答案2

因为它一个可执行文件。

仅仅因为您可以在 7-zip 中打开它并不意味着它“只是”一个档案。您打开的是一个知道如何从[0]数据 blob 中提取其自身有效负载的可执行文件。

某些“程序”(例如您的 nvidia 安装程序)本质上是 zip 文件,其前面有一个自解压可执行文件。7zip 可以看到一个小型可执行文件,后面跟着大量数据,查看这些数据后,就会看到一个可以打开的普通存档。然后,您就能看到主要数据。

其他程序(例如三星安装程序)是真正的可执行文件,其中有效载荷已插入可执行文件内的数据部分。它需要一些特殊处理才能将其从可执行文件中提取出来,而这在可执行文件运行时完成。这可能是 7-zip 不知道的某种特殊压缩方法。

相关内容