
ROP ROCKET è un framework avanzato per attacchi di riutilizzo del codice, con ampie capacità di generazione di catene ROP, inclusi nuovi attacchi Syscall su Windows, un nuovo Heaven's Gate e ROP "shellcodeless". Il framework utilizza emulazione e offuscamento per espandere la superficie d'attacco.
Questo nuovo e avanzato framework ROP ha debuttato al DEF CON 31 con alcune capacità senza precedenti. ROCKET genera diversi tipi di chain e fornisce nuovi pattern o tecniche.
Si prega di notare che è ancora un lavoro in corso, con alcune capacità aggiornate e potenziate da aggiungere. Gli aggiornamenti dovrebbero essere regolari. Se si incontrano problemi, si prega di segnalarli su issues o di inviarmi un'email e li risolverò. Verranno inoltre aggiunte modalità alternative per generare determinati tipi di gadget.
Il lavoro è in corso e attualmente vengono aggiunte regolarmente nuove funzionalità. Si prega di controllare periodicamente.

ROP ROCKET è molto potente con alcune capacità uniche, che includono:
Agosto 2025: ROP ROCKET ha un mini-tool per bypass ASLR, rilasciato al DEFCON il 10 agosto 2025, che genererà nove bypass ASLR verso ASLR a 64 bit ad alta entropia.


Deve essere installato come pacchetto locale. C'è un file setup.py. Per farlo, basta andare nella directory e inserire il seguente comando:
py -m pip install -e ./ A seconda della tua installazione di Python, potresti dover variare leggermente. Se visualizzi i pacchetti installati, dovresti vedere ROP-ROCKET apparire: py -m pip list Si ritiene che tutte le dipendenze richieste siano incluse, ma se incontri problemi - a causa della novità di questa release, apri semplicemente un issue e lo esamineremo.
Esegui semplicemente dalla riga di comando:py rop2.py rop_tester_syscall.exe Un rop_tester_syscall.exe completamente sfruttabile è incluso anche come file zip. È stato sviluppato solo per aiutare a garantire che tutti i gadget vengano trovati e non persi.
Questo strumento è stato ispirato dal molto più vecchio JOP ROCKET, che ho scritto per parte della mia tesi di dottorato e rilasciato al DEF CON 27 nel 2019. Ciò ha portato a molti ulteriori sviluppi su JOP e a molte nuove capacità JOP, oltre a fornire ampia documentazione sulla meccanica e l'uso di JOP in diversi articoli. Quel tool è un po' datato al momento - è uno stile più vecchio di Python. Con questa nuova ricerca, parte di questa ispirazione è cercare di fare qualcosa di nuovo e diverso nell'area del ROP. Abbiamo soddisfatto quel mandato finora. Quindi in un certo senso questo strumento è ispirato da un tool JOP, permettendoci forse di pensare fuori dagli schemi e in modi meno convenzionali di quanto faremmo normalmente con ROP. ROP ROCKET non ha capacità JOP - è strettamente dedicato a ROP. L'unico tool completamente dedicato a JOP è JOP ROCKET, mentre tutto il resto ha solo un segnaposto per lavori futuri su JOP. Comunque, volevo chiarire queste informazioni storiche, in modo che la somiglianza nei nomi non confonda nessuno, poiché si tratta di due strumenti molto diversi e non correlati.

ROCKET ha generato un attacco Heaven's Gate da x86 a x64, stampandolo a schermo e salvandolo.

ROCKET ha generato una syscall Windows per NtProtectVirtualMemory per Win 10/11, stampandola a schermo e salvandola.

Grazie alle sue capacità di emulazione interna, ROCKET può considerare molte combinazioni insolite di gadget. Quanto sopra ha lo scopo di catturare un puntatore allo stack (ESP) e spostarlo in ECX. È in grado di trovare mezzi alternativi per farlo, invece di utilizzare un singolo gadget ROP, che potrebbe non essere disponibile. Per prima cosa sposta esp in edi; poi edi viene spostato in ebx; e poi ebx viene spostato in esi. ECX viene impostato a zero, tramite overflow intero, e quindi il valore di esi (contenente il puntatore allo stack) viene aggiunto a ecx. Il risultato è che il puntatore allo stack si trova in ecx. Un gadget equivalente più corto sarebbe mov ecx, esp # ret - anche se non sempre possibile. ROCKET gestisce anche correttamente le istruzioni pop extra, producendo il filler corretto. Nota che ROP ROCKET considera attentamente i registri che devono essere protetti ("registri esclusi"), che possono cambiare da gadget a gadget. Nell'esempio sopra, nessun registro viene "danneggiato" tra quelli che stiamo cercando di proteggere.
