
ROP ROCKET é um framework avançado de ataque de reuso de código, com amplas capacidades de geração de cadeias ROP, incluindo para o novo ataque de Syscalls do Windows, um novo Heaven's Gate, e ROP "shellcodeless". O framework utiliza emulação e ofuscação para ajudar a expandir a superfície de ataque.
Este novo e avançado framework ROP fez sua estreia na DEF CON 31 com algumas capacidades sem precedentes. O ROCKET gera vários tipos de cadeias e fornece novos padrões ou técnicas.
Por favor, note que este ainda é um trabalho em andamento, com algumas capacidades atualizadas e aprimoradas a serem adicionadas. As atualizações devem ser regulares. Se encontrar problemas, por favor, coloque-os em issues ou envie-me um e-mail, e eu os resolverei. Alternativas adicionais para gerar certos tipos de gadgets também serão adicionadas.
O trabalho está em andamento, com novas capacidades sendo adicionadas regularmente no momento. Por favor, verifique regularmente.

O ROP ROCKET é muito poderoso com algumas capacidades únicas, que incluem o seguinte:
Agosto de 2025: O ROP ROCKET possui uma Mini-Ferramenta de Bypass de ASLR, lançada na DEFCON em 10 de agosto de 2025, que gerará nove bypasses de ASLR para ASLR de 64 bits de alta entropia.


Isso deve ser instalado como um pacote local. Existe um arquivo setup.py. Para fazer isso, basta ir ao diretório e inserir o seguinte comando:
py -m pip install -e ./ Dependendo da sua instalação do Python, pode ser necessário variar um pouco. Se você visualizar os pacotes instalados, deverá ver ROP-ROCKET aparecer: py -m pip list Acredita-se que todas as dependências necessárias estão incluídas, mas se você encontrar algum problema - devido à novidade deste lançamento, basta abrir uma issue, e iremos analisá-lo.
Basta executá-lo a partir da linha de comando: py rop2.py rop_tester_syscall.exe Um arquivo rop_tester_syscall.exe totalmente explorável também está incluído como um arquivo zip. Isso foi desenvolvido apenas para ajudar a garantir que todos os gadgets estejam sendo encontrados e não perdidos.
Esta ferramenta foi inspirada pelo muito mais antigo JOP ROCKET, que escrevi como parte da minha tese de doutorado e lancei na DEF CON 27 em 2019. Isso levou a muito desenvolvimento adicional em JOP e muitas novas capacidades JOP, além de fornecer documentação extensa sobre a mecânica e uso do JOP em diferentes artigos. Essa ferramenta está um pouco desatualizada no momento - é um estilo mais antigo de Python. Com esta nova pesquisa, parte desta inspiração é tentar fazer algo novo e diferente na área de ROP. Cumprimos esse mandato até agora. Então, de certa forma, esta ferramenta é inspirada por uma ferramenta JOP, permitindo-nos talvez tentar pensar fora da caixa e de maneiras menos convencionais do que normalmente faríamos com ROP. O ROP ROCKET não possui nenhuma capacidade JOP - é estritamente dedicado ao ROP. A única ferramenta totalmente dedicada a JOP é o JOP ROCKET, já que todo o resto meio que tem um placeholder para trabalho futuro em JOP. De qualquer forma, eu queria esclarecer essas informações históricas, para que a semelhança nos nomes não confunda ninguém, pois são duas ferramentas muito diferentes e não relacionadas.

O ROCKET gerou um ataque Heaven's Gate x86-para-x64, imprimindo-o na tela e salvando-o.

O ROCKET gerou uma Syscall do Windows para NtProtectVirtualMemory para Win 10/11, imprimindo-a na tela e salvando-a.

Graças às suas capacidades internas de emulação, o ROCKET pode considerar muitas combinações incomuns de gadgets. O acima destina-se a capturar um ponteiro de pilha (ESP) e movê-lo para ECX. Ele é capaz de encontrar meios alternativos de fazer isso, em vez de usar apenas um único gadget ROP, que pode não estar disponível. Primeiro, move esp para edi; edi é então movido para ebx; e ebx é então movido para esi. ECX é definido como zero, via estouro de inteiro, e então o valor de esi (contendo nosso ponteiro de pilha) é adicionado a ecx. O resultado é que o ponteiro de pilha está em ecx. Um gadget equivalente e mais curto seria mov ecx, esp # ret - embora isso nem sempre seja possível. O ROCKET também lida corretamente com as instruções pop extras, produzindo o preenchimento correto. Observe que o ROP ROCKET considera cuidadosamente os registradores que devem ser protegidos ("registradores excluídos"), que podem mudar de gadget para gadget. No exemplo acima, nenhum registrador é "corrompido" que estamos tentando proteger.