일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- C언어
- 시그널
- 리눅스커널
- 리버싱
- Pwnable.kr
- 프로그래밍
- pwncollege
- 시스템프로그래밍
- radare2
- pwn.college
- 컴퓨터구조
- kernel
- px4
- 드론
- 리눅스 커널
- Leviathan
- write up
- 시스템
- Bandit
- 워게임
- 커널
- 취약점
- 리눅스
- css
- 어셈블리어
- C++
- Today
- Total
목록리눅스 (48)
Computer Security
고급 시그널 관리 int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact); 파라미터 - signum : 대상 시그널 번호 - act : 시그널 처리 액션 - oldact : 기존 시그널 처리 액션 반환 값 - 성공 시 0 - 실패 시 -1 struct sigaction struct sigaction { void (*sa_handler) (int); void (*sa_sigaction) (int, siginfo_t *, void *); sigset_t sa_mask; int sa_flags; void (*sa_restorer) (void); /* 사용되지 않음 */ }; - sa_flags 에 SA_SIGINFO 포함..

시그널의 동작에 대해 프로그램 실습을 해보자. 1. 기본 뼈대를 만든다. 2. 시그널을 받기 위해, 기다려야한다. while 문을 이용하자. gcc 컴파일 한 뒤, ./signal로 실행 시켜보자. 현재 기다리는 중(무한루프)이다. 3. ps 명령어를 통해 signal이 어떻게 실행중인지 살펴보자. 2728 번으로 실행된 것을 알 수 있다. 4. 2728 pid 로 시그널을 보내보자. kill 이라는 명령어로 전달해주자. 다른 터미널에서 kill -TERM 명령어로 종료신호를 보내니 아래와 같이 바로 실행이 종료 된 것을 알 수 있다. kill -TERM pid 대신 kill -TERM 'pidof signal' 이라는 명령어를 사용하면, 그때그때 바뀌는 pid를 일일히 넣어주지 않아도 signal이라는..
시그널 처리 설정 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 종료 프로세스의 제어 터미널 닫힘(사용자 로그아웃), 설정 리로드 ..