翻译回未知的二进制文件!?可能吗?

时间:2011-12-15 13:14:47

标签: c# winforms binary decode binaryreader

我有一个程序将结果文件保存在二进制文件中。在程序中也可以将结果文件导出为XML格式。

由于程序本身在浏览其结果时非常糟糕,我自己编写了一个程序来读取这些结果文件,但显然使用的是XML格式。

问题是,从二进制文件导出的XML文件非常庞大!虽然原始程序可以使用的二进制文件大约是100 KB,但导出到XML的同一文件大约是2~3 MB。

我想知道有没有办法可以找到如何阅读原始二进制文件!

2 个答案:

答案 0 :(得分:2)

要从二进制文件中获取数据,您需要知道它的结构。如果你不知道结构,我认为这将是一个毫无希望的努力。 xml文件要大得多,因为它包含除数据之外的结构。你可以阅读和解释它。

答案 1 :(得分:1)

您需要阅读程序源代码(如果不可用) - 在ILDASM或Reflector中打开此程序,并尝试了解如何创建二进制文件。可能这是使用二进制序列化完成的。

您可以定义自己的类型,它们是原始类型的精确副本,包括序列化属性,并使用二进制序列化加载它们。

但是,第三方文件格式的每次更改都可能要求您更改程序。我认为最好使用XML。