
Um editor de heap feliz para apoiar o seu processo de exploração 🙂
Heappy é um editor baseado em gdb/gef que ajuda você a lidar com o heap durante o desenvolvimento de exploits.
O projeto deve ser considerado uma ferramenta didática útil para entender a evolução do heap durante o ciclo de vida do processo. Ele foi criado para simplificar o estudo das técnicas mais comuns de exploração de heap e para apoiar você na resolução de alguns CTFs de exploração binária relacionados a esse tópico fantástico.
Isto é o que o Heappy implementa:
✅ tirar snapshots do heap e compará-los entre si
✅ reconhecer imediatamente o tipo e os campos dos bins do heap
✅ pesquisar e editar valores do heap por decimal, hexadecimal ou string
✅ se localizar com a visão panorâmica do estado do heap
✅ fazer anotações sobre uma célula na coluna de comentários
✅ aproveitar os modos claro e escuro
Estas instruções ajudarão você a instalar e executar o Heappy rapidamente.
Se você não o tiver, instale o GEF no GDB:
wget -q -O- https://github.com/hugsy/gef/raw/master/scripts/gef.sh | sh
md5(gef.sh): eb053864d050048cb001c80c79fde7b5
Instale o Node.js e o npm:
apt update
sudo apt install nodejs npm
Baixe e instale o Heappy:
git clone https://github.com/gand3lf/heappy
cd heappy/
npm install
Carregue o servidor dentro do GDB:
gef➤ source /my/path/heappy/server/heappy.py
Recomenda-se executar a GUI do Heappy depois que o heap de destino for inicializado.
Por exemplo:
gef➤ break main
gef➤ run
Em outro terminal, inicie a GUI:
cd /my/path/heappy/
npm start
Divirta-se! 🚀
🔲 suporte a endereços de 32 bits (em breve)
🔲 suporte a múltiplos heaps
🔲 integração com checkpoint do gdb