GNU/Linux >> Linux の 問題 >  >> Linux

初心者向けのLinux文字列コマンドチュートリアル(5つの例)

人間が読める文字列を取得するためにバイナリ/実行可能ファイルの内部を調べることは、誰もが行うような作業ではありませんが、これを行うように求められた場合はどうなりますか?エディターでファイルを開き、手動で検索するのは、洗練されたソリューションではありません。じゃあ何をすればいいの?はい、あなたはそれを正しく推測しました-あなたのためにこれを行うコマンドラインユーティリティがあります。

問題のツールは文字列と呼ばれています 、およびこのチュートリアルでは、わかりやすい例を使用して、このコマンドの基本について説明します。ただし、その前に、この記事のすべての例がUbuntu16.04LTSマシンでテストされていることを言及する価値があります。

Linux文字列コマンド

Stringsコマンドは、基本的に、印刷可能な文字の文字列をファイルに出力します。その構文は次のとおりです。

strings [OPTIONS] FILENAME

そして、ツールのマニュアルページで説明されているのは次のとおりです。

       For each file given, GNU strings prints the printable character
       sequences that are at least 4 characters long (or the number given with
       the options below) and are followed by an unprintable character.

       Depending upon how the strings program was configured it will default
       to either displaying all the printable sequences that it can find in
       each file, or only those sequences that are in loadable, initialized
       data sections.  If the file type in unrecognizable, or if strings is
       reading from stdin then it will always display all of the printable
       sequences that it can find.

       For backwards compatibility any file that occurs after a command line
       option of just - will also be scanned in full, regardless of the
       presence of any -d option.

       strings is mainly useful for determining the contents of non-text
       files.

以下は、Stringsコマンドがどのように機能するかについての良いアイデアを与えるはずのQ&Aスタイルの例です。

Q1。文字列コマンドの使用方法は?

基本的な使用法はかなり簡単です。ファイル名を入力として渡し、コマンドを実行するだけです。

文字列は主にバイナリ/実行可能ファイルから情報を抽出するために使用されるため、すべての例でそのようなファイルを1つ使用することに注意してください。

例:

strings test

このコマンドが私のシステムで生成した出力は次のとおりです。

Q2。カスタム文字制限を強制するにはどうすればよいですか?

最初に説明したように、文字列ツールのデフォルトの動作は、少なくとも4文字の長さの文字シーケンスのみを印刷することです。ただし、必要に応じて、-nコマンドラインオプションを使用してこの制限を変更できます(新しい制限を示す番号を渡す必要があります)。

たとえば、制限を2に設定する場合、これを行う方法は次のとおりです。

strings -n 2 test

これで、出力にも2文字と3文字の文字列が表示されます。

Q3。文字列に文字シーケンスのオフセットを印刷させる方法は?

文字列に出力に表示される文字シーケンスのオフセットも表示する場合は、-tコマンドラインオプションを使用してこれを実行できます。これには、オフセットの基数を指定する単一の文字入力を指定する必要があります-'o' 8進数の場合は「x」、16進数の場合は「x」、10進数の場合は「d」。

例:

strings -t d test

そして、これが私のシステムで生成された出力です:

これで、出力の文字列の前にそれぞれのオフセットが表示されることがわかります。

Q4。文字列にファイル全体をスキャンさせる方法は?

文字列の構成方法に応じて、入力ファイル全体をスキャンする場合としない場合があります。ただし、ツールがファイル全体(ロード可能な初期化されたデータセクションだけでなく)を読み取ることを絶対に確認したい場合は、-aコマンドラインオプションを使用してください。

例:

strings -a test

逆に、文字列にファイル内の初期化されてロードされたデータセクションの文字列のみを表示する場合は、-dコマンドラインオプションを使用します。

strings -d test

Q5。セパレータを変更するには?

お気づきのとおり、デフォルトでは、Stringsで使用される区切り文字は改行です。ただし、必要に応じて、-sコマンドラインオプションを使用してカスタム区切り文字を使用できます。

例:

strings -s [[[]]] test

結論

Stringsコマンドは、有用な情報を得るためにバイナリ/実行可能ファイルを掘り下げる場合に非常に便利なツールです。ここでは、いくつかの重要なコマンドラインオプションについて説明しました。練習してください。完了したら、ツールのマニュアルページにアクセスして詳細を確認してください。


Linux
  1. 初心者向けのLinuxcdコマンドチュートリアル(8例)

  2. 初心者向けのLinux日付コマンドチュートリアル(8例)

  3. 初心者向けのLinuxホスト名コマンドチュートリアル(5つの例)

  1. 初心者向けのLinux通信コマンドチュートリアル(5例)

  2. 初心者向けのLinuxdfコマンドチュートリアル(8例)

  3. 初心者向けのLinuxduコマンドチュートリアル(10例)

  1. 初心者向けのLinuxechoコマンドチュートリアル(5つの例)

  2. 初心者向けのLinuxenvコマンドチュートリアル(5つの例)

  3. 初心者向けのLinuxサイズのコマンドチュートリアル(6つの例)