Más contenido relacionado
La actualidad más candente (20)
Similar a ctfで学ぼうリバースエンジニアリング (20)
ctfで学ぼうリバースエンジニアリング
- 6. CTFとは
● Capture The Flagの略。
● セキュリティ技術を競うコンテスト。
● 有名なCTFでは日本では「SECCON」、 海外では
「DEFCON」などがある。
● CTFで問われる技術の中に、
リバースエンジニアリングが存在する!
- 8. SECCON2015 Online CTF binary100
Reverse-Engineering Android APK 1
問題文:じゃんけんに1000回連続で勝ち続けよ
rps.apk ← 実行ファイルが落ちてくる
(解答は SECCON{hogehoge} の形式)
- 14. if (1000 == MainActivity.this.cnt) {
localTextView.setText("SECCON{" + String.
valueOf((MainActivity.this.cnt + MainActivity.this.
calc()) * 107) + "}");
}
つまり・・・
解答:SECCON{ (1000+calc()の値) * 107 }
- 17. x86フォルダ内のlibcalc.soをobjdumpで逆アセンブル!
$ objdump -d libcalc.so
<Java_com_example_seccon2015_rock_1paper_1scissors_
MainActivity_calc>:
400: b8 07 00 00 00 mov $0x7,%eax
405: c3 ret
movは値をレジスタ(ここではeax)に格納する命令。
7をeaxに格納し、戻り値としてeaxを返している。
soファイルをリバースエンジニアリング!
- 18. x86フォルダ内のlibcalc.soをobjdumpで逆アセンブル!
$ objdump -d libcalc.so
<Java_com_example_seccon2015_rock_1paper_1scissors_
MainActivity_calc>:
400: b8 07 00 00 00 mov $0x7,%eax
405: c3 ret
movは値をレジスタ(ここではeax)に格納する命令。
7をeaxに格納し、戻り値としてeaxを返している。
soファイルをリバースエンジニアリング!
calc()は7を返すことがわかる!