Trop d'IQ

Catégorie: Sécurité matérielle - Difficulté: Intro

Description:

Solution:

Pour ce challenge d'intro, il fallait réussir à convertir ce fichier .iq (signal audio) en un audio compréhensible par l'oreille humaine.

En sachant cela, j'ai créé un script qui fait tout ça automatiquement :

import numpy as np
from scipy.io.wavfile import write

# Paramètres
input_file = "chall.iq"
output_file = "output.wav"
sample_rate = 44100  # Hz

# Lire IQ comme complex128 (résultat d'une FFT)
fft_data = np.fromfile(input_file, dtype=np.complex128)

print(f"[+] Chargé {len(fft_data)} coefficients FFT depuis '{input_file}'")

# Revenir au domaine temporel
time_data = np.fft.ifft(fft_data)

# Garder uniquement la partie réelle
audio_signal = np.real(time_data)

# Normaliser entre -1 et 1
audio_signal /= np.max(np.abs(audio_signal))

# Convertir en float32
audio_signal = audio_signal.astype(np.float32)

# Sauvegarder le son
write(output_file, sample_rate, audio_signal)

print(f"[+] Signal reconstruit et sauvegardé dans '{output_file}'")

Et en sortie, nous avons un bel audio bien propre que nous pouvons écouter :

🚩FLAG

404CTF{45d05a87}

Last updated

Was this helpful?