在通过网络发送之前捕获我的数据包

发布于 2024-11-09 02:12:19 字数 178 浏览 3 评论 0原文

我想问是否有一种方法可以捕获即将从我的计算机通过网络发送给其他人的数据包。是否可以使用一些java库来设计这样的东西?


编辑 我不需要一个程序..我想要一种方法来创建这样一个程序,用java编写...我可以使用jpcap发送数据包,但我不想创建数据包,我想获取我的计算机将发送的数据包,并且在发送之前对其进行编辑。

I would like to ask if there is a way to capture packets, that are about to send from my computer to others through the network.. Is it possible with some java libraries, to design sth like that?


edit
i dont want a programme.. i want a way to create such a programme, written in java... I can send packets with jpcap but i dont want to create the packets, i want to take the packets that my computer will send and edit them before sending them.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

时光清浅 2024-11-16 02:12:19

在Linux(即Linux内核)中,您的目标并不那么容易实现......但您可以使用软件sniffjoke所使用的相同技术:即隧道。通过这种方式,您可以拦截(由您的应用程序)发送的所有数据包,因此您可以修改/更改它们(就像 sniffjoke 一样)。为了帮助您,有一个名为 janus 的项目(开源)( https://github.com/evilaliv3/janus ),它会覆盖实际的路由表,创建一个假网关,旨在阻止内核之后(传出流量)和内核之前(传入流量)的数据包。

In Linux (ie the Linux kernel) your goal is not so easy to achive... but you can use the same technique used by the software sniffjoke: i.e. a tunnel. In this way you can intercept all packets sent (by your applications) and so you can modify/change them (like does sniffjoke). To help you there is a project (open source) named janus ( https://github.com/evilaliv3/janus ), it overrides the actual routing table, creating a fake gateway with the aim to block packets after the kernel (on outgoing traffic) and before the kernel (on incoming traffic).

情丝乱 2024-11-16 02:12:19

我想,理论上,您可以创建一个替代的“SocketImpl”类,并通过将自定义套接字工厂配置为默认来配置您的应用程序以使用它。这种方法无法捕获 TCP/IP 数据包,但它可以在数据写入操作系统级套接字之前捕获数据。

如果您想捕获网络数据包并在传输过程中对其进行编辑,您可能需要使用主机操作系统的 IP 过滤基础设施。它将是不可移植的、技术上复杂的,并且在底层区域配置起来很痛苦。如果您尝试用 Java 实现它(使用 JNI 或 JNA),则更是如此。

(据我所知,像 Wireshark 这样的工具只允许您查看数据包及其内容。它们 无法更改数据包。)

I guess, in theory, you could create an alternative "SocketImpl" class and configure your application to use it by configuring a custom socket factory as the default. This approach cannot capture the TCP/IP packets, but it could capture the data before it is written to the OS-level socket.

If you want to capture the network packets and edit them on the way through, you'll probably need to use the host OS'es IP filtering infrastructure. It will be non-portable, technically complicated, and a pain in the nether regions to configure. And even more so if you try to implement it in Java (using JNI or JNA).

(AFAIK, tools like Wireshark only allow you to see the packets and what's in them. They can't change the packets.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文