* 본 포스팅은 한국소프트웨어진흥원 출처의 리눅스 네트워크 프로그래밍 PDF 파일을 토대로 작성되었습니다.* 개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있음을 밝힙니다. 소켓 개설 ○ 통신을 하기위해 필요한 정보- 통신에 사용할 프로토콜 (TCP 혹은 UDP)- 사용자의 IP 주소- 사용자의 포트번호- 상대편의 IP 주소- 상대편의 포트번호 소켓 만들기 ○ 소켓 만들기- 소켓 프로그래밍 시 가장 먼저 해야할 일- 서버, 클라이언트 양측 모두 필요- socket() 함수 이용 (에러 발생시 -1 리턴, 전역변수 errno에 에러코드) ※ socket() 함수 Colored By Color Scripter™1 int socket(int protocolFamily, int type,..
* 본 포스팅은 한국소프트웨어진흥원 출처의 리눅스 네트워크 프로그래밍 PDF 파일을 토대로 작성되었습니다.* 개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있음을 밝힙니다. 소켓(Socket) 정의 ※ TCP나 UDP 같은 트랜스포트(전달) 계층을 이용하는 API - 모든 유닉스 운영체제에서 제공됨- 윈도우에서는 Winsock 이라는 이름으로 소켓 API를 제공- 자바 플렛폼에서도 소켓을 이용하기 위한 클래스 제공- 응용 프로그램에서 TCP/IP를 이용하는 창구 역할을 함- 소켓 인터페이스 : 응용 프로그램과 소켓 사이의 인터페이스 소켓 번호 ※ 새로운 소켓을 개설했을 때 이를 대표하는 int 타입의 번호 ○ 파일 디스크립터- 리눅스에서 파일을 open과 같은 함수로 열면 파일 디..
BOF 3단계 입니다. 이전 문제풀이와 마찬가지로 bash가 아닌 bash2 에서 실행하도록 하겠습니다. 홈 디렉토리로 가보면 goblin.c 와 goblin 실행파일이 있습니다. 우선 goblin.c 를 까보겠습니다.Colored By Color Scripter™123456789101112/* The Lord of the BOF : The Fellowship of the BOF - goblin - small buffer + stdin*/ int main(){ char buffer[16]; gets(buffer); printf("%s\n", buffer);} argc와 argv를 사용하고 않은 표준입력으로 buffer에 데이터를 받습니다. gets 는 입력길이를 검사하지 않으므로 BOF 취약함수 이므로 ..