Browse Source

setRegisters

Roman Hergenreder 3 years ago
parent
commit
8dcb41a838
1 changed files with 5 additions and 2 deletions
  1. 5 2
      util.py

+ 5 - 2
util.py

@@ -70,9 +70,8 @@ class Stack:
 
         return addr
 
-def genSyscall(elf, syscall, registers):
+def setRegisters(elf, registers):
     rop = ROP(elf)
-    registers["rax"] = syscall
     for t in rop.setRegisters(registers):
         value = t[0]
         gadget = t[1]
@@ -83,7 +82,11 @@ def genSyscall(elf, syscall, registers):
                     rop.raw(registers[reg])
                 else:
                     rop.raw(0)
+    return rop
 
+def genSyscall(elf, syscall, registers):
+    registers["rax"] = syscall
+    rop = setRegisters(elf, registers)
     syscall_gadget = "syscall" if elf.arch == "amd64" else "int 0x80"
     rop.raw(rop.find_gadget([syscall_gadget]).address)
     return rop