Home
455 words
2 minutes
【Unix】stringsの解説
2025-02-24

最終更新:2025-02-24

概要#

stringsコマンドは、バイナリファイルや実行ファイルなどから印字可能な文字列を抽出するためのツールである。バイナリ内部のデバッグや調査に利用され、特定の文字列の存在確認などに役立つ。

使用方法は以下の通りである。

strings [オプション] ファイル

オプション一覧#

  • -n: 抽出する文字列の最小長さを調整できる。
  • -t: 文字列の開始位置を表示する。
  • -e: エンコーディングの指定が可能。

オプションとハンズオン#

以下、主要なオプションについて説明する。

1. -n [最小文字数] オプション#

・機能: 文字列として認識する最小文字数を指定する。デフォルトは4文字であるが、より長い文字列のみ抽出したい場合に使用する。

・使用例:

strings -n 5 binaryfile

・出力例:

HelloWorld
SampleData
Version1.2

(上記はbinaryfile内に5文字以上の印字可能な文字列が含まれている場合の出力例である。)

2. -t オプション(オフセット付き表示)#

・機能: 各文字列の先頭位置(オフセット)を表示する。数字の形式は’o’(8進数)、‘x’(16進数)、‘d’(10進数)のいずれかを指定できる。

・使用例:

strings -t x binaryfile

・出力例:

0000010 HelloWorld
00000fa SampleData
0000123 Version1.2

(上記は、各文字列の開始位置が16進数で表示される例である。)

3. -e オプション(エンコーディングの指定)#

・機能: バイナリ中の文字エンコーディングを指定する。デフォルトは、機械依存の設定であるが、s(short)、l(long)なども指定可能である。

・使用例:

strings -e l binaryfile

・出力例:

DataString1
InfoMessage
LogEntry

(上記は、リトルエンディアンとして文字列が解釈された場合の出力例である。なお、使用できるエンコーディングオプションはシステムや実装に依存する場合がある。)

【Unix】stringsの解説
https://ss0832.github.io/posts/20250224_strings_command_guide/
Author
ss0832
Published at
2025-02-24