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

2024-05-04

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

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

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


BinX http://www.edikt.org.uk/binx/,二进制 XML 描述语言,加上相应的库,似乎适合您的目的。

还可能感兴趣的是第 24 章实用:解析二进制文件 http://gigamonkeys.com/book/practical-parsing-binary-files.html of the 实用 Common Lisp http://gigamonkeys.com/book/书,演示了如何编写一个库来解析(二进制)MP3 文件中的 ID3 标签150行Lisp 代码。 *

* 如今,我可能不会使用 Lisp,而是使用更现代的函数式语言,例如Clojure http://clojure.org/. see 在 Clojure 中读取二进制数据 http://gnuvince.wordpress.com/2009/01/29/reading-binary-data-in-clojure/举个例子。

P.S. binary data library or binary data file library是谷歌的好关键词。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