TCP/IPパケットの読み方
解析の手順
- バイナリファイルに隠されたフラグ文字列を探索する
- 文字列が暗号化されている場合は復号する
探索ツール
file ファイルの種類を判別する
使い方
$ file a.obj
インストール方法
Linuxに標準で入っています
strings ファイル中の文字列を探索する
使い方
$ strings a.obj
インストール方法
Linuxに標準で入っています
binwalk ファイル中に埋め込まれた別のファイルを探索する
使い方
$ binwalk a.obj
インストール方法
$ git clone https://github.com/refirmlabs/binwalk
$ cd binwalk
$ python setup.py install
7za ファイル中に埋め込まれたzipファイルを探索する
使い方
$ 7za L a.obj
インストール方法
$ yum install -y epel-release
$ yum install -y p7zip
7za zipファイルを解凍する
使い方
$ 7za x a.obj
解読ツール
base64 base64エンコードされた文字列をデコードする
使い方
$ echo 解読したい文字列 |
base64 --decode
インストール方法
Linuxに標準で入っています
base58 base58エンコードされた文字列をデコードする
使い方
$ echo 解読したい文字列 |
python -c 'import base58, sys;
print(base58.b58decode(sys.stdin.read()[:-1]))'
インストール方法
$ yum install -y wget
$ wget https://bootstrap.pypa.io/get-pip.py
$ python get-pip.py
$ pip install base58
urllib パーセントエンコードされた文字列をデコードする
使い方
$ echo 解読したい文字列 |
python -c 'import urllib, sys;
print(urllib.unquote_plus(sys.stdin.read()[:-1]))'
インストール方法
Linuxに標準で入っています
tr シーザー暗号(ROT13)を解く
使い方
$ echo 解読したい文字列 | tr A-Z N-ZA-M
インストール方法
Linuxに標準で入っています
問題
このファイルに隠されているフラグを探してください。 フラグの形式は FLAG_Expression です。
解答
- Ctrl+A
FLAG_WELCOMETOTHECTF