Files
viktorиClaude Opus 4.8 ae36c3b729 RT-4D: реверс прошивки, русификация, кастомный UI, флешеры
- Полный RE стока V3.25 (Cortex-M4F) + FM100B: карта памяти, протокол, codeplug, UI-архитектура
- Русификация: свой CP1251-шрифт + патч рендера, перевод меню и надписей, ребренд Ru-4D V3.25
- Блюпринт переделки UI + C-тулчейн (clang thumbv7em), доказан инъекцией
- Готовые флешеры: WebSerial .html и Windows .exe со вшитой прошивкой
- Дамп SPI рации, стоковая прошивка, инструменты сборки

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-08 15:47:22 +09:00

25 строки
746 B
Python

import struct
DUMP = r"C:/Users/vikto/Documents/Claude/rt-4d/radio-spi-dump.bin"
with open(DUMP, "rb") as f:
cal = f.read(0x1000)
MARK = bytes.fromhex("12e234402a4fb3")
# find all marker positions
positions = []
i = 0
while True:
j = cal.find(MARK, i)
if j < 0: break
positions.append(j)
i = j+1
print("marker positions (hex):", [hex(p) for p in positions])
print("count:", len(positions))
# deltas
deltas = [positions[k+1]-positions[k] for k in range(len(positions)-1)]
print("deltas:", deltas)
print("unique deltas:", sorted(set(deltas)))
# The marker appears TWICE back to back (7+7=14 bytes). So real record period is bigger.
# Let's look at where non-duplicate markers are. Marker at 0x24 and 0x2b (0x24+7). So pairs.