実行可能ファイルまたは他のバイナリファイルからすべてのASCII文字列を抽出するLinuxコマンドはありますか?私はgrepでそれができると思いますが、そのようなコマンドが存在したことをどこかで聞いたことを覚えていますか?
あなたが探しているコマンドはstrings
です
その名前は一目瞭然で、与えられたファイルから印刷可能な文字列を取得します。
man strings
は以下を与えます:
STRINGS(1)
[〜#〜]名前[〜#〜]
strings-オブジェクトまたは他のバイナリファイルで印刷可能な文字列を検索します[〜#〜] synopsis [〜#〜]
strings [ - ] [ -a ] [ -o ] [ -t format ] [ -number ] [ -n number ] [--] [file ...]
stringsコマンドは、この特定のタイプの問題を解決する方法です。 grepにパイプする必要がある場合もあります。
例えば:
strings somebinaryfile | grep textuwanttofind
コマンドは存在し、呼び出されます...文字列!
odコマンドはこれを行うことができます:
od -c *filename*
文字列の使用に関する問題は、周囲の非印刷可能オブジェクトが表示されず、文字列の最小長に注意する必要があることです。
使用に関する問題
od -c FILE
hexdump -C FILE
このために私が気に入っているのは ZTreeWin LinuxのWINEで実行することです。これを使用すると多くのことができますが、ファイル内の検索やバイナリの編集は特に便利です。
素晴らしいytreeパッケージは、多くのLinuxとUnixのバリアントで利用可能で、あらゆるファイルの優れた16進ダンプビューを備えていますが、ZTreeWin(およびその16ビットの前身であるXTree)の検索はありません。