
🔍Heap-Analyse-Tool für CTF pwn.
Pwnning ist eine Kunst.
HeapInspect wurde entwickelt, um heap viel schöner zu machen.
Dieses Tool ist jetzt ein Plugin von nadbg. Probier es aus!
HeapShower (detailliert)PrettyPrinter (farbig, Zusammenfassung)Eine schnelle Verwendung dieses Tools.




Sie können es auch als gdb-Plugin verwenden, sehr nützlich, wenn pwndbg oder andere Plugins bei der Heap-Analyse versagen.
sed -i "1i source `pwd`/gdbscript.py" ~/.gdbinit # alternatively, you can add that line manually
Hinweis



Sehr einfach zu bedienen. Ich werde es später zu einem Paket machen.
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
Es gibt einige Testfälle.
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
Detaillierte Docstrings wurden in den Quellcode geschrieben.
Ich habe eine Sphinx-Dokumentation in docs erstellt. Öffne einfach docs/build/html/index.html mit deinem Browser.
Dokumentationsaktualisierung.
kein funktionales Update.
erste Veröffentlichung
nächste Version wird eine Veröffentlichung sein.
Dies ist keine stabile Version. Ich versuche, Fehler aufgrund verschiedener glibc zu beheben. Ich brauche Hilfe, um dies zu testen.
Nächste Version wird Multi-libc-Unterstützung hinzufügen. Heapdiff und Heap-Check werden später hinzugefügt.
HeapShowerbins sucht jetzt von bk statt von fd, wie es bei glibc üblich istHeapRecoder, ich werde einen Heapdiff erstellensmallbins und largebinsfastbin-Prototypunsortedbin-Prototypbins-Prototyptcache-PrototypC_Struct hinzugefügt, um C-Struktur zu handhabenclass HeapInspector hinzugefügtarena zu parsenclass Proc in proc_util hinzugefügttest.py