Emulator learnings folded back into decompiler
This commit is contained in:
@@ -275,6 +275,11 @@ def _serial_reconstruction_lines(serial_reconstruction: dict[str, object] | None
|
||||
f"checksum {candidate['checksum_address_hex']} seeded by {candidate['checksum_seed_hex']} "
|
||||
f"(confidence {confidence} {score})",
|
||||
)
|
||||
tx_path = candidate.get("tx_path")
|
||||
if isinstance(tx_path, dict):
|
||||
lines.append(
|
||||
f"; TX path: {tx_path.get('summary', 'interrupt-driven TXI path')}",
|
||||
)
|
||||
elif kind == "candidate_sci1_rx_frame":
|
||||
lines.append(
|
||||
f"; RX candidate: {candidate['frame_length']} bytes "
|
||||
@@ -286,6 +291,17 @@ def _serial_reconstruction_lines(serial_reconstruction: dict[str, object] | None
|
||||
caveat = candidate.get("caveat")
|
||||
if caveat:
|
||||
lines.append(f"; caveat: {caveat}")
|
||||
ram_roles = serial_reconstruction.get("ram_roles", [])
|
||||
if isinstance(ram_roles, list) and ram_roles:
|
||||
lines.append("; Serial RAM role candidates")
|
||||
for role in ram_roles:
|
||||
if not isinstance(role, dict):
|
||||
continue
|
||||
address_text = str(role.get("address_hex") or h16(int(role.get("address") or 0)))
|
||||
lines.append(
|
||||
f"; {address_text}: "
|
||||
f"{role.get('name', 'ram_role')} - {role.get('summary', '')}",
|
||||
)
|
||||
lines.append("")
|
||||
return lines
|
||||
|
||||
|
||||
Reference in New Issue
Block a user