Gdb 调试服务器[proftpd]
我正试图调试proftpd,以便更好地理解此漏洞。易受攻击的部分在mod_sql.c中,我尝试中断sql_prepare_where函数(即堆溢出发生的地方),然后调用用户。。。然后通过。。。命令,但它从未被触发 为了找出为什么我在mod_sql.c的数百行中都有断点,然后启动程序(带有完全调试选项),会触发一些断点(sql_setuserinfo、set_sqlauthenticate、get_auth_entry…),但只是在启动过程的一开始,然后,当程序进入主循环时,不会发生其他与断点相关的事情(proftpd的日志提到用户和PASS命令被分派到mod_sql.c) 有人知道我错过了什么吗Gdb 调试服务器[proftpd],gdb,exploit,Gdb,Exploit,我正试图调试proftpd,以便更好地理解此漏洞。易受攻击的部分在mod_sql.c中,我尝试中断sql_prepare_where函数(即堆溢出发生的地方),然后调用用户。。。然后通过。。。命令,但它从未被触发 为了找出为什么我在mod_sql.c的数百行中都有断点,然后启动程序(带有完全调试选项),会触发一些断点(sql_setuserinfo、set_sqlauthenticate、get_auth_entry…),但只是在启动过程的一开始,然后,当程序进入主循环时,不会发生其他与断点相关
[可能我遗漏了GDB的一些基本内容,我正在学习:)服务器程序通常使用“每个连接都有一个单独的程序”方法,在成功的
接受后,父分叉让子代处理当前连接,然后返回到接受创建更多连接
我不确定,但如果proftpd
使用该模型,它将准确解释您描述的症状
通过使用(GDB)set follow fork mode child
,服务器程序通常使用“每个连接都有一个单独的程序”方法,在成功的接受后,父fork
将一个子级用于处理当前连接,您可以要求GDB调试子级而不是父级,然后返回到accept
ing更多连接
我不确定,但如果proftpd
使用该模型,它将准确解释您描述的症状
通过使用(GDB)set follow fork mode child
,您可以要求GDB调试子级而不是父级