0

今天我试图从 EXE 文件中删除一些字节。

在 EXE 中,我找到了 EXE 需要加载的文件的路径。我想更改路径,为此我必须删除一些../../字符。当我这样做并保存文件时,它会丢失它的图标,并且当我尝试执行它时会显示“win32 未知格式错误” 。

如果我不删除这些字节而是将它们替换为0,则图标不会丢失,并且文件看起来正确。然而,路径不正确。

因此,看起来当我删除字节时,文件内其他信息的位置丢失了,包括资源(图标)。删除这些字节后,我需要添加其他 6 个字节,以保持其他数据的大小和位置相同。我应该在哪里做?如果我在文件末尾添加这些字节,它就不起作用。你能给我一些线索吗?谢谢!

4

1 回答 1

3

从字符串的开头删除 ../../ 后,在字符串的末尾粘贴六个 0 字节(我假设您可以手动识别结尾)。这样文件中所有内容的偏移量保持不变。通过完全删除 6 个字节,字符串之后的东西的偏移量会改变。通过用 0 替换 6 个字节,字符串的偏移量会发生变化(它现在实际上是在 + 6 的任何位置)。

于 2012-06-11T22:16:43.297 回答