> sigreturn, rt_sigreturn - return from signal handler and cleanup stack frame
Further, `mprotect` provides a writeable and executable memory segment. Even `NX` is nullified in this way and the stack will be executable.
From the `mprotect` manual
> The mprotect() function shall change the access protections to be that specified by prot for those whole pages containing any part of the address space of the process starting at address addr and continuing for len bytes.
### Usage
First, use `mprotect` on a memory segment. Use the `Minimum Address` provided by a Ghidra import to get an address to write to.
```
ROPgadget ---binary <binary> | grep ": syscall"
```
Use this found address as a start to craft a frame via pwntools