おはようございます!
駆け出しエンジニアのさわまりんです!
今回はLinuxコマンドの「strings」と「cat」について詳しく見ていきます。
はじめに
picoCTFでとある問題を解いていたときのことです。
普段通り、catでファイルの中身を見てみようと思ったら
文字化けで内容が何も読み取れませんでした。
そこでstringsを使用してみると見事にflag発見!
試してみたところ、
catで内容が正しく読み取れるファイルは
stringsでも内容を見ることができました。
そこで私は「strings最強やん」って思っていました。
それ以降は、基本はcatを使用するものの
困ったことがあればすぐにstringsを使用していました。
もちろんコマンドの詳細を知ることなく...
それぞれのコマンドの詳細
さすがに知らないまま使うことに危機感を覚えました。
それぞれ--help
で調べると以下のような説明がありました。
cat
Concatenate FILE(s) to standard output.
→ 標準入力のデータをそのまま標準出力に連結
strings
Display printable strings in [file(s)] (stdin by default)
→ 印刷可能な“文字列”として読める箇所を表示
つまり、catはファイルの中身をそのまま表示するのに対して、
stringsはファイルの中から文字列だけを抽出して表示します。
おわりに
「なぜか使える~」というノリでただ使うのではなく、
それぞれどのような違いがあるのか知っておくのは非常に重要ですね。
皆さんもわからないをわからないままにせず、
チラ見するだけでもいいので調べる習慣をつけてみてくださいね。