Sqix

Linux에서 libtins 라이브러리 사용하기 - 1. 소개 및 설치편 본문

libtins

Linux에서 libtins 라이브러리 사용하기 - 1. 소개 및 설치편

Sqix_ow 2017. 9. 13. 03:58

<작성자가 libtins를 사용하는 환경은 Ubuntu 16.04.2 LTS, Kernel version 4.10 환경입니다>

 

안녕하세요. 이번에 프로젝트에서 libtins를 활용하여 개발을 하게 되었고, 공부 겸 메뉴얼 제공? 을 위해서 libtins의 tutorial 부분을 번역 및 내용 추가 설명을 하여 포스팅하려고 합니다. 원본 주소는 libtins.github.io/tutorial/ 입니다.


libtins 라이브러리는 Matis Fontanini가 개발한 C++ 기반 네트워크 패킷 스니핑 및 프로토콜 개발 라이브러리입니다. libtins를 이용하면 매우 편리하게 네트워크 패킷을 전송 / 수신 / 조작하는 도구를 만들 수 있고, 플랫폼에 독립적이며 Endian을 헷갈리지 않게 개발할 수 있습니다. 또한, x86, x86/64, ARM, MIPS 아키텍쳐를 지원하기 때문에 범용성이 넓고 이식성이 뛰어나다고 할 수 있습니다.


libtins를 이용하면 802.11 패킷의 WEP(RC4), WPA, WPA2 (AES)를 decrypt할 수 있습니다. 그리고 여러 프로토콜을 지원하는데, 그 목록은 다음과 같습니다.


- IEEE 802.11, 802.3, 802.1Q

- Ethernet

- ARP, IPv4, IPv6, ICMP, ICMPv6

- TCP, UDP

- DHCP, DHCPv6

- DNS

- RadioTap, MPLS, EAPOL, PPPOE, PTS, LLC, LLC + SNAP

- Linux Cooked Capture, PPI, PKTAP, NULL / Loopback


libtins로 개발하기 위한 환경을 구축하는 방법은 다음과 같습니다.


1. Download


git clone https://github.com/mfontanini/libtins.git


2. 컴파일하기 위한 도구 설치


libtins를 설치하기 위해서는 다음 도구들이 필요합니다.


2 - 1) debian 계열 (Ubuntu, Linux Mint 등)


apt-get install libpcap-dev libssl-dev cmake


2 - 2) red-hat 계열 (kali-linux, backtrack linux, fedora, CentOS 등)


yum install libpcap-devel openssl-devel cmake


3. 컴파일


3 - 1)  ~ C++ 03 버전까지를 사용하여 개발하는 경우

mkdir build

cd build

cmake ../

make && make install

ldconfig


3 - 2) C++ 11 및 그 이후 버전을 사용하여 개발하는 경우

mkdir build

cd build

cmake ../ -DLIBTINS_ENABLE_CXX11=1

make && make install

ldconfig



4. Include Header


#include <tins/tins.h>


5. Linking


g++ -std=c++11 <filename.cpp> o <filename> -ltins

Comments