4

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

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

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

4

2 回答 2

4

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

  1. 制作一个至少与您要插入的最大内容一样大的虚拟文件。
  2. 使用独特且易于区分的内容填充文件(或至少前 64 个字节左右)。
  3. 使用“nocompression noencryption dontverifychecksum”标志标记其 [Files] 条目。

然后,您应该能够扫描生成的可执行文件以查找#2 中的标记,然后替换您想要的数据。但是请注意,这样做可能会使设置文件上的任何数字签名无效,尽管我还没有对此进行测试以确定。

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

于 2012-08-18T02:12:28.117 回答
0

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

于 2012-08-17T16:21:41.787 回答