1
回答
Linux 64位系统 动态添加系统调用,3.13内核,添加无效的问题
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

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位系统上已经实现!思路应该都是一样的

举报
逍遥蓝云
发帖于1年前 1回/179阅
顶部