Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
PcapPlusPlus — 跨平台C++库,用于高性能网络数据包捕获、解析、构建和分析。支持libpcap、DPDK、AF_XDP、PF_RING,并包含TCP重组、TLS指纹识别和协议解码。 | Kitploit
工具/GitHubGitHub/seladb/pcapplusplus
数据包嗅探与分析网络映射网络取证取证分析网络安全实用工具与框架网络爬虫DNS 分析
GitHubseladb/pcapplusplus

PcapPlusPlus

跨平台C++库,用于高性能网络数据包捕获、解析、构建和分析。支持libpcap、DPDK、AF_XDP、PF_RING,并包含TCP重组、TLS指纹识别和协议解码。

查看仓库
3.1k75110天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

⚠️ 注意: 本翻譯由 AI 協助維護與同步,可能與最新的英文版本存在差異。若您發現任何錯誤,歡迎開立 GitHub issue 或提交 PR。

PcapPlusPlus 標誌

GitHub 工作流程狀態 GitHub 工作流程狀態 Codecov OpenSSF Scorecard GitHub 貢獻者

X 關注 GitHub Repo 星星

PcapPlusPlus 是一個跨平台的 C++ 函式庫,提供高效、強大且易於使用的功能,來進行網路封包的擷取、解析和生成。

PcapPlusPlus 支援對多種網路協議進行解析和建構,並對常見的封包處理函式庫(如 libpcap、WinPcap、Npcap、DPDK、eBPF AF_XDP、WinDivert 和 PF_RING)提供 C++ 的封裝函式。

翻譯: English · 正體中文 · 한국어 · 日本語 · Русский

目錄

  • 目錄
  • 下載
    • GitHub 發佈頁面
    • Homebrew
    • Vcpkg
    • Conan
    • 自行建置
    • 驗證您的套件
  • 功能概述
  • 快速入門
  • API 文件
  • 跨平台支援
  • 支援的網路協定
    • 資料連接層 (L2)
    • 網路層 (L3)
    • 傳輸層 (L4)
    • 對話層 (L5)
    • 表示層 (L6)
    • 應用層 (L7)
  • DPDK 和 PF_RING 支援
  • 基準測試
  • 提供回饋
  • 貢獻
  • 授權條款

下載

您可以從 GitHub 發佈頁面下載,使用套件管理器來下載,或自行建構 PcapPlusPlus。更多詳情請參考 下載 頁面。

GitHub 全部下載

GitHub 發佈頁面

https://github.com/seladb/PcapPlusPlus/releases/latest

Homebrew

root@kitploit:~
brew install pcapplusplus

Homebrew 套件頁面: https://formulae.brew.sh/formula/pcapplusplus

Vcpkg

Windows:

root@kitploit:~
.\vcpkg install pcapplusplus

MacOS/Linux:

root@kitploit:~
vcpkg install pcapplusplus

Vcpkg 套件頁面: https://github.com/microsoft/vcpkg/tree/master/ports/pcapplusplus

Conan

root@kitploit:~
conan install "pcapplusplus/[>0]@" -u

Conan 套件頁面: https://conan.io/center/pcapplusplus

自行建置

取得 git repo:

root@kitploit:~
git clone https://github.com/seladb/PcapPlusPlus.git

根據您的平台,請遵循 從原始碼建置 頁面中的指示進行建置。

驗證您的套件

PcapPlusPlus 發佈的版本自 v23.09 以後都已通過 GitHub 驗證簽署。所有的驗證文件都可以在 這裡 找到。您可以使用 GitHub CLI 驗證這些套件的簽署。要驗證套件,您可以參考 gh attestation verify 的最新說明。以下是簡單的操作命令:

root@kitploit:~
gh attestation verify <path-to-package-file> --repository seladb/PcapPlusPlus

執行後,您應該會在終端機中看到以下輸出:

root@kitploit:~
✓ Verification succeeded!

