Ho un programma con un overflow del buffer basato sullo stack. È in esecuzione PIE con ASLR e DEP, tuttavia esiste una sezione di codice eseguibile che si trova in una posizione fissa.
Tuttavia, questa regione non contiene un 0x80 int; ret gadget. Posso controllare eax, ebx, ecx ed edx. Come posso eseguire syscalls arbitrarie, per esempio, chiamare mprotect e leggere in shellcode? Ogni syscall sembra richiedere un 0x80 int e non sono sicuro di come ignorarlo.
C'è un gadget int 0x80 nel codice rilevante, tuttavia è seguito da un'istruzione jmp.
Quindi sto cercando un modo per creare syscalls senza 0x80, o un modo per creare due syscalls contemporaneamente (per impostare protezioni di memoria, leggere ed eseguire shellcode)