Skip to main content

Solution du CTF Fetch the Flag 2023 de Snyk : Honey Baked Messages

Écrit par
snyk ctf honey baked messages

30 novembre 2023

0 minutes de lecture

Merci d’avoir participé à Fetch avec nous ! Félicitations aux milliers de joueurs qui nous ont rejoints pour le CTF Fetch the Flag. Si vous avez participé à Fetch the Flag 2023 de Snyk et cherchez la solution du défi Honey Baked Messages, vous êtes au bon endroit. Découvrons ensemble la solution !

Ce défi porte sur les codes de Hamming, un type de codes correcteurs d’erreurs. Il utilise la version (7, 4) des codes de Hamming.

Le défi comporte les étapes suivantes :

  1. Comprendre qu’il s’agit d’un codage de Hamming.

  2. Lire chaque ligne du fichier. 

  3. Déterminer la matrice H nécessaire pour résoudre le problème.

  4. Corriger les erreurs dans tout le fichier et récupérer le flag.

Voici le script de solution solve.py :

import numpy as np

H = np.array(
        [
            [1, 1, 1, 0, 1, 0, 0],
            [0, 1, 1, 1, 0, 1, 0],
            [1, 1, 0, 1, 0, 0, 1]
        ]
    )
errors = {
    "000":None,
    "001": 6,
    "010": 5,
    "011": 3,
    "100": 4,
    "101": 0,
    "110": 2,
    "111": 1
}

def np2usable(nparr):
    return np.array2string(nparr).replace(" ", "" ).replace("[", "").replace(']', "")

def fixErrs(hamming):
    error = (np.matmul(H, hamming)%2)
    err_idx = errors[np2usable(error)]
    if err_idx != None:
        # print(err_idx)
        hamming[err_idx] +=1
        hamming[err_idx] %= 2

    return hamming[:4]

data = []
with open("message_2.txt", "r") as reader:
    for line in reader:
        code = np.fromstring(" ".join(line.strip("\n")), dtype = int, sep=" ")
        data.append(np2usable(fixErrs(code)))
split_chars = (list(zip(*(iter(data),) * 2)))

[print(chr(int(j+k, 2)), end="") for j,k in split_chars ]

Merci d’avoir fait de Fetch un succès !

Un immense merci à toutes les équipes de Fetch the Flag 2023 ! C’était un plaisir de vous y voir, et vous pouvez toujours me retrouver sur YouTube.

Voici les solutions des autres défis de 2023. À vous de jouer !

Publié dans:

Lire la suite

Blog

Fetch the Flag CTF 2026 : solutions officielles des défis et temps forts de la communauté

Découvrez les comptes rendus officiels et les temps forts de la communauté du CTF Fetch the Flag 2026, avec plus de 20 défis en sécurité web, en IA et en cryptographie. Apprenez auprès des experts et plongez dans les détails techniques des énigmes binaires et des exploits web les plus complexes de cette année.

Blog

4 raisons pour lesquelles les CTF sont l’un des meilleurs moyens de progresser en cybersécurité

Les compétitions Capture The Flag (CTF) sont un excellent moyen d’accélérer votre carrière en cybersécurité : elles vous confrontent à des vulnérabilités réelles et à des domaines techniques variés. Découvrez pourquoi les CTF sont l’un des meilleurs moyens de développer votre expertise et votre réseau professionnel.

Compliance FEATURE cropped
Blog

Le guide ultime des prochains CTF : de débutant à hacker d’élite en 6 mois (octobre 2025 - avril 2026)

En 6 mois, passez de débutant à expert des CTF grâce à ce guide ultime ! Découvrez les meilleures compétitions, comprenez les niveaux de difficulté et préparez votre stratégie pour réussir d’octobre 2025 à avril 2026.