Haar-you.github.io

View on GitHub

PI 1: Magic in the air (470 Points)

problem

7zファイルを解凍すると、dataというファイルが出てくる。fileコマンドで種類を確認すると、BTSnoop version 1というファイルであるとわかる。 少し調べると、これがbluetoothのログであり、wiresharkで開けることが判明するので、wiresharkで開く。

眺めていると、上のような通信が連続して大量にある。
ここで、これはキーボードの入力のログだろうと推測できるので、ここを見ながらキー入力を抽出するスクリプトを書いた。

import string

table = {}

table[0] = ""

for i, c in zip(range(0x04, 0x1d), string.ascii_lowercase):
    table[i] = c

table[0x2c] = " "
table[0x28] = "\n"

for i, c in zip(range(0x1e, 0x27), "1 2 3 4 5 6 7 8 9 0".split(" ")):
    table[i] = c

a = bytes([0x01, 0x2e, 0x0e, 0x00, 0x0a, 0x00, 0x04, 0x00, 0x1b, 0x2c, 0x00])

with open("./data", "rb") as f:
    data = f.read()

    for i in range(len(data)):
        if data[i:i+len(a)] == a:
            res = list(data[i+len(a):i+len(a)+7])

            print(table.get(res[1], ""), end="")

print()

電話番号は736727859、これにスウェーデンの国コード(+46)をつけるとflagが得られる。

flag: rgbCTF{+46736727859}