Fix linux arm/aarch64/ppc(64) syscall abi (#1639)

* Fix linux_ppc(64)_syscall abi

The system call number is specified in r0.

There is a maximum of 6 integer parameters to a syscall, passed in r3-r8.

* Fix ppc syscall revert r9 back

Co-authored-by: Disconnect3d <dominik.b.czarnota@gmail.com>

* Remove r6/x6 from arm/aarch64 syscall

* Update pwndbg/lib/abi.py

---------

Co-authored-by: Disconnect3d <dominik.b.czarnota@gmail.com>
pull/1649/head
Xeonacid 3 years ago committed by GitHub
parent 814eb33417
commit d7f459c169
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -75,10 +75,10 @@ linux_ppc64 = ABI(["r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10"], 8, 0)
linux_i386_syscall = SyscallABI(["eax", "ebx", "ecx", "edx", "esi", "edi", "ebp"], 4, 0)
linux_amd64_syscall = SyscallABI(["rax", "rdi", "rsi", "rdx", "r10", "r8", "r9"], 8, 0)
linux_arm_syscall = SyscallABI(["r7", "r0", "r1", "r2", "r3", "r4", "r5", "r6"], 4, 0)
linux_aarch64_syscall = SyscallABI(["x8", "x0", "x1", "x2", "x3", "x4", "x5", "x6"], 16, 0)
linux_aarch64_syscall = SyscallABI(["x8", "x0", "x1", "x2", "x3", "x4", "x5"], 16, 0)
linux_mips_syscall = SyscallABI(["$v0", "$a0", "$a1", "$a2", "$a3"], 4, 0)
linux_ppc_syscall = ABI(["r0", "r3", "r4", "r5", "r6", "r7", "r8", "r9"], 4, 0)
linux_ppc64_syscall = ABI(["r0", "r3", "r4", "r5", "r6", "r7", "r8", "r9"], 8, 0)
linux_ppc_syscall = SyscallABI(["r0", "r3", "r4", "r5", "r6", "r7", "r8", "r9"], 4, 0)
linux_ppc64_syscall = SyscallABI(["r0", "r3", "r4", "r5", "r6", "r7", "r8"], 8, 0)
linux_i386_sigreturn = SigreturnABI(["eax"], 4, 0)
linux_amd64_sigreturn = SigreturnABI(["rax"], 4, 0)

Loading…
Cancel
Save