Linux 64位系统 动态添加系统调用,3.13内核,我想通过修改内核内存实现。
实现思路
第一步先修改 nr_syscall_max
第二步修改 sys_call_table
但在第一步的时候,我通过浏览entry_64.o文件发现 cmp $nr_syscall_max %%eax,已经满足我需要的条件,我要添加的系统调用号是500 而 系统自定义的nr_syscall_max为544 ,cmp $nr_syscall_max %%eax 是应该可以通过的。但是 我添加过系统调用后,通过汇编程序调用新的系统调用 返回值还是-38.一般返回-38 基本上就是 cmp $nr_syscall_max %%eax 没有通过 直接调用badsys 函数!
不知道 有哪位大神在64位Linux 系统上实现过动态添加系统调用,还望赐教
以上实现方式 在2.6.32 内核的32位系统上已经实现!思路应该都是一样的
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。