[Wireless][Network] Extracting SSID from Beacon Packet

Beacon Packet에서 SSID 추출 Packet 구조 Monitor mode를 통해 얻은 Beacon 패킷의 구조는 아래와 같다. 각각의 프레임이 담고 있는 정보를 대강 정리해 보면, RadioTap 무선 신호의 주파수 신호 세기 정보 (dbm) 안테나 정보 Etc… 802.11 Beacon Frame Type 정보 ( beacon인지 probe인지 등…) Source, Destination Mac address 정보 Etc… 802.11 Wireless LAN 802.11b/g/n 등 지원가능한 …

[libpcap][func] pcap_loop (with pcap_handler)

int pcap_loop(pcap_t *p, int cnt,                         pcap_handler callback, u_char *user) pcap_loop 함수는 pcap_open_live 함수나 pcap_create 함수로 만들어진 pcap_t handler를 cnt번 만큼 반복하는 함수이다.   Description[document] pcap_t *p: packet을 다루기 위한 handler int cnt: 최대 cnt 만큼의 callback을 반복 한다. (0또는 -1인 경우 무한히 반복) …

[libpcap][func] pcap_setfilter

int pcap_setfilter(pcap_t *p, struct bpf_program *fp) pcap_setfilter는 pcap_compile 함수를 통해 컴파일된 struct bpf_program의 포인터를 pcap_t(handler)에 적용 시켜주는 함수이다.   Description[document] pcap_t *p: filter를 적용시킨 handler bpf_program *fp: pcap_compile 함수를 통해 컴파일 시킨 bpf구조체의 포인터 Return 설정에 성공하면 0을 반환하고 실패하면 -1을 반환한다. 또한 에러 내용은 pcap_geterr() or pcap_perror()로 볼 수 있다.   

[libpcap][func] pcap_compile

int pcap_compile(pcap_t *p, struct bpf_program *fp, const char                              *str, int optimize, bpf_u_int32 netmask) pcap_compile은 문자열로 이루어진 필터 표현식을 프로그램으로 컴파일하기 위한 함수이다. 자세한 표현식은 pcap_filter문서를 참고하도록 하자.   Description[document] pcap_t *p: paket을 다루기위한 handler struct bpf_program *fp: 표현식을 프로그램으로 만들어 포인터로 …

[libpcap][info] pcap_open_live() Vs pcap_create() & pcap_activate()

pcap_open_live() Vs pcap_create() & pcap_activate() libpcap에선 handler를 얻기 위해 pcap_open_live() 혹은 pcap_create() & pcap_activate() 함수를 사용한다. 이 함수들의 다른점은 무엇인지 알아보자.   What is difference? 본론부터 말하자면, 전혀 다르지 않다. 그 이유는 pcap_open_live() 함수의 소스코드를 보면 알 수 있는데, [libpcap github] pcap_t * pcap_open_live(const char *device, int snaplen, int promisc, int to_ms, char *errbuf) { …

[libpcap][func] pcap_activate

int pcap_activate(pcap_t *p) pcap_activate는 pcap_create 함수로 생성된 pcap_t handler를 활성화 시켜주는 함수이다.    Description[document] pcap_t *p: 활성화 시킬 handler 포인터   Return pcap_activate는 warning없이 성공하면 0을 반환하고, warnings와 함께 성공할 경우 0이 아닌 양수 값을 반환하고, Error가 발생하면 음수 값을 반환한다. 발생 가능한 warning list PCAP_WARNING_PROMISC_NOTSUP 무차별(Promiscuous)모드가 설정됬으나, 지원하지 않음 PCAP_WARNING_TSTAMP_TYPE_NOTSUP pcap_set_tstamp_type 함수 호출시 이력한 time …

[libpcap][func] pcap_create

pcap_t *pcap_create(const char *source, char *errbuf) pcap_create는 handler 즉, pcap_t 구조체를 생성’만’ 하는 함수로 pcap_activate 함수를 통해 활성화 되어야 사용 가능하다.   Description[document] char *source: 인터페이스의 이름 포인터 char *errbuf: 에러를 저장할 버퍼 포인터 Return packet을 다루는 handler인 pcap_t 구조체를 return 한다.

[libpcap][func] pcap_open_live

pcap_t *pcap_open_live(const char *device, int snaplen,                                      int promisc, int to_ms, char *errbuf) pcap_open_live는 네트워크 상에 packet의 handler를 얻기위해 사용되는 함수이다.   Discreption[document] char *device: 디바이스(인터페이스)의 이름 int snaplen: 스넵샷의 길이를 설정 int promisc: 무차별(promisc)모드 설정 int to_ms: …