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下一切正常。
您完全可以通过这个BHO,在VS2005这种友好的IDE环境下学习BHO或者进一步进行BHO的开发。
如果断点不能断住说明BHO安装有问题。
安装BHO:BHO是个Com,BHO的安装过程其实就是一个Com的注册过程,就是把Com的uuid正确的注册到注册表中。打开WipeImg.rgs会看到:
其中NoRemove Browser Helper Objects 中的Browser Helper Objects要和注册表中的BHO名对上,这个键在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\下。
在F5运行后VS2005会自动在注册表中注册这个键值。
在IE的Manage Add-Ons中也可以看到这个BHO
如果您注册表中BHO的名字不是Browser Helper Objects,需要在WipeImg.rgs中修改为一致。
调试BHO:BHO是个Dll,它的入口是DllMain,Dll需要一个可运行的容器来运行它,BHO的容器就是IEXPLORE.EXE。在首次运行时VS2005会弹出选择运行容器的对话框这里需要选择IEXPLORE.EXE,如果您默认的浏览器是IE也可以选择默认浏览器。如果默认浏览器不是IE这里需要特别注意。
完成上面的配置,这个BHO就可以在您的VS2005中自由的Debug了。:)
File: 插件源程序
转载于:https://www.cnblogs.com/ricksun/articles/1495953.html