通用实用程序或库编译/反编译的二进制数据文件?
-
23-09-2019 - |
题
我有我需要转储到某种文本格式,编辑的,然后重新编译(可能以一个稍微不同的版本的二进制格式的)各种二进制文件格式。当然,我可以写一堆的C / C ++做这种事情实用代码,也许利用了事物的文字侧(XML或JSON或其他)图书馆,但是这是保持种植了任务模式在我的工作,在我看来,有可能应该存在某种通用工具的这样的工作的。
显然,将需要说明的二进制文件格式的一些方法 - 模式或一些这样的 - 这将需要支持所有的明显的数据类型(字符串,各种尺寸,布尔变量等整型,浮点型将是很好太),事情就是这样计数字段,长度字段,填充/对齐方式等,来处理所有你在数据文件中找到典型的东西。这也将是有大小端的支持有用,因为二进制文件可能有不同的字节顺序比我们正在运行的平台。
我会非常惊讶,如果这样的事情已经不存在,但我有没有运气通过谷歌迄今(你怎么甚至描述了这样一个实用程序或库简洁?)。这个我曾经记得看到最近的事情是苹果公司的资源编译器/反编译器公用事业“经典”的Mac OS的天回。这些中使用的类似C的语法,用资源模板定义在头文件中描述各种二进制资源的格式,你可以编译该C状源语法和二进制资源之间/反编译。
解决方案
BINX,所述二进制XML描述语言,加上相应的库,似乎适合你的目的。
同样感兴趣的可能是第24章实用:解析二进制文件一> 实用的Common Lisp 的书,它演示了如何写一个库,用于在分析ID3标签(二进制在<强> 150线 强>的Lisp代码)MP3文件。 *
*现在,我可能不会使用Lisp语言,而是一种更现代的函数式语言如 Clojure的。看到Clojure中 读取二进制数据一个例子。
P.S。 binary data library
或binary data file library
是谷歌好的关键字。
其他提示
“SynalyzeIt” 可能是值得一试...