- Полный 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>
27 строки
757 B
Python
27 строки
757 B
Python
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}")
|