Some commands that were added to peda to debug heap.
Thanks to longld very much for a great template! PEDA
heap set_mainarena [new_addr]-- set main_arena = newvalueheap all-- print heap info (mmap + sbrk)heap freed [main_arena]-- print freed chunks (tcache + fastbinY + bins)heap fastbin [main_arena]-- print freed chunks(fastbinY)heap bins [main_arena]-- print freed chunks (bins)heap trace-- print (arg + return_value) of malloc,free,reallocheap checkfree address-- try free chunk at address and print some infoheap debug + heap restore-- try restore heap state before it was overlapped
xdebug-- execute commands in file peda-cmd.xstruct struct_name address-- try parsing info follow structs(Local Types) was reversed by IDA,structs was imported by peda from file peda-structs
Use: In IDA shift+F1->LocalTypes Window -> Edit a struct -> copy struct.Create file peda-structs and parse content in this file.Struct format like:
struct msg { __int64 post_id; _QWORD *sender; char msg[128]; post *next; };
idastruct struct_name address-- gdb auto read structs was defined in .idb,.i64 and parse.
Use: Copy your .idb,.i64 file to current folder gdb is running.
bp address-- breakpoint an address with PIE flagxp address-- exam an address with PIE flagba address-- get offset of an address on libc with memory address
git clone git://github.com/Mipu94/peda-heap.git ~/peda-heap
echo "source ~/peda-heap/peda.py" >> ~/.gdbinit


