论坛登陆 注册 教程 笑话 影视 投稿
首页 | 页界资讯 | 网络应用 | 软件应用 | 组网技术 | 网络原理 | 聊天通讯 | 网管知识 | 帮助
笑话 | 操作系统 | 注 册 表 | 编程开发 | 数 据 库 | 媒体动画 | 网页设计 | 图形图象 | 地图
论坛 | 网络安全 | 安全防范 | 服 务 器 | 硬件学堂 | 路由技术 | 搜索研究 | 站长经验 | 投稿
影院 | 教育频道 | 特色专题 | 精文荟萃 | 注 册 码 | 论坛社区 | 网站地图 | 广告服务 | 旧版
设为首页 加入收藏
当前位置:首页>>文章>>操作系统>>Linux>>正文

在Linux操作系统中如何截获系统调用

www.xker.com 作者: 来源:天极 加入日期:2006-3-10 10:56:06

【问题提问、论坛交流】使用Linux Kernel Module的一般目的就是扩展系统的功能,或者给某些特殊的设备提供驱动等等其实利用Linux内核模块我们还可以做一些比较“黑客”的事情,例如用来拦截系统调用,然后自己处理嘿嘿,有意思的说

  下面给出一个简单的例子,说明了其基本的工作过程

#define MODULE
#define __KERNEL__
#include <linux/module.h>
#include <linux/kernel.h>
#include <asm/unistd.h>
#include <sys/syscall.h>
#include <linux/types.h>
#include <linux/dirent.h>
#include <linux/string.h>
#include <linux/fs.h>
#include <linux/malloc.h>
extern void* sys_call_table[];
 /*sys_call_table is exported, so we can access it*/
int (*orig_mkdir)(const char *path);
 /*the original systemcall*/
int hacked_mkdir(const char *path)
{
return 0; /*everything is ok, but he new systemcall
does nothing*/
}
int init_module(void) /*module setup*/
{
orig_mkdir=sys_call_table[SYS_mkdir];
sys_call_table[SYS_mkdir]=hacked_mkdir;
return 0;
}
void cleanup_module(void) /*module shutdown*/
{
sys_call_table[SYS_mkdir]=orig_mkdir; /
*set mkdir syscall to the origal
one*/
}

  大家看到前面的代码了,非常简单,我们就是替换了内核的系统调用数组中我们关心的指针的值,系统调用在内核中实际就是一个数组列表指针对应的函数列表我们通过替换我们想“黑”的函数的指针,就可以达到我们特定的目的

  这个例子中我们替换了“mkdir”这个函数这样,用户的应用程序如果调用mkdir后,当内核响应的时候,实际上是调用我们“黑”了的函数,而我们实现的函数里面是什么都没有干,所以这里会导致用户运行“mkdir”得不到结果这个例子很简单,但是我们可以看出,如果我们想截获一个系统调用,那么我们只需要做以下的事情:

  1.查找出感兴趣的系统调用在系统内核数组中的入口位置可以参看include/sys/ syscall.h文件

  2.将内核中原来的调用函数对应的指针sys_call_table[X]保留下来

  3.将我们新的伪造的系统函数指针给sys_call_table[X]


  编辑:xker.com

上一篇:Linux操作系统打包命令使用技巧详解
下一篇:没有了
关闭窗口】【技术交流】【收藏此页
相关文章
·轮番上阵:Linux下查找漏洞的N种兵器·Linux操作系统打包命令使用技巧详解·Linux下代理服务器安装调试一例
·在Linux代理服务器上设置防火墙·构建Linux系统下U盘路由器 防火墙(图·Linux下Ext2与Ext3文件系统的区别
·Linux系统下的多线程编程入门·让Linux象Windows一样安装卸载·制作Linux系统启动盘的四种通行方法
·打造完美Linux系统:多种疑难杂症的解·Linux NFS服务器性能优化·全面提升Linux服务器的安全
·微软要在印新增3000员工 不屑Linux威·Linux环境下的备份·Linux操作系统下光盘刻录实战
推荐文章 最新文章 热门文章
·在Linux操作系统中如何截获系统调用
·照片处理:美女肖像照片简单靓肤技巧
·PHP安全配置之实现安全的两个重点
·手工优化windows XP系统
·用 VC++和Winsock 实现与 HTTP 服务
·SQL Server 2005数据库开发概述
·Jsp开发环境配置全过程
·Fireworks制作妇女节主题宣传动画(图
·主动FTP与被动FTP-权威解释
·FTP连接后为什么列表错误,无法列表
·拒绝提示窗口 让操作自动赶走网络烦恼
·视频格式转换工具使用集锦
·通过SQL Server 2005索引视图提高性能
·SQL Server 2005新特性
·SOHO族安全建议-保证上传服务器安全
·在Linux操作系统中如何截获系统调用
·十七点学完安全知识超级详细了解进程
·互联网中四大恶意病毒及防范措施
·透视木马程序开发技术:病毒源代码详
·计算机病毒最常见的几种类型
·MYDOOM最新变种AB(Worm.Mydoom.AB)分
·三种网线的RJ-45接头制作法图解
·未必人人皆知QQ七大非常规秘籍
·让QQ头像Tip有彩色背景
·QQ自定义头像制作方法
·Word和WPS中通用的文本排版技巧
·flash和asp分页的一点心得
·照片处理:美女肖像照片简单靓肤技巧
·找出并取消QQ已绑定手机号的小技巧
·知根知底 如何查找垃圾邮件真正发件人
·个人简历表格
·免费代理IP(每日更新)
·QQ密码丢失后能做的事情:快速找回密码
·Norton AntiVirus 2006 注册码(激活
·豪杰超级解霸V9.1正版注册码
·WinRAR 3.51 注册码
·系统优化 专题
·找回QQ密码的注意事项 
·史上最强QQ个人档案资料欣赏
·Ajax技术开发指南
·求职简历封皮
·最经典的黑客入门教材
·ACDSee v8.0注册码
·应届毕业生求职信
·怎样查找对方的IP地址
评论

设为首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2003-2006 xker.com All rights reserved.小新技术网 合作广告QQ:12231446
本页浏览次数: