b25: S12v3/S16v2 smart-return baked

This commit is contained in:
SashegDev
2026-09-13 12:05:17 +00:00
parent c875e8712f
commit 13b314e9cf
3 changed files with 34 additions and 28 deletions
+4 -3
View File
@@ -109,6 +109,7 @@
scaffold, ARM! т.к. blx-imm на чётный): preset ip=S16 + ACK bit1
`[0x73A100]` (side effect для poll#2) + `bx lr`. Литерал `[0x8006980]`.
- Helper-pop `0x8007B66` читает scratch (счётчики 0-4 вместо pushed lr,
фреймы съедены null-циклами) → S16 (b25): цепочка S12(ip) → B66
(`pop``bx ip`, 2B без пожирания) → S16 (restore r7, прыжок
`0x8007779`). B66-патч в ELF (b25), S12/S16 в scaffold.
фреймы съедены null-циклами) → S16v2 (b25 smart): B66 (`pop``bx ip`,
2B) → S16 проверяет ip (odd + top 8 = legit pushed-lr → `bx ip`;
иначе default: restore r7, прыжок `0x8007779`). S12v3 грузит ip из
`[sp+4]` (pushed lr) + ACK bit1. B66-патч в ELF (b25), S12/S16 в scaffold.