Pwnning is an art.
HeapInspectは、heapをより美しくするために設計されています。
現在、このツールはnadbgのプラグインです。試してみてください!
HeapShower (詳細)PrettyPrinter (カラフル、概要)このツールの簡単な使い方。




また、gdbプラグインとしても使用でき、pwndbgや他のプラグインがヒープ解析に失敗した場合に非常に便利です。
sed -i "1i source `pwd`/gdbscript.py" ~/.gdbinit # alternatively, you can add that line manually
注意



非常に簡単に使用できます。後日パッケージ化する予定です。
from heapinspect.core import *
hi = HeapInspector(1234) #pid here
hs = HeapShower(hi)
print(hs.fastbins)
print(hs.smallbins)
print(hs.largebins)
print(hs.unsortedbins)
print(hs.tcache_chunks)
hs.relative = 1 #relative mode, check Quick shot
print(hs.fastbins)
sleep(10)
#now assume that the heap state has changed
hs.update() #use this to refresh
pp = PrettyPrinter(hi)
print(pp.all) #pretty printer
pp.update() #use this to update
いくつかのテストケースがあります。
heapinspect/tests/ $ python test.py #this will run all test cases for you to check this tool.
......
......
test case unsortedbins64 at test/testcases/libc-2.27/64bit
pid:6704
========================= fastbins =========================
========================= unsortedbins =========================
chunk(0x7f9aae2e6720): prev_size=0x0 size=0xb1 fd=0x7f9aacdfbca0 bk=0x7f9aae2e6880
chunk(0x7f9aae2e6880): prev_size=0x0 size=0xb1 fd=0x7f9aae2e6720 bk=0x7f9aacdfbca0
========================= smallbins =========================
========================= largebins =========================
========================= tcache =========================
tcache[9]:
chunk(0x7f9aae2e6670): prev_size=0x0 size=0xb1 fd=0x7f9aae2e65d0 bk=0x0
chunk(0x7f9aae2e65c0): prev_size=0x0 size=0xb1 fd=0x7f9aae2e6520 bk=0x0
chunk(0x7f9aae2e6510): prev_size=0x0 size=0xb1 fd=0x7f9aae2e6470 bk=0x0
chunk(0x7f9aae2e6460): prev_size=0x0 size=0xb1 fd=0x7f9aae2e63c0 bk=0x0
chunk(0x7f9aae2e63b0): prev_size=0x0 size=0xb1 fd=0x7f9aae2e6310 bk=0x0
chunk(0x7f9aae2e6300): prev_size=0x0 size=0xb1 fd=0x7f9aae2e6260 bk=0x0
chunk(0x7f9aae2e6250): prev_size=0x0 size=0xb1 fd=0x0 bk=0x0
詳細なdocstringがソースコードに記述されています。
docsにsphinxドキュメントを作成しました。ブラウザでdocs/build/html/index.htmlを開いてください。
ドキュメント更新。
機能的な更新ではありません。
初回リリース
次のバージョンはリリースになります。
これは安定版ではありません。異なるglibcによるバグを修正しようとしています。テストの協力が必要です。
次バージョンではマルチlibc対応を追加します。後日、heapdiffとヒープチェックを追加予定。
HeapShowerbinsはglibcの方式に従い、fdではなくbkから検索するようになりましたHeapRecoder。後日heapdiffを作成予定smallbins and largebinsfastbinプロトタイプunsortedbinプロトタイプbinsプロトタイプtcacheプロトタイプC_Structを追加class HeapInspectorを追加arenaのより多くの情報を解析しようとしていますproc_utilにclass Procを追加test.pyでの実験的テスト