
🔍أداة تحليل الكومة لـ CTF pwn.
Pwnning هو فن.
HeapInspect تم تصميمه لجعل heap أكثر جمالاً.
الآن هذه الأداة هي إضافة لـ nadbg. جربها!
HeapShower (مفصل)PrettyPrinter (ملون، ملخص)استخدام سريع لهذه الأداة.




يمكنك أيضًا استخدامها كإضافة لـ gdb، مفيدة جدًا عندما يفشل pwndbg أو الإضافات الأخرى في تحليل heap.
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
تم كتابة docstrings مفصلة في الكود المصدري.
لقد بنيت وثائق sphinx في docs. فقط افتح docs/build/html/index.html في متصفحك.
تحديث الوثائق.
ليس تحديثًا وظيفيًا.
الإصدار الأول
الإصدار التالي سيكون إصدارًا.
هذا ليس إصدارًا مستقرًا. أحاول إصلاح الأخطاء بسبب اختلاف glibc. أحتاج مساعدة لاختبار هذا.
الإصدار التالي سيضيف دعمًا متعددًا لـ libc. سيتم إضافة heapdiff وفحص heap لاحقًا.
HeapShowerbins الآن تبحث من bk بدلاً من fd، كما هي طريقة glibcHeapRecoder، سأصنع heapdiffsmallbins و largebinsfastbinunsortedbinbinstcacheC_Struct للتعامل مع هيكل Cclass HeapInspectorarenaclass Proc في proc_utiltest.py