- Published on
BITSCTF 2025 - Hardware challenges
Introduction
We solved 2 out of 3 tasks.
Table of contents
Old Skool

Use this code to solve:
import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import hilbert
from scipy.io import wavfile
# 1. Wczytanie pliku IQ
file_path = "modulated.iq"
iq_data = np.fromfile(file_path, dtype=np.complex64)
# 2. Parametry
Fs = 24000 # Sampling rate 24kHz
Fc = 1550000 # Przybliżona nośna (np. 1550 kHz)
t = np.arange(len(iq_data)) / Fs
# 3. Przemiana częstotliwości (mixing)
demod_signal = iq_data * np.exp(-1j * 2 * np.pi * Fc * t)
# 4. Demodulacja AM (obwiednia)
audio_signal = np.abs(hilbert(demod_signal.real))
# 5. Normalizacja i zapis do pliku WAV
audio_signal = (audio_signal / np.max(np.abs(audio_signal)) * 32767).astype(np.int16)
wavfile.write("output.wav", Fs, audio_signal)
print("Demodulacja zakończona! Otwórz output.wav, aby odsłuchać.")
Then tempo change and WAV to Text Converter with minor adjustments.
Flag: BITSCTF{welcome_to_our_radio_enjoy_our_song_collection}
Ulation

That was simple task. Just You need to find and use a proper tool. Universal Radio Hacker
is here.

BITSCTF{A_br13f_4nd_g3ntl3_1ntr0duc710n_70_r4di0_h4ck1ng_c5c33558}