반응형

네트워크 및 보안 56

[OPEN API] 2. C# 콘솔 응용 프로그램, 다음 Open API 책 검색

[OPEN API] 2. C# 콘솔 응용 프로그램, 다음 Open API 책 검색 안녕하세요. 언제나 휴일, 언휴예요. 앞에서 Open API가 무엇인지 간단히 알아보았어요.[OPEN API] 1. OPEN API란 무엇인지 맛보기 이번에는 다음 Open API 책 검색 서비스를 사용하여 간단한 프로그램을 작성해 보기로 할게요. 여기에서는 C# 언어로 콘솔 응용 프로그램 형태로 만들 거예요. 프로그램은 검색할 도서 정보를 입력하면 다음 Open API 책 검색 서비스에 질의하여 결과를 그래도 콘솔 화면에 출력하는 예제로 아주 간단하며 특이 기능이나 편의성 및 분석 등의 기능은 전무합니다. 먼저 개발도구에서 새로운 프로젝트를 생성하세요. 저는 Visual Studio 2015를 사용하고 있습니다. 여러분이..

[OPEN API] 1. OPEN API란 무엇인지 맛보기

[OPEN API] 1. OPEN API란 무엇인지 맛보기 안녕하세요. 언제나 휴일, 언휴예요. 많은 분들은 이미 Open API를 알고 이를 활용하는 다양한 응용이나 앱, 가젯 등을 만들어서 활용하고 있어요. 여러분께서 Open API라는 것을 들어는 보았는데 이것이 어디에 쓰는 것인지 궁금하다면 적당한 게시글을 찾은 것이죠. Open API는 말 그대로 개방형 API예요. API가 응용 프로그램을 개발할 때 사용하는 인터페이스라는 의미이므로 Open API는 프로그래밍에 사용할 수 있는 개방 상태의 인터페이스를 말하고 있어요. 다음이나 구글, 네이버 등의 포털 사이트나 통계청, 기상청 등에서 수집한 자료를 응용 프로그래밍에 사용할 수 있게 제공하는 서비스예요. 자료를 수집하는 역할을 하는 많은 관공서..

[pcap 라이브러리] 11. libpcap과 메모리 매핑 기술을 이용하여 지연 덤프 소스 코드

libpcap과 메모리 매핑 기술을 이용하여 지연 덤프현재의 게시글은 앞으로 pcap 라이브러리를 이용하여 tshark 유틸과 같은 네트워크 트래픽을 수집하고 분석하는 도구를 만드는 과정을 게시하기 위해 어떠한 순서로 진행할 지 결정하기 위한 더미 코드입니다.2016년 6월 이후부터 다양한 프로그래밍 언어와 기술에 관한 글과 무료 동영상 강의를 제작할 계획이며 그 중에 하나가 네트워크 보안에 관한 사항입니다. 네트워크 보안에 관한 주제는 네트워크 프로토콜, 소켓 프로그래밍, 리눅스에서 tshark 흉내내기, 윈도우즈에서 tshark 흉내내기와 C#언어로 와이어샤크 흉내내기 등을 다룰 예정입니다.많은 관심과 조언 바랍니다.아직 입문하기 위한 더미 코드들만 올린 상태입니다.참고로 네트워크 프로토콜은 어느정도..

[pcap 라이브러리] 10. 기타 함수들 사용 예제 코드(pcap_is_swapped, pcap_freecode ,pcap_set_datalink)

기타 함수들 사용하는 저장 파일과 byte order가 같은지 확인int pcap_is_swapped(pcap_t *p); //0: 같음, 1:다름 //pc_stoswap.c#include int main(int argc,char **argv){ char errbuf[PCAP_ERRBUF_SIZE]; pcap_t *pcap_handle; pcap_handle = pcap_open_offline(argv[1],errbuf); if(pcap_handle == 0){ printf("fail open_offline...%s\n",errbuf); } if(pcap_is_swapped(pcap_handle)==0){ printf("capture system's byte order is same with this h..

[pcap 라이브러리] 8. 저장한 파일을 이용하기 소스 코드 (pcap_open_offline)

저장한 파일을 이용하기device = pcap_open_offline(argv[1],errbuf); // char *device; pcap_t *pcap_handle; // device = pcap_lookupdev(errbuf);// if(device == 0){ printf("fail lookupdev...%s\n",errbuf); }// printf("find device: %s sniffing\n",device); pcap_handle = pcap_open_offline(argv[1],errbuf); if(pcap_handle == 0){ printf("fail open_offline...%s\n",errbuf); } //pcap_handle = pcap_open_live(device, 4096,..

[pcap 라이브러리] 7. 캡쳐한 패킷 파일로 덤프하기 소스 코드(pcap_dump_open, pcap_dump)

캡쳐한 패킷 파일로 덤프하기 덤퍼 열기pcap_dumper_t *pcap_dump_open(pcap_t *pcap_handle,const char *dfname); 캡쳐한 패킷 파일로 덤프pcap_dump(u_char *args,const struct pcap_pkthdr *header,const u_char *packet); //pc_dump.c#include "core_ehp.h" void catch_handler(u_char *args,cp_pkthdr *handle,cu_char *packet);void decode_eth(cu_char *base);int decode_ip(cu_char *base);int decode_tcp(cu_char *base);void decode_data(cu_char..

[pcap 라이브러리] 6. 자신의 Network에 필터를 적용하여 패킷 캡쳐 소스 코드

자신의 Network에 필터를 적용하여 패킷 캡쳐 //pc_netfilter.c#include "core_ehp.h" void catch_handler(u_char *args,cp_pkthdr *handle,cu_char *packet);void decode_eth(cu_char *base);int decode_ip(cu_char *base);int decode_tcp(cu_char *base);void decode_data(cu_char *packet,u_int len);void view_ether_addr(const char *pre,cu_char *base); int main(int argc,char **argv){ cu_char *packet; char errbuf[PCAP_ERRBUF_SIZE]..

[pcap 라이브러리] 5. 필터 적용하여 패킷 캡쳐하기(소스 포함)

필터 적용하여 패킷 캡쳐하기필터를 적용하려면 먼저 컴파일후에 설정해야 한다. 필터는 tcpdump의 필터식을 사용한다.필터 컴파일하기int pcap_compile(pcap_t *handle, struct bpf_program *fcode, const char *fstr, int opt, bpf_u_int32 mask);필터 설정하기int pcap_setfilter(pcap_t *p, struct bpf_program *fp)//pc_filter.c#include "core_ehp.h" void catch_handler(u_char *args,cp_pkthdr *handle,cu_char *packet);void decode_eth(cu_char *base);int decode_ip(cu_char *bas..

[pcap 라이브러리] 4. libpcap으로 패킷 해석하기 뼈대 만들기

libpcap으로 패킷 해석1 단계: 프로토콜 헤더를 정의한다.2 단계: 스니핑 코드 작성 pcap_loop을 이용3 단계: 패킷 캡쳐 핸들러를 작성 각 계층별로 패킷 해석 정보를 출력하는 함수 호출 1 단계: 프로토콜 헤더 작성 //core_ehp.h#ifndef __core_ehp_h#define __core_ehp_h #define ETH_ADDR_LEN 6 #include #include typedef const struct pcap_pkthdr cp_pkthdr;typedef const u_char cu_char;typedef struct pcap_pkthdr p_pkthr; typedef struct _eth_hdr eth_hdr;struct _eth_hdr{ u_char src[ETH_ADD..

반응형