c - 内核模块内存访问
问题描述
我是内核模块的新手,目前正在试验它。我读过它们与内核本身具有相同级别的访问权限。
这是否意味着他们可以访问物理内存并且可以查看/覆盖其他进程(包括内核内存空间)的值?
我已经编写了这个简单的 C 代码来覆盖每个内存地址,但它没有做任何事情(期望系统崩溃,不确定这是触及物理内存还是它仍然是虚拟内存)
我用 运行它sudo insmod ./test.ko
,代码只是挂在那里(当然是因为无限循环)但是当我手动退出时系统工作正常。
#include <linux/module.h>
#include <linux/kernel.h>
int init_module(void)
{
unsigned char *p = 0x0;
while (true){
*p=0;
p++;
}
return 0;
}
void cleanup_module(void)
{
//
}
解决方案
推荐阅读
- sql - 将列数乘以行数
- android - Android Studio 3.3:由于包含 Kotlin 模块,不支持新的 Gradle Sync(无效类型代码:68)
- python-3.x - 将输出python保存在字符串变量中
- cuda - 为什么两个 CUDA 流中的操作不重叠?
- python - PySide - QAbstractItemModel - 设置特定项目文本颜色
- javascript - 在流星中提交表单的编辑;javascript 对象
- kubernetes - Eclipse Che 与 Istio 等自定义 Ingress
- php - 开发一个 php 页面并被重定向到 web 而不是 localhost?
- json - 为什么生成的 JSON 被截断?
- php - 在 Laravel 5.5 中通过 CURL 发布和接收