There can be no Triumph without Loss,No Victory without Suffering,No Freedom without Sacrifice.
All you have to decide is what to do with the time that is given to you.
Get busy Living, or Get busy Dying?
  首页 | 留言给我 | 订阅 Rss | CLI | 黄白之恋 Posts:158   Hits: 5582488    Comments: 173    
 日历归档
<<  <  2024 - 12  >  >>
SuMoTuWeThFrSa
1234567
891011121314
15161718192021
22232425262728
293031
 About Me
 Name: ZhangSichu
 Sex: Male
 Age: 32
 Email: ZhangSichu@gmail.com
 MSN: ZhangSichu@hotmail.com
 Home: ZhangSichu.com
 WeiBo: weibo.com/zhangsichu
 个人推荐
 分类归档
  ·C++/C(5)  RSS
  ·软件工程(1)  RSS
  ·杂事/随感(26)  RSS
  ·.Net/Java(30)  RSS
  ·面向对象程序设计(5)  RSS
  ·汇编/破解(0)  RSS
  ·平面设计(3)  RSS
  ·SQL(5)  RSS
  ·COM/COM+(2)  RSS
  ·Web开发(81)  RSS
 My Friends
Back Forward Refresh Home 2024年12月9日 星期一 RSS CLI Mine Sweeper. In Javascript.

  用VS2005开发BHO揭开IE插件的神秘面纱
字体大小 [ ]

IE插件早已不是个新东西了,在IE4时代就有了,但是随着恶意插件的层出不穷,又一次被人重视起来。当前很多网站在无意识或有意识的情况下被挂马,让用户下载.cab自动安装,让用户中恶意IE插件。或者当用户安装一个从第三方网站来的软件,安装过程看着一切正常,可是就在这不知不觉中用户就中了恶意IE插件。恶意IE插件真是无恶不作,随意弹出广告窗口,弹也不弹些好广告,篡改HTML内容,嵌入IFrame,篡改搜索引擎搜索结果,篡改href链接地址。由于恶意插件泛滥,才有了像360safe这样的好东东。


IE插件主要有三种:
1. ActiveX Control.
2. Browser Helper Object (BHO).
3. Browser Extensions.


ActiveX Control 例如:Flash,银行专用输入框等等。
Browser Extensions http://msdn2.microsoft.com/en-us/library/aa753587(VS.85).aspx 例如:Zend Studio,浩方对战平台等等。Browser Extensions主要扩展IE ToolBar ContextMenu 等等。
Browser Helper Object (BHO) 这个东东就是IE恶意插件的根源(好像Com的IUnknown),大多数IE恶意插件都是一个BHO。

Dino Esposito对BHO的详细示例介绍《如何使用BHO定制你的Internet Explorer浏览器》
英文原文:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwebgen/html/bho.asp
中文翻译:
http://www.vckbase.com/document/viewdoc/?id=1426
文章中对应的示例程序下载地址:
http://support.microsoft.com/kb/179230

就是因为这个示例程序:IEHelper 催生出了很多IE插件,如果用百度搜索IEHelper.exe最先搜索到的就是一个恶意IE插件。

大多数对IE插件介绍的文章都是基于VC6的,一般示例程序转换到VS2005下都会出现编译错,并且文章中也没有详细讲述如何安装和调试BHO。
下文内容是通过对Dino Esposito的《如何使用BHO定制你的Internet Explorer浏览器》的学习,抽取出了其中BHO的核心内容,写的一个IE BHO插件,这个插件的主要作用是屏蔽网页中所有图片,当网页展现时,让所有的图片都不显示。具体BHO的原理和工作机制在Dino Esposito的《如何使用BHO定制你的Internet Explorer浏览器》中,这里不敢班门弄斧了。 :)
下载这个BHO,用VS2005打开,F5直接运行,如果断点可以正常断住,说明这个BHO在你的VS2005下一切正常。

Click to Open in New Window

您完全可以通过这个BHO,在VS2005这种友好的IDE环境下学习BHO或者进一步进行BHO的开发。
如果断点不能断住说明BHO安装有问题。
安装BHO:BHO是个Com,BHO的安装过程其实就是一个Com的注册过程,就是把Com的uuid正确的注册到注册表中。打开WipeImg.rgs会看到:

Click to Open in New Window

其中NoRemove Browser Helper Objects 中的Browser Helper Objects要和注册表中的BHO名对上,这个键在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\下。
在F5运行后VS2005会自动在注册表中注册这个键值。

Click to Open in New Window

在IE的Manage Add-Ons中也可以看到这个BHO

Click to Open in New Window

如果您注册表中BHO的名字不是Browser Helper Objects,需要在WipeImg.rgs中修改为一致。

调试BHO:BHO是个Dll,它的入口是DllMain,Dll需要一个可运行的容器来运行它,BHO的容器就是IEXPLORE.EXE。在首次运行时VS2005会弹出选择运行容器的对话框这里需要选择IEXPLORE.EXE,如果您默认的浏览器是IE也可以选择默认浏览器。如果默认浏览器不是IE这里需要特别注意。

Click to Open in New Window

完成上面的配置,这个BHO就可以在您的VS2005中自由的Debug了。:)

File: 插件源程序
  Posted @ 4/6/2008 11:47:32 PM | Hits (48754) | Comments (3

  Comment
 #re:用VS2005开发BHO揭开IE插件的神秘面纱  4/14/2009 1:26:22 PM  ZhangSichu
ie7/ie8 可能需要打开 add-in 的安全配置看看,或者用360看看插件是否正常安装到浏览器上了。
 #re:用VS2005开发BHO揭开IE插件的神秘面纱  4/14/2009 12:19:39 AM  zhiming
你这个是在ie7/ie8?上面的,不会把,我就按照你说的跑不起来啊,盼复
 #re:用VS2005开发BHO揭开IE插件的神秘面纱  11/7/2008 12:01:02 PM  vv
不错 不过没有实用价值
  Post Comment
标题 *
作者 *
密码 记住我
评论 *
    


Stable in Firefox 1.5 2.0Stable in IE6 IE7Stable in MozillaStable in Netscape
ZhangSichu.com V0.1.7507
Powered By ZhangSichu
Copyright © ZhangSichu
Download ZhangSichu.com source code. Download source code