问题陈述
我有一个完全由数据结构组成的文件;我一直在寻找一种工具,可以让我打开这个文件,并声明(也许)一个类型和偏移量,这样我就可以单独使用假定的原始数据类型。
例如,我将位于偏移量 0x04 处的 4 个字节声明为一个 32 位无符号整数,并希望检查该位置的值(可能读取为大端序),然后单独使用该整数(也许看看它的样子像编码为 4 字节的 ascii 字符串并尝试读取它等)
规格
我有一个 4096 字节的文件,其中包含 C 结构,成员元素为长度为 16-64 位的整数;下面是一个例子:
struct my_struct {
uint_32 magic
} // sizeof(my_struct) == 0x04
在这种情况下,magic = 'ball',所以当文件在文本编辑器中打开时,它读作 'llab...',显然也可以表示为 32 位整数
问题
是否有工具可以对平面数据结构文件进行静态分析?
到目前为止我认为的解决方案
我曾考虑用 Python 编写一个命令行工具来执行此操作,但如果已经存在某些东西,我更愿意节省时间,也许可以通过使用由更有经验的人设计的工具来了解有关此主题的更多信息。如果在您看来我对此的处理有误(这是我对这种倒车的第一次认真探索),请指导我的理解,谢谢。
我已经研究过的地方
谷歌搜索“逆向工程工具”并浏览链接
检查维基百科的逆向工程页面
尝试了一些基本原理推理
检查pypi
结果
有三个完全有效和正确的答案,但我已将其中最详细和最便宜的标记为正确答案,因为它是审查此问题的社区成员最容易获得的。