본문 바로가기

Develop

(33)
아스키 코드표 개인적으로 아스키코드표를 사용할 일이 많아 매번 검색을 하다 보니, 귀찮고 번거로워 아스키 코드표를 첨부하려 한다. 아스키코드표 중 아래에 있는게 가장 보기도 쉽고, 직관적 인 것 같다. 이미지 출처에 가서 보면 보다 더 많은 아스키 코드표가 있으므로, 아래의 표가 불편하신 분들은 출처 블로그에 가서 다른 아스키 코드 표를보는 것을 권장한다. 이미지 출처 :http://shaeod.tistory.com/228
Pcap Library를 이용한 Packet Capture 네트워크 프로그래밍을 하다 보면 가장 기본이 되는 Packet Pacture방법에 대해서 알아 보도록 하겠습니다. Packet을 Capture하는 방법에는 Netfilter, Raw Socket , Pcap등 다양한 방법이 있지만, 아마 그중에서도 가장 유명한 것이 Pcap이 아닐까 싶습니다. 그래서 오늘은 간단한 예제로 패킷을 캡쳐하고 사용하는 방법 및, 소스코드에 대해서 잠시 살펴 보도록 하겠습니다. // // main.cpp // jpcapLib // // Created by 장한빈 on 2017. 10. 18.. // Copyright © 2017년 Dork. All rights reserved. // #include #include using namespace std; #define NONPRO..
Qt Creator 다운로드 하기 현재 필자는 개발 도구로 Visual Studio 및 Qt Creator를 개발 도구로 사용하고 있다. Visual Studio는 Windows 환경에서 사용하며, Qt Creator는 Linux 및 Mac OS에서 사용 하고자 한다. 이때, Qt Creator 공식홈페이지(www.qt.io)에 들어가서 다운로드를 클릭하게 되면, 복잡한 절차 후에 다운로드가 실행된다. 때문에 간단하게 인스톨 파일만 다운로드 할 수 있는 링크를 공유하고자 한다. Qt Download Link(https://www1.qt.io/download-open-source/) 위의 주소로 접속하면 사용하는 OS에 따라 Installer를 제공해주며, 다운로드 클릭시 저장 또는 실행이 가능하다. 그 후, Installer를 실행하여 ..
네트워크 각 헤더의 Next Type 파싱하기. 우리가 네트워크 프로그래밍 하다 보면, 원하는 헤더의 정보를 얻기위해 이더넷 헤더부터 또는 ip헤더(3계층 헤더)부터 데이터를 탐색해 나가야 하는 경우가 있는데 이 작업이 반복적이고 빈번하므로 함수로 만들어 두는 것이 좋다. 그래서 내가 만들어 놓은 함수를 공유 하고자 한다. 아래의 소스코드로 간단하게 주소 헤더의 형태 및 해당 헤더로 포인터를 이동 시킬 수 있다. bool형으로 true가 리턴 될 경우 type(IPPROTO_TCP 등)에 대한 헤더의 첫 포인터를 가르키게 되며, false일 경우 해당 포인터의 이동이 없다. 또한, TCP의 경우 데이터의 부분을 파싱할 수 있고, data의 길이가 없을 경우 false가 리턴된다, #include #include #include #include #inc..
map 출력하기(C++) #include #include using namepace std; void main() { map _map map::iterator iter; for(iter=_map->begin();iter!=_map->end();iter++) { cout
16진수로 값 출력 및 mac address 출력하기 (C++) 패킷을 디버깅 또는 내용을 알기 위해서 16진수로 값을 출력 하거나, mac address를 출력해야하는 경우가 있는데 아래의 소스코드를 통해 간단하게 출력할 수 있습니다. 또한, 메모리에 있는 값을 출력할때에도 사용 할 수있고, 메모리에 저장되어 있는 값을 디버깅 할때에도 사용할 수 있습니다. #include #include using namespace std; void printLine() { cout
Linux libpcap 을 이용한 packet capture 패킷을 캡쳐할 수 있는 가장 유명한 라이브러리는 아마 pcap Library 일 것이다. 그래서 오늘은 네트워크를 처음 접하는 분들께 pcaplib를 사용 하는 간단한 소스코드를 소개하고자 한다. 네트워크를 처음에 공부할 때에 작성한 코드라 많이 서툴고 버그가 있을 수 도 있다. #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define PROMISCUOUS 1 //Get every packet from Ethernet #define NONPROMISCUOUS 0 //Get only mine from Ethernet st..
invalid operands to binary expression (C++11) 예전에 프로그램 코딩을 하다 bind함수에서 에러가 난적이 있는데 에러 코드는 위와 같이 invalid operands to binary expression를 뱉어 내면서 컴파일이 되지 않았다. 분명 Kali Linux에서는 정상적으로 동작하던 코드인데 안드로이드에서 컴파일 하려고 하니 오류가 났는데 이때 c++11로 컴파일을 명시하였다. 이부분에서 오는 오류였는데, c++11으로 발전하면서 std에 bind함수가 추가 되어 bind함수가 std::bind함수로 인식하여 컴파일러에서 다른 함수로 받아들여 이런 오류가 발생 한 것이다.(using namespace std 사용 시) 때문에 bind함수 또는 사용하려는 기타 함수가 stl에서 지원하는 함수이고 c++11로 컴파일하고자 한다면 해당 함수 명을 ..