728x90
반응형
모듈이란?
모듈은 동적으로 커널에 등록하거나 제거할 수 있는 프로그램을 이야기한다.
이를 통해 커널을 재 컴파일 하지 않고 기능을 추가하거나 제거할 수 있다.
모듈 프로그래밍 및 컴파일
모듈 코드는 보통 위쪽에 작동할 코드가 작성되고,
가장 아래에 모듈을 실행하는 함수인 module_init(함수 명) 과
종료하는 함수인 module_exit(함수 명) 이 작성된다.
이렇게 코드 작성 후 컴파일을 위해서는 별도 명령어들이 필요한데, Makefile이라는 컴파일 명령어로 구성된 파일을 작성한 뒤 make 명령어를 통해 모듈을 컴파일할 수 있으며, 확장자는 .ko가 된다.
모듈의 등록 및 제거
이렇게 작성된 모듈은
insmod filename
rmmod filename
로 등록과 제거가 가능하다.
모듈의 log
모듈이 실행되면서 출력되는 메시지나 작동 결과 등은 유저 쉘에서는 출력되지 않는데, /proc/kmsg 파일을 통해 확인할 수 있다.
참고사항
리눅스 시스템에서 /dev 폴더에 가면 여러 파일이 있는 것을 볼 수 있다.
이 파일들은 현재 연결된 각종 디바이스들을 의미하는데, 이를 통해 디바이스들과 소통하는 것이다.
728x90
반응형
'Kernel Exploit' 카테고리의 다른 글
qemu 및 gdb setting (0) | 2023.08.20 |
---|---|
Kernel exploit - kernel build 및 file system build (0) | 2023.08.06 |
Kernel exploit - 디바이스 드라이버 (0) | 2023.08.06 |
Kernel exploit - 슬랩 할당자 (0) | 2023.08.06 |
Kernel exploit - task란 (0) | 2023.08.06 |