我正在尝试解析二进制文件,我需要一些帮助。我在网上寻找“解析二进制文件”,“阅读二进制文件”,“阅读二进制文本”等等,我没有运气。
例如,我如何从这个二进制文件中读取此文本?任何帮助将非常感激。我正在使用powershell。
答案 0 :(得分:30)
您似乎有一个二进制文件,其文本位于固定位置或其他可退出位置。 Get-Content
可能会帮助你,但是......它会尝试将整个文件解析为字符串数组,从而创建一个“垃圾”数组。此外,你不会知道特定的“人物绳索”在文件位置是什么。
您可以尝试.NET类File
来阅读和Encoding
进行解码。这只是每次通话的一条线:
# Read the entire file to an array of bytes.
$bytes = [System.IO.File]::ReadAllBytes("path_to_the_file")
# Decode first 12 bytes to a text assuming ASCII encoding.
$text = [System.Text.Encoding]::ASCII.GetString($bytes, 0, 12)
在您的实际情况中,您可能会在循环中查找字节数组,查找特定字符串序列的开头和结尾,并使用这些索引指定要从{提取文本的字节范围。 {3}}
我提到的.NET方法在.NET Framework 2.0或更高版本中可用。如果您安装了PowerShell 2.0,那么您已经拥有它。
答案 1 :(得分:6)
如果您只是寻找字符串,请查看SysInternals的strings.exe实用程序。
答案 2 :(得分:3)
您可以通过Get-Content -Encoding字节读取文件。我不知道如何解析它。