有点难以解释,但我注意到在strace打开套接字的 PID时我看不到任何通信。如何坐在套接字文件的中间观看通信?
Sté*_*las 12
套接字是用于通信的内核 API。使用套接字 API,您可以通过 TCP/IP 连接、SCTP 关联、UDP 数据报在两个端点之间交换数据,或者使用 Unix 域套接字在两个进程(数据报或连接)之间交换数据...
作为内核 API,与套接字的任何交互都是通过系统调用 ( socket, bind, connect, listen, accept, sendmsg, send, recv, write/read...)。
所以通常情况下,strace将能够跟踪那些因为strace跟踪系统调用。唯一strace无法追踪的通信机制是共享内存上的 IPC(因为在内存中读取/写入内容显然不涉及系统调用)。
更可能的是,在你的情况下,它是别的东西。我敢打赌,该应用程序是多线程的,而且您没有找到正确的线程。或者可能是应用程序是 setuid/setgid 而不是以超级用户身份启动。
如果你想追踪通过 Unix 域套接字交换的内容,选项是:
strace和其他ptrace调试器(跟踪服务器或客户端)auditd/ auditctl),再次跟踪系统调用LD_PRELOAD技巧来包装与套接字交互的系统调用例如,对于 MITM,您可以使用socat. 这里是面向连接的 Unix 域套接字,如 X11:
socat -x unix-listen:/tmp/.X11-unix/X42,fork unix:/tmp/.X11-unix/X0
DISPLAY=:42 xlogo
Run Code Online (Sandbox Code Playgroud)
然后,您会看到xlogo与 X 服务器交换的 X11 流量。
| 归档时间: |
|
| 查看次数: |
19623 次 |
| 最近记录: |