Operating System: Chapter 03 - 프로세스
초기의 컴퓨터 시스템은 한 번에 하나의 프로그램만을 실행하도록 허용하였으며, 그 프로그램이 시스템을 완전히 제어하고, 시스템의 모든 자원에 접근할 수 있었다. 오늘날의 컴퓨터 시스템은 메모리에 다수의 프로그램이 적재되어 병행 실행되는 것을 허용한다. 프로세스란 실행 중인 프로그램을 말하며, 현대의 컴퓨팅 시스템에서 작업의 단위이다. 3.1. 프로세스...
초기의 컴퓨터 시스템은 한 번에 하나의 프로그램만을 실행하도록 허용하였으며, 그 프로그램이 시스템을 완전히 제어하고, 시스템의 모든 자원에 접근할 수 있었다. 오늘날의 컴퓨터 시스템은 메모리에 다수의 프로그램이 적재되어 병행 실행되는 것을 허용한다. 프로세스란 실행 중인 프로그램을 말하며, 현대의 컴퓨팅 시스템에서 작업의 단위이다. 3.1. 프로세스...
2.1. 운영체제 서비스 운영체제는 프로그램 실행 환경을 제공하며, 프로그램과 사용자에게 특정 서비스를 제공한다. 사용자 인터페이스 거의 모든 운영체제는 사용자 인터페이스(UI)를 제공하며, 일반적으로는 그래픽 사용자 인터페이스(GUI)가 사용한다. 인터페이스는 포인팅 장치인 마우스와 텍스트를 입력할 키보드를 가진다. 모바일 시스템은 터치스크...
1.1. 운영체제가 할 일 컴퓨터 시스템은 하드웨어, 운영체제, 응용 프로그램 및 사용자로 구분할 수 있다. 하드웨어는 중앙처리장치(CPU)와 메모리 입출력 장치(I/O) 장치로 구성되어, 기본 계산용 자원을 제공한다. 응용 프로그램은 사용자의 계산 문제를 해결하기 위해 이들 자원이 어떻게 사용될지를 정의한다. 운영체제는 다양한 사용...
워게임/CTF를 풀 때 제공된 Dockerfile로 환경을 구성한 후 꺼낸 glibc는 디버깅 심볼이 포함되어 있지 않은 경우가 많다. 예를 들어, 아래 사진처럼 __printf_function_table과 같은 심볼이 존재하지 않아 오프셋을 알아내기 힘들다. 그럴 때는 우선 꺼내온 libc를 실행해보면 버전 정보를 알 수 있으며, file 명령어...
문제 링크 https://dreamhack.io/wargame/challenges/597 문제 설명 Now, everyone knows how to exploit ptmalloc. So I miss the old good days of dlmalloc. 문제 분석 힙 청크 할당, 힙 데이터 수정, 힙 데이터 비우기 총 3가지의 기능을 가진 바이너리...
문제 링크 https://dreamhack.io/wargame/challenges/547 문제 설명 드림 레스토랑이 오픈했어요. 취약점을 익스플로잇해 “flag” 파일을 읽으세요. 플래그의 형식은 DH{…} 입니다. 문제 분석 메뉴 이름을 입력하면 스레드가 생성되며, 해당 스레드에서 전역 변수 dish를 조작하여 요리를 한다. struct dish...
문제 링크 https://dreamhack.io/wargame/challenges/544 문제 설명 홀리몰리 과카몰리 송을 알아듣는 서비스예요. 바이너리와 소스 코드가 주어집니다. 프로그램을 이해하고 익스플로잇해 “flag” 파일을 읽으세요. 플래그의 형식은 DH{…} 입니다. 문제 분석 “holymoly”, “rolypoly”, “monopoly...
문제 링크 https://dreamhack.io/wargame/challenges/213 문제 설명 평소 Thread에 관심이 많았던 드림이는 Dreamhack 문제 업로드 기능 추가를 기념하여 “DreamTimer ⏱”를 만들었습니다.🎉 안타깝게도 제작기간 도중에 코드가 없어졌는데, 블랙해커인 사심이가 프로그램의 코드를 갈취했다는 사실을 알게 되었...
문제 링크 https://dreamhack.io/wargame/challenges/435 문제 설명 Exercise: CSP Bypass에서 실습하는 문제입니다. 문제 분석 문제의 기본적인 구조는 이전에 풀었던 XSS Filtering Bypass와 동일하다. 하지만, 이러한 동작이 추가되었다. @app.after_request def add_he...
문제 링크 https://dreamhack.io/wargame/challenges/436 문제 설명 Exercise: CSP Bypass에서 실습하는 문제입니다. 문제 분석 문제는 거의 이 문제와 같지만, /vuln 엔드포인트가 변경되었다. @app.route("/vuln") def vuln(): param = request.args.get...