pwnable.kr のメモ【flag】
http://pwnable.kr の flag を解いたのでメモ
以下、問題文。とりあえずダウンロードしてみた。
Papa brought me a packed present! let's open it. Download : http://pwnable.kr/bin/flag This is reversing task. all you need is binary
ダウンロードしたファイルの種類を確認して、実行権限を与えて実行。
$ file flag flag: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, stripped $ ls -l $ chmod +x flag $./flag I will malloc() and strcpy the flag there. take it.
なんかメッセージがでた。試しに gdb で実行を確認してみようとするがうまくいかなかったので strings
コマンドで実行ファイルの中身をみたら以下のような文を発見した。どうやら UPX というソフトウェアで圧縮されているらしいので解凍する必要があるっぽい。
$Info: This file is packed with the UPX executable packer http://upx.sf.net $
解凍すると無事、gdb で実行を確認することができるようになった。
gdb-peda$ disas main
main のアセンブリコードを確認すると、以下のような行を発見。
0x0000000000401184 <+32>: mov rdx,QWORD PTR [rip+0x2c0ee5] # 0x6c2070 <flag>
上記のアドレスにブレークポイントを指定して再び実行して rdx の中身を確認して終わり。
gdb-peda$ b *main+32 gdb-peda$ run gdb-peda$ ni gdb-peda$ x/s $rdx