簡介
BHO(Browser Helper Object,瀏覽器輔助對象,簡稱BHO)
BHO是微軟推出的作為瀏覽器對第三方程式設計師開放互動接口的業界標準,通過簡單的代碼就可以進入瀏覽器領域的“互動接口”(INTERACTIVED Interface)。通過這個接口,程式設計師可以編寫代碼獲取瀏覽器的行為,比如“後退”、“前進”、“當前頁面”等,利用BHO的互動特性,程式設計師還可以用代碼控制瀏覽器行為,比如修改替換瀏覽器工具列,添加自己的程式按鈕等。這些在系統看來都是沒有問題的。BHO原來的目的是為了更好的幫助程式設計師打造個性化瀏覽器,以及為程式提供更簡潔的互動功能,現在很多IE個性化工具就是利用BHO的來實現。
技術優勢
“瀏覽器劫持”是一種不同於普通病毒木馬感染途徑的網路攻擊手段,而是使用各種技術(如DLL外掛程式等)外掛程式對用戶的瀏覽器進行篡改。安裝後,它們會成為瀏覽器的一部分,可以直接控制瀏覽器進行指定的操作,根據需要,可以讓你打開指定的網站,甚至是收集你系統中的各種私密信息。最可怕的是只有當瀏覽器已經被劫持了,你才會發現,反應過來,原來電腦已經出現了問題。比如IE主頁被改,開機就會彈出廣告等等。目前,瀏覽器劫持已經成為Internet用戶最大的威脅之一。其實“瀏覽器劫持”就是通過BHO的技術手段進入你的系統的,而這種技術是合法的。
從某種觀點看,Internet Explorer同普通的Win32程式沒有什麼兩樣。藉助於BHO,你可以寫一個進程內COM對象,這個對象在每次啟動時都要載入。這樣的對象會在與瀏覽器相同的上下文中運行,並能對可用的視窗和模組執行任何行動。例如,一個BHO能夠探測到典型的事件,如GoBack、GoForward、DocumentComplete等;另外BHO能夠存取瀏覽器的選單與工具列並能做出修改,還能夠產生新視窗來顯示當前網頁的一些額外信息,還能夠安裝鉤子以監控一些訊息和動作。
註冊表位置
BHO在註冊表中的位置是:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects,有興趣的朋友可以在這裡做做實驗。不過一定要記住你更改的每一步,否則會出錯的喔!
BHO對象依託於瀏覽器主視窗。實際上,這意味著一旦一個瀏覽器視窗產生,一個新的BHO對象實例就要生成。任何 BHO對象與瀏覽器實例的生命周期是一致的。其次, BHO僅存在於Internet Explorer 4.0及以後版本中。
如果你在使用Microsoft Windows 98, Windows 2000, Windows 95, or Windows NT版本4.0 作業系統的話,也就一塊運行了活動桌面外殼4.71,BHO也被 Windows資源管理器所支持。 BHO是一個COM進程內服務,註冊於註冊表中某一鍵下。在啟動時,Internet Explorer查詢那個鍵並把該鍵下的所有對象預以載入。