有哪些工具可以帮助解码未知的二进制数据格式?
我知道 Hex Workshop 和 010 Editor 都支持结构。对于已知的固定格式来说,这些在有限的范围内是可以的,但对于更复杂的东西来说很难使用,特别是对于未知的格式。我想我正在寻找脚本语言或可编写脚本的 GUI 工具的模块。
例如,我希望能够从有限的已知信息(也许是一个魔数(Magic Number))中找到数据 block 中的结构。一旦找到一个结构,然后按照已知的长度和偏移量单词来查找其他结构。然后在有意义的地方递归和迭代地重复此操作。
在我的梦想中,甚至可能根据我已经告诉系统的内容自动识别可能的偏移和长度!
最佳答案
以下是我想到的一些提示:
根据我的经验,交互式脚本语言(我使用 Python)可以提供很大的帮助。您可以编写一个简单的框架来处理二进制流和一些简单的算法。然后您可以编写脚本来获取二进制文件并检查各种内容。例如:
对各个部分进行一些统计分析。例如,随机数据会告诉您这部分可能是压缩/加密的。零可能意味着部件之间的填充。分散的零可能表示整数值或 Unicode 字符串等。尝试发现各种偏移。尝试将二进制文件的一部分转换为 2 或 4 字节整数或 float ,打印它们并查看它们是否有意义。编写一些函数来搜索数据中重复或非常相似的部分,这样您就可以轻松地发现标题。
尝试找到尽可能多的字符串,尝试不同的编码(c 字符串、pascal 字符串、utf8/16 等)。有一些很好的工具可以做到这一点(我认为 Hex Workshop 有这样的工具)。字符串可以告诉你很多信息。
祝你好运!
关于binary - 帮助逆向工程二进制文件格式的工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/492751/