CTFに使用するツール類まとめ
CTFによく使用するツールやコマンドの、主に自分の備忘録としてのまとめです。
何か思い出したらまた適当に更新します。
基本
http://www.google.co.jp/
困ったときはこれ。
manコマンド
コマンドの使い方がわからないときに。コマンドに-hや--helpオプションを付けても見られるものもあります。
fileコマンド
ファイルの種類を確認するコマンドです。
stringsコマンド
バイナリファイル中の文字列を抽出するコマンドです。-nオプションで最低文字数を指定できます。
istrings
バイナリファイルからASCII文字列の他に日本語文字列も抽出することができます。
バイナリ
PEditor
PEファイルの情報の閲覧・編集ができます。
PEiD
パッカーの種類を判定できます。
Resource Hacker
ボタンなどのリソースのIDが確認できます。
OllyDbg, Immunity Debugger
exe解析用。
crackmeなどを解くのに使用できます。
IDA Pro
高機能なデバッガです。
逆アセンブルコードのツリー表示は重宝します。
WinDbg
64ビット用のものを使うと、64ビットのexeも解析できます。
Breakキー(またはCtrl+ScrLk)でプログラムを止める、gで再開、~0kでスレッド0のスタックを表示、bp <アドレス>でブレークポイントをセット、blでブレークポイント一覧を表示、bc <ブレークポイントの番号>でブレークポイントを削除、tでステップイン、u <アドレス>で逆アセンブル、rでレジスタの内容を表示、dd <アドレス>でメモリダンプを表示、eb <アドレス> <値1 値2 …>でメモリを書き換えることができます。
gdbコマンド
ELFファイルなどの解析に使用します。
disas[semble] <関数名>で逆アセンブルできます。
set disassembly-flavor intelでインテル記法で逆アセンブルします。
display/i $eip(または$pc, $rip)で次に実行される命令を常に表示します。
stepi(またはsi)でステップイン、nexti(またはni)でステップオーバー、fini[sh]でステップアウトできます。
b[reak] *0xdeadbeefのようにアドレスを指定してブレークポイントをセットすることもできます。
set {<型>}<アドレス> = <値>でメモリの内容を直接編集できます。
set $rip = 0xdeadbeefやset $esp += 0x20のようにレジスタの値も変更できます。
set follow-fork-mode childで、forkしたときにデバッギが自動的に子プロセスに切り替わります。
i[nfo] r[egisters]でレジスタの内容を表示します。
objdumpコマンド
ELFなどオブジェクトファイルの情報を確認できます。
objdump -h <バイナリファイル名>でヘッダの情報を確認できます。
objdump -M intel -S <バイナリファイル名>でIntel記法で逆アセンブルできます。
objdump -s <バイナリファイル名>でバイナリファイルのすべてのセクションの内容を表示します。
-j <セクション名>で特定のセクションだけを抜き出して処理できます。
xxdコマンド
xxd -p(-psでも可)でバイナリ→16進文字列、xxd -r -pでバイナリ文字列→バイナリに変換できます。
hexdumpコマンド
hexdump -Cvでバイナリエディタのように表示できます。(xxdやod -tx1 [-c]なども可)
ndisasmコマンド
ndisasm -u <バイナリファイル名>でバイナリファイルを逆アセンブルできます。
Web
Fiddler2
TextWizardで様々な方法で文字列のデコードができます(多分使い方間違ってる)。
DEncoder2
http://tools.nash-dev.com/
様々な方法で文字列のエンコード・デコードができます。
md5sumコマンド
md5が計算できます。
sha1sumコマンド
sha1が計算できます。
OnlineHashCrack
http://www.onlinehashcrack.com/
md5やsha1などのハッシュ値の逆算が(データベースにあれば)できます。
フォレンジック
Autopsy
USBメモリのダンプファイルなどからファイルを読み出せます。
削除されたファイルも読み出すことができます。
foremost
バイナリファイルの中からファイルを探しだして復元します。
Scalpel
http://www.digitalforensicssolutions.com/Scalpel/
バイナリファイルからファイルを取り出して復元します。
数学
wxMaxima
数式処理ソフトウェアです。100乗根なども簡単に求められます。
bcコマンド
非常に大きな桁数の小数の計算ができます。
scale=1000;1/12345
などとすると、1/12345の値が小数点以下1000桁まで表示されます。
factorコマンド
素因数分解ができます。ただし、32bit環境では2 ^ 64 - 1までしか扱えません。
その他
Lhaplus
パス付きzipのブルートフォースができます。
JohnTheRipper
/etc/shadowファイルのクラックができます。
Gimp
高機能な画像編集ソフトです。
特殊なフォーマットの画像の閲覧などに使用できます。
Audacity
音声ファイルの波形が確認できるソフトウェアです。
モールス信号の音声ファイルが読みやすくなります。
Perl
テキストの処理など便利です。
文字列同士のXOR、system("command");やmy $result = `command`;など重宝します。
ideone.com
http://ideone.com/
Web上でコードの実行ができます。
brainf*ckやWhitespaceなどの言語も使えます。
revコマンド
入力された文字列を逆順に出力します。
Steghide
ステガノグラフィツール。