XOR

Published on July 13, 2025

XOR

image

Kita diberikan sebuah file binary (xor) yang meminta input

image

Kemudian, kita membuka program tersebut menggunakan Ghidra untuk melakukan proses dekompilasi. Didapatkan fungsi berikut:

image image

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.

image

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.

image
Flag: LK25{remov1ng_symb0l_table5_is_4_comm0n_rev_tr1ck}
```