免费注册 查看新帖 |

Chinaunix

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

【原创】Rootkit技术的主要原理 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-08-04 15:32 |只看该作者
原帖由 Godbach 于 2009-8-4 11:46 发表
刚刚看看了一少半PDF文档。请教一下白金兄是否按照上面的代码做过实验啊?

晕,惭愧啊,还没仔细看过呢,垫箱子底儿用了……

论坛徽章:
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
12 [报告]
发表于 2009-08-04 15:48 |只看该作者
原帖由 platinum 于 2009-8-4 15:32 发表

晕,惭愧啊,还没仔细看过呢,垫箱子底儿用了……


呵呵,其实我这里也是很多电子书都垫着底呢。

论坛徽章:
0
13 [报告]
发表于 2009-08-04 22:24 |只看该作者
原帖由 Godbach 于 2009-8-4 04:46 发表
刚刚看看了一少半PDF文档。请教一下白金兄是否按照上面的代码做过实验啊?


如果你的系统是 64 位的,照着做应该是没什么效果,因为大部分的用户程序都是 64 位的,glibc 相应地用 sysenter 而不是 int 0x80,而且搜索的签名也不对。已经2009年了,网上大都还在传抄 32 位的例子,sysenter 都不予考虑,貌似都是高校学生在应付作业

内核2.6.21为例,arch/x86_64/kernel/setup64.c 中有 asm volatile("lidt %0" :: "m" (idt_descr)); 一句用来设置 IDT,之后调用syscall_init() 函数,syscall_init()里头调用 wrmsrl(MSR_LSTAR, system_call); 设置系统调用入口。所以我们需要相应地用 rdmsrl 读出 system_call 入口。

在 64 位下,要搜索的签名不再是 0xFF0x140x85,而是 0xFF0x140xC5 (对应 callq)。

还有就是,在较新的内核下,存有系统调用表的页是只读的,在 LKM 里面也不能写入,文档中的例子在 Fedora 9 下是不能工作的,两个选择,1. 找到该页的页表项,修改其属性,2. 简单地修改一下 cr0。

[ 本帖最后由 vupiggy 于 2009-8-4 15:37 编辑 ]

论坛徽章:
0
14 [报告]
发表于 2009-08-04 22:26 |只看该作者
inline hook:主要是指对内存中的内核函数直接修改,而不影响原先的功能,可以采用跳转的办法

这个跳转的inline hook有这方面的例子吗?
谁来说一下啊,讲解讲解.

论坛徽章:
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
15 [报告]
发表于 2009-08-05 10:06 |只看该作者
原帖由 vupiggy 于 2009-8-4 22:24 发表


如果你的系统是 64 位的,照着做应该是没什么效果,因为大部分的用户程序都是 64 位的,glibc 相应地用 sysenter 而不是 int 0x80,而且搜索的签名也不对。已经2009年了,网上大都还在传抄 32 位的例子,sy ...


呵呵,现在既没有用64位的CPU,也没有用64位的OS。

难道现在用32位的会很落后吗?

论坛徽章:
0
16 [报告]
发表于 2009-08-05 10:59 |只看该作者
原帖由 Godbach 于 2009-8-5 10:06 发表


呵呵,现在既没有用64位的CPU,也没有用64位的OS。

难道现在用32位的会很落后吗?

AMD 好像就有吧?
各大发行版好像也有 for 64bit 系统的呀

论坛徽章:
0
17 [报告]
发表于 2009-08-05 12:34 |只看该作者
前段时间我也在学习这东东,谢谢LZ分享
mark一下

论坛徽章:
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
18 [报告]
发表于 2009-08-05 14:49 |只看该作者

回复 #16 platinum 的帖子

呵呵,可能是我没说清楚。我是说自己实际使用中的情况。

论坛徽章:
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
19 [报告]
发表于 2009-08-05 14:50 |只看该作者
AMD早就有64位的CPU了

论坛徽章:
0
20 [报告]
发表于 2009-08-09 19:16 |只看该作者
学习了。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP