![哪个 Ubuntu 源文件实现了 nx 位的管理?](https://linux22.com/image/869337/%E5%93%AA%E4%B8%AA%20Ubuntu%20%E6%BA%90%E6%96%87%E4%BB%B6%E5%AE%9E%E7%8E%B0%E4%BA%86%20nx%20%E4%BD%8D%E7%9A%84%E7%AE%A1%E7%90%86%EF%BC%9F.png)
据我了解,Ubuntu 具有设置 nx 位的功能,以防止堆栈破坏攻击。
哪个源代码文件实现了这一点,并且在正常操作期间哪个过程/数据结构处理该位的设置?
注意:这是不是关于在第三方程序中编写 nx 位保护的问题,这是我在哪里可以看到当前保护的实施的问题。
答案1
你可以尝试开始这里。
如何开始的示例
有一行代码:
#define X86_FEATURE_NX ( 1*32+20) /* Execute Disable */
我已经克隆了 linux 内核的 git repo,它是在master
分支中的最后一次提交是时克隆的14186fea0cb06bc43181ce239efe0df6f1af260a
。因此现在可能会发生一些变化。
X86_FEATURE_NX
尝试在 Linux 内核 git repo 中查找所有使用此功能的文件:
$ for i in *; do find "$i" -type f | xargs grep -l "X86_FEATURE_NX"; done
arch/x86/kvm/vmx.c
arch/x86/kvm/svm.c
arch/x86/kernel/head_32.S
arch/x86/include/asm/cpufeature.h