일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알고리즘
- Bandit
- write up
- kernel
- radare2
- 커널
- 시그널
- 프로그래밍
- px4
- 리눅스 커널
- 리눅스
- 어셈블리어
- 워게임
- 리눅스커널
- 시스템
- C++
- 컴퓨터구조
- 시스템프로그래밍
- 드론
- 취약점
- 리버싱
- C언어
- Pwnable.kr
- 시스템 프로그래밍
- pwncollege
- css
- 시스템해킹
- wargame
- pwn.college
- Leviathan
- Today
- Total
목록정보보안 (179)
Computer Security
파일시스템(FileSystem) 파일이나 자료를 쉽게 발견 및 접근할 수 있도록 보관 또는 조직하는 체제 ex) 윈도우 파일 탐색기 가상 파일시스템(VFS - Virtual FileSystem) VFS 파일시스템 관련 인터페이스를 사용자 공간 어플리케이션에 제공하는 커널 서브시스템이다. VFS는 다양한 파일시스템들이 공존할 수 있도록 공통된 인터페이스를 제공해준다. open(), read(), write() 등의 시스템콜을 호출했을 때, 각 파일시스템이나 물리적 매체의 종류와 상관없이 동작하게 해주는 역할을 한다. 1. 사용자가 write() 시스템 콜을 호출한다. 2. VFS는 sys_write() 함수를 호출하여 실제 파일시스템의 쓰기 함수를 호출된다. 3. 실제 파일시스템의 쓰기 함수가 실행되고 물..
byte stream을 저장하는 방식 write,read, pwrite, pread를 이용해서 데이터를 저장하고 읽어보자. 첫번째. 정보 쓰기 1. 기본 뼈대를 작성 해준다. 2. 이름과 나이를 저장하는 struct 를 선언한다. 3. 파라미터로 struct person 포인터를 받아오도록 하는 write_info 라는 API를 만든다. open 함수 없으면 생성하고(O_CREAT) , 쓰기권한을 가지면서(O_WRONLY), 파일 뒷쪽에 APPEND 하게끔 해주고(O_APPEND) , 권한은 644로(0644) 설정해준 뒤, 예외처리 해준다. write 함수 1. wirte() 함수에서는 첫번째 fd , 두번째 버퍼(사람정보p) , 세번째는 할당 메모리 를 선언 해준다. write(fd, p, sizeo..
파일에 쓰기 - formatted int dprintf(int fd, const char *format, ...); 파라미터 - fd : 파일 디스크립터 - format : 출력 포맷 - ... : 가변 arguments 반환 값 - 성공시 쓰여진 바이트 값 - 실패시 음수 파일에 쓰기 - byte stream ssize_t write(int fd, const void *buf, size_t count); ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset); 파라미터 - fd : 파일 디스크립터 - buf : 버퍼 포인터 - count : 저장할 사이즈(바이트) - offset : 저장할 위치(오프셋, 파일 시작 기준) 반환 값 - 성..
실습1 low level API 를 이용해 파일을 열고, 간단한 데이터를 써보자. 1. 기본적인 뼈대를 잡아준다. 2.파일을 생성하고 그 안에 데이터를 써놓는 코드를 작성하자. 1. open API를 사용하기 위해선 아래를 추가 해줘야 한다. 추가해주자. #include #include #include 2. open("datafile", O_WRONLY | O_CREAT, 0644); O_WRONLY : 쓰기권한 O_CREAT : 없으면 만들기 0644 : 권한 설정 파일을 생성하면서, 열고,쓰기권한이 있게끔 만든다. 3. dprintf() 함수를 이용해서 파일에 적어준다. 3. 전체적으로 완성된 코드이다. 4. gcc 명령어로 컴파일 해준다. 5. ./open 을 입력하고, ls -al 명령어로 확인해..