问题标签 [pcap4j]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
852 浏览

java - 使用 pcap4J 解密 HTTPS 数据包

Javapcap4J用来捕获在我的计算机上运行的另一个应用程序的网络流量。我用来执行此操作的代码如下:

不幸的是,流量是加密的,因此无法分析。然而,另一个名为Fiddler的应用程序能够很好地解密流量,而无需任何特殊配置或服务器的私钥。Fiddler 可以显示JSON我感兴趣的正在交换的结构。我怎样才能在Java代码中做同样的事情来处理捕获的JSON对象?(这个问题是关于解密部分,而不是事后解析)

0 投票
0 回答
220 浏览

java - 将 Java 原始 InputStream 数据存储为 PCAP 以在 Wireshark 中查看

我正在尝试在 Java 中构建一个透明代理,该代理能够记录通过的数据,以便稍后在 Wireshark 中查看。

我能够使用此代码段使代理正常工作

正如您可能注意到的,我使用 Pcap4J 将原始字节存储到 pcap 文件中。字节的保存效果很好,但是当我尝试在wireshark上打开它时,它会显示以下消息:

错误

每个数据包都显示为格式错误。理想情况下,我会看到 TCP 和 CQL (Cassandra) 数据包。

谁能告诉我我在这里做错了什么?

0 投票
2 回答
289 浏览

java - 属性文件存在,但仍然得到“警告找不到附加程序”

我在我的应用程序中使用pcap4j库,当我运行它时,我得到:

我还在我的应用程序中使用 log4j:

配置在main/resources/log4j2-test.properties

所以配置文件就在那里,无论我在其中更改什么,它都会产生影响,这意味着 log4j 可以看到它并且它可以工作,所以当我到处读到这种警告是由丢失或错误的配置文件引起的时,我非常无助。

可能是错误在依赖项中,我对此无能为力吗?如果是这样,有没有办法完全禁用此依赖项中的日志记录?实际上,无论如何,这是我首先想要的。

0 投票
1 回答
451 浏览

java - 我正进入(状态 ”使用 Pcap4j 库中的 SendArpRequest 类时被解析为空”消息。如何正确实现它?

我正在尝试使用设备的 IP 地址在本地网络中获取设备的 MAC 地址。为了在 java 中实现这一点,我找到了一个名为 Pcap4j 的库。我正在使用它的类 SendArpRequest 来生成 ARP 请求并接收回复,但它总是说“IP 地址已解析为空”。

这是java代码:

我通过使用 sourceIP = "192.168.0.11"、sourceMAC = "00:db:df:8b:b1:a9" 和 destinationIP = "192.168.0.3" 得到了这个输出。

如您所见,在这里我的目标 MAC 地址为空。

但是当我运行 arp-scan 命令时,我得到了给定 IP 地址的正确 MAC 地址。这是 arp 扫描结果的屏幕截图。

arp扫描结果

请建议我如何正确实施它。

0 投票
1 回答
822 浏览

java - 带有 jnetpcap 和 Windows 10 的 Winpcap

根据WinPcap 网站,他们不支持 Windows 10,但可以在 Windows 10 上运行的著名网络分析器 Wireshark (2.6.6) 的最新版本仍然在其安装中使用 WinPcap。另一方面,他们在他们的 wiki中警告你关于 Windows 10 上 WinPcap 的使用,说“Wireshark 安装程序包括 WinPcap,但 Npcap 可能更适合你,特别是如果你运行 Windows 10。” 我的问题是,在 Windows 10 上使用 Winpcap 有多可靠?如果它不可靠,我是否仍然可以将 jnetPcap 与更新的 Winpcap 替代品(例如 Npcap)一起使用。由于我已经有一个使用在 Windows 7 上开发的 jnetpcap 的旧 Java 实现,并且我将再次对其进行维护,因此我想尽可能地保留它。

0 投票
1 回答
419 浏览

java - Pcap4j TCP 数据包在 Wireshark 上显示后被丢弃

出于教育目的,我正在尝试对 Ubuntu 18.04 VM 执行 SYN 洪水攻击。我在我的 VM 设置中启用了桥接模式并设置了一个 Web 服务器 (10.0.0.10),我可以在我的主机 pc (10.0.0.3) 上访问,反之亦然。从主机到服务器的 ping 显示服务器上的 Wireshark 流量(请求和响应),从服务器到主机的 ping 也显示服务器上的 Wireshark 流量,但不是主机上的流量,即使 ping 数据包是正确构建的。

我构建攻击的方式是生成随机 IP,构建 TCP SYN 数据包并通过端口 80(打开)从我的主机将其发送到 Web 服务器,这应该发送一个 TCP SYN/ACK 数据包(我使用 iptables 路由它回到我的主机电脑)。

如果我通过 Pcap4J(Java 的 Pcap 库)构建一个 TCP 数据包,然后通过处理程序发送它,我会看到它在主机 Wireshark 上弹出。

但是,如果我检查我的 VM 上的 Wireshark,数据包不会到达。处理程序没有给出错误并且程序正确退出,因此我不确定如何解决这个问题。

数据包在哪里被丢弃,我能做些什么来修复它?我需要数据包到达 Web 服务器 VM(以及服务器将它们发回)。

代码:

注意:我已经在 Ubuntu sysctl 中禁用了 SYN cookie。

0 投票
1 回答
197 浏览

java - 如何停止包含阻塞操作的线程?

我正在研究数据包嗅探器,但我在停止包含阻塞方法的线程(不推荐使用的方法)的方式上遇到了麻烦。

相关方法是loop()来自 pcap4j 库的方法。由于它是一种阻塞方法,因此我将其放入一个线程中以保持主线程正常工作。但是,为了对 pcap 接口应用过滤器,我必须中断循环并重新启动它,因为breakloop()库的函数返回一个InterruptedException. 所以我的想法是杀死包含该方法的线程。但是由于我无法进入导致方法阻塞的库循环,我无法通过检查线程是否被中断来做到这一点。

我怎样才能阻止它?

编辑:我所做的是从源代码重新编译库,从 PcapHandle 类中删除 InterruptedException。

0 投票
1 回答
475 浏览

java - Pcap4J 错误:java.lang.ClassNotFoundException:org.pcap4j.util.NifSelector 在尝试运行我的代码以列出可用接口时

我目前正在尝试通过 Maven 运行 Java 代码来制作数据包嗅探工具。目前,我正在运行一个简单的代码来使用 NifSelector 选择所有当前可用的网络接口,但我遇到了以下错误-> 线程“main”java.lang.NoClassDefFoundError 中的异常:org/pcap4j/util/NifSelector。显然,这表明没有找到该类,但我在文档或 SO 中找不到任何可以纠正此错误的内容。我有 pcap4j 的 jar 文件,并将它作为依赖项添加到我的 pom.xml 中。我还在我的 Windows 机器上安装了 npcap(此设置在 Windows 上运行)。

以上是我尝试使用 NifSelector 类所需的导入语句运行的代码。https://github.com/kaitoy/pcap4j是项目文档的链接。文档中使用的所有示例都与 NifSelector 没有任何问题。任何帮助将不胜感激!

编辑:添加 pom.xml 片段

着色器插件的 Pom.xml 片段

0 投票
1 回答
74 浏览

winpcap - pcap4j+winpcap 我应该手动运行 rpcapd.exe 吗?

嗨,我已经手动下载了 pcap4j 和 winpcap 以及所有 jar(jna、pcap4j-core-1.8.2、slf4j-api-1.7.25、slf4j-simple-1.7.25)依赖项。添加到项目中并编译良好。但是:当我开始嗅探 packet.getHeader() 并且 packet.getPayload() 返回 null 时!如果我手动运行 rpcapd.exe 那么它可以工作......为什么?

0 投票
1 回答
108 浏览

java - linux上的java和pcap4j加载类的问题

我曾尝试使用 pcap4j for java 编写程序。我已经下载并构建了它。然后我用maven写了这段代码:

Maven文件:

我使用标准的 Maven 层次结构

然后我使用以下方法编译它:

并且没有错误。
但是当我尝试使用以下命令运行它时:

我得到了这个输出:

我试图用其他导入的类进行编译,但仍然得到java.lang.NoClassDefFoundError: org/pcap4j/core/*"class_I_tring_to_compile_with!"*