什么是"无法在00000000313337000处理内核分页请求"

时间:2015-06-03 06:23:33

标签: linux debugging linux-kernel dereference exploit

我希望自己完成这项独立研究http://security.cs.rpi.edu/~candej2/syllabus.pdf,以获取有关漏洞利用写作的一些基础知识,并且实际上能够从头开始编写漏洞利用程序。所以......我在看http://security.cs.rpi.edu/~candej2/kernel/trivial_sploit.chttp://security.cs.rpi.edu/~candej2/kernel/trivial.c,并试图了解它是如何工作的。

我尝试通过

运行它
# insmod trivial.ko
$ ./exploit

利用漏洞

[+] mapped 0x31337000

然后在我的VM(我设置kgdboc)中,我看到了

BUG: Unable to handle kernel paging request at 0000000031337000
IP: [<0000000031337000>] 0x31337000
PGD 3a89e067 PUD 3aea2067 PMD 3b333067 PTE 31b57067
last sysfs file: /sys/devices/pci0000:00/0000:00:10.0/host2/target2:0:0/2:0:0:0/block/sda/dev
KGDB: Waiting for remote debugger

为什么会出现这种情况?

1 个答案:

答案 0 :(得分:0)

我发现了 - 这是SMEP。我可以通过添加nosmep作为启动参数来禁用它