【问题标题】:Adding Bytes to file using Hex Editor使用十六进制编辑器将字节添加到文件
【发布时间】:2017-08-31 04:25:54
【问题描述】:

我正在尝试使用 HxD 十六进制编辑器更改某些游戏文件中的文本。

当我在十六进制编辑器中看到一个句子时,例如Powered by me,这是 13 个字符长。我发现替换句子也需要 13 个字符长才能起作用。如果不是 13 个字符长,游戏将由于某种原因无法加载。

我在文件中添加了字节。现在我需要找出如何让它发挥作用。如何使文件与我添加的字节一起工作?

【问题讨论】:

  • 我认为您的问题的解决方案可能与您的目标游戏有关 - 因此您最好在问题中指定它。

标签: hex-editors


【解决方案1】:

由于文件本身中的指针,它可能必须具有相同的长度或更短(例如用空值填充)。如果游戏文件需要索引 XXXX 处的结构或函数,而您将所有内容移动了 5 个字节,那么它将无法正常工作。如何解决?您需要熟悉游戏文件格式。然后你可以着手修改其他需要修改的地方。

顺便说一句,Windows DLL 将其字符串和对话框保存在单独的资源区域中,并且使用资源编辑器进行修改非常容易!

【讨论】:

  • 或者你说的更短?该文件底部有大量的 0,如果我删除其中大约 30 个,您认为它会起作用吗?
  • 不,它必须在字符串占用的空间内,例如“Powered by me”可以更改为“Joost Rules__”,其中 '_' 表示 '\x00' 或 null,甚至可能是空格。您必须确保字符串之后的所有内容都保持对齐。
  • 除了需要熟悉的知识外,还有其他方法可以解决这个问题吗?
  • 并非如此。某些文件格式是标准化的,您可以使用资源编辑器。编辑器会为您跟踪所有指针。
  • @DADi590 如果您保持字符串的原始长度相同,则无需更改指针。优化后的代码可能会做一些奇怪的事情,比如添加到现有指针以获取新指针,或者使用现有指针的偏移量,在这种情况下,搜索和替换指针不会 100% 起作用。无论如何尝试都没有坏处。
猜你喜欢
  • 2010-11-22
  • 2014-07-14
  • 2015-07-13
  • 2013-02-18
  • 1970-01-01
  • 2019-08-02
  • 2017-09-13
  • 2012-05-10
  • 2015-08-08
相关资源
最近更新 更多