#!/usr/bin/env python3 """sbl_refs.py — поиск кодовых ссылок на строку в SBL1 (img0.elf, seg 0x8005800). Использование: ./tools/sbl_refs.py fw/sbl/img0.elf 'SBL1, Start' """ import struct import sys path, needle = sys.argv[1], sys.argv[2].encode() d = open(path, "rb").read() i = d.find(needle) print("str fileoff:", hex(i)) SEG_OFF, SEG_VA, SEG_SZ = 0x3000, 0x8005800, 0x33A54 va = SEG_VA + (i - SEG_OFF) print("str VA:", hex(va)) # search ALL segments for pc-relative loads to it import re def segs(d): phoff = struct.unpack("> 12) & 15), "->", hex(tgt))