记录C结构的程序?

时间:2008-12-15 21:37:12

标签: c struct documentation-generation

如果您的二进制文件格式(或数据包格式)被描述为C结构,是否有任何程序可以解析结构并将其转换为协议的简洁文档?

结构当然包含数组,其他结构等,以描述格式。文档可能需要包含诸如打包,字节顺序等内容。

5 个答案:

答案 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之类的东西,但能够进行比特打包,字节顺序等。

     

最好是现有工具不仅可以生成文档,还可以生成C标头,unpackstruct模式,以及基于描述的验证工具“

答案 4 :(得分:0)

当然,如果存在这样的事情,它会用来写protocol dissectors 对于WireShark - 事实上每个解剖器都是用C代码实现的,这意味着很难以通用的方式表达二进制格式