功能概述

  • 封包捕獲:提供簡單易用的 C++ 封裝函式來使用常見的封包捕獲引擎,如 libpcap、WinPcap、Npcap、Intel DPDK、eBPF AF_XDP、WinDivert、ntop 的 PF_RING 以及 raw sockets [了解更多]
  • 解析與建構:包含網路協定解析、網路封包建構與編輯,支援各種類型的 網路協定 [了解更多]
  • 從檔案讀寫封包:支援 PCAP 和 PCAPNG 格式 [了解更多]
  • 封包處理:以線性速度提供高效且易用的 C++ 封裝函式來使用 DPDK、eBPF AF_XDP 和 PF_RING [了解更多]
  • 多平台支援:PcapPlusPlus 完全支援 Linux、MacOS、Windows、Android 和 FreeBSD
  • 封包重組:包含 TCP 重組 的獨特實現,處理 TCP 重傳、亂序的 TCP 封包及遺失的 TCP 資料,並支援 IP 分片與重組,可生成並重組 IPv4 和 IPv6 的分片 [了解更多]
  • 封包過濾:讓 libpcap 的 BPF 過濾器變得更加易用 [了解更多]
  • TLS 指紋識別:C++ 實現的 JA3 和 JA3S TLS 指紋識別 [了解更多]

快速入門

使用 PcapPlusPlus 編寫應用程式非常簡單且直觀。以下是一個簡單的應用程式,展示了如何從 PCAP 檔案讀取封包並解析它:

root@kitploit:~
#include <iostream>
#include "IPv4Layer.h"
#include "Packet.h"
#include "PcapFileDevice.h"

int main(int argc, char* argv[])
{
    // 打開一個 pcap 檔案進行讀取
    pcpp::PcapFileReaderDevice reader("1_packet.pcap");
    if (!reader.open())
    {
        std::cerr << "打開 pcap 檔案時出錯" << std::endl;
        return 1;
    }

    // 從檔案中讀取第一個(也是唯一的)封包
    pcpp::RawPacket rawPacket;
    if (!reader.getNextPacket(rawPacket))
    {
        std::cerr << "無法讀取檔案中的第一個封包" << std::endl;
        return 1;
    }

    // 將原始封包解析為已解析的封包
    pcpp::Packet parsedPacket(&rawPacket);

    // 確認封包是 IPv4 封包
    if (parsedPacket.isPacketOfType(pcpp::IPv4))
    {
        // 提取源 IP 和目的 IP
        pcpp::IPv4Address srcIP = parsedPacket.getLayerOfType<pcpp::IPv4Layer>()->getSrcIPv4Address();
        pcpp::IPv4Address destIP = parsedPacket.getLayerOfType<pcpp::IPv4Layer>()->getDstIPv4Address();

        // 輸出源 IP 和目的 IP
        std::cout << "來源 IP: '" << srcIP << "'; 目的 IP: '" << destIP << "'" << std::endl;
    }

    // 關閉檔案
    reader.close();

    return 0;
}

您可以在 PcapPlusPlus 網站的 快速入門指南 中找到更多資訊。該頁面會帶您通過幾個簡單的步驟,讓您的應用程式快速運行起來。

API 文件

PcapPlusPlus 包含三個函式庫:

  1. Packet++ - 用於解析、創建和編輯網路封包的函式庫
  2. Pcap++ - 用於攔截和發送封包、提供網路和網卡資訊、統計等功能的函式庫。實際上是對封包擷取引擎(如 libpcap、WinPcap、Npcap、DPDK、AF_XDP、WinDivert 和 PF_RING)的 C++ 封裝
  3. Common++ - 包含 Packet++ 和 Pcap++ 共用的一些通用程式碼工具函式庫

您可以在 PcapPlusPlus 網站的 API 文件區 找到詳細的 API 文件。如果您發現有任何遺漏的資料,請聯繫我們。

跨平台支援

PcapPlusPlus 目前支援以下平台: Windows , Linux , MacOS , Android 和 FreeBSD 。 請訪問 PcapPlusPlus 網站查看所有支援的平台,並參考下載區開始在您的平台上使用 PcapPlusPlus。

支援的網路協定

PcapPlusPlus 目前支援解析、編輯和建構以下網路協定的封包:

