作为一个副业项目,我想尝试解析二进制文件(特别是Mach-O文件)。我知道已经存在用于此的工具(例如otool),因此将其视为学习练习。
我遇到的问题是我不知道如何将找到的二进制元素转换为Python表示形式。例如,Mach-O文件格式以由C结构定义的头部开始。第一项是uint_32的“魔术数字”字段。 当我执行以下操作时:
我遇到的问题是我不知道如何将找到的二进制元素转换为Python表示形式。例如,Mach-O文件格式以由C结构定义的头部开始。第一项是uint_32的“魔术数字”字段。 当我执行以下操作时:
magic = f.read(4)
我明白了
b'\xcf\xfa\xed\xfe'
我开始理解它的意思了。它实际上是一个由四个字节组成的字节数组。但是我想将其视为代表原始魔数的四字节整数。还有一个例子是numberOfSections字段。我只想要表示为四字节字段的数字,而不是一组文字字节。
也许我对此的想法完全错误。有人做过类似的事情吗?我需要编写函数来查看这些四字节的字节数组,移位并合并它们的值以生成我想要的数字吗?大小端会对我造成问题吗?任何指针都将非常有帮助。