调试常用骚操作
1.查看数据
查看可能用到的变量或函数地址:
magic
查看指定地方地址或值:
1
2
3
4
5
6
7#注释头
p &__malloc_hook
p *__malloc_hook
p __malloc_hook
p main_arena.bins[0]
p main_arena.fastbinsY查看堆状态内容:
1
heap; vis; parseheap; bins;
查看函数汇编代码:
x/20i &__libc_realloc
查看调用的函数:
backtrace
,可以查看到当前位置调用的相关堆栈及函数
2.技巧
直接从Libc.so中查找函数:
1
readelf -s /lib/x86_64-linux-gnu/libc-2.23.so | grep -E "__malloc_hook|__free_hook|__realloc_hook"
结构体的size
1
p sizeof((*(struct msg_queue*)0xffffffff82203e90))
libs:类似IDA中的ctrl+s
3.断点
- 硬件断点:
watch/awatch/rwatch *addr
内存硬件断点,分别对应写/读写/读。
4.多线程
查看线程:
i threads
切换线程:
thread x
,这个x就比如是上述3个线程中的某个线程。pwndbg
中可以完美切换,并且堆方面也可以。
gef
1 | decompiler connect ida --host 192.168.xxx.xxx(LAN IP) --port 3662 |