Misc
1.签到
flag{welcome_to_qwb_2023}
2.SpeedUp
def f(x): res = 0 while x: res += x % 10 x //= 10 return res fac_mem = [1] def fac(x): if x < len(fac_mem): return fac_mem[x] else: res = fac_mem[-1] for i in range(len(fac_mem), x + 1): res *= i fac_mem.append(res) return res pow_mem = [1] def pow(x): if x < len(pow_mem): return pow_mem[x] else: res = pow_mem[-1] for i in range(len(pow_mem), x + 1): res *= 2 pow_mem.append(res) return res for i in range(0, 7): print(f(fac(pow(i))), end=",")
找到数列直接算sha256即可
3.Wabby Wabbo Radio
看网页找到好几个Wav文件
播放发现有摩斯电码声音
hint1: -.. --- -.-- --- ..- -.- -. --- .-- --.- .- -- ..--.. hint2: -- .- -.-- -... . ..-. .-.. .- --. .. ... .--. -. --. .--. .. -.-. - ..- .-. .
翻译之后是
DOYOUKNOWQAM? MAYBEFLAGISPNGPICTURE
QAM解码
flag文件是无损的16QAM编码
写个程序复原即可.
注意需要用png头辅助映射一下.
import numpy as np from scipy.io import wavfile import binascii rate, audio = wavfile.read("flag.wav") left_channel = audio[:, 0] right_channel = audio[:, 1] complex = left_channel + 1j * right_channel constellation = { #手动映射真好玩 (-3 - 3j): "0", (-3 - 1j): "1", (-3 + 3j): "3", (-3 + 1j): "2", (-1 - 3j): "4", (-1 - 1j): "5", (-1 + 3j): "7", (-1 + 1j): "6", (3 - 3j): "c", (3 - 1j): "d", (3 + 3j): "f", (3 + 1j): "e", (1 - 3j): "8", (1 - 1j): "9", (1 + 3j): "b", (1 + 1j): "a", } def demodulate_16QAM(signal): demodulated_bits = "" for s in signal: closest_point = min(constellation.keys(), key=lambda point: np.abs(point - s)) demodulated_bits += constellation[closest_point] return demodulated_bits a = demodulate_16QAM(complex) open("out.png", "wb").write(binascii.unhexlify(a))
4.谍影重重2.0
24位数据是icao code(6个十六进制)
https://mode-s.org/decode/content/ads-b/1-basics.html
import pyModeS as pms pms.tell("")
大写然后计算md5即可。