图解用工具对BHO做初步研究

一 BHO和浏览器劫持

BHO
Browser Helper Objects (也被称为 BHOs) 是com组件,扮演着ie插件的角色。BHOs可以在某种程度上定制IE,如:用户交互的修改,网页过滤的及下载管理。

BHO(Browser Help Objects),是实现了特定接口的COM组件。开发好的BHO插件在注册表特定的位置注册好后,每当微软的浏览器启动,BHO实例就会被创建。在浏览器工作的工程中,BHO会接收到很多事件,比如浏览器浏览新的地址、前进或后退、生成新的窗口、浏览器退出等等;BHO可以在这些事件的响应中实现与浏览器的交互。


浏览器劫持

BHO的出现帮助程序员更好的打造个性化浏览器或者为自己的程序实现了方便简洁的交互功能,可以说,如果没有BHO接口的诞生,我们今天就不能用一些工具实现个性化IE的功能了。从某一方面来看,BHO的确是各种缤纷网络互动功能的幕后功臣,但是一切事物都是有两面性的,这个恒古不变的真理同样对BHO有效,于是就有了今天让安全界头痛的“浏览器劫持”的攻击手段诞生。
看看前面我提到的BHO接口特性,你想到了什么?BHO可以获知和实现浏览器的大部分事件和功能,也就是说,它可以利用少量的代码控制浏览器行为。程序员可以设计出一个BHO按钮以实现用户点击时通知浏览器跳转到某个页面完成交互功能,当然就可以进一步写出控制浏览器跳转到他想让用户去的页面,这就是最初的“浏览器劫持”的成因:BHO劫持。


IE如何加载BHO
当BHO将被IE加载的时候,它调用一个叫做CoCreateInstance的COM函数,传给它我们BHO的类ID和叫做IObjectWithSite的接口ID。
BHOs被要求实现IObjectWithSite接口,是IE用来和BHO交互的。

二 查找BHO模块

通过前面介绍,可知,BHO是一个dll,并且实现了相应的COM接口。下面来找下浏览器进程中的DLL,看有无BHO。因为现在的浏览器都有扩展功能,也许会有BHO。

看360极速浏览器的所引入的模块;


看下这个afe.dll的介绍,也许是BHO;


用dll查看器看下,它只实现了两个函数,不是BHO;


再找另一个DLL查看工具看下,也许前一个看的不准;


这个工具查看模块导出的函数要麻烦一些;


结果是一样的,afe.dll仅导出2个函数,不是BHO;

再看这个dll,介绍说是“插件”;那么可能是BHO;


用dll查看器查看,导出3个函数,非BHO;


看下360极速浏览器导入的这堆dll,看上去似乎都不是BHO;good,很好;


三 在注册表中查找BHO

根据相关资料有,
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects
可以找到所有的BHO
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\
中可以找到BHO对应的注册项
其中的InprocServer32的默认值为BHO所对应的dll文件.

打开我电脑的上述键,根本没有上述第一个键;


再看CLSID里,一堆,根本不知道谁是谁;


用搜索功能搜索注册表;


原来64位系统该键在另外的位置;


搜到3个BHO,如下;看上去都是微软自带的;






看下360极速的模块,没有导入上面3个dll;看来360极速浏览器是没有使用BHO插件的了,good。

结束此次研究。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值