1 min read

[CTF GEMA] SXOR

CTF GEMA Groupe 2025

Niveau de Difficulté : Easy

Catégorie du Challenge : Reverse

Description :

Facile celui-là, LOL !

Steps to Solve

Tout d'abord, nous exécutons le programme et nous constatons qu'il doit recevoir des données pour passer...

Local Image

L'analyse montre qu'il y a une partie principale qui contient un champ d'entrée et une fonction de chiffrement.

La valeur hexagonale représente le drapeau et la clé de chiffrement dans local_68.

Local Image
Local Image

Dans la fonction de chiffrement xor, nous pouvons voir ici qu'il s'agit d'un simple chiffrement xor que nous allons décoder.

def xor_decrypt(hex_string, key):
    encrypted_bytes = bytes.fromhex(hex_string)
    key_length = len(key)

    decrypted = []
    for i, byte in enumerate(encrypted_bytes):
        decrypted_char = chr(byte ^ ord(key[i % key_length]))
        decrypted.append(decrypted_char)

    return ''.join(decrypted)

hex_string = "2e7f70764b5b074b486f1003436e0306504348405f02015f4d"
key = "h3110"

decrypted_text = xor_decrypt(hex_string, key)
print(f"Decrypted text: {decrypted_text}")

inverser xor avec xor et avec la même clé, vous obtiendrez le résultat correct

Local Image

Flag

FLAG{34zy_x0r_3ncryp710n}