LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: nuclearweapon

2.6.8内核中通过模块添加系统调用,不用编译内核(原创)

[复制链接]
发表于 2005-9-26 20:42:36 | 显示全部楼层
Post by daemeon
这么ugly实现也加精?

原来论坛的水平低,为了激励兄弟们的学习热情,多少有点水平的就加精了。你有兴趣可以去看精华区中的老贴,以现在的眼光来看,水平确实是不怎么样,但论坛就是这样一步一步的走过来的。
以后有时间,会专门整理一下精华区。
回复 支持 反对

使用道具 举报

发表于 2005-9-26 21:38:21 | 显示全部楼层
Post by daemeon
这么ugly实现也加精?


呵呵,不要这么说嘛,人人都是慢慢成长的,就像小学时被老师表扬的作文现在看来可能很可笑一样,只要自己觉得好,能够发上来就行了
xfocus 上看到过两个蛮不错的实现
回复 支持 反对

使用道具 举报

发表于 2005-9-27 14:21:47 | 显示全部楼层
哎,其实最有技术性的就是如何获得sys_call_table的地址
居然是事先得到的
这也精华啊
sir的要求还真是低啊
回复 支持 反对

使用道具 举报

发表于 2005-9-27 14:26:33 | 显示全部楼层
Post by mainstein
请问楼主,你是怎样找到sys_call_table的地址呢。我用了网上几个找地址的代码,找到的都是用户太的地址,很是疑惑。请赐教啊

google "addsym.c"
回复 支持 反对

使用道具 举报

发表于 2005-9-27 15:09:37 | 显示全部楼层
https://www.xfocus.net/bbs/index.php?act=ST&f=2&t=52401

ps:看到这个精华帖,确实有点意外,因为我是先看到上面焦点的帖子的.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-9-28 12:17:49 | 显示全部楼层
我当时是第一次看内核,看的是《边学边干》但是那里边用的是2.4 的内核,我用的2.6按照他的方法是不能添加系统调用的。
当时我确实没有看到有文章,我只是从“原理”的角度添加系统调用。也就是说学习的角度所以显得ungly了一些。

我个人认为,学习内核不是光看书就可以了,毕竟学习内核学要自己动手,这是一个理解的过程!
毕竟是我自己想出来的!谢谢
你有更好的实现方法,是你自己理解内核的基础上得来的吗?还是抄别人的?还是自己思考过的方法。我现在也知道有更好的方法实现这样的添加,但是我不认为当时我写的代码有多么ungly,这是我的理解过程!
毕竟学习内核学要自己动手,别人的实现是别人的理解!

也怪我,把高手daemeon 逼的用英语来说我的代码烂了!!!


呵呵!!
开开玩笑,谈谈感想,别当真!!
回复 支持 反对

使用道具 举报

发表于 2005-9-28 12:40:07 | 显示全部楼层
偶不是高手!
以后大家多多交流,共同进步。
回复 支持 反对

使用道具 举报

发表于 2005-9-30 11:09:11 | 显示全部楼层
我比较笨的办法是在编译模块之前,fgrep sys_call_table /boot/System.map-2.6.8.16,得到sys_call_table的地址。还是要手工处理,不过可以写个shell脚本,得到地址后然后用sed改一下源码,这样也实现了自动化。哈哈
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表