avatar

目录
Pwn小技巧总结

GDB

调试指定进程

shell
1
$ gdb attach <pid>

若失败,可能是权限不够,试试用sudo

PIE下断点

调试开启PIE保护的程序时,下断点可以使用$rebase

shell
1
pwndbg> b *$rebase(0xAAAA)

Pwntools.gdb执行多条指令

若想执行多条指令,可以使用\n连接多条指令:

python
1
gdb.attach(p, "b *$rebase(0xAAAA)\n" + "c\n" + "si")

pwngdb 堆相关指令

查看堆结构 Ref.

shell
1
2
3
4
5
6
7
8
9
10
11
12
13
pwndbg> heapls
ADDR SIZE STATUS
sbrk_base 0x56476bb24000
chunk 0x56476bb24000 0x1010 (inuse)
chunk 0x56476bb25010 0x20 (inuse)
chunk 0x56476bb25030 0x20 (inuse)
chunk 0x56476bb25050 0x20fb0 (top)
sbrk_end 0x56476bb46000
pwndbg> x/8gx 0x56476bb25010
0x56476bb25010: 0x0000000000000000 0x0000000000000021
0x56476bb25020: 0x000056476bb25040 0x0000000000000000
0x56476bb25030: 0x0000000000000000 0x0000000000000021
0x56476bb25040: 0x6161616161616161 0x0000000000000005

相关指令

heap (查看堆详细内容)

bins (查看bins)

IDA

求余数运算反汇编

求余运算F5反汇编结果如下:

c
1
v5 = 3 * v0 - 0X30 * ((unsigned __int64)(0xAAAAAAAAAAAAAAABLL * (unsigned __int128)(3 * v0) >> 64) >> 5);

其实相当于如下运算:

c
1
v5 = 3 * v0 % 0x30;
文章作者: TaQini
文章链接: http://taqini.space/2020/02/19/pwn-technique/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 TaQini
打赏
  • Wechat
    Wechat
  • Alipay
    Alipay

评论