代码之家  ›  专栏  ›  技术社区  ›  Paul R

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

  •  3
  • Paul R  · 技术社区  · 16 年前

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

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

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

    2 回复  |  直到 10 年前
        1
  •  5
  •   ax. Clement Herreman    16 年前

    BinX ,二进制XML描述语言,加上相应的库,似乎适合您的目的。

    也可能会引起兴趣 Chapter 24. Practical: Parsing Binary Files Practical Common Lisp 这本书演示了如何编写一个库,用于在中解析MP3文件(二进制)中的ID3标记 Lisp代码的实现*

    *现在,我可能不会使用Lisp,而是一种更现代的函数式语言,如 Clojure . 看见 Reading binary data in Clojure

    附笔。 binary data library binary data file library

        2
  •  2
  •   biscuits    15 年前

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

    推荐文章