3

我有我需要倾倒某种文本格式,编辑,然后重新编译(可能略有不同版本的二进制格式的)各种二进制文件格式。当然,我可以写一堆的C/C++做这种事情实用代码,也许利用了事物的文字侧(XML或JSON或其他)图书馆,但是这是保持种植了任务模式在我的工作中,在我看来,可能应该已经存在某种用于这种工作的通用工具。用于编译/反编译二进制数据文件的通用实用程序或库?

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

我会很惊讶,如果这样的事情已经不存在,但我有没有运气通过谷歌迄今(你怎么甚至描述了这样一个实用程序或库简洁?)。我记得最近看到的是苹果公司的资源编译器/反编译器公用程序,它们在“Classic”Mac OS时代就已经出现。它们使用类C语法,头文件中的资源模板定义用于描述各种二进制资源的格式,并且可以在此C类源语法和二进制资源之间进行编译/反编译。

回答

5

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

也感兴趣的可能是Practical Common Lisp书,它演示了如何写一个库中150线的Lisp代码中(二进制)MP3文件解析ID3标签的Chapter 24. Practical: Parsing Binary Files。 *

*现在,我可能不会使用Lisp的,但像Clojure一个更现代的函数式语言。例如,参见Reading binary data in Clojure

P.S. binary data librarybinary data file library是Google的良好关键字。

+0

非常好 - 谢谢 - BinX看起来正是我所需要的。我很高兴我没有参与进来,从头开始编写这些东西。 ;-) – 2010-01-27 14:52:18

+0

糟糕 - 即将发表 - BinX似乎有一些限制性许可。我想我必须继续寻找。无论如何感谢... – 2010-01-27 15:04:43

+0

这里有一个开源版本:http://www.edikt.org.uk/binx/licence_open.html。 – 2010-01-27 16:35:48

2

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

+0

谢谢 - 这看起来像一个伟大的工具,也是免费的!我现在只是下载它... – 2011-07-09 14:41:16

相关问题