
PcapPlusPlus v26.07
크로스 플랫폼 C++ 라이브러리로, 고성능 네트워크 패킷 캡처, 파싱, 제작 및 분석을 제공합니다. libpcap, DPDK, AF_XDP, PF_RING을 지원하며, TCP 재조립, TLS 핑거프린팅 및 프로토콜 디코딩을 포함합니다.
⚠️ 참고: 이 번역은 AI를 사용하여 유지·동기화되며, 최신 영어 버전과 차이가 있을 수 있습니다. 부정확한 내용을 발견하시면 GitHub 이슈를 등록하거나 PR을 제출해 주세요.
PcapPlusPlus는 네트워크 패킷을 캡처, 분석 및 생성하기 위한 멀티 플랫폼 C++ 라이브러리입니다. 이 라이브러리는 효율적이고 강력하며 사용이 용이하도록 설계되었습니다.
PcapPlusPlus는 다양한 네트워크 프로토콜을 디코딩하고 생성할 수 있는 기능을 제공하며, libpcap, WinPcap, Npcap, DPDK, eBPF AF_XDP, WinDivert, PF_RING 등과 같은 유용한 패킷 처리 엔진을 위한 손쉬운 C++ 래퍼를 지원합니다.
번역: English · 正體中文 · 한국어 · 日本語 · Русский
목차
다운로드
GitHub 릴리스 페이지에서 다운로드하거나 패키지 관리자를 사용할 수 있으며, 직접 PcapPlusPlus를 빌드할 수도 있습니다. 자세한 내용은 PcapPlusPlus 웹사이트의 다운로드 페이지를 방문하세요.
GitHub 릴리스 페이지
https://github.com/seladb/PcapPlusPlus/releases/latest
Homebrew
brew install pcapplusplus
Homebrew formulae: https://formulae.brew.sh/formula/pcapplusplus
Vcpkg
Windows:
.\vcpkg install pcapplusplus
MacOS/Linux:
vcpkg install pcapplusplus
Vcpkg 포트: https://github.com/microsoft/vcpkg/tree/master/ports/pcapplusplus
Conan
conan install "pcapplusplus/[>0]@" -u
ConanCenter의 패키지: https://conan.io/center/pcapplusplus
직접 빌드하기
git 리포지토리 클론:
git clone https://github.com/seladb/PcapPlusPlus.git
PcapPlusPlus 웹사이트의 소스에서 빌드 페이지에서 플랫폼에 맞는 빌드 지침을 따르세요.
패키지 검증
v23.09 이상의 PcapPlusPlus 릴리스는 GitHub 증명을 통해 서명됩니다. 모든 증명은 여기에서 확인할 수 있습니다. GitHub CLI를 통해 이러한 패키지의 증명을 검증할 수 있습니다. 패키지를 검증하려면 gh attestation verify의 최신 지침을 따르세요. 간단한 지침으로는 다음 명령어를 사용할 수 있습니다:
gh attestation verify <path-to-package-file> --repository seladb/PcapPlusPlus
터미널에 다음과 같은 출력이 나타납니다:
✓ Verification succeeded!
기능 개요
- 패킷 캡처: libpcap, WinPcap, Npcap, Intel DPDK, eBPF AF_XDP, WinDivert, ntop의 PF_RING 및 raw 소켓을 위한 손쉬운 C++ 래퍼를 통한 패킷 캡처 [더 알아보기]
- 패킷 분석 및 생성: 다양한 네트워크 프로토콜에 대한 분석, 생성 및 편집을 지원 [더 알아보기]
- 파일로 패킷 읽기 및 쓰기: PCAP 및 PCAPNG 형식의 파일을 지원 [더 알아보기]
- 라인 속도에서의 패킷 처리: DPDK, eBPF AF_XDP, PF_RING을 위한 효율적이고 쉬운 C++ 래퍼 [더 알아보기]
- 멀티 플랫폼 지원: Linux, MacOS, Windows, Android 및 FreeBSD에서 완전 지원
- 패킷 재조합: TCP 재전송, 순서가 뒤바뀐 TCP 패킷, 누락된 TCP 데이터를 처리하는 독자적인 TCP 재조합 구현과, IPv4 및 IPv6 단편을 생성·재조합하는 IP 단편화 및 재조합 지원 [더 알아보기]
- 패킷 필터링: libpcap의 BPF 필터를 더 간편하게 사용 [더 알아보기]
- TLS 핑거프린팅: JA3 및 JA3S TLS 핑거프린팅의 C++ 구현 [더 알아보기]
시작하기
PcapPlusPlus로 애플리케이션을 작성하는 것은 매우 쉽고 직관적입니다. 아래는 PCAP 파일에서 패킷을 읽고 이를 파싱하는 간단한 예제 애플리케이션입니다:
#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;
}
// raw 패킷을 파싱된 패킷으로 변환
pcpp::Packet parsedPacket(&rawPacket);
// 패킷이 IPv4인지 확인
if (parsedPacket.isPacketOfType(pcpp::IPv4))
{
// 소스 및 대상 IP 추출
pcpp::IPv4Address srcIP = parsedPacket.getLayerOfType<pcpp::IPv4Layer>()->getSrcIPv4Address();
pcpp::IPv4Address destIP = parsedPacket.getLayerOfType<pcpp::IPv4Layer>()->getDstIPv4Address();
// 소스 및 대상 IP 출력
std::cout << "Source IP is '" << srcIP << "'; Dest IP is '" << destIP << "'" << std::endl;
}
// 파일 닫기
reader.close();
return 0;
}
자세한 내용은 PcapPlusPlus 웹사이트의 시작하기 페이지에서 확인할 수 있습니다. 이 페이지는 애플리케이션을 빠르게 시작할 수 있는 단계별 안내를 제공합니다.
API 문서
PcapPlusPlus는 다음의 세 가지 라이브러리로 구성됩니다:
- Packet++ - 네트워크 패킷을 파싱하고 생성 및 편집하는 라이브러리
- Pcap++ - 패킷을 캡처하고 전송하며 네트워크 및 NIC 정보, 통계를 제공하는 라이브러리 (libpcap, WinPcap, Npcap, DPDK, AF_XDP, WinDivert, PF_RING 등과 같은 패킷 캡처 엔진을 위한 C++ 래퍼)
- Common++ - Packet++ 및 Pcap++에서 사용하는 일반적인 코드 유틸리티를 포함한 라이브러리
