[Network Basic] 기본 C 문법 I ~ II

Chapter 01 ~ 02 기본 문법 I ~ II 01 변수와 자료형 필요성 : 이후 네트워크 패킷을 담기 위한 공간을 만들 때 불필요한 공간을 낭비하지 않기 위해 공부한다. 문제 01-01 char, short, int, long, float, double 그리고 포인터의 크기는 얼마일까? 소스 코드 #include <stdio.h> int main(void) { printf(“char \t: %lu\n”, (unsigned long)sizeof(char)); printf(“short \t: %lu\n”, …

[Network][ C ] MAC Address

MAC Address (String > Hex data) 문자열로 이루어진 MAC Address를 Hex(16진수)로 바꾸는 함수를 만든다. 이후 사용하기 쉽게 함수로 만든다. 함수 구조 void mac_to_hex (char * mac, unsigned int * hex_mac) 인자 설명 char * mac : 일정 형식( Ex. 11:22:33:44:55:66 )으로 이루어진 문자열 unsigned int * hex_mac : Hex 형태로 Mac Addresss를  저장할 공간 Code …

[Network][PCAP] ARP Spoofing Packet

ARP Spoofing Packet 목표다 이번 포스트에서 ARP Spoofing Packet에 대해 알아본다. ARP Spoofing Packet을 PCAP을 이용해 직접 만들어 본다. ARP Packet의 구조 이제 각각에 위치에 값을 넣어 ARP_Spoofing Packet을 만들어 보자. ∗ 표의 왼쪽에서 오른쪽 까지 크기는 총 크기는 32byte ( 0 ~ 31 )이다. 하드웨어 타입 (0x0001) 프로토콜 타입 (0x0806 : ARP) MAC 주소 …

[Network][ C ] IP to BYTE in C

IP 주소를 바이트 형식으로 바꿔주는 함수 함수 구조 : unsigned int inet_addr(char *) xxx.xxx.xxx.xxx 형식으로 이루어진 문자열을 바이트 형식으로 바꿔줍니다. 예제 #include <stdio.h> #include <arpa/inet.h> int main(int argc, char *argv[]) { char * input = “192.168.0.1”; unsigned int byte_ip; byte_ip = inet_addr(input); printf(“%s => %x \n”, input, byte_ip); return 0; } OUTPUT 192.168.0.1 => 100a8c0 …

[Network] ARP Packet Analisty

ARP 패킷 분석 분석 목표 ARP의 Packet의 구조와 실제 ARP (Request)의 신호를 비교하여 분석한다.또한 이후 LIBPCAP의 이더넷 구조체를 통해 직접 ARP Pecket 을 만들어든다. ARP란? Address Resolution Protocol, 즉 주소 결정 프로토콜로 네트워크 상에서 IP 주소를 MAC 주소로 대응시키기 위해 사용되는 프로토콜이다.  예시 IP 1.1.1.1이 IP 2.2.2.2에게 IP Pecket을 전송하려고 할 때 IP 2.2.2.2의 물리적 네트워크 주소를 …

[Network] Ethernet Analisty

Ethernet 분석 분석 목표 Ethernet에 담겨있는 이야기를 풀어 본다. OSI 7 Layer에 대한 내용을 선행 해야함. Ethernet? 이더넷(Ethernet)은 네트워킹의 한 방식으로 CSMA/CD혹은 토큰링(Token ring)라는 프로토콜을 이용해 통신한다. 통신하기위한 길이 하나 있는데 이때, CSMA/CD는 눈치 게임이고 (동시에 접근하면 충돌이 일어남), 토큰링 방식은 차례차례 사용해 겹칠일이 없는 것이다. 최근 가장 많이 사용하는 방식은 CSMA/CD방식이라고 한다. How ethernet packet …

[BoB] Pcap tutorial

PCAP TUTORIAL 작동 환경 및 IDE에 대한 설명은 링크 참고 아마 삭제될 가능성 농후한 글입니다해당 글은 제가 참고용으로만 사용되며 딱히 도움이 되지 않을 것 같습니다. CODE #include <stdio.h> #include <pcap.h> int main(int argc, char *argv[]){ char *dev, errbuf[PCAP_ERRBUF_SIZE]; dev = pcap_lookupdev(errbuf); if(dev == NULL){ fprintf(stderr, “Couldn’t find default device: %s\n”, errbuf); return 2; } printf(“Device: …

[BoB][Network] libpcap(winpcap) programing

[BoB] Network 프로그램 중 네트워크 패킷을 다루기 위하 프로그래밍 공부를 하고 있습니다.기초는 넘어가고 필요한 것만 바로 진행하기에 따라가기 위해 정리보단 결과물 위주로 올릴 것 같습니다. 개발 환경 Virtual Machine : Virtual BoxOS : Ubuntu LTS 14.04 DesktopProcess : i5-6200U x 2RAM : 4GB (4096MB)VRAM : 128MBHDD : 13GB IDE : QT (설치 방법 및 사용법) 설치 Package …