[Joints2020] – crackme

Diberikan sebuah binary 64 bit not stripped. Pseudocode dari fungsi main adalah sebagai berikut:

Dilihat program meminta input sepanjang 25 karakter dan kemudian input akan diproses oleh fungsi checker() dan bila hasil dari checker() adalah true maka fungsi unlock() akan dipanggil. Berikut pseudocode dari fungsi unlock():

Fungsi tersebut akan membuka file flag.txt pada server nc.

Berikut pseudocode dari fungsi checker():

Dari pseudocode diatas, dilihat terdapat banyak hitungan untuk validasi huruf atau angka mana yang memenuhi syarat agar bisa dapat flag. Untuk menyelesaikan hitungan-hitungan ini, kita dapat menggunakan z3 solver. Dari sana, z3 akan mencari karakter apa saja yang memenuhi kriteria tersebut. Berikut script yang digunakan:

Berikut hasil dari eksekusi script:

Dari hasil yang didapat tinggal memisahkan per 5 karakter.

745UI-82JFS-9KNDB-CBJO7-OUM4G

Masukkan karakter ke nc server dan mendapatkan flag.

Leave a Reply

Your email address will not be published. Required fields are marked *