일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 시스템
- Bandit
- 시스템 프로그래밍
- css
- C++
- 리눅스
- 리눅스 커널
- 취약점
- 컴퓨터구조
- 시스템해킹
- pwncollege
- 프로그래밍
- 어셈블리어
- 알고리즘
- 커널
- 리눅스커널
- C언어
- 리버싱
- wargame
- Leviathan
- write up
- 시스템프로그래밍
- px4
- radare2
- 워게임
- Pwnable.kr
- 시그널
- kernel
- pwn.college
- 드론
- Today
- Total
목록전체 글 (179)
Computer Security
시그널 처리 설정 typedef void (*sighandler_t) (int); sighandler_t signal (int signum, sighandler_t handler); 파라미터 - signum : 처리 대상 시그널 번호 - handler : 시그널 핸들러 - SIG_IGN : 해당 시그널을 무시 처리 한다. - SIG_DFL : 해당 시그널을 기본 동작 처리 한다. - 그외 사용자 정의 시그널 핸들러 반환 값 - 성공 시 이전 시그널 핸들러 - 실패 시 SIG_ERR 재진입성(reentrant) Reentrant function - 실행이 끝나기 전에 중단되었다가 재개 되엇을 때에도 정삭적으로 수행을 마치는 함수 시그널 핸들러와 reentrant와의 관계 - 시그널 핸들러가 호출되는 시점에..
시그널 정의 - 비동기 이벤트를 처리하기 위한 메커니즘 - 소프트웨어 인터럽트 쓰이는 곳 - Ctrl + C - Child process termination - Alarm - divide by zero - Inter-process communication - ... 정보 - 시그널 번호 + 추가적인 정보 + (아주 작은) 사용자 정의 데이터 시그널의 처리 무시 - 아무런 동작도 하지 않음 - SIGKILL, SIGSTOP은 무시 불가능 처리 - 시그널 별 처리 함수를 수행 기본 동작 -시그널 종류 별 기본 동작 수행 - 프로세스 종료 - 코어덤프 생성 후 종료 - 무시 - 정지 주요 시그널 번호 시그널 번호 기본 동작 의미 SIGHUP 종료 프로세스의 제어 터미널 닫힘(사용자 로그아웃), 설정 리로드 ..

이전 시간에 이어서, 쓰레드가 생성된 이후에 공유자원을 놓고 mutex를 이용해서 동기화 할 수 있는 예제를 작성 해보자. 1.이전 시간의 코드이다. 2. 공유자원이 되는 shared 전역 변수를 만들어준 뒤, shared라는 변수를 100만번동안 +1 하고 100만번동안 -1을 한다 해보자. - 동기화 하지 않은경우 컴파일 결과) 큰 숫자로 반복하게 되면, 하나의 공유자원을 놓고 더했다 뺐다 하게될텐데 오동작이 될 수 있다. mutex lock을 통해서 보호 해서 오동작이 나지 않도록 해보자. 3. instance 선언 후, mutex_init API를 이용해서 초기화 해준다. 4. 공유자원(critical section)에 진입할때는 lock을 하고 종료될 때는 unlock을 해주자. #include..

main함수를 해서 프로세스가 시작이되면 기본적으로 하나의쓰레드가 동작하게 된다. 두개의 쓰레드를 더 생성해서 생성한 두개의 쓰레드는 공유자원을 가지고 pthread_mutex 를 이용해서 동기화를 통해 공유자원의 접근을 하도록 하고, main함수를 시작한 원래 있었던 쓰레드는 기다렸다가 조인을 하고 마친 뒤, 프로그램을 종료하는 예제를 작성해보자. 1. 기본 뼈대를 만든다. 2. pthread_create() API를 이용해서 쓰레드를 생성한다. #include int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg); i) pthread_t 자료형에 child_t..