sbl_uni: txt trap page-wide 802F600 + sp/lr triplet
This commit is contained in:
+8
-5
@@ -340,13 +340,16 @@ def main():
|
|||||||
mu.hook_add(UC_HOOK_CODE, hook_code)
|
mu.hook_add(UC_HOOK_CODE, hook_code)
|
||||||
_txtlog = []
|
_txtlog = []
|
||||||
def hook_txt(mu, access, addr, size, value, data):
|
def hook_txt(mu, access, addr, size, value, data):
|
||||||
if len(_txtlog) < 10:
|
if len(_txtlog) < 12:
|
||||||
try:
|
try:
|
||||||
from unicorn.arm_const import UC_ARM_REG_PC as _P
|
from unicorn.arm_const import UC_ARM_REG_PC as _P
|
||||||
_txtlog.append((count[0], mu.reg_read(_P), addr, size, value))
|
from unicorn.arm_const import UC_ARM_REG_SP as _Q
|
||||||
|
from unicorn.arm_const import UC_ARM_REG_LR as _L
|
||||||
|
_txtlog.append((count[0], mu.reg_read(_P), addr, size, value,
|
||||||
|
mu.reg_read(_Q), mu.reg_read(_L)))
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
mu.hook_add(UC_HOOK_MEM_WRITE, hook_txt, begin=0x802F664, end=0x802F668)
|
mu.hook_add(UC_HOOK_MEM_WRITE, hook_txt, begin=0x802F600, end=0x802F700)
|
||||||
_splog2 = []
|
_splog2 = []
|
||||||
def hook_spck(mu, addr, size, data):
|
def hook_spck(mu, addr, size, data):
|
||||||
try:
|
try:
|
||||||
@@ -361,8 +364,8 @@ def main():
|
|||||||
import atexit as _ax3
|
import atexit as _ax3
|
||||||
def _dtx():
|
def _dtx():
|
||||||
print('txt-writes:', len(_txtlog))
|
print('txt-writes:', len(_txtlog))
|
||||||
for n, pc, a, sz, v in _txtlog:
|
for n, pc, a, sz, v, sp, lr in _txtlog:
|
||||||
print(' insn', n, hex(pc), hex(a), sz, hex(v))
|
print(' insn', n, hex(pc), hex(a), sz, hex(v), hex(sp), hex(lr))
|
||||||
print('sp-trips:', len(_splog2))
|
print('sp-trips:', len(_splog2))
|
||||||
for n, pc, sp in _splog2:
|
for n, pc, sp in _splog2:
|
||||||
print(' insn', n, hex(pc), hex(sp))
|
print(' insn', n, hex(pc), hex(sp))
|
||||||
|
|||||||
Reference in New Issue
Block a user