[CTF GEMA] Encrypt
CTF GEMA Groupe 2025
Niveau de Difficulté : Medium
Catégorie du Challenge : Reverse
Description :
Cours !
Steps to Solve
Analyser le fichier à l'aide de l'outil IDA

Il semble que le code lise l'image en entrée « input_image.png » et le nom de la sortie « encrypted.bin » La sortie nous est donnée
donc n'analysons pas le code pour voir comment la sortie est encodée...

On remarque qu'il s'agit de la fonction encrypt ... Cette fonction contient des fonctions sub_144C sub_1559...
Voyons voir sub_144C

Ok, comme nous le voyons, il y a un XOR qui se produit ici, l'entrée avec la clé :
Clé = 0xAA

Rien d'intéressant ici ...
Maintenant c'est juste un XOR avec la clé 0xAA
Exécutons notre code :
def decrypt(input_file, output_file, key=0xAA):
with open(input_file, "rb") as f:
encrypted_data = bytearray(f.read())
decrypted_data = bytearray(b ^ key for b in encrypted_data)
with open(output_file, "wb") as f:
f.write(decrypted_data)
decrypt("encrypted.bin", "decrypted_image.png")
print("Decryption complete!")


Flag
FLAG{90908833555676676}