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>
Этот коммит содержится в:
@@ -0,0 +1,24 @@
|
||||
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.
|
||||
Ссылка в новой задаче
Block a user