在系统调用时设置断点

逆向工程 linux 操作系统
2021-06-28 06:48:31

我想修改我的teamspeak服务器(linux),我对与客户端的连接(UDP)特别感兴趣,所以我想我需要在linux套接字函数上设置一个断点来开始反向。我怎样才能做到这一点?

谢谢!

1个回答

gdb你可以设置一个系统调用断点catch syscall

如果这是在 32 位 x86 (IA-32) 中,请检查your_linux_source_dir/usr/include/asm/unistd_32.h. socket在 32 位 x86 中没有系统调用,你的意思是socketcall它的编号是 102。

如果这是在 x86-64 (AMD64) 中,请检查your_linux_kernel_source_dir/usr/include/asm/unistd_64.h. 调用的系统调用socket是 41。

然后在gdb以下位置运行可执行文件

$ gdb myexecutable

并设置系统调用断点(41 是socketx86-64 中的系统调用编号,为您更改为适当的系统调用编号):

(gdb) catch syscall 41

然后运行程序:

(gdb) r

使用系统调用的名称(例如socket)代替数字(例如41)也可能有效,具体取决于您的配置。