首页 文章

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

提问于
浏览
3

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

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

如果这样的事情不存在我会感到非常惊讶,但到目前为止我还没有通过谷歌运气(你怎么甚至简洁地描述这样的实用工具或图书馆?) . 我记得最接近的是Apple的资源编译器/反编译器实用程序在“经典”Mac OS时代 . 这些使用了类C语法,头文件中的资源模板定义用于描述各种二进制资源的格式,您可以在这种类似C的源语法和二进制资源之间进行编译/反编译 .

2 回答

  • 2

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

    同样感兴趣的可能是Practical Common Lisp本书的Chapter 24. Practical: Parsing Binary Files,该书演示了如何在 150 lines 的Lisp代码中编写用于解析(二进制)MP3文件中的ID3标签的库 . *

    *现在,我可能不会使用Lisp,而是更现代的功能语言,如Clojure . 有关示例,请参阅Reading binary data in Clojure .

    附: binary data librarybinary data file library 是Google的好关键字 .

  • 5

    Mac App Store中的“SynalyzeIt”可能值得一看......

相关问题