免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: albcamus
打印 上一主题 下一主题

使用kprobes,截获execve系统调用 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2007-10-17 11:00 |只看该作者
原帖由 dedodong 于 2007-10-17 10:19 发表



我装的vmware,每当升级一个内核版本,都要改一堆代码才能跑起来。   

牛....
albcamus大师不知道最近空闲不? 能收我做徒弟不??

嘿嘿



wmware 的内核模块是开源的, 有个老外维护了3个tarball的实时更新, 比自己改方便多了:
http://platan.vc.cvut.cz/ftp/pub/vmware/

采用这个更新,对安装windows和linux等 虚拟机系统来说, 一般没问题。 但如果是solaris,常常遇到Virtual CPU的BUG。


PS, 他大爷的我还是个小菜鸟,收个鸟徒弟啊!!!

论坛徽章:
0
12 [报告]
发表于 2008-12-12 20:37 |只看该作者
原帖由 albcamus 于 2007-9-24 12:42 发表


较新版本的kernel中, kallsyms_lookup_name已经不可用了。

没办法, kernel API真是折腾人。举例来说,我装的vmware,每当升级一个内核版本,都要改一堆代码才能跑起来。

谁有办法从较新的kernel中使用kallsyms_lookup_name啊。

论坛徽章:
0
13 [报告]
发表于 2008-12-12 21:49 |只看该作者

回复 #12 caravsapm70 的帖子

看内核的samples/kprobes下的示例程序。 肯定不难。

论坛徽章:
0
14 [报告]
发表于 2009-03-07 12:43 |只看该作者
搂主好厉害啊,我终于学费了。谢谢楼主

论坛徽章:
0
15 [报告]
发表于 2009-04-25 16:35 |只看该作者
原帖由 albcamus 于 2007-9-20 18:27 发表
关于截获execve等系统调用,很久以来存在一个问题:新函数不能直接调旧函数,
否则导致stack不平衡,出错。

曾经有高人用一串的汇编代码去平衡堆栈, 但对于偶们这些汇编菜鸟来说, 连阅读都很困难。


请教一下版主,关于这句话"
"新函数不能直接调旧函数,
否则导致stack不平衡,出错。"

不太理解,搜了一把也没有对应的帖子,能否详细说一下,或者推荐一些帖子来学习?
谢谢!

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
16 [报告]
发表于 2009-09-21 20:39 |只看该作者
正好搜到albcamus兄的好贴,顶起来。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
17 [报告]
发表于 2009-09-24 19:37 |只看该作者
2.6.18中,测试了open调用可以成功劫持。execve调用应该是内核中结构体发生变化了,如下:
    kp_exec.symbol_name = "do_execve";
2.6.18的内核中struct kprobe中没有symbol_name成员。。。

论坛徽章:
0
18 [报告]
发表于 2009-09-25 13:13 |只看该作者
原帖由 dedodong 于 2007-10-17 10:19 发表



我装的vmware,每当升级一个内核版本,都要改一堆代码才能跑起来。   

牛....
albcamus大师不知道最近空闲不? 能收我做徒弟不??

嘿嘿


要找师傅就得回学校找老师!

论坛是开放的,论坛上的人顶多指点下你。

实践还得靠自己!

论坛徽章:
0
19 [报告]
发表于 2010-04-19 19:47 |只看该作者
回复 7# albcamus


    想请问一下,我用你的方法来替换函数:

    void **my_table;

   asmlinkage old_func(void);
   asmlinkage new_func(void)
{
      //deal
      //....
     old_func();
}
static int  _init hello(void)
{
     my_table = (void **)get_sys_table();
     old_func = my_table[__NR_write];
     // CR0-PE = 0
     my_table[__NR_write] = new_func;
}


在  old_func = my_table[__NR_write]; 处 报错: invalid lvalue in assignment.
不知道 师兄遇到这个问题了吗?如何解决?
谢谢.

论坛徽章:
1
天蝎座
日期:2014-02-28 16:08:53
20 [报告]
发表于 2010-04-20 12:10 |只看该作者
看不懂。。。
   收藏并膜拜
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP