我有android可执行文件,它们正好是ELF 32位LSB可执行文件,ARM,版本1(SYSV),静态链接,剥离。我想编辑它们。当我用notepad ++打开它们时,我找到了单词(不是代码)。然后我编辑这些单词并保存。它不再起作用了。当它被执行时,返回分段错误。解散他们对我没有帮助。问题是如何编辑这些单词。
这些是文件:https://www.mediafire.com/folder/tok8427bchex2/binary
我只想编辑所有" mgyun"到" aungthiha"。
提前致谢。
答案 0 :(得分:1)
假设使用记事本++打开和保存二进制文件(可执行文件)的过程本身不会以某种方式影响二进制文件,那么您的问题可能在于" aungthiha"超过" mgyun"。
二进制文件包含要执行的低级代码。此代码可能包含对条件的其他部分的跳转,例如条件,循环和子例程。目标位置是硬编码的,因此如果在二进制文件中插入一个额外的字符,一些跳转将指向错误的位置(因为正确的位置现在是偏移的),这可能导致二进制文件不起作用。
如果你改变了" mgyun"你可能会成功。对于长度相同的东西,如" 12345"因为它不会改变其他任何东西。
有关详情,请参阅此帖子:http://everydaywithlinux.blogspot.com/2012/11/patch-strings-in-binary-files-with-sed.html
当然,这种方法有一些警告。最重要的一个 是你不能用一个更长的字符串替换字符串 原来的。虽然更短也没关系。