在linux平台调试程序的时候,可以在程序指定行处下断点,以前一直不知道,其实gdb提供了这个功能。
前提:gcc在编译可执行程序的时候使用了-g参数
编译过程:
devil@ubuntu:~$ gcc -m32 -g -no-pie -o ex2 ex2.c
ex2.c: In function ‘vuln’:
ex2.c:17:16: warning: format not a string literal and no format arguments [-Wformat-security]
printf(buf);
我要下断在vuln()函数最后的一个’}'处,在pwndbg中就需要使用b+'行号’来下断(但这种形式下断点就需要编译的时候-g参数)。
此外,可以通过-l参数来查看可执行文件信息。
devil@ubuntu:~$ gdb -q ex2
pwndbg: loaded 181 comman