CTF inter iut 2018 - Eat, Sleep, XOR, Repeat (Crypto)

Récupérer le fichier original
textXOR.txt

Le magic number, tu trouveras

L’exercice n’est pas compliqué en soi, il est juste necessaire de retrouver le fichier original sachant que c’est un gif et qu’il a été xoré. Nous ne possédons pas la clé du XOR mais nous connaissons les 6 premiers bytes du fichier : le magic number

D’après wikipédia deux types existent, j’ai essayé les deux et c’est donc le deuxième qui a été utilisé : GIF89a

47 49 46 38 37 61
47 49 46 38 39 61

dexor.py

d =  open("EatSleepXorRepeat.gif", "rb").read()

key = [
    0x21 ^ 0x47,
    0x28 ^ 0x49,
    0x2A ^ 0x46,
    0x54 ^ 0x38,
    0x5C ^ 0x39,
    0x0F ^ 0x61
 ]

file = []

for i in range(0,len(d)):
    file.append(ord(d[i]) ^ key[i  % 6])

open("flag.gif","wb").write(bytearray(file))