我正在尝试解析二进制文件,我需要一些关于去哪里的帮助。我在网上寻找“解析二进制文件”、“读取二进制文件”、“读取二进制文件中的文本”等,但我没有任何运气。
例如,我如何从这个二进制文件中读取这个文本?任何帮助将非常感激。我正在使用powershell。
我正在尝试解析二进制文件,我需要一些关于去哪里的帮助。我在网上寻找“解析二进制文件”、“读取二进制文件”、“读取二进制文件中的文本”等,但我没有任何运气。
例如,我如何从这个二进制文件中读取这个文本?任何帮助将非常感激。我正在使用powershell。
似乎您有一个二进制文件,其文本位于固定或其他可推导的位置。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)
在您的实际情况下,您可能会在循环中遍历字节数组,查找特定字符串序列的开始和结束,并使用这些索引来指定要从中提取文本的字节范围GetString
。
我提到的 .NET 方法在 .NET Framework 2.0 或更高版本中可用。如果您安装了 PowerShell 2.0,那么您已经拥有它。
如果您只是在寻找字符串,请查看 SysInternals 的strings.exe实用程序。
您可以通过 Get-Content -Encoding byte 读取文件。我不确定如何解析它。