Skip to content
EntityQ991335· pop 10· linked from 405 articles

Browser Helper Object

Sign in to save

Also known as BHO

DLL module designed as a plugin for Microsoft's Internet Explorer web browser to provide added functionality

Described at

Browser Helper Objects: The Browser the Way You Want It | Microsoft Learn

docs.microsoft.com →

April 9, 2004 security update : Please also see Security Considerations: Programming and Reusing the Browser to learn more about addressing browser security issues. Introduction Program Customization What Are Browser Helper Objects? The Lifecycle of Helper Objects The IObjectWithSite Interface Writing a Browser Helper Object Detecting Who's Calling Getting in Touch with WebBrowser Getting Events from the Browser Accessing the Document Object Managing the Code Window Registration of Helper Objects Summary There are sometimes circumstances in which you need a more or less specialized version of the browser. Sometimes you work around this by developing a completely custom module built on top of the WebBrowser control, complete with buttons, labels, and whatever else the user interface requires. In this case, you're free to add to that browser any new, nonstandard feature you want. But what you actually have is just a new, nonstandard browser. The WebBrowser control is just the parsing engine of the browser. This means there still remains a number of UI-related tasks for you to do: adding an address bar, toolbar, history, status bar, channels, and favorites, just to name a few. So, to create a custom browser you have to write two types of code: the code that transforms the WebBrowser control into a full-fledged browser like Microsoft® Internet Explorer, and the code that implements the new features you want it to support. Wouldn't it be nice if there was a straightforward way to customize Internet Explorer instead? Browser Helper Objects (BHO) do just that. Historically speaking, the first way to customize the behavior of a program was through subclassing. By this means, you could change the way a given window in a program processed messages and actually obtain a different behavior. Although considered a brute-force approach, because the victim is largely unaware of what happens, it's been the only choice for a long time. With the advent of the Microsoft Win32® API, interprocess subclassing was discouraged and made a bit harder to code. If you're brave-hearted, however, pointers have never scared you; above all, if you're used to living in symbiosis with system-wide hooks, you might even find it too simple. But this is not always the case. Despite the cleverness of the programming, the point is that each Win32 process runs in its own address space and breaking the process boundaries is somewhat incorrect. On the other hand, there might be circumstances that require you to do this with the best of intentions. More often, customization might be a specific feature the program itself allows by design. Before going any further with the nitty-gritty details of BHO, there are a couple of points I need to illuminate further. First, the BHO is tied to the browser's main window. In practice, this means a new instance of the object is created as soon as a new browser window is created. Any instance of the BHO lives and dies with the browser's instance. Second, BHOs only exist in Internet Explorer, version 4.0 and later. If you're running the Microsoft Windows® 98, Windows 2000, Windows 95, or Windows NT® version 4.0 operating system with the Active Desktop™ Shell Update (shell version 4.71), BHOs are supported also by Windows Explorer. This has some implications that I'll talk more about later when making performance considerations and evaluating the impact of BHOs. In its simplest form, a BHO is a COM in-process server registered under a certain registry's key. Upon startup, Internet Explorer looks up that key and loads all the objects whose CLSID is stored there. The browser initializes the object and asks it for a certain interface. If that interface is found, Internet Explorer uses the methods provided to pass its IUnknown pointer down to the helper object. This process is illustrated in Figure 1. Figure 1. How Internet Explorer loads and initializes helper objects. The BHO site is the COM interface used to establish a communicat

Excerpt from a page describing this subject · 36,295 chars · not written by Vinony

Wikidata facts

Show 2 more facts

via Wikidata · CC0

Article · Русский

Browser Helper Object — DLL-модуль, разработанный как плагин для Internet Explorer для обеспечения дополнительной функциональности. Некоторые модули обладают возможностью открывать файлы различных форматов, первоначально не предназначенных для браузера. Например, таким Browser Helper Object является плагин Adobe Acrobat, позволяющий пользователям Internet Explorer открывать PDF-файлы. Некоторые Browser Helper Object добавляют панели инструментов в Internet Explorer. Некоторые формы вредоносных программ также создаются в виде Browser Helper Object. Например, Download.ject устанавливает Browser Helper Object, активирующийся при определении поддерживаемого паролем соединения к различным финансовым учреждениям, регистрирует нажатия клавиш и передаёт информацию на веб-сайт, используемый криминальными структурами. Другие Browser Helper Object, например, MyWay Searchbar, отслеживают привычки посещения веб-сайтов пользователем и сообщают их третьей стороне. В ответ на проблемы, связанные с Browser Helper Object и другими компонентами Internet Explorer, Microsoft добавила Add-on Manager в Internet Explorer 6 для выпуска Windows XP . Менеджер выдаёт список всех установленных Browser Helper Object, ActiveX и других компонентов Internet Explorer.Для пользователей других ОС существуют бесплатные инструменты, например, BHODemon, выдающий список установленных Browser Helper Object и дающий возможность пользователю отключить вредные дополнения. Программа HijackThis также показывает установленные Browser Helper Object. Spybot — Search & Destroy имеет сходный встроенный инструмент. Многие Browser Helper Object устанавливают панель инструментов в Internet Explorer, но некоторые не оставляют никакого видимого эффекта. Риск безопасности состоит в том, что для Browser Helper Object не требуется какого-либо разрешения от пользователя на установку вредоносных компонентов, и spyware, таким образом, могут незаметно и беспрепятственно проникнуть в систему.Например, троян ClSpring устанавливает скрипты для обеспечения исполнения ряда задач, таких как добавление и удаление записей реестра, загрузка и/или исполнение приложений. Поскольку написание Browser Helper Object является относительно несложным, многие некачественно созданные Browser Helper Object могут подвергнуть риску безопасность системы и даже привести к потере данных и повреждению системных файлов.

Abstract from DBpedia / Wikipedia · CC BY-SA

Available in 10 languages

via Wikidata sitelinks · CC0