Reverse Engineering

Challenge
Link

Binary Pin (454 pts)

Magical Mystery Club (482 pts)

Pave The Way (494 pts)πŸ₯‡

Binary Pin (454 pts)

Description

-

Solution

Diberikan file jar , kemudian kami coba decompile. Disini kami sempat overthinking mengenai cara mengerjakannya , kemudian baru sadar disini tugas kita adalah memasukkan key yang benar. Dimana nilai key sendiri 9 bit , jadi possible sekali untuk di bruteforce , jadi tinggal bruteforce key dan dump resultnya lalu analisis manual atau grep .

Generate possible key

from itertools import product

for i in product(["0","1"],repeat=9):
    tmp = []
    for j in range(9):
   	 tmp.append(i[j])
    print(tmp)

Bruteforce key

Flag : COMPFEST13{brut3Force_AND_w1n_6965d74c2e}

Magical Mystery Club (482 pts)

Description

-

Solution

Diberikan file ELF 64 bit, kemudian kami coba decompile

Disini kami lakukan analisis pada fungsi main dan cast magic, cast magic untuk setiap indexnya nilai nya sama , jadi antar index tidak saling bergantung , jadi bisa dibruteforce per index. Berikut solver yang kami gunakan

Flag bisa dilihat pada file data atau tunggu sampai selesai script berjalan

Flag : COMPFEST13{n3Ver_Tru5t_M4tHemAg1cKal_tR1cK5s_n0BoDY_tH0u6hT_No_0ne_W0ulD_n0t1c3_4nYw4Y_98f66ab185}

Pave The Way (494 pts)

Description

-

Solution

Diberikan file jar , disini kami lakukan extract terhadap file jar tersebut. Nama filenya mirip yaitu diawali dengan c dan diikuti dengan angka, untuk mencari file mainnya ( entry point ) kita bisa liat di manifest.

Diketahui main classnya yaitu c239 , lakukan compile pada c239 maka class lain yang dipanggil akan ikut tercompile juga

Karena di file aslinya tidak ada print terhadap nilai flag maka kita perlu cari tahu di class mana method terakhir dipanggil. Caranya karena kita tahu nilai akhir flag adalah β€œ}” lakukan search pada file yang menambahkan β€œ}” pada variable object.

Ambil nama filenya , lalu lakukan perbandingan dengan file class tadi.

Didapatkan class terakhir yang diakses

Lakukan edit terhadap file tersebut yaitu dengan menambahkan print terhadap variable object

Disini kami sudah melakukan rewrite terhadap semua thread sleep menjadi 2 milisecond , entah kenapa ingin menulis 2 daripada 1 atau menghapusnya. Tapi 2 sudah termasuk sangat cepat. Selanjutnya compile file c375 lalu run kembali file c239 untuk mendapatkan flagnya

Flag : COMPFEST13{MaNiFeSt_file_15_ImpOrtAnt_4_jar_bafc2b182e}

Last updated