【发布时间】:2021-09-24 17:56:56
【问题描述】:
是否可以通过编程方式污染正在运行的 Linux 内核?我希望能够使用受污染的内核进行测试,而无需重新编译以使其受到污染或找到要加载的专有内核模块。
【问题讨论】:
-
你也应该能够编译你自己的一个简单的模块,除了
MODULE_LICENSE丢失或不兼容 GPL 之外什么都不做。内核会认为它是“专有的”并污染自己。您不必出去寻找真正专有的模块。
是否可以通过编程方式污染正在运行的 Linux 内核?我希望能够使用受污染的内核进行测试,而无需重新编译以使其受到污染或找到要加载的专有内核模块。
【问题讨论】:
MODULE_LICENSE 丢失或不兼容 GPL 之外什么都不做。内核会认为它是“专有的”并污染自己。您不必出去寻找真正专有的模块。
root 用户可以污染内核by writing a taint value to /proc/sys/kernel/tainted。污染标志只能以这种方式设置(而不是删除):无法取消对正在运行的内核的污染。当写一个值来表明用户空间做了一些奇怪的事情时,你应该使用TAINT_USER(它的值是32)。例如(如root):
# cat /proc/sys/kernel/tainted
64
# echo 32 > /proc/sys/kernel/tainted
# cat /proc/sys/kernel/tainted
96
【讨论】: