捕获特定应用的流量


14

我有一个与某些服务器通信的应用程序。我想知道该服务器的IP是什么。如何捕获特定应用程序的所有流量,而不仅仅是Wireshark的所有流量?


您使用什么操作系统?您对应用程序了解多少?您知道它是否使用特定端口吗?
James Polley

Windows Server 2008 R2 / Windows 7我对端口号一无所知。这是IP(TCP / UDP)流量。
melco-man

1
因此,澄清一下。您至少要查看进程ID。但是诸如netstat -aon之类的操作不会执行此操作,因为您也想查看连接尝试失败的情况。(我什么都不知道,如果有人知道,您会很幸运,但是您能澄清一下这就是您想要的吗?)
barlop

您知道应用程序将尝试连接到的位置吗?我认为您可以使用Wireshark并使用过滤器来向下钻取到目标主机/ IP?
emtunc

另外,根据应用程序的类型,您可以强制其通过代理并使用诸如fiddler之类的东西来捕获该应用程序的流量。从未尝试过,但看不到为什么不起作用。它可能像将IE代理设置更改为提琴手代理(默认情况下为端口8888)那样简单,也可能像重新编译应用程序以使用代理一样困难,或者以某种方式强制应用程序使用代理-可以肯定地存在该应用程序可以做到的。
emtunc

Answers:


4

通过拦截Windows套接字API调用,可以捕获给定应用程序的所有网络流量。这些是可能有用的工具。

  1. Proxocket由Luigi奥列马写的。它拦截API调用,并将捕获的流量以tcpdump格式保存为Wireshark就绪的.cap文件。没有什么比路易吉本人提供的图像更具解释性了:屏幕截图

  2. NirSoft具有SocketSniff应用程序,该应用程序可以捕获特定进程的流量。一幅图片也值一千个字:屏幕截图

可悲的是,上述工具可能不支持64位应用程序。但是,可以使用支持32位和64位API的mhook库编写自定义拦截器。


+1,适用于非常出色的NirSoft免费软件工具,通常可移植(单个.exe)而小型(<500 KB)。非常有才华的开发人员!
Basj

在Linux上呢?
亚伦弗兰克

@AaronFranke strace可能会有所帮助。看到这里:askubuntu.com/a/12465/505090
PF4Public


1

Fiddler 2是最容易使用的工具。它是一种调试器,可让您使用PC上的任何应用程序查看HTTP,HTTPS和FTP(如果已配置)请求。

安装后,要针对特定​​的应用程序,只需单击并按住菜单项“ Any Process ”,然后将光标拖到打开的窗口中并释放它。它只会显示目标应用程序,直到您右键单击现在以红色文本读取目标进程以将其释放的菜单项。

http://fiddler2.com/


如何对非HTTP / FTP请求使用Fiddler?
Pacerier

0

在Windows上,TCPView应该执行您需要的操作:它可以向您显示特定程序已打开的所有TCP和UDP连接。

但是,我认为这仅在程序打开连接并使其保持打开状态时才有用。他们不会通过特定程序向您显示所有网络流量。例如,它可能在加载时进行非常简短的电话家庭电话,但在运行TCPView时连接已消失。

Process Monitor可能有助于获得更多详细信息,但是我没有使用过它,因此我不确定它捕获了多少关于网络套接字的信息。


4
TCPView仅有助于建立连接。我什至需要查看失败的TCP连接尝试。
melco-man

1
在那种情况下,我没主意了。也许值得将其添加到问题中。
詹姆斯·波利

0

proxifierhttps : //www.proxifier.com
这是在Windows OS上为单独的应用程序设置代理的好程序。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.