Pwngdb·堆指令笔记

Posted by Zephyr on Monday, May 20, 2024

arena

用法: arena [-h] [addr]

打印main arena或特定地址的arena。

arenas

用法: arenas [-h]

打印所有的arena。

bins

用法: bins [-h] [addr] [tcache_addr]

打印所有main_arena或者指定地址中的bins信息,包括tcachebins、fastbins、unsortedbin、smallbins和largebins。

heap

用法: heap [-h] [addr]

打印从指定地址(addr)开始块的信息。

fastbins

用法: fastbins [-h] [addr] [verbose]

打印main arena或者指定地址的fastbins。

find_fake_fast

用法: find_fake_fast [-h] addr size

查找与指定地址重叠的候选fake fast块。用于fastbin dups和house of spirit。

largebins

用法: largebins [-h] [addr] [verbose]

打印main arena或指定地址的largebins信息。

malloc_chunk

用法: malloc_chunk [-h] [addr] [fake]

打印指定地址的malloc_chunk。如果这个chunk是一个fake chunk,则使用fake选项(默认: False)。

mp

用法: mp [-h]

打印glibc中的mp_结构。

smallbins

用法: smallbins [-h] [addr] [verbose]

打印main arena或指定地址的smallbins信息。

tcache

用法: tcache [-h] [addr]

打印malloc线程缓存信息。

tcachebins

用法: tcachebins [-h] [addr] [verbose]

打印当前线程tcache或指定地址tcache中的bins信息。verbose选项用于是否显示更多细节(默认: False)。

top_chunk

用法: top_chunk [-h] [addr]

打印main arena或指定地址的top chunk地址。

unsortedbin

用法: unsortedbin [-h] [addr] [verbose]

打印main arena或指定地址的unsorted bin内容。verbose选项用于是否显示更多细节(默认: True)。

vis_heap_chunks

用法: vis_heap_chunks [-h] [--naive] [count] [address]

可视化指定地址的heap块。

  • count: 要可视化的块数(默认: 10)
  • address: 起始地址

觉得有用的几个命令

da/ds

用法: da [-h] address [max]

打印指定地址的字符串。max是最大字符串长度(默认: 256)。

dds

用法: dds [-h] addr

打印指定地址的指针和符号。

bl

用法: bl

列出断点。

u

用法: u [-h] [where] [n]

从指定地址(where)开始反汇编N条指令。

k

用法: k [-h]

打印回溯(别名 ‘bt’)。

ln

用法: ln [-h] [address]

列出最接近提供地址的符号。

nextjump

用法: nextjmp [-h]

在下一个跳转指令处设置断点。类似的命令还有nextcall、nextret、nextsyscall、nextproginstr。

entry

用法: entry [-h] [args [args ...]]

在目标二进制文件的第一个执行指令处设置断点。args是要运行的程序名。

j

用法: j [-h]

将IDA的光标与GDB同步。

main

用法: main [-h]

startmain到main函数。

sstart

__libc_start_main开始。

libs

显示各种模块映射和地址,相当于cat /proc/pid_of_program/maps

elfheader

打印elf文件的段映射。

got命令

用法: got [-h] [name_filter]

不加参数则打印所有函数的got信息,否则打印指定函数的got信息。

plt

打印plt信息。

gotplt

打印.got.plt中的信息。

auxv

打印辅助ELF向量的信息。

xinfo

用法: xinfo [-h] [address]

显示指定地址到其他有用位置的偏移。

xuntil

用法: xuntil [-h] target

继续执行程序,直到在目标函数或地址处暂停。

regs

用法: regs [-h] [regs [regs ...]]

打印所有寄存器并增强信息。

search

用法: search [-h] [-t {byte,short,word,dword,qword,pointer,string,bytes}] [-1] [-2] [-4] [-8] [-p] [-x] [-s] [-e] [-w] [--save] [--no-save] [-n] value [mapping_name]

在内存中搜索字节序列、字符串、指针和整数值。

hexdump

用法: hexdump [-h] [address] [count]

以16进制形式展示指定地址处的内容。

piebase

展示PIE地址。

dumpargs

用法: dumpargs [-h] [-f]

展示函数调用参数。

distance

用法: distance [-h] a b

打印两个参数之间的距离。