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,22 @@
|
||||
import struct
|
||||
|
||||
DUMP = r"C:/Users/vikto/Documents/Claude/rt-4d/radio-spi-dump.bin"
|
||||
with open(DUMP, "rb") as f:
|
||||
f.seek(0)
|
||||
cal = f.read(0x1000)
|
||||
|
||||
print("len", len(cal))
|
||||
# occupancy: find 0xFF runs
|
||||
ff = sum(1 for b in cal if b == 0xff)
|
||||
zero = sum(1 for b in cal if b == 0)
|
||||
print("0xFF bytes:", ff, "0x00 bytes:", zero, "other:", 0x1000-ff-zero)
|
||||
|
||||
# hex dump first 0x400
|
||||
def dump(off, length):
|
||||
for i in range(off, off+length, 16):
|
||||
row = cal[i:i+16]
|
||||
hexs = " ".join(f"{b:02x}" for b in row)
|
||||
asc = "".join(chr(b) if 32<=b<127 else "." for b in row)
|
||||
print(f"{i:04x} {hexs} {asc}")
|
||||
|
||||
dump(0, 0x200)
|
||||
Ссылка в новой задаче
Block a user