add arm as well

pull/1944/head
OB 2 years ago committed by Disconnect3d
parent 6b41c07e5b
commit 2393ccc155

@ -21,12 +21,15 @@ SIGRETURN_FRAME_LAYOUTS: dict[str,list[Tuple[int, str]]] = {
"x86-64":[(-8, "&pretcode")] + list(pwnlib.rop.srop.registers["amd64"].items()),
"i386":list(pwnlib.rop.srop.registers["i386"].items()),
"aarch64":list(pwnlib.rop.srop.registers["aarch64"].items()),
"arm":list(pwnlib.rop.srop.registers["arm"].items()),
}
# Always print these registers (as well as flag register, eflags / cpsr)
SIGRETURN_CORE_REGISTER: dict[str, set[str]] = {
"x86-64":{ *amd64.gpr, amd64.frame, amd64.stack, amd64.pc },
"i386": { *i386.gpr,i386.frame, i386.stack, i386.pc },
"aarch64": { *aarch64.gpr, "sp", "pc"},
"arm": { *arm.gpr, "fp" "ip", "sp", "lr", "pc" },
}
@ -57,7 +60,7 @@ parser.add_argument(
@pwndbg.commands.ArgparsedCommand(parser)
@pwndbg.commands.OnlyWhenRunning
@pwndbg.commands.OnlyWithArch(["x86-64", "i386", "aarch64"])
@pwndbg.commands.OnlyWithArch(["x86-64", "i386", "aarch64", "arm"])
def sigreturn(address: int = None, display_all=False, print_address=False):
address = pwndbg.gdblib.regs.sp if address is None else address
@ -86,8 +89,8 @@ def sigreturn(address: int = None, display_all=False, print_address=False):
print_value(f"{regname} {desc}", address + stack_offset, print_address)
elif reg == "eflags":
reg_flags = pwndbg.gdblib.regs.flags["eflags"]
elif reg in pwndbg.gdblib.regs.flags: # eflags or cpsr
reg_flags = pwndbg.gdblib.regs.flags[reg]
desc = C.format_flags(value, reg_flags)
print_value(f"{regname} {desc}", address + stack_offset, print_address)

Loading…
Cancel
Save