Sunday, March 1, 2015

Boston Key Party 2015: Wellington


Ini adalah soal reversing binary prolog dengan nilai 250 point.
wellington
Saya mengetahui bahwa binary ini adalah binary prolog dari:
- Soalnya yang menyatakan flagnya berakhiran dengan dot
- Binary mengandung string /usr/lib/gprolog-iso/bin
- Hasil disassembly ribet
Dulu saya adalah yang menyarankan dan melaksanakan supaya kelas prolog tidak memakai Turbo Prolog tapi lebih baik memakai GNU Prolog, dan sebagai admin, saya sempat mengeksplorasi GNU Prolog.
Soal ini mudah sekali diselesaikan dengan pemahaman prolog plus menggunakan ltrace. Dalam prolog, rule dan atom dibandingkan menggunakan strcmp (dan strlen untuk mengecek panjangnya).
ltrace –s 35 ./troll_log.4643d195d55746aa180abf7144909677 2>y
Kita memasukkan password “_.” yang akan match dengan rules/fact manapun (kita akan mendapat pesan WiN). Setelah itu kita bisa lihat di file lognya, misalnya baris-baris seperti ini:
strcmp("LOSE", "i_should_have_used_askhell_instead")                                        = -29
Dan itulah flagnya: i_should_have_used_askhell_instead. (seperti petunjuk, flag berakhiran dengan titik).

No comments:

Post a Comment