【问题标题】:How do I extract ASCII data from binary file with unknown format, in Windows?如何在 Windows 中从未知格式的二进制文件中提取 ASCII 数据?
【发布时间】:2011-01-15 06:04:15
【问题描述】:

在 Windows 上,将内部结构未知且其内容本质上是 ASCII 的二进制文件转换回纯文本的最佳方法是什么?

理想情况下,转换会产生“人类”可读的版本。我认为该文件应包含以下内容:

Date: 10 FEB 2010
House: 345 Dogwood Drive
Exterior: Brick

【问题讨论】:

  • 解释“转换”。您想要一个可以撤消的无损转换吗?你想提取某种人类可读的描述吗?
  • 您编辑问题的方式看起来像是您希望该程序有效地对格式进行逆向工程。我很确定目前这是不合理的,除非您将自己限制在所有二进制数据的一小部分。

标签: windows binary ascii


【解决方案1】:

根据您想要实现的具体目标,hex dump 可能符合要求:它是一种纯 ASCII 格式,代表整个文件而不会丢失任何数据(但会浪费空间)。

它不是真正的人类可读的,但由于你没有解释你为什么要这样做,这是我能提供的最好的。

有several simple tools 在 Windows 上生成十六进制转储。

【讨论】:

    【解决方案2】:

    在 Linux/Unix 中:

    $ strings < unknown.dat > ascii-from-unknown.txt
    

    这当然不是一个“转换”,而是直接提取,只是过滤掉非 ASCII 字节。不过,它经常很有用。

    一般来说,如果不了解文件的内部格式,我认为你不能做得更好。

    【讨论】:

    • 我加了你,因为忘记添加 Windows 操作系统是我的错误。再次感谢您的帮助。
    • 还有 Windows 版本的字符串。例如:technet.microsoft.com/en-us/sysinternals/bb897439.aspx
    • 所有字符串都会寻找“N”个相邻的可打印字符,所以自己实现并不难。
    猜你喜欢
    • 2020-06-02
    • 2011-01-05
    • 2019-01-22
    • 2014-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    相关资源
    最近更新 更多