Linux 커널에서 스택 보호기를 쉽게 끄는 방법은 무엇입니까? [복사]

Linux 커널에서 스택 보호기를 쉽게 끄는 방법은 무엇입니까? [복사]

나는 스택 버퍼 오버플로 취약점이 있는 Linux 커널용 간단한 모듈을 작성했습니다. 이 모듈을 활용하고 싶지만 먼저 커널에서 스택 보호기를 꺼야 합니다. 이 작업을 어떻게 빠르고 쉽게 수행할 수 있습니까?

매번 커널을 컴파일해야 합니까?

Linux 커널 모듈에서 (커널을 컴파일하지 않고) 스택 보호를 끄는 다른 방법이 있습니까?

답변1

이러한 옵션은 옵션을 컴파일러에 전달하여 작동하므로 가장 간단한 접근 방식은 커널을 다시 컴파일하는 것입니다.

그러나 반복 가능하고 모듈별 방식을 위해 kbuild를 사용하면 모듈별로 사용자 정의 CFLAG를 설정할 수 있습니다.

https://www.kernel.org/doc/Documentation/kbuild/makefiles.txt

특히 활용하려는 모듈에 대해 -fno-stack-protector를 설정하려고 합니다.

DKMS를 사용하면 모든 커널 버전에 대해 트리 외부 드라이버의 자동 재구축을 설정할 수도 있습니다.

관련 정보