LoginSignup
1
1

More than 1 year has passed since last update.

【実践】fileコマンドの使い方

Last updated at Posted at 2022-01-09

:page_facing_up:fileコマンドとは

ファイルタイプを識別するものです!
拡張子の有無にかかわらず調べてくれます
CTFではよく使うコマンドではないでしょうか?

:pushpin:使い方

使い方はシンプルで以下のようにコマンドを入力するだけです

$ file [解析したいファイル]

:pencil2:実際に使ってみる

今回使っているファイルはすべてGitHubに載せています。手元でも動かしてみてください!

:computer:実行環境

  • Windows10 Pro
  • WLS2 Ubuntu(20.04)

file1の解析:テキストファイル

$ file file1

実行結果

file1: ASCII text

※環境によってはwith CRLF line terminatorsが追加で表示されるかもしれません
出力よりこのファイルはアスキーコードで書かれたテキストファイルであることが分かりました!
catで内容を見てみます

$ cat file1
Hello World

file2の解析:実行ファイル(Windows)

$ file file2

実行結果

file2: PE32+ executable (console) x86-64, for MS Windows

PE32+ executableの部分は実行ファイルの形式を示しています。PEとはwindows上で使用される実行ファイルです
executableは「実行可能」という意味の英単語ですね!
(console)とあることからコンソールを利用することが分かります

file3の解析:実行ファイル(Linux)

$ file file3

実行結果

file3: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=6bfad10dfc5d45f9218806fe0c7cc6e6d9049ddc, for GNU/Linux 3.2.0, not stripped

さっきよりも少し長いですね。。。
ELFとはLinuxなどで用いられる実行ファイル形式です。よって、このファイルはLinux上で実行されるものであることが分かります!
LSBとはエンディアンがリトルエンディアンであることを示しています。エンディアンとはバイトオーダーのことです
末尾のnot strippedは実行ファイル内のシンボル情報が削除されずに残っていることを意味します
シンボル情報が残っていると内部の関数名や変数名の情報が得られることがあります!

実際に実行することもできます

$ ./file3
Hello World

file4の解析:画像(PNG)

$ file file4

実行結果

file4: PNG image data, 200 x 200, 8-bit/color RGB, non-interlaced

fileコマンドでは画像ファイルであることも特定できます!
今回の場合はPNG形式の200 x 200の画像ファイルであることが分かりました!

中身の画像は以下のものです
file4.png

:pencil:終わりに

fileコマンドでは様々なファイルの種類を特定することができることが分かったと思います!
実際に手元で色々なファイルでどのような出力が出るか試してみてください!

より詳しいことはここ↓に乗っています

参考文献

碓井利宣・竹迫良範・廣田一貴・保要隆明・前田優人・美濃圭佑・三村聡志・八木橋優(2015)『セキュリティコンテストチャレンジブック:CTFで学ぼう!情報を守るための戦い方』マイナビ出版

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1