如果您的二进制文件格式(或数据包格式)被描述为C结构,是否有任何程序可以解析结构并将其转换为协议的简洁文档?
结构当然包含数组,其他结构等,以描述格式。文档可能需要包含诸如打包,字节顺序等内容。
答案 0 :(得分:5)
也许你应该以不同的方式思考这个问题。
“我可以为我的数据包创建一个文档格式,我可以为其生成一个C结构吗?”
例如,考虑使用XML来定义数据包结构并添加注释元素等等。编写一个简单的程序将其转换为实际的C结构
相当容易答案 1 :(得分:2)
Doxygen是一个常用的 doc umentation gen erator。但是,如果您想获得有用的文档,则可能需要使用doc注释来标记结构定义。
答案 2 :(得分:1)
如果你知道perl,你可以尝试与Jeeves一起玩:
https://www.rodhughes.com/perl/advprog/examples/Jeeves/
(这个来源就在那里;我认为可以使用。;))
我正在尝试找出类似于你需要的东西:结构化二进制数据的解析器。我期待Jeeves从元格式输出C ++中的解析类。 Jeeves的默认解析器允许向类定义的每个成员添加其他标记。这样您就可以在类中的注释中自动包含有关字节顺序,对齐等的信息(当然,也可以在代码中实现它们)。
答案 3 :(得分:0)
正如JaredPar所说,这个问题的替代措辞是:
“描述二元结构的好方法是什么?
e.g。像ABNF之类的东西,但能够进行比特打包,字节顺序等。
答案 4 :(得分:0)
当然,如果存在这样的事情,它会用来写protocol dissectors 对于WireShark - 事实上每个解剖器都是用C代码实现的,这意味着很难以通用的方式表达二进制格式