학교 프로젝트 주제로 네트워크 패킷캡쳐 프로그램을 구현하기 winpcap에 대해 알아 보게 됐다!
.
.
.
일단 WinPcap란 무엇인가....!?
www.winpcap.org <- 여기에 가보면 잘 설명이 되어있다 영어로...
일반적으로 네트웍카드에는 항상 패킷이 오고가고 있다! 하지만 그걸 NIC(network interface card)에서는 들어오는 패킷이 나에게 오는것이 맞는가를 확인하고 맞다면 받아들여서 그에맞는 application으로 보내주고, 아니라면 즉각 폐기해 버린다.

사용자 삽입 이미지

대략 이런 구조로 되어있어서 폐기되기전에 읽어들여 버리면 자신의 컴퓨터에 NIC를 거치는 패킷을 볼 수 있다는 것이다. 하지만 물론 패킷들이 암호화 되어있고 또한 패킷의 헤더와 기타 불필요한 정보들이 덧붙어 있기 때문에 분석하기는 어렵다. 그리고 window환경에서는 application층에서 NIC에 직접적인 접근이 불가하다. 완전히 방법이 없는것은 아니다. fillter-driver를 이용한다든지 우회적인 방법이 있다.
여기서 Winpcap는 fillter-driver역활을 하는것이다.
원래는 linux에는 libpcap가 있다.
.
Winpcap작업 환경을 구축하려면 일단 위에 링크된 사이트에 접속하여 왼쪽에 보이는 메뉴에서 Development로 가서 WinPcap Developer's Pack을 다운로드하여 적당한곳에 압축을 푼다. 그리고 visual studio 환경이라면 도구 -> 옵션에서 프로젝트 솔루션 항목을 선택 하위항목인 VC++프로젝트에서 참조파일에 lib폴더를 포함시켜주고, 포함파일에 include폴더를 포함시켜준다. 그리고 dll파일을 필요로 하는데 링크된 사이트에서 winpcap를 받아서 인스톨해준다.
그럼 이상으로 winpcap를 이용할 환경은 구축 되었다!

Posted by hazeyun
,