일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- wargame
- 시스템
- Leviathan
- C언어
- 드론
- 워게임
- 리눅스
- 리눅스커널
- 시스템프로그래밍
- 시스템해킹
- 시스템 프로그래밍
- write up
- kernel
- 알고리즘
- 컴퓨터구조
- 취약점
- radare2
- 커널
- 어셈블리어
- Bandit
- pwncollege
- C++
- 리눅스 커널
- 시그널
- css
- pwn.college
- 리버싱
- px4
- Pwnable.kr
- 프로그래밍
- Today
- Total
목록리눅스시스템 (2)
Computer Security
목표 file 을 read API 를 통해서 데이터를 읽는데, read 데이터가 없을 경우에, Blocking mode 와 Non-blocking mode가 각각 어떻게 동작하는지와 fcntl API를 이용해서 file의 Blocking mode 와 Non-blocking mode를 변환하는 예제를 작성 해보자. Blocking mode 1. 기본 뼈대를 만들어 준다. 프로세스가 하나 생성되면 기본적으로 3개의 fd 가 열린다. 0번 fd : standard in (STDIN_FILENO) 1번 fd : standard out (STDOUT_FILENO) 2번 fd : standard error (STDERR_FILENO) 2. 이미 열린상태이기에 open API를 호출할 필요는 없고, STDIN fd의..
디렉토리 탐색 API DIR *opendir(const char *name); 파라미터 - name : 파일 경로 반환 값 - 성공 시 열린 디렉토리 스트림 포인터 - 실패 시 NULL 포인터 디렉토리를 오픈 후, 디렉토리 내에 있는 파일들을 차례로 탐색하는 API (readdir) struct dirent *readdir(DIR *dirp); 파라미터 - dirp : 디렉토리 스트림 포인터 반환 값 - 성공 시 디렉토리 엔트리 포인터 - 실패 시 NULL 포인터 struct dirent struct dirent { ino_t d_ino; off_t d_off; /* XXX */ unsigned short d_reclen; unsigned char d_type; char d_name[256]; }; d_..