modprobe
이와 같은 사용자 공간 프로그램이 어떻게 사용자 공간의 실행 파일을 커널 메모리에 주입하는지 알고 싶습니다 .
어떤 시스템 호출을 발행하며 이를 달성하기 위해 커널은 어떤 인터페이스를 제공합니까? (자세히 설명해주세요).
감사해요.
답변1
다음 방법 중 하나를 사용하여 모듈을 로드합니다.init_module
또는finit_module
. 첫 번째는 포인터에서 모듈을 복사하고, 두 번째는 파일 설명자에서 모듈을 읽습니다. 둘 다 모듈에 대한 추가 매개변수 전달과 커널의 여러 플래그를 지원합니다.
모듈을 제거하려면 다음을 사용하십시오.delete_module
, 제거할 모듈의 이름을 사용합니다.
이를 수행하는 코드를 작성하려면 libkmod
;kmod
모든 배포판에서 사용 가능합니다.