| | 网站首页 | 考研信息中心 | 考研资料下载 | 考研论坛 | 考研专业试题 | 2008考研招生简章 | 考研图书 | 留言板 | 考研图片中心 | | ||||||||
![]() |
|
|||||||
|
|
您现在的位置: 考研信息网 >> 考研信息中心 >> 计算机类考试首页 >> 微软认证 >> 最新资讯 >> 正文 | |
|
|||||
| 在Linux操作系统中如何截获系统调用 | |||||
| 作者:佚名 文章来源:不详 点击数: 更新时间:2006-11-10 | |||||
|
本站推荐Firefox浏览器,有效阻止病毒和垃圾弹出.[正版免费下载] 使用 Linux Kernel Module的一般目的就是扩展系统的功能,或者给某些特殊的设备提供驱动等等。其实利用Linux内核模块我们还可以做一些比较“黑客”的事情,例如用来拦截系统调用,然后自己处理。嘿嘿,有意思的说。下面给出一个简单的例子,说明了其基本的工作过程。
大家看到前面的代码了,非常简单,我们就是替换了内核的系统调用数组中我们关心的指针的值,系统调用在内核中实际就是一个数组列表指针对应的函数列表。我们通过替换我们想“黑”的函数的指针,就可以达到我们特定的目的。 这个例子中我们替换了“mkdir”这个函数。这样,用户的应用程序如果调用mkdir后,当内核响应的时候,实际上是调用我们“黑”了的函数,而我们实现的函数里面是什么都没有干,所以这里会导致用户运行“mkdir”得不到结果。这个例子很简单,但是我们可以看出,如果我们想截获一个系统调用,那么我们只需要做以下的事情: 1.查找出感兴趣的系统调用在系统内核数组中的入口位置。可以参看include/sys/ syscall.h文件。 2.将内核中原来的调用函数对应的指针sys_call_table[X]保留下来。 3.将我们新的伪造的系统函数指针给sys_call_table[X]。 |
|||||
|
考研信息网在线版权与免责声明 1、 凡本站注明“稿件来源:考研信息网(sanwww.com)”的所有文字、图片和音视频稿件,版权均属本网所有,任何媒体、 网站或个人未经本网协议授权不得转载、转贴或以其他方式复制发表。已经本站协议授权的媒体、网站,在下载使用时 必须注明"稿件来源:sanwww.com",违者本站将依法追究责任。 2、本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着 赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。 3、考研试题、各种考试试题以及考试信息转载于各大bbs论坛,就其真实性本站无法证实,并不意味着赞同其观点。 如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。 |
|||||
| 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站地图 | | |
![]() |
版权所有 Copyright© 2005 考研信息网 站长:考研信息网 |