일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 커널
- 시그널
- wargame
- 시스템
- 워게임
- 리눅스 커널
- 컴퓨터구조
- radare2
- 드론
- 리눅스커널
- Bandit
- 리버싱
- 리눅스
- css
- pwn.college
- 시스템 프로그래밍
- C++
- Leviathan
- Pwnable.kr
- C언어
- kernel
- 취약점
- write up
- pwncollege
- 어셈블리어
- 프로그래밍
- 알고리즘
- px4
- 시스템프로그래밍
- 시스템해킹
- Today
- Total
목록리눅스 커널 (28)
Computer Security

1.리눅스 시스템상에서 CPU가 어떻게 보이는지 cat/proc/cpuinfo 명령어를 이용해 먼저 확인 해보자. sched_setaffinity , sched_getaffinity, getcpu를 이용해서 0번 CPU에 스케줄링했다가 1번으로 바꿨다가 동작하는 예제코드를 작성 해보자. 2. 기본 뼈대를 만들어준다. 3. sched_getaffinity, getpid 를 이용해서 현재 동작하고있는 프로세스에 affinity상태를 얻자. #define _GNU_SOURCE #include int sched_getaffinity(pid_t pid, size_t cpusetsize, cpu_set_t *mask); 해당 프로세스가 어디에서 동작할 수 있는지 읽어올 수 있는 API #include #includ..
Multi-Processor 멀티 프로세서는 둘 이상의 중앙 처리 장치 (CPU)가있는 컴퓨터 시스템으로, 각각은 주변 장치뿐만 아니라 공통 기본 메모리를 공유한다. 이것은 프로그램의 동시 처리에 도움이된다. 멀티 프로세서를 사용하는 주요 목표는 시스템의 실행 속도를 높이고 다른 목표는 내결함성 및 응용 프로그램 일치이다. 다중 프로세서의 좋은 예는 두 개의 컴퓨터 시스템에 연결된 단일 중앙 타워다. 멀티 프로세서는 컴퓨팅 속도, 성능 및 비용 효율성을 향상시키고 가용성과 안정성을 향상시키는 수단이다. 멀티 프로세싱에서 모든 CPU는 동일한 기능을 갖거나 일부 기능은 특정 기능을 위해 예약 될 수 있다. 멀티 프로세서를 사용하는 방법 단일 명령어, 단일 데이터 (SISD)와 같은 단일 프로세서 다중 명령..

fork를 한 이후에 exec을 통해서 외부에 다른 프로그램을 실행하고 child process가 종료되면 종료코드를 작성해보자. 1. 이전에 작성했던 fork.c 를 exec.c 로 카피해주자. 2. child process인경우 execl() 명령어를 통해 다른 명령을 실행해보자. int execl(const char *path, const char *arg, .../* (char *) NULL */); ls 명령은 /bin/ls 에 있다. execl을 이용해서 ls를 출력해보자. i) path : "/bin/ls" ii) const char *arg : "ls", "-al" iii) NULL iv) 예외처리 해준다. 3. wait() API를 이용해서 child process가 종료될때까지 기다리자..
프로세스를 fork한 이후, 새로운 프로그램을 실행시키는 exec계열의 API와 프로세스를 생성한 이후에 child process가 종료될 때, parent process에서 child process를 처리할 수 있는 API를 알아보자. 1. 하나의 프로세스(parent process)가 fork 하면 child process가 생긴다.(parent process 랑 동일한내용복제) 2. exec() API를 호출하게 되면 원래는 parent process와 동일한 코드나 데이터를 가지고 있었는데, 내용이 전부 없어지고 새로운 내용으로 채워진다. exec APIs int execl(const char *path, const char *arg, .../* (char *) NULL */); int execl..