일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Pwnable.kr
- 리버싱
- Bandit
- Leviathan
- 리눅스
- kernel
- 커널
- pwncollege
- 시스템
- 컴퓨터구조
- radare2
- pwn.college
- 리눅스 커널
- wargame
- 시그널
- 시스템프로그래밍
- 시스템 프로그래밍
- 워게임
- 프로그래밍
- 어셈블리어
- write up
- 드론
- C언어
- 시스템해킹
- 리눅스커널
- px4
- 알고리즘
- css
- C++
- 취약점
- Today
- Total
목록전체 글 (179)
Computer Security
Single-thread vs Multi-thread 멀티 쓰레드의 경우 code, data, files 영역을 3개의 쓰레드가 공유하는 특징을 가지고 있다. 프로그램을 실행하면서 실행 주체별로 필요하기 때문에, stack과 registers는 따로 가지고 있다. 쓰레드를 생성하는 API int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg); 파라미터 - thread : 생성된 thread ID - attr : 쓰레드 속성(pthread_attr_init()으로 초기화) - satrt_routine : thread main function - arg : threa..

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가 종료될때까지 기다리자..