文字列cmdは、印刷可能な文字をバイナリファイルとして印刷します。この印刷可能な文字は実際に何を意味しますか?バイナリを生成するコード自体が印刷可能であることを意味します。
答え1
読み取り可能なコードは機械語コードに変換され、プリプロセッサによってコメントが削除されました。
ただし、プログラムのリテラル文字列は"Hello, World!"
実行時に引き続き使用できます。またstrip
、ユーティリティによって削除されない限り、デバッグツールで使用できるように、シンボル名(関数名や変数名など)がテーブルに含まれています。動的コードベースの名前も表示されます。
ほとんどのCプログラムには、-Hオプションを使用して表示できる独自のマニュアルページが含まれています。したがって、strings
マニュアルページ全体、すべての印刷されたフォーマット文字列、エラーメッセージなど、およびすべてのライブラリ呼び出しのリストも報告されますstrcmp@@GLIBC_2.2.5
。