Ⅱ. 라즈베리 확장
임베디드 개발 환경 구축
§시스템 콜 후킹
- 후킹이란 사전적 단어 그래도 ‘가로채다’의 뜻. 즉 시스템 콜 후킹이란 정상적인 시스템을 가로채서 원하는 것을
실행시키는 것을 의미
- 시스템 콜을 후킹하기 위해서는 시스템 콜 테이블의 시작 주소를 담은 커널 내 포인트 변수인 sys_call_table 주소를 알아야 됨
- $cat linux/System.map | grep sys_call_table
- 후킹 할 시스템 콜 검색
- $vi linux/arch/arm/include/uapi/asm/unistd.h
- 본 예제에서는 NR_open 후킹
- Makefile 생성
- Test c코드 작성
- make
- ls로 생성된 파일 확인
- Target에 전달
- $scp hook1.ko pi@192.168.0.9:/home/pi/test
- 라즈베리에서 확인
위의 화면을 보면 sys_open을 후킹하여 내가 원하는 것을 확인할 수 있다.
또한 rmmod를 통해 모듈을 내렸을 때 Module exit 메시지를 확인할 수 있다.
다음번에는 모듈을 insmod, rmmod하는 것이 아닌 직접 박아서 test할 계획.
반응형
'프로그래밍 > Raspberry' 카테고리의 다른 글
라즈베리파이 File system check failed 문제 (0) | 2015.09.04 |
---|---|
Raspberry pi2 (커널 이미지에 module built-in) (0) | 2015.08.19 |
Raspberry pi2 (시스템 콜) (0) | 2015.08.13 |
Raspberry pi2 (크로스컴파일) (0) | 2015.08.13 |
Raspberry pi2 (SD card 분석) (0) | 2015.08.13 |