분류 전체보기(179)
-
[normaltic 비기너 클래스 1기] 2023-07-19 2주차 내용 정리
TCP/IP 5 Layer 프로토콜(Protocol) 프로토콜은 원래 외교상의 언어로서 국가와 국가 간의 교류를 원활하게 하기 위한 외교에 관한 의례나 국가 간에 약속을 정한 의정서이다. 이것을 통신에 적용한 것이 통신 프로토콜 (communication protocol )이다. 프로토콜을 편지 보내는 과정으로 설명할 수 있다. 편지를 쓴다 편지 봉투에 넣고 우표를 붙인다. 보내는 주소와 받는 주소를 적는다. 우체국에 전달한다 우체국에서 받는 주소로 편지를 전달한다. 전달받은 편지의 봉투에서 편지를 꺼낸다. 편지를 읽는다. 이렇게 편지를 보내기 위해서는 일련의 절차를 진행해야하며 하나의 작업이라도 문제가 생기면 편지 전달에 실패하게 된다. 이렇듯 편지 보내는 과정과 같이 네트워크 상 컴퓨터 간의 데이터를..
2023.07.20 -
[자료구조] Linked List (연결 리스트) (feat. C 언어)
정의 연결 리스트(Linked List)는 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장한다. 노드의 포인터는 다음이나 이전의 노드와의 연결을 담당한다. 연결 리스트의 종류로는 단방향 연결 리스트(Singly Linked List), 양방향 연결 리스트(Doubly Linked List), 원형 연결 리스트(Circular Linkde List) 등이 있다. 일반적으로 연결 리스트는 헤드라는 더미 노드를 가지고 있다. 헤드는 데이터 값을 가지지 않고 연결 리스트의 처음을 담당한다. 연결 리스트의 마지막 위치(테일)에 있는 노드의 포인터는 null을 가리킨다. 연결 리스트는 자료의 추가, 삽입 및 삭제 연산이 배열보다 빠르다는 장점이 있으며 탐색 연산은 배열보다 시간이 ..
2023.07.19 -
[자료구조] Queue - Josephus problem (feat. C 언어)
문제 Josephus problem (요세푸스 문제)? n과 k가 자연수이고, k
2023.07.19 -
[자료구조] Queue (feat. C 언어)
정의 큐(Queue)는 자료 구조 중 선형 구조에 해당되며 먼저 삽입된 자료 순서대로 삭제되는 선입선출(FIFO : First In Fisrt Out) 방식으로 이루어져 있다. 자료를 삽입할 때는 enqueue라고 하며 반대로 삭제할 때는 dequeue라고 한다. 가장 먼저 삽입된 위치를 front, 가장 나중에 삽입된 위치를 rear라고 한다. 특징 선형 구조 선입선출(FIFO : First In Fisrt Out) 삽입 - enqueue, 삭제 - dequeue 가장 먼저 삽입 위치 - front, 가장 나중 삽입 위치 - rear 운영체제의 작업 스케줄링 연산 enqueue 연산 : 큐가 비어있는 경우 추가되는 데이터가 front 및 rear가 된다. 큐에 데이터가 추가될 때 현 rear가 가리키는..
2023.07.19 -
[자료구조] Stack (feat. C 언어)
정의 스택(stack)은 자료 구조 중 선형 구조에 해당되며 한쪽 끝에서 자료의 삽입, 삭제가 모두 일어나는 후입선출(LIFO : Last In Fisrt Out) 방식으로 이루어져 있다. 자료를 삽입할 때는 push라고 하며 반대로 삭제할 때는 pop이라고 한다. 특징 선형 구조 후입선출(LIFO : Last In Fisrt Out) 삽입 - push, 삭제 - pop 함수 호출의 순서 제어, 인터럽트의 처리, 수식 계산 및 수식 표기법 등 연산 push 연산 : 스택이 비어있는 경우 추가되는 데이터는 바로 top이 되며 포인터는 null값을 가진다. 스택에 데이터가 추가될 때 추가되는 노드가 가리키는 포인터는 현 스택 top의 주소이며 이후 top은 자기 자신이 된다. pop 연산 : 데이터를 삭제 ..
2023.07.19 -
[OverTheWire:Bandit] Level 26 ~ Level 27
문제 껍데기를 구하느라 수고했어! 이제 서둘러서 bandit27의 비밀번호를 얻으라고 한다. Keyword ls, cat 풀이 ls bandit26 계정의 홈 디렉토리에 어떤 파일이 있는지 ls 명령어를 사용해서 확인해봤더니 bandit27-do 바이너리 파일이 존재하였다. ./bandit27-do bandit27-do 바이너리 파일을 실행했더니 다른 유저로서 명령을 실행하라 라는 텍스트와 예시가 출력되었다. 이 바이너리 파일은 level19~level20 구간에서 이미 실행했던 경험이 있다. ./bandit27-do cat /etc/bandit_pass/bandit27 그 경험을 바탕으로 바이너리 파일을 통해 bandit27계정의 암호를 확인할 수 있었다.
2023.07.18