목차
개략적인 패킷 생성 방법 1
Packet generation 2
필요 함수 2
TCP 2
UDP 2
Reference 3
Packet generation 2
필요 함수 2
TCP 2
UDP 2
Reference 3
본문내용
개략적인 패킷 생성 과정
libnet을 이용하여 패킷을 생성하는 과정은 크게 세가지 단계로 볼 수 있습니다. 첫 번째 단계로 raw 소켓을 만들고 다음으로 거기에 넣을 패킷 헤더를 만들고 마지막으로 만든 패킷을 raw 소켓으로 전송하는 것입니다. 필요한 자료로는 패킷 헤더에 들어갈 정보만 있으면 되며 실제 버퍼에 채우고 소켓에 써주는 작업은 libnet 라이브러리가 알아서 해줍니다. 버퍼에 패킷 헤더를 만드는 작업에서는 만드는 순서에 상관없이 IP 헤더와 TCP, UDP, ICMP 헤더를 선택적으로 골라 원하는 패킷을 만들 수 있습니다. 또한 라이브러리 함수 중에는 체크섬 계산만을 따로 해주는 함수도 존재해 일일이 체크섬 계산을 해볼 필요가 없습니다. 이 라이브러리로 입맛에 맞는 패킷을 생성할 수 있으며 여기서는 TCP, UDP, ICMP 패킷을 만드는 과정을 다루겠습니다.
libnet을 이용하여 패킷을 생성하는 과정은 크게 세가지 단계로 볼 수 있습니다. 첫 번째 단계로 raw 소켓을 만들고 다음으로 거기에 넣을 패킷 헤더를 만들고 마지막으로 만든 패킷을 raw 소켓으로 전송하는 것입니다. 필요한 자료로는 패킷 헤더에 들어갈 정보만 있으면 되며 실제 버퍼에 채우고 소켓에 써주는 작업은 libnet 라이브러리가 알아서 해줍니다. 버퍼에 패킷 헤더를 만드는 작업에서는 만드는 순서에 상관없이 IP 헤더와 TCP, UDP, ICMP 헤더를 선택적으로 골라 원하는 패킷을 만들 수 있습니다. 또한 라이브러리 함수 중에는 체크섬 계산만을 따로 해주는 함수도 존재해 일일이 체크섬 계산을 해볼 필요가 없습니다. 이 라이브러리로 입맛에 맞는 패킷을 생성할 수 있으며 여기서는 TCP, UDP, ICMP 패킷을 만드는 과정을 다루겠습니다.