XOR
Published on July 13, 2025
XOR
Kita diberikan sebuah file binary (xor) yang meminta input
Kemudian, kita membuka program tersebut menggunakan Ghidra untuk melakukan proses dekompilasi. Didapatkan fungsi berikut:
Analisis program:
- Terdapat sebuah string panjang berisi karakter acak: “asdghkashdfclkamsdfjalxsdkjfxhcaksvjnalsckuqpoiewt”
- Program memilih beberapa karakter dari string tersebut dengan pola tertentu, lalu menyimpannya ke dalam variabel local_148. Karakter-karakter ini nantinya akan digunakan sebagai hasil pembanding akhir.
- Password yang dimasukkan pengguna akan di-XOR satu per satu dengan nilai dari array local_e8. Hasilnya kemudian disimpan di variabel local_108.
- Program akan membandingkan local_108 (hasil XOR dari input) dengan local_148. Jika sama, berarti password benar.
Karena kita tahu hasil akhirnya (local_148) dan kunci XOR-nya (local_e8), maka kita bisa membalik prosesnya. Berikut program yang kita buat untuk membantu.
Dalam program ini, program meminta user memasukkan password sepanjang 50 karakter. Password tersebut akan di-XOR satu per satu dengan array kunci (local_e8) dan hasilnya dibandingkan dengan string acuan (local_148) yang dibentuk dari string local_168. Jika hasil XOR cocok, maka password benar dan ditampilkan flagnya.
Flag: LK25{remov1ng_symb0l_table5_is_4_comm0n_rev_tr1ck}