mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-22 16:43:05 -05:00
The skip of syscall patterns outside the unwind functions let some real syscalls through. The scan now merges nested and overlapping unwind ranges with the instruction scanner's MergeCodeRanges, so a pattern inside an outer function is refused. A constant syscall number is also looked for in the bytes in front of the pattern, whatever alignment the decoding took: a mov eax, mov rax or xor eax, eax that ends at the pattern or before register moves and zeroings that leave rax alone. The decoded lookback requires each instruction to end where the next one starts. Guest modules without PT_SCE_DYNLIBDATA get no unwind ranges, so their scan stays strict even when their unwind table is read. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>