資料連接層 (L2)

  1. Cisco HDLC
  2. Ethernet II
  3. IEEE 802.3 Ethernet
  4. LLC(僅支援 BPDU)
  5. Null/Loopback
  6. Packet trailer(又稱 footer 或 padding)
  7. PPPoE
  8. SLL(Linux 擷取協定)
  9. SLL2(Linux 擷取協定 v2)
  10. STP
  11. VLAN
  12. VXLAN
  13. Wake on LAN (WoL)
  14. NFLOG(Linux Netfilter NFLOG)- 僅支援解析(不支援編輯)

網路層 (L3)

  1. ARP
  2. GRE
  3. ICMP
  4. ICMPv6
  5. IGMP(支援 IGMPv1、IGMPv2 和 IGMPv3)
  6. IPv4
  7. IPv6
  8. MPLS
  9. NDP
  10. Raw IP(IPv4 和 IPv6)
  11. VRRP(IPv4 和 IPv6)
  12. WireGuard

傳輸層 (L4)

  1. COTP
  2. GTP (v1 & v2)
  3. IPSec AH 和 ESP - 僅支援解析(不支援編輯)
  4. TCP
  5. TPKT
  6. UDP

對話層 (L5)

  1. SDP
  2. SIP

表示層 (L6)

  1. SSL/TLS - 僅支援解析(不支援編輯)

應用層 (L7)

  1. ASN.1 編碼器與解碼器
  2. BGP (v4)
  3. 加密金鑰解碼器
  4. DHCP
  5. DHCPv6
  6. DNS
  7. DoIP
  8. FTP
  9. HTTP 標頭(請求和響應)
  10. LDAP
  11. Modbus
  12. MySQL - 僅支援解析(不支援編輯)
  13. NTP (v3, v4)
  14. PEM 編碼器與解碼器
  15. PostgreSQL Wire Protocol (PGWire) - 僅支援解析(不支援編輯)
  16. Radius
  17. S7 通訊(S7comm)
  18. SMTP
  19. SOME/IP
  20. SSH - 僅支援解析(不支援編輯)
  21. Telnet - 僅支援解析(不支援編輯)
  22. X509 憑證 - 僅支援解析(不支援編輯)
  23. 通用酬載(Generic Payload)

DPDK 和 PF_RING 支援

DPDK (The Data Plane Development Kit) 是一套用於高速封包處理的資料平面函式庫和網路介面卡驅動。

PF_RING™ 是一種新型網路套接字,能顯著提升封包擷取速度。

這兩個框架提供了非常快速的封包處理(幾乎是線性的),並廣泛應用於路由器、防火牆、負載平衡器等網路應用中。PcapPlusPlus 提供了對 DPDK 和 PF_RING 的 C++ 抽象層,這個抽象層簡化了使用這些框架的繁瑣流程。您可以在 PcapPlusPlus 網站的 DPDK 和 PF_RING 支援頁面了解更多資訊。

基準測試

我們使用了 Matias Fontanini 的 packet-capture-benchmarks 專案來比較 PcapPlusPlus 與其他類似的 C++ 函式庫(如 libtins 和 libcrafter)的效能。

您可以在 PcapPlusPlus 網站的 基準測試 頁面查看測試結果。

提供回饋

我們非常樂意收到您的回饋,請通過以下任一方式與我們聯繫:

  • 在 GitHub 上提交問題
  • 在 PcapPlusPlus 的 Google 群組發佈訊息: https://groups.google.com/d/forum/pcapplusplus-support
  • 在 Stack Overflow 上提問: https://stackoverflow.com/questions/tagged/pcapplusplus
  • 發送電子郵件至: [email protected]
  • 在 X 平台關注我們: https://x.com/seladb

如果您喜歡這個專案,請在 GitHub 上為我們按下星星 — 這對我們非常有幫助! ⭐ ⭐

請訪問 PcapPlusPlus 網站 瞭解更多資訊。

貢獻

我們非常感謝您對此專案的任何貢獻。如果您有興趣參與貢獻,請訪問 PcapPlusPlus 網站上的 貢獻頁面。

授權條款

PcapPlusPlus 是根據 Unlicense 授權條款 發佈的。

GitHub

下载工具