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,26 @@
|
||||
data = open(r"C:/Users/vikto/Documents/Claude/rt-4d/radio-spi-dump.bin","rb").read()
|
||||
|
||||
# --- BLOB2 stride analysis ---
|
||||
# Find start of each 0x80-run to measure period
|
||||
starts=[]
|
||||
i=0x352000; end=0x3d5000
|
||||
prev=None
|
||||
inrun=False
|
||||
# a "record boundary" — let's autocorrelate instead on a window
|
||||
seg=data[0x353000:0x3a3000]
|
||||
N=len(seg)
|
||||
import statistics
|
||||
best=[]
|
||||
for stride in range(8, 4096):
|
||||
# sample-based autocorr: count byte equality at offset stride
|
||||
eq=0; tot=0
|
||||
step=1
|
||||
for k in range(0, N-stride, 7):
|
||||
if seg[k]==seg[k+stride]:
|
||||
eq+=1
|
||||
tot+=1
|
||||
best.append((eq/tot, stride))
|
||||
best.sort(reverse=True)
|
||||
print("BLOB2 top strides (score,stride):")
|
||||
for s,st in best[:15]:
|
||||
print(f" stride={st} ({st:#x}) score={s:.3f}")
|
||||
Ссылка в новой задаче
Block a user