ARM二进制和十六进制



我有一个ARM二进制文件,想改变一些文本。我从注释中删除了几个文本符号。

但是二进制文件不会启动,使用log:

link_image[1710]: 3013缺少必要的table CANNOT LINK EXECUTABLE

有人知道如何编辑ARM二进制文件吗?

我删除了几个文本符号

到此为止。如果我没看错你写的,那是因为你去掉了一些字符,而不是用其他字符替换它们。

这将移动整个文件的其余部分。但是二进制文件通常有指向文件其他部分的表或偏移量。移动文件的内容,即使是一个字节,也意味着这些表或偏移量不再指向它们应该指向的位置。在此之后,试图读取该文件的代码会很困惑。

在编辑二进制文件时,除非您知道自己在做什么,否则永远不要移动文件的内容。如果您正在编辑文本,则您的更改不得更改文本的大小。如果新文本较小,则必须填充它以保持相同的大小;如果新文本较大,则不适合,必须找到较短的文本。

当然,这假定文件格式没有能够注意到更改的校验和,或者您知道如何重新计算它们。

还要确保你使用的是合适的编辑器。普通的文本编辑器可以无声地添加、删除或替换字符,这可能会破坏文件,可能以难以检测的方式。

最新更新