找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
楼主: 364589886

360的hook架构源码

 火... [复制链接]

23

主题

117

回帖

1

精华

银牌会员

积分
400
发表于 2011-2-25 12:50:38 | 显示全部楼层 |阅读模式
本帖最后由 364589886 于 2011-2-25 13:04 编辑

My_HookKifc.rar (7.04 KB, 下载次数: 245) 这个基本和360的hook架构是一样的(有一点区别,360是用了个二级跳,即jmp到一个地址,然后这个地址同样是个jmp,最后由这个jmp跳转到真正要执行的代码处,达到的效果就是一些ARK工具检测时只能显示为unknow module,不过这个貌似是流氓软件的惯用手段,作为安全软件来说,用不着这样吧。。。。。此处正好说明了360的流氓本质,哈哈)。。。。。要正式使用的话,自己添加ioctl,往ServiceFilterInfoTable里注册自己的过滤函数

评分

参与人数 1 +100 +100 水晶币 +100 +100 收起 理由
Tesla.Angela + 100 + 100 + 100 + 100 精品文章

查看全部评分

23

主题

117

回帖

1

精华

银牌会员

积分
400
 楼主| 发表于 2011-2-25 12:57:26 | 显示全部楼层
不过不得不赞一句。。。。360的这个hook架构确实很不错,易于扩展和控制
比如:需要增加对某函数的hook,则只需要往ServiceFilterInfoTable的相应数组元素里添加一个自己的过滤函数(数组下标和SSDT里相应函数的index一致),要暂停过滤这个函数,只需要把相应数组元素的控制字段设为0,要删除过滤这个函数,则只需要把相应数组元素全部清零就可以了

有个问题:代码里对只读内存的写,采用了改写CR0寄存器的方式,这里需要同步,我采取的是关中断的方式,但cli这个汇编指令只对当前处理器有效(自旋锁也是一样的情况),对于多核情况,如何做到同步,很头痛。。。。若有人有好的办法,烦请留言告知

40

主题

324

回帖

0

精华

铂金会员

Eax=0

积分
1575
发表于 2011-2-25 16:54:01 | 显示全部楼层
可以暂时关闭另一个核心么(好像不能)或者多线程并发占用cpu?

好像一本书上讲过不用cr0的方法,不过忘了
Do my best.

23

主题

117

回帖

1

精华

银牌会员

积分
400
 楼主| 发表于 2011-2-25 17:13:21 | 显示全部楼层
你说的是重新弄个可写的内存描述符(MDL)吧。。。。这个与用同步没关系
同样得找办法解决同步问题

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
发表于 2011-2-25 20:17:56 | 显示全部楼层
乔丹二世以前贴过代码:
http://www.m5home.com/bbs/thread-5071-1-1.html

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
发表于 2011-2-25 20:23:10 | 显示全部楼层
仔细看了下,觉得这个Hook KiFastCallEntry的构架比我以前写的那个好多了。

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 2011-2-26 13:26:28 | 显示全部楼层
这是从360里反出来的么?
我就是嗷嗷叫的老马了......

23

主题

117

回帖

1

精华

银牌会员

积分
400
 楼主| 发表于 2011-2-26 15:54:56 | 显示全部楼层
Tesla.Angela 发表于 2011-2-25 20:17
乔丹二世以前贴过代码:
http://www.m5home.com/bbs/thread-5071-1-1.html

这个还是有问题。。。。比如。。。这个代码里,替换的是两条指令,一个sub,一个shr,假设其它代码执行到了sub,然后此时被我们的驱动线程中断,然后后面的内容被替换成我们自己的了。。。等我们替换完,刚才被中断的那个线程继续运行时,必定要蓝了。。

23

主题

117

回帖

1

精华

银牌会员

积分
400
 楼主| 发表于 2011-2-26 15:55:51 | 显示全部楼层
马大哈 发表于 2011-2-26 13:26
这是从360里反出来的么?

嗯。。。。多数是逆向出来的
有些是我自己的理解

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 2011-2-26 17:12:15 | 显示全部楼层
364589886 发表于 2011-2-26 15:55
嗯。。。。多数是逆向出来的
有些是我自己的理解

看起来这个架构很不错啊.

说明360里面还是有牛人的,只是这老板的名声.......
我就是嗷嗷叫的老马了......

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
发表于 2011-2-26 17:19:40 | 显示全部楼层
回复 364589886 的帖子

没这么多意外,我在Intel和AMD的四核机上试过,没事。。。

23

主题

117

回帖

1

精华

银牌会员

积分
400
 楼主| 发表于 2011-2-26 19:57:22 | 显示全部楼层
Tesla.Angela 发表于 2011-2-26 17:19
回复 364589886 的帖子

没这么多意外,我在Intel和AMD的四核机上试过,没事。。。

理论上存在这种可能性

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
发表于 2011-2-26 23:17:44 | 显示全部楼层
回复 364589886 的帖子

我知道,只是机率小,反正我没有遇到过。

23

主题

117

回帖

1

精华

银牌会员

积分
400
 楼主| 发表于 2011-2-28 14:22:53 | 显示全部楼层
回复 Tesla.Angela 的帖子

你有时间的话,完善哈这个驱动,搞个SSDThook的通用组件嘛

0

主题

8

回帖

0

精华

铜牌会员

积分
54
发表于 2011-3-22 00:01:40 | 显示全部楼层
嗯,这个确实不错

2

主题

32

回帖

0

精华

铜牌会员

积分
287
发表于 2011-4-30 16:29:28 | 显示全部楼层
有用。。回个帖子。。。
http://hi.baidu.com/zhouws1011/blog

0

主题

5

回帖

0

精华

初来乍到

积分
15
发表于 2011-5-4 22:30:24 | 显示全部楼层
mark,收藏,下下来一起学习!

2

主题

11

回帖

0

精华

铜牌会员

积分
45
发表于 2011-5-8 01:52:38 | 显示全部楼层
都是牛人,无法学习

0

主题

5

回帖

0

精华

初来乍到

积分
15
发表于 2011-7-9 15:17:58 | 显示全部楼层
谢谢分享了啊

1

主题

5

回帖

0

精华

初来乍到

积分
14
发表于 2011-8-19 12:05:41 | 显示全部楼层
{:soso_e179:} 360其实就是流氓

0

主题

13

回帖

0

精华

初来乍到

积分
19
发表于 2012-3-1 00:24:37 | 显示全部楼层
下载看看

4

主题

183

回帖

3

精华

钻石会员

积分
4965
发表于 2012-3-1 12:43:56 | 显示全部楼层
364589886 发表于 2011-2-25 12:57
不过不得不赞一句。。。。360的这个hook架构确实很不错,易于扩展和控制
比如:需要增加对某函数的hook,则 ...

不断的发线程,直到其他cpu都自旋

1

主题

49

回帖

1

精华

金牌会员

积分
1225
发表于 2012-6-13 10:55:42 | 显示全部楼层
学习。

0

主题

46

回帖

0

精华

银牌会员

积分
344
发表于 2012-6-16 21:31:44 | 显示全部楼层
360的技术还是不错的,这个架构很好

0

主题

8

回帖

0

精华

初来乍到

积分
21
发表于 2012-8-6 11:47:18 | 显示全部楼层
学习之!!!

3

主题

36

回帖

1

精华

铂金会员

积分
2532
发表于 2012-9-28 14:59:22 | 显示全部楼层
好好学习下!不流氓的话很难在中国的软件市场上混得一席之地!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

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