- Полный 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>
25 строки
746 B
Python
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.
|