Stringsの使い方

ファイルに埋め込まれた文字列を検索することができるコマンドラインツール。

ASCIIやUnicodeなどの制約なく検索ができます。

YouTube

動画による説明はこちら。

公式サイト

https://docs.microsoft.com/en-us/sysinternals/downloads/strings

オプション

パラメーター 説明
-nobanner Stringのバナー表示を出力しない。後工程でsortなどの別のUtilityを使う際に有効
-a ASCIIコード文字列のみ
-u Unicode文字列のみ
-s ディレクトリを再帰的に検索
-n 検索する文字列の長さ(デフォルトは3)
-o オフセット値も表示する(オフセット値=ファイル内で文字列が始まる場所を示す)
-f ファイルの指定したオフセット値から文字列を検索する
-b 検索した範囲をファイルの先頭からのバイト数

実施例 実行ファイルの中の文字列を検索

実行ファイルを用意して、それに対して文字列検索を行います。
検索対象の実行ファイルのソースコードは以下の通り。

ConsoleApplication1.cpp

#include <iostream>
int main()
{
    std::cout << "Hello World!" << std::endl;
}

実行ファイル(exe)を作り、この実行ファイルに対してstringを実行します。
例では、指定した文字数以上のものを検索してから、「Hello World!」の文字列を抽出しています。

> strings.exe -nobanner -n 12 .\ConsoleApplication1.exe | ? {$_ -eq "Hello World!"}
Hello World!

「Hello World!」という文字列を検索できました。

また、findstrを使用して文字列を見つけることもできます。

> strings.exe -nobanner -n 12 .\ConsoleApplication1.exe | findstr /i "Hello World!"
Hello World!

スポンサーリンク