$ Misc: Radio Telescope

BITSCTF 2026 By TaklaMan
Flag: BITSCTF{s1l3nc3_1n_th3_n01s3}

Observation

The file contains 10,000 floating-point samples that look like noisy telescope data. The description hints that the signal occasionally “skips a beat” (brief clearings in noise).

Analysis

I checked the signal for short low-variance windows (small local standard deviation). These clear windows appear at regular intervals (roughly every 384 samples), and each window has values clustered around a specific integer.

Those integer-like values map directly to ASCII.

Extracted sequence:

[67, 84, 70, 123, 115, 49, 108, 51, 110, 99, 51, 95, 49, 110, 95, 116, 104, 51, 95, 110, 48, 49, 115, 51, 125]

ASCII decode:

CTF{s1l3nc3_1n_th3_n01s3}

Repro Script

import numpy as np

x = np.loadtxt("rt7-log.txt")
w = 5
k = np.ones(w) / w
m = np.convolve(x, k, "valid")
m2 = np.convolve(x * x, k, "valid")
s = np.sqrt(np.maximum(0, m2 - m * m))

# low-variance points (the "silent" windows)
idx = np.where(s < 0.2)[0]

# merge nearby points into clusters
clusters = []
start = prev = idx[0]
for i in idx[1:]:
    if i - prev <= 2:
        prev = i
    else:
        clusters.append((start, prev))
        start = prev = i
clusters.append((start, prev))

# decode
vals = []
for a, b in clusters:
    c = (a + b) // 2
    vals.append(round(float(np.mean(x[c:c+5]))))

msg = ''.join(chr(v) for v in vals)
print(vals)
print(msg)