-
Notifications
You must be signed in to change notification settings - Fork 6
Sigreturn Return Oriented Programming
Ayushman Dubey edited this page May 25, 2020
·
3 revisions
This allows you to create the SROP easily and you only need to give the register and their values.
This will initialize the SigreturnFrame
class.
Only
amd64
andi386
arch is supported as of now.
>>> from roppy import *
>>> frame = SigreturnFrame(arch="amd64")
This will set the value of a provided register.
>>> frame.set_regvalue("rdi", bin_sh)
>>> frame.set_regvalue("rax", 59)
>>> frame.set_regvalue("rip", syscall)
Once you'll be done setting the values of the registers, you can get the payload by calling get_frame()
>>> frame.get_frame()
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 @\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00;\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x10@\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x003\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
-
i386
:["gs", "fs", "es", "ds", "edi", "esi", "ebp", "esp", "ebx", "edx", "ecx", "eax", "JUNK", "JUNK", "eip", "cs", "eflags", "JUNK", "ss", "floa"]
-
amd64
:["uc_flags", "&uc", "uc_stack.ss_sp", "uc_stack.ss_flags", "uc_stack.ss_size", "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", "rdi", "rsi", "rbp", "rbx", "rdx", "rax", "rcx", "rsp", "rip", "eflags", "csgsfs", "err", "trapno", "oldmask", "cr2", "&fpstate", "__reserved", "sigmask"]
It's in beta version and being updated frequently. :)
Table of Contents:-
- Introduction
- Process
- ELF: Dynamically resolve ELF attributes
- Return Oriented Programming
- Format String
- Shellcodes
- Utilities
- Assemble and Disassemble