Skip to main content

Snyk Fetch the Flag CTF 2023: solução do desafio Honey Baked Messages

Escrito por
snyk ctf honey baked messages

30 de novembro de 2023

0 minutos de leitura

Obrigado por jogar Fetch com a gente! Parabéns aos milhares de participantes do Fetch the Flag CTF. Se você participou do Fetch the Flag 2023 da Snyk e quer descobrir a resposta do desafio Honey Baked Messages, está no lugar certo. Vamos conferir a solução juntos!

Este desafio aborda o conceito de códigos de Hamming, um tipo de código de correção de erros. Aqui, usamos a versão (7, 4) dos códigos de Hamming.

O desafio é composto por estas etapas:

  1. Entender que se trata de codificação de Hamming.

  2. Ler cada linha do arquivo. 

  3. Determinar a matriz H necessária para o problema.

  4. Corrigir os erros no arquivo inteiro e obter a flag.

Confira o script de solução 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 ]

Obrigado por fazer o Fetch acontecer!

Muito obrigado a todas as equipes do Fetch the Flag 2023! Foi ótimo encontrar todo mundo por lá. Você também pode me encontrar no YouTube.

Confira as soluções dos outros desafios de 2023. Mãos à obra!

Publicado em:

Leia mais

Blog

Fetch the Flag CTF 2026: Soluções Oficiais dos Desafios e Destaques da Comunidade

Explore análises oficiais e destaques da comunidade do Fetch the Flag CTF 2026, com mais de 20 desafios em segurança web, IA e criptografia. Aprenda com os especialistas e mergulhe nos detalhes técnicos dos quebra-cabeças binários e exploits web mais complexos deste ano.

Blog

4 motivos pelos quais CTFs são uma das melhores formas de crescer na área de cibersegurança

As competições Capture The Flag (CTF) são uma ótima maneira de acelerar sua carreira em cibersegurança, colocando você em contato com vulnerabilidades do mundo real e diferentes áreas técnicas. Descubra por que os CTFs são uma das melhores formas de desenvolver seus conhecimentos e ampliar sua rede profissional.

Compliance FEATURE cropped
Blog

O guia definitivo dos próximos CTFs: de iniciante a hacker de elite em 6 meses (outubro de 2025 a abril de 2026)

Domine os CTFs e passe de iniciante a hacker de elite em 6 meses com este guia definitivo! Conheça as principais competições, entenda as classificações de dificuldade e planeje seu caminho para o sucesso de outubro de 2025 a abril de 2026.