是否可以将文件插入到exe中?

时间:2012-08-17 15:57:48

标签: exe inno-setup

我需要在下载时将生成的文件插入到exe中。目前,我创建一个“空”文件(填充重复的字符)并使用exe打包。下载时,我查看安装程序的字节,通过查找重复字符找到文件,然后插入生成的文件。

然而,这个过程不起作用。重复字符不会显示在字节中。但我确定文件在那里,因为如果我运行exe,它会被解压缩。我做错了什么或者甚至可以将文件插入到exe中?

另请注意,我正在使用Inno Setup Script v5.5.1将项目编译为exe。

2 个答案:

答案 0 :(得分:4)

如果要更改[Files]条目中指定的文件内容并编译到安装程序可执行文件中,则必须:

  1. 创建一个至少与您要插入的最大内容一样大的虚拟文件。
  2. 使用独特且易于区分的文件填充文件(或至少前64个字节左右)。
  3. 使用“nocompression noencryption dontverifychecksum”标记标记其[Files]条目。
  4. 然后,您应该能够扫描#2中标记的结果可执行文件,然后替换所需的数据。但请注意,这样做可能会使安装文件上的任何数字签名失效,尽管我没有对此进行测试以确定。

    请注意,如果要插入的内容小于虚拟文件大小,则额外字节仍将保留在插入内容的末尾。因此无论读取什么文件都必须有一些方法可以忽略它或识别有趣内容的结束。

答案 1 :(得分:0)

因此,如果您正在对现有的exe文件进行更改,并且文本不多,您可以使用一些十六进制编辑器并在所需位置进行更改。如果文本更多,您可能希望包含一些无意义的字节,就像填充程序一样。