team-logo
Published on

BITSCTF 2025 - Hardware challenges

Authors

Introduction

We solved 2 out of 3 tasks.

Table of contents

Old Skool

alt text Writeup author: Grzechu

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

alt text Writeup author: kerszi

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

alt text Flag: BITSCTF{A_br13f_4nd_g3ntl3_1ntr0duc710n_70_r4di0_h4ck1ng_c5c33558}