任何用于查找进程使用/访问的 IP 的工具?

逆向工程 工具 过程 调用栈 地址
2021-06-17 07:06:48

我需要提取某个应用程序用于接收和/或发送数据的 IP,是否有任何工具或软件可以为我执行此操作?或无需深入研究应用程序调用的任何简单方法?

2个回答

Linux

正如@Nirlzr 正确提到的,netstat -ape | grep <proc_name/pid>将向您显示进程的活动连接。这对你来说可能就足够了,但在某些情况下它不会。

netstat有一些盲点——它只显示某个时间点的连接。因此,快速关闭的连接以及在执行之前关闭或启动后的每个连接netstat显然不会显示。

对此的解决方案是使用strace它可以帮助您监视由进程创建的连接。

要启动进程并监视其连接:
strace -f -e trace=network -s 10000 <process [arg1] [arg2] [...]>

监控一个已经存在的进程:
strace -p <pid> -f -e trace=network -s 10000
如果你不知道它的 PID 使用pidof <processname>

然后使用一些grep魔法来只打印 IP 地址:
strace -f -e trace=network <process [args...]> 2>&1 | grep -oP 'connect.*inet_addr\("\K[^"]+'


视窗

在窗口中,您还可以使用netstat或它的改进版本Get-NetTCPConnection通过powershell但两者都有上述盲点。

两个推荐的解决方案是:

两者都能够在连接打开时监控连接,并有一个很好的 GUI 来显示它。

由于 OP 的回答在细节上有点低,我将假设 Linux 和动态 IP。

在大多数操作系统上,都有列出进程占用的网络资源的工具。这通常包括用于现有连接的 IP 地址和端口。如果要在 linux 上列出现有连接及其拥有的进程,请运行该netstat命令。

通过向它提供一些命令行参数,您可以获得所需的信息,总是建议查阅手册页,但对于您的特定情况,运行netstat -ape以列出所有连接及其 pid 和用户名。