Browser Helper Object: Difference between revisions
No edit summary |
- |
||
(142 intermediate revisions by 96 users not shown) | |||
Line 1: | Line 1: | ||
{{Short description|Plug-in module for Internet Explorer}} |
|||
[[File:Am addon manager.png|right|thumb|Add-on Manager from [[Windows XP]] SP2 Internet Explorer]] |
|||
A '''Browser Helper Object''' ('''BHO''') is a [[Library (computer science)|DLL]] [[Module (programming)|module]] designed as a [[plugin]] for [[Microsoft]] |
A '''Browser Helper Object''' ('''BHO''') is a [[Library (computer science)|DLL]] [[Module (programming)|module]] designed as a [[Plug-in (computing)|plugin]] for the [[Microsoft]] [[Internet Explorer]] [[web browser]] to provide added functionality. BHOs were introduced in October 1997 with the release of [[Internet Explorer 4|version 4]] of Internet Explorer. Most BHOs are loaded once by each new instance of Internet Explorer. However, in the case of [[Windows Explorer]], a new instance is launched for each window. |
||
BHOs are still supported as of Windows 10, through [[Internet Explorer 11]], while BHOs are not supported in [[Microsoft Edge]]. |
|||
⚫ | |||
== Implementation == |
|||
⚫ | Other modules add toolbars to Internet Explorer, such as the [[Alexa Toolbar]] that provides a list of web sites related to the one you are currently browsing, or the [[ |
||
Each time a new instance of Internet Explorer starts, it checks the [[Windows Registry]] for the key ''HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects''. If Internet Explorer finds this key in the registry, it looks for a [[Universally unique identifier#In COM|CLSID]] key listed below the key. The CLSID keys under Browser Helper Objects tell the browser which BHOs to load. Removing the registry key prevents the BHO from being loaded. For each CLSID that is listed below the BHO key, Internet Explorer calls CoCreateInstance to start the instance of the BHO in the same process space as the browser. If the BHO is started and implements the IObjectWithSite interface, it can control and receive events from Internet Explorer. BHOs can be created in any language that supports [[Component Object Model|COM]].<ref>Roberts Scott, ''Programming Microsoft Internet Explorer 5'', Microsoft Press, 1999, {{ISBN|0-7356-0781-8}}</ref> |
|||
== |
== Examples == |
||
⚫ | |||
⚫ | |||
The BHO [[application programming interface|API]] exposes hooks that allow the BHO to access the [[Document Object Model]] (DOM) of the current page and to control navigation. Because BHOs have unrestricted access to the Internet Explorer event model, some forms of [[malware]] have also been created as BHOs. For example, the [[Download.ject]] exploit installed a BHO that would activate upon detecting a secure HTTP connection to a financial institution, [[keystroke logging|record the user's keystrokes]] (intending to capture passwords) and transmit the information to a website used by [[Russia]]n [[computer crime|computer criminals]]. Other BHOs such as the [[MyWay Searchbar]] track users browsing patterns and pass the information they record to third parties. |
|||
The Conduit toolbars are based on a BHO that can be used on [[Internet Explorer 7]] and up. This BHO provides a search facility that connects to [[Microsoft]]'s [[Bing (search engine)|Bing]] search. |
|||
⚫ | In response to the problems associated with BHOs and similar extensions to Internet Explorer, Microsoft |
||
== Concerns == |
|||
For users that are not using Windows XP, there are free tools (such as BHODemon) that list installed BHOs and allow the user to disable malicious extensions. |
|||
The BHO [[application programming interface|API]] exposes [[hooking|hook]]s that allow the BHO to access the [[Document Object Model]] (DOM) of the current page and to control navigation. Because BHOs have unrestricted access to the Internet Explorer event model, some forms of [[malware]] (such as adware and spyware) have also been created as BHOs.<ref>{{Cite web|title=Browser Hijack Objects (BHOs)|url=https://blog.malwarebytes.com/threats/browser-hijack-objects-bhos/|access-date=2021-12-05|website=Malwarebytes Labs|language=en-US}}</ref><ref>{{Cite journal |last=Park |first=Beomsoo |last2=Hong |first2=Sungjin |last3=Oh |first3=Jaewook |last4=Lee |first4=Heejo |date=2005 |editor-last=Kantor |editor-first=Paul |editor2-last=Muresan |editor2-first=Gheorghe |editor3-last=Roberts |editor3-first=Fred |editor4-last=Zeng |editor4-first=Daniel D. |editor5-last=Wang |editor5-first=Fei-Yue |editor6-last=Chen |editor6-first=Hsinchun |editor7-last=Merkle |editor7-first=Ralph C. |title=Defending a Web Browser Against Spying with Browser Helper Objects |url=https://link.springer.com/chapter/10.1007/11427995_85 |journal=Intelligence and Security Informatics |series=Lecture Notes in Computer Science |language=en |location=Berlin, Heidelberg |publisher=Springer |pages=638–639 |doi=10.1007/11427995_85 |isbn=978-3-540-32063-0}}</ref> |
|||
For example, the [[Download.ject]] malware is a BHO that is activated when a secure [[HTTP]] connection is made to a financial institution, then begins to [[keystroke logging|record keystrokes]] for the purpose of capturing user passwords. The [[MyWay Searchbar]] tracks users' browsing patterns and passes the information it records to third parties. The [[C2.LOP]] malware adds links and popups of its own to web pages in order to drive users to [[pay-per-click]] websites.{{cn|date=May 2021}} |
|||
Many BHOs actually install toolbars in Internet Explorer. It is therefore possible that a PC contains BHOs that the owner doesn't know about. The security risk here is that the BHO doesn't need any kind of permission to install malicious components and thus spywares may be spread without the user's knowledge. |
|||
Many BHOs introduce visible changes to a browser's interface, such as installing toolbars in [[Internet Explorer]] and the like, but others run without any change to the interface. This renders it easy for malicious coders to conceal the actions of their browser add-on, especially since, after being installed, the BHO seldom requires permission before performing further actions. For instance, variants of the ClSpring trojan use BHOs to install scripts to provide a number of instructions to be performed such as adding and deleting registry values and downloading additional executable files, all completely transparently to the user.<ref>Computer Associates malware entry at [http://www.ca.com/us/securityadvisor/virusinfo/virus.aspx?id=42280 ca.com], retrieved 1/16/2009</ref> |
|||
Since it's relatively easy to write BHOs, many badly written BHOs will harm the computer and compromise its security, and even sometimes destroy valuable data or corrupt system files. |
|||
⚫ | In response to the problems associated with BHOs and similar extensions to Internet Explorer, Microsoft debuted an ''Add-on Manager'' in [[Internet Explorer 6]] with the release of [[Windows XP#Service Pack 2|Service Pack 2]] for [[Windows XP]] (updating it to IE6 Security Version 1, a.k.a. SP2). This utility displays a list of all installed BHOs, [[browser extension]]s and [[ActiveX control]]s, and allows the user to enable or disable them at will. There are also free tools (such as BHODemon) that list installed BHOs and allow the user to disable malicious extensions. [[Spybot – Search & Destroy|Spybot S&D]] advanced mode has a similar tool built in to allow the user to disable installed BHO. |
||
==See also== |
|||
* [[Spyware]] |
|||
== |
== See also == |
||
⚫ | |||
*[[Plug-in (computing)]] |
|||
*[[HTML Components]] |
|||
*[[Add-on (Mozilla)]] |
|||
*[[Google Chrome Extensions]] |
|||
== References == |
|||
⚫ | |||
<references/> |
|||
*[http://msdn.microsoft.com/library/en-us/dnwebgen/html/bho.asp Browser Helper Objects: The Browser the Way You Want It] - a January 1999 MSDN article by Dino Esposito |
|||
== External links == |
|||
*[https://sites.google.com/site/bhosearch/ Sites.google.com] {{Webarchive|url=https://web.archive.org/web/20141224114851/https://sites.google.com/site/bhosearch/ |date=2014-12-24 }} |
|||
⚫ | |||
*[http://support.microsoft.com/default.aspx?scid=kb%3BEN-US%3Bq179230 ''IEHelper-Attaching to Internet Explorer 4.0 by Using a Browser Helper Object''] |
*[http://support.microsoft.com/default.aspx?scid=kb%3BEN-US%3Bq179230 ''IEHelper-Attaching to Internet Explorer 4.0 by Using a Browser Helper Object''] |
||
*[http://www.microsoft.com/windowsxp/using/web/sp2_addonmanager.mspx Control Internet Explorer Add-ons with Add-on Manager] |
*[https://web.archive.org/web/20050109091250/http://www.microsoft.com/windowsxp/using/web/sp2_addonmanager.mspx Control Internet Explorer Add-ons with Add-on Manager]{{snd}}an article on Microsoft.com that explains this new feature of Windows XP Service Pack 2 |
||
*[http:// |
*[http://msdn2.microsoft.com/en-us/library/bb250489.aspx Building Browser Helper Objects with Visual Studio 2005]{{snd}}an October 2006 MSDN article by Tony Schreiner and John Sudds |
||
===Listings and examples=== |
=== Listings and examples === |
||
*[http:// |
*[http://www.systemlookup.com/lists.php?list=1 CLSID List]{{snd}}master list created by Tony Kleinkramer, which attempts to record and identify every BHO available (previously located at{{snd}}the now defunct{{snd}}[[CastleCops|castlecops.com]]){{snd}}also includes Toolbar, Explorer Bar and URLSearchHook GUIDs |
||
*[http://www.adp-gmbh.ch/win/com/bho.html C++ example code for a BHO] |
*[http://www.adp-gmbh.ch/win/com/bho.html C++ example code for a BHO] |
||
*[http://www.codeproject.com/ |
*[http://www.codeproject.com/Articles/19971/How-to-attach-to-Browser-Helper-Object-BHO-with-C C# example code for a BHO] |
||
*[http://www.pestpatrol.com/pestinfo/browser_helper_object.asp PestPatrol] - has listings and classifications of BHOs |
|||
{{Information security}} |
|||
===Removal tools=== |
|||
{{Microsoft APIs}} |
|||
*[http://merijn.org/ HijackThis] |
|||
{{Internet Explorer}} |
|||
*[http://www.hijackfree.com/en/hijackfree/ A2HijackFree] |
|||
{{Web interfaces}} |
|||
[[Category:Computer file formats]] |
|||
[[Category:Internet Explorer]] |
[[Category:Internet Explorer]] |
||
⚫ | |||
[[pt:Browser Helper Object]] |
Latest revision as of 00:58, 12 May 2024
![](http://upload.wikimedia.org/wikipedia/en/thumb/c/c7/Am_addon_manager.png/220px-Am_addon_manager.png)
A Browser Helper Object (BHO) is a DLL module designed as a plugin for the Microsoft Internet Explorer web browser to provide added functionality. BHOs were introduced in October 1997 with the release of version 4 of Internet Explorer. Most BHOs are loaded once by each new instance of Internet Explorer. However, in the case of Windows Explorer, a new instance is launched for each window.
BHOs are still supported as of Windows 10, through Internet Explorer 11, while BHOs are not supported in Microsoft Edge.
Implementation
[edit]Each time a new instance of Internet Explorer starts, it checks the Windows Registry for the key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects. If Internet Explorer finds this key in the registry, it looks for a CLSID key listed below the key. The CLSID keys under Browser Helper Objects tell the browser which BHOs to load. Removing the registry key prevents the BHO from being loaded. For each CLSID that is listed below the BHO key, Internet Explorer calls CoCreateInstance to start the instance of the BHO in the same process space as the browser. If the BHO is started and implements the IObjectWithSite interface, it can control and receive events from Internet Explorer. BHOs can be created in any language that supports COM.[1]
Examples
[edit]Some modules enable the display of different file formats not ordinarily interpretable by the browser. The Adobe Acrobat plug-in that allows Internet Explorer users to read PDF files within their browser is a BHO.
Other modules add toolbars to Internet Explorer, such as the Alexa Toolbar that provides a list of web sites related to the one you are currently browsing, or the Google Toolbar that adds a toolbar with a Google search box to the browser user interface.
The Conduit toolbars are based on a BHO that can be used on Internet Explorer 7 and up. This BHO provides a search facility that connects to Microsoft's Bing search.
Concerns
[edit]The BHO API exposes hooks that allow the BHO to access the Document Object Model (DOM) of the current page and to control navigation. Because BHOs have unrestricted access to the Internet Explorer event model, some forms of malware (such as adware and spyware) have also been created as BHOs.[2][3]
For example, the Download.ject malware is a BHO that is activated when a secure HTTP connection is made to a financial institution, then begins to record keystrokes for the purpose of capturing user passwords. The MyWay Searchbar tracks users' browsing patterns and passes the information it records to third parties. The C2.LOP malware adds links and popups of its own to web pages in order to drive users to pay-per-click websites.[citation needed]
Many BHOs introduce visible changes to a browser's interface, such as installing toolbars in Internet Explorer and the like, but others run without any change to the interface. This renders it easy for malicious coders to conceal the actions of their browser add-on, especially since, after being installed, the BHO seldom requires permission before performing further actions. For instance, variants of the ClSpring trojan use BHOs to install scripts to provide a number of instructions to be performed such as adding and deleting registry values and downloading additional executable files, all completely transparently to the user.[4]
In response to the problems associated with BHOs and similar extensions to Internet Explorer, Microsoft debuted an Add-on Manager in Internet Explorer 6 with the release of Service Pack 2 for Windows XP (updating it to IE6 Security Version 1, a.k.a. SP2). This utility displays a list of all installed BHOs, browser extensions and ActiveX controls, and allows the user to enable or disable them at will. There are also free tools (such as BHODemon) that list installed BHOs and allow the user to disable malicious extensions. Spybot S&D advanced mode has a similar tool built in to allow the user to disable installed BHO.
See also
[edit]References
[edit]- ^ Roberts Scott, Programming Microsoft Internet Explorer 5, Microsoft Press, 1999, ISBN 0-7356-0781-8
- ^ "Browser Hijack Objects (BHOs)". Malwarebytes Labs. Retrieved 2021-12-05.
- ^ Park, Beomsoo; Hong, Sungjin; Oh, Jaewook; Lee, Heejo (2005). Kantor, Paul; Muresan, Gheorghe; Roberts, Fred; Zeng, Daniel D.; Wang, Fei-Yue; Chen, Hsinchun; Merkle, Ralph C. (eds.). "Defending a Web Browser Against Spying with Browser Helper Objects". Intelligence and Security Informatics. Lecture Notes in Computer Science. Berlin, Heidelberg: Springer: 638–639. doi:10.1007/11427995_85. ISBN 978-3-540-32063-0.
- ^ Computer Associates malware entry at ca.com, retrieved 1/16/2009
External links
[edit]- Sites.google.com Archived 2014-12-24 at the Wayback Machine
Microsoft sites
[edit]- IEHelper-Attaching to Internet Explorer 4.0 by Using a Browser Helper Object
- Control Internet Explorer Add-ons with Add-on Manager – an article on Microsoft.com that explains this new feature of Windows XP Service Pack 2
- Building Browser Helper Objects with Visual Studio 2005 – an October 2006 MSDN article by Tony Schreiner and John Sudds
Listings and examples
[edit]- CLSID List – master list created by Tony Kleinkramer, which attempts to record and identify every BHO available (previously located at – the now defunct – castlecops.com) – also includes Toolbar, Explorer Bar and URLSearchHook GUIDs
- C++ example code for a BHO
- C# example code for a BHO