
Heappy は、エクスプロイト開発中にヒープを操作するのに役立つ、gdb/gef ベースのエディタです。
このプロジェクトは、プロセスのライフサイクル中のヒープの変化を理解するのに役立つ教育ツールと考えるべきです。最も一般的なヒープエクスプロイト技術の学習を簡素化し、この素晴らしいトピックに関連するバイナリエクスプロイト CTF の解決を支援するために作成されました。
Heappy が実装する機能は次のとおりです:
✅ ヒープのスナップショットを取得して相互に比較する
✅ ヒープビンのタイプとフィールドを即座に認識する
✅ ヒープ値を10進数・16進数・文字列で検索・編集する
✅ ヒープ状態の全体像で現在地を把握する
✅ コメント列にセルについてのメモを残す
✅ ライト/ダークモードを楽しむ
以下の手順で Heappy をすばやくインストールして実行できます。
まだお持ちでない場合は、GDB に GEF をインストールしてください:
wget -q -O- https://github.com/hugsy/gef/raw/master/scripts/gef.sh | sh
md5(gef.sh): eb053864d050048cb001c80c79fde7b5
Node.js と npm をインストールします:
apt update
sudo apt install nodejs npm
Heappy をダウンロードしてインストールします:
git clone https://github.com/gand3lf/heappy
cd heappy/
npm install
GDB 内でサーバーを読み込みます:
gef➤ source /my/path/heappy/server/heappy.py
対象のヒープが初期化された後に Heappy GUI を実行することをお勧めします。
例:
gef➤ break main
gef➤ run
別のターミナルから GUI を起動します:
cd /my/path/heappy/
npm start
楽しんでください! 🚀
🔲 32ビットアドレス対応(近日公開)
🔲 複数ヒープ対応
🔲 gdb チェックポイント統合