我想修改我的teampeak服务器(linux),我特别对与客户端(UDP)的连接感兴趣,所以我认为我需要在linux socket函数上设置一个断点才能开始反转。我该如何实现?

谢谢!

评论

撰写文章:stackoverflow.com/questions/8235436/…

#1 楼

gdb中,可以使用catch syscall设置系统调用断点。

如果它在32位x86(IA-32)中,请检查your_linux_source_dir/usr/include/asm/unistd_32.h中的系统调用编号。在32位x86中没有名为socket的系统调用,您是说socketcall吗?它的编号为102。如果在x86-64(AMD64)中,请检查your_linux_kernel_source_dir/usr/include/asm/unistd_64.h中的系统调用编号。名为socket的系统调用是41。

然后在gdb中运行可执行文件:

$ gdb myexecutable


并设置系统调用断点(41是socket syscall x86-64中的数字,请更改为您合适的系统调用号):

(gdb) catch syscall 41


,然后运行程序:

(gdb) r


也可以使用syscall的名称(例如socket)代替数字(例如41),具体取决于您的配置。

评论


我不知道何时添加。但是现在您可以使用syscall名称而不是其编号。因此,只需捕获syscall套接字即可。

–塞利利比
18-09-26在16:25