Libpcap

2026. 1. 4. 21:53·네트워크

Libpcap

  • 네트워크 트래픽을 캡처하고 분석하기 위해 사용되는 표준 C/C++ 라이브러리

주요 기능

  • 패킷 캡쳐 : 네트워크 인터페이스 카드(NIC)를 통해 들어오거나 나가는 패킷을 실시간으로 수집
  • 패킷 필터링 : BPF 엔진을 사용하여 원하지 않는 패킷은 커널 레벨에서 미리 걸러내고, 관심 있는 패킷만 전달함
  • 패킷 저장 및 읽기 : 수집한 패킷을 파일 형태로 저장하거나, 저장된 파일을 다시 불러와 분석함
  • 통계 수집 : 네트워크 트래픽에 대한 기본적인 통계 정보를 제공함

작동 원리

  • 무차별 모드 ( Promiscuous Mode ) : 기본적으로 네트워크 카드는 자신에게 온 패킷만 받아들임, 하지만 Libpcap를 무차별 모드로 설정하면 해당 네트워크 케이블을 지나가는 모든 패킷을 수집
  • 커널 버퍼 복사 : 네트워크 드라이버가 패킷을 받으면 Libpcap에서 패킷을 커널 메모리에서 사용자 메모리 영역으로 복사함 → 읽을 수 있는 상태가 됨

Libpcap가 사용된 툴들

  • Tcpdump
  • Wireshark → 이건 예상이 됨
  • Snort
  • Nmap

주요 함수

  1. pcap_lookupdev() : 패킷을 캡처할 네트워크 장치를 찾.
  2. pcap_open_live() : 네트워크 장치를 열고 캡처를 준비
  3. pcap_compile() : 사람이 읽기 쉬운 필터 규칙을 BPF 코드로 변환
  4. pcap_setfilter() : 변환된 필터를 적용
  5. pcap_loop() / pcap_next() : 실제로 패킷을 계속해서 잡아내거나 다음 패킷을 가져옴
  6. pcap_close() : 캡처를 종료하고 리소스를 해제

Scapy와의 차이

특징 Libpcap Scapy

언어 C/C++ Python
주 목적 패킷 수집(Sniffing) 패킷 생성 및 조작(Crafting & Manipulation)
작동 방식 커널에서 패킷을 바이트 배열 그대로 가져옴 패킷을 가져와서 Pythong 객체로 변환함
난이도 높음( 메모리 관리, 포인터 연산 필요) 매우 낮음 ( 직관 적인 문법 )
기반 독자적인 로우 레벨 라이브러리 내부적으로 Libpcap를 불러와서 사용함

'네트워크' 카테고리의 다른 글

SAE & SAE Commit Flood  (0) 2026.01.17
Auth Flood  (0) 2026.01.13
WPA, WPA2, WPA3  (2) 2025.12.27
IEEE802.11 프레임 구조  (0) 2025.12.26
프로토콜 및 정리  (3) 2025.07.31
'네트워크' 카테고리의 다른 글
  • SAE & SAE Commit Flood
  • Auth Flood
  • WPA, WPA2, WPA3
  • IEEE802.11 프레임 구조
ororang
ororang
필요한거만 올려두는곳입니다.
  • ororang
    ororang's something
    ororang
  • 전체
    오늘
    어제
    • 분류 전체보기 (35)
      • C언어 (6)
      • 리눅스 (7)
      • 포너블 (5)
      • 네트워크 (9)
      • 이론정리 (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
ororang
Libpcap
상단으로

티스토리툴바