如何轻松关闭Linux内核中的堆栈保护器?

如何轻松关闭Linux内核中的堆栈保护器?

我为 Linux 内核编写了一个简单的模块,它有一个堆栈缓冲区溢出漏洞。我想利用该模块,但我必须先关闭内核中的堆栈保护器。我怎样才能快速而简单地做到这一点?

每次都需要编译内核吗?

有没有其他方法可以关闭 Linux 内核模块中的堆栈保护(无需编译内核)?

答案1

这些选项通过将选项传递给编译器来工作,因此最直接的方法是重新编译内核。

然而,对于可重复且特定于模块的方式,kbuild 允许您在每个模块的基础上设置自定义 CFLAG。

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

您特别希望为您想要利用的模块设置 -fno-stack-protector。

DKMS 还允许您针对任意内核版本设置树外驱动程序的自动重建。

相关内容