Xorban

Description

Basic XOR

format flag : TechnoFair11{..}

Author: macaril

Diberikan chall.py dan output.txt.

import random
from secret import flag

key = [random.randint(1, 256) for _ in range(len(flag))]

xorban = []
enc = []
for i, v in enumerate(key):
    k = 1
    for j in range(i, 0, -1):
        k ^= key[j]
    xorban.append(k)
    enc.append(flag[i] ^ v)

with open("output.txt", "w") as f:
    f.write(f"{xorban=}\n")
    f.write(f"{enc=}\n")

Pada soal ini, basicnya adalah xor. Kita hanya perlu memahami hubungan antara xorban dengan plaintext. Setelah melakukan eksplorasi, saya menemukan fakta berikut (angka di bawah tidak ada hubungannya dengan soal, karena saya mencoba menjalankan chall.py sendiri).

Untuk elemen kedua dan seterusnya dari xorban, berlaku bahwa key xor yang digunakan pada index i adalah: xorban[i] ^ xorban [i-1]. Langsung saja, berikut adalah kode solver yang saya gunakan.

Flag: TechnoFair11{4nyujin_S4id_th1s_is_Cl4ssic}

Last updated