Debugging 使用GDB在linux上调试root应用程序

Debugging 使用GDB在linux上调试root应用程序,debugging,process,gdb,Debugging,Process,Gdb,我正在学习一本叫做《黑客的艺术》的书,在理论研究之后,我试图做一些关于真实旧漏洞的练习,只是为了做一些练习 因此,我“配置”、“制作”和“安装”了一个ftp易受攻击的服务,然后以root用户身份启动它 此时,我需要在ftp服务以root用户身份运行时调试它。 我从这本书中了解到,要为这样的情况创建一个有效的利用,我需要在服务以root用户身份运行时研究堆栈,以便获得我想要工作的程序的真实“堆栈情况”。。。为此,我需要将我的gdb连接到正在运行的进程 我的问题是当我启动命令时 gdb 我的gdb是

我正在学习一本叫做《黑客的艺术》的书,在理论研究之后,我试图做一些关于真实旧漏洞的练习,只是为了做一些练习

因此,我“配置”、“制作”和“安装”了一个ftp易受攻击的服务,然后以root用户身份启动它

此时,我需要在ftp服务以root用户身份运行时调试它。 我从这本书中了解到,要为这样的情况创建一个有效的利用,我需要在服务以root用户身份运行时研究堆栈,以便获得我想要工作的程序的真实“堆栈情况”。。。为此,我需要将我的gdb连接到正在运行的进程

我的问题是当我启动命令时

gdb

我的gdb是附加到进程的,但是我当然有任何加载的符号和任何研究程序堆栈的可能性


由于我拥有应用程序的所有源代码,如何编译它们以创建调试正在运行的进程所需的符号?

您需要在编译标志中添加一个
-g
。大多数软件包都会使用
configure--enable debug
,但是如果configure不起作用,您可能需要在运行configure之前使用
export CFLAGS=-g
设置
CFLAGS
环境变量