Compiler construction 用于编译/反编译二进制数据文件的通用实用程序或库?

Compiler construction 用于编译/反编译二进制数据文件的通用实用程序或库?,compiler-construction,binaryfiles,binary-data,decompiler,utility,Compiler Construction,Binaryfiles,Binary Data,Decompiler,Utility,我有各种二进制文件格式,我需要将它们转储为某种文本格式,编辑然后重新编译(可能是二进制格式的一个稍微不同的版本)。当然,我可以用C/C++编写一堆实用程序代码来完成这类工作,也许还可以利用一个库来处理文本方面的事情(XML或JSON或其他),但这是一种任务模式,在我的工作中不断出现,在我看来,可能已经存在某种用于此类工作的通用工具 显然,需要某种方式来描述二进制文件格式-模式或类似的格式-这需要支持所有明显的数据类型(字符串、各种大小的整数、布尔值等,浮点值也不错),以及计数字段、长度字段、填充

我有各种二进制文件格式,我需要将它们转储为某种文本格式,编辑然后重新编译(可能是二进制格式的一个稍微不同的版本)。当然,我可以用C/C++编写一堆实用程序代码来完成这类工作,也许还可以利用一个库来处理文本方面的事情(XML或JSON或其他),但这是一种任务模式,在我的工作中不断出现,在我看来,可能已经存在某种用于此类工作的通用工具

显然,需要某种方式来描述二进制文件格式-模式或类似的格式-这需要支持所有明显的数据类型(字符串、各种大小的整数、布尔值等,浮点值也不错),以及计数字段、长度字段、填充/对齐等,处理数据文件中的所有典型内容。支持endianness也很有用,因为二进制文件的endianness可能与我们运行的平台不同

如果这样的东西还不存在的话,我会非常惊讶,但到目前为止,我还没有通过谷歌找到运气(你怎么能简明扼要地描述这样一个实用程序或库?)。我记得见过的最接近这一点的是苹果公司在“经典”Mac OS时代的资源编译器/反编译器实用程序。它们使用类似C的语法,头文件中有资源模板定义来描述各种二进制资源的格式,您可以在类似C的源语法和二进制资源之间编译/反编译。

,二进制XML描述语言,以及相应的库,似乎适合您的目的

这本书可能也很有趣,它演示了如何编写一个库来解析Lisp代码的150行(二进制)MP3文件中的ID3标记*

*现在,我可能不会使用Lisp,而是一种更现代的函数式语言,如。有关示例,请参见


另外,
二进制数据库
二进制数据文件库
是谷歌的好关键词。

Mac应用商店中的“SynalyzeIt”可能值得一看……

非常好-谢谢-BinX似乎正是我需要的。我很高兴我没有只是涉水而开始从零开始编写这些东西Oops-Take to soon-BinX似乎有一些限制性许可。我想我得继续找。无论如何,谢谢…这里有一个开源版本:。谢谢-我原以为开源许可证只供学术用户使用(通过该页面的链接暗示)-但许可证本身似乎没有任何这样的条件,所以说到底可能没问题。我将进一步研究它…谢谢-这看起来像一个伟大的工具,而且是免费的!我现在正在下载。。。