捕获和编辑TCP / UDP数据包

我正在尝试创建一个工具,在特定数据包发送到特定网站之前,它会在特定数据包中追加/编辑某些内容。

现在我正在使用Wpe Pro来应用此过滤器。

C#中是否有类似的东西来创建这个工具?


实际上并没有一个通用的方法。 你需要考虑多种可能性,看看它们是否适合你的情况。 例如,您可以通过使用Pcap.NET(如注释中所述)轻松地编辑使用HTTP发送的数据包。 网络上有几十个例子可以指导你使用Pcap修改数据包,例如在官方Pcap.NET论坛上的讨论。

但是,如果数据包使用HTTPS(SSL / TLS),那么负载(即实际发送的数据)将被加密,并且可能会被绕过; 如果SSL的一个/多个先决条件被破坏或者使用像sslstrip(python)这样的工具。 请注意,即使请求HTTPS,sslstrip也会尝试强制通过HTTP发送套接字,但这并不保证能够正常工作。

就我个人而言,我总是会尽量避免触摸插座,甚至任何网络相关的东西。 特别是当它涉及HTTPS时,因为你现在可能已经明白了,这很难绕过。 我不知道你试图破解什么程序,但我觉得这样做会对这个答案有好处。

对于HTTP,可以轻松创建一个钩住Windows Socket API的简单程序。 您应该查看发送功能,甚至可能会收到recv(receive)函数。 如果需要,您可以根据需要修改有效负载,甚至可以用另一个有效负载替换它。 请注意,通过winsock.send函数发送的数据已经被加密(如果使用SSL / TLS),因为应用程序将处理第7层(应用程序层),第6层(表示层)和第5层(会话层,这是SSL被应用)OSI模型。 Winsock是第5层和第4层之间的桥梁。

对于HTTPS,您仍然可以使用挂钩,但您必须挂钩它处理连接的应用程序部分,并确保在初始化连接/设置有效内容之前应用您的(已修改)有效内容。 这听起来很难做到,如果你愿意学习并且有一些时间,那么做起来确实很容易。

链接地址: http://www.djcxy.com/p/21739.html

上一篇: Capture and edit TCP/UDP Packets

下一篇: Possibility of Man in the Middle Attack during TLS handshake