29

バイナリ ファイルを解析しようとしていますが、どこに行けばよいか助けが必要です。「バイナリファイルの解析」、「バイナリファイルの読み取り」、「バイナリ内のテキストの読み取り」などをオンラインで探しましたが、運がありませんでした。

たとえば、このバイナリ ファイルからこのテキストを読み取るにはどうすればよいでしょうか。どんな助けでも大歓迎です。私はパワーシェルを使用しています。

ここに画像の説明を入力

4

3 に答える 3

38

固定または推定可能な位置にテキストを含むバイナリ ファイルがあるようです。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 をインストールした場合は、既にインストールされています。

于 2012-05-20T09:33:36.470 に答える
6

文字列だけを探している場合は、SysInternals のstrings.exeユーティリティを調べてください。

于 2012-05-20T20:47:59.587 に答える
4

Get-Content -Encoding byte を介してファイルを読み取ることができます。私はそれを解析する方法がわかりません。

于 2012-05-20T08:59:55.360 に答える