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即可。