일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- Pwnable.kr
- 취약점
- C언어
- pwn.college
- 리눅스커널
- 리눅스
- kernel
- Bandit
- 시스템 프로그래밍
- 알고리즘
- px4
- Leviathan
- pwncollege
- 리버싱
- 프로그래밍
- 시그널
- 드론
- css
- 리눅스 커널
- C++
- 컴퓨터구조
- 시스템
- 커널
- 어셈블리어
- 시스템해킹
- 워게임
- write up
- radare2
- 시스템프로그래밍
- wargame
- Today
- Total
목록정보보안 (179)
Computer Security
Race condition(경쟁 상태) - 둘 이상의 Process/Thread 가 동시에 어떤 작업을 수행할 때, 타이밍 등에 의해 의도치 않은 결과가 나올 수 있는 상태 Critical Section(임계 영역) - 둘 이상의 Process/Thread가 동시에 접근하면 안되는 공유 데이터를 접근하는 코드 영역 - Race conditon을 발생시킬 수 있는 코드 영역 Race condition을 해결하기 위한 방법 : Lock mechanism 1. Critical section에 진입할 수 있는 열쇠가 있다 생각하자. 2. 쓰레드 A 와 쓰레드B가 Critical section에 접근하기 전에 Lock을 획득하고 진입한다. 3. 진입한 이후 Lock을 해제하고 나온다. 4. 이때, 둘다 동시에 L..
mmap API를 이용해서 파일의 내용을 메모리에 매핑 해보자. 시작 하기 앞서, 이전에 read API 를 하면서 작성했던 예제를 먼저 다시 살펴보자. dump_info 부분을 보면 모든 내용을 출력하는 코드가 있는데, 이 부분을 mmap API를 이용해서 내용을 읽어서 처리할 수 있도록 해보자. 1. read.c 부분을 우리가 실습할 mmap 디렉토리 안에 read_mmap.c 이름으로 카피해서 넣어준다. 2. dump_info 부분을 mmap 을 이용할 것이기 때문에, dump_info 부분을 지워준다. 3. open 명령어를 이용해서 person_info 파일을 열어주고, 예외처리 해준다. 4. mmap API를 이용해서 매핑 해준다. #include void *mmap(void *addr, si..
OS 상에 동작하고있는 프로세스들이 동시에 실행 되고 있는데, 각각의 프로세스가 자기만의 독립적인공간(address space) 를 가지고 있다 착각하게 만들어주는게 OS의 역할중 하나이다. Process address space 프로그램(Program)이 실행되면 프로세스 주소 공간(Process Address Space)이 Memory에 할당(생성) 되는것을 볼 수 있다. 할당 된 process를 실행시키는것은 CPU가 되게 된다. Process Address Space Code Segment (코드 부분) 프로그램의 코드가 저장되어있다. 읽기만 가능하다. Data Segment (데이터 부분) 전역 변수(global variables) 같은 데이터가 저장되어 있다. 읽고 쓰기가 가능하다. Stack..
opendir API를 이용해서 디렉토리 내에 파일의 목록을 출력하고, 각 파일의 타입들에 대해 출력하는 프로그램을 만들어 보자. 1. 기본적인 뼈대를 만들어 주자. 2. opendir API를 이용해 디렉토리 스트림포인터를 얻자. #include #include DIR *opendir(const char *name); 3. opendir 반환값을 받아올 DIR 포인터를 선언한다. 4. dp = opendir(".") -> 현재 디렉토리(.) 를 오픈한다. 5. 예외 처리 해준다. 6. 디렉토리내에 파일 목록을 읽는 API인 readdir 을 이용한다. struct dirent *readdir(DIR *dirp); 7. readdir 반환 값을 받아 올 struct dirent *entry 를 이용해 s..