加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux-kernel – 使用LKM实现Linux系统调用

发布时间:2020-12-13 23:03:45 所属栏目:Linux 来源:网络整理
导读:我试图向 Linux内核3.2.x添加一个新的系统调用. 在通过互联网搜索有用的参考资料时,我有一种印象,即在问题 Is it possible to add a system call via a LKM?中无法实现系统调用作为可加载模块 我找到了另一个链接,上面写着“有一种方法可以添加系统调用而无
我试图向 Linux内核3.2.x添加一个新的系统调用.
在通过互联网搜索有用的参考资料时,我有一种印象,即在问题 Is it possible to add a system call via a LKM?中无法实现系统调用作为可加载模块

我找到了另一个链接,上面写着“有一种方法可以添加系统调用而无需使用模块作为包装器重新编译内核,但这超出了本文档的范围”.
来源http://hekimian-williams.com/?p=20

我知道静态实现系统调用将要求我每次进行任何更改时编译内核代码.是否有上述博客中指定的方法可以将其作为模块实现.

任何有关方向的建议或指示都非常感谢.

解决方法

>找到sys_call_table / ia32_sys_call_table
>制作副本并根据需要进行修改(让它成为my_sys_call_table)
>找到 system_call条目(此一个和其他)
>如果表格大小已更改,则修改NR_syscalls比较 instruction
>在 system_call修改sys_call_table引用以指向my_sys_call_table:

500        call *sys_call_table(,%eax,4)
      ->
500        call *my_sys_call_table(,4)

>利润?

玩得开心 :)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读