2005-06-18

IE 綁架原理

收到一個網友的來信:

看到你的部落格上關於"打開IE就跳出廣告視窗"的文章
因為我自己也中獎了@@"
我的情形跟你差不多regedit也找不到
我照你的方法做
但是我找不到你所說的那兩個檔案...
所以想請問你要如何尋找??

上一篇雖然講的是去除跳出廣告視窗的方法,但是,畢竟不是根本之道,哪天 DLL 改個檔名就又沒辦法了,所以來剖析一下是怎麼做的,如果有類似的東西,也才不用很辛苦地掃半天又掃不到。

因為這玩意掃 registry 關鍵字是找不到的,之前看到有人抓出來的方法是掃整個檔案系統,檔案裡面有關鍵字的再進行過濾(搜尋->檔案或資料夾->所有檔案和資料夾->搜尋條件:檔案裡的字或片語,敲入要找的關鍵字,像是那個該死網站的名字),只要檔案裡有類似的關鍵字,就可能是那個該死的 DLL,要不就是資料檔。如果是一般資料或文字檔,再反找出使用那個資料檔的執行檔或 DLL(可以用同樣用檔案系統搜尋或是到 registry 裡找),稍稍判斷一下再進行處置。雖然這樣土法煉鋼的辦法很慢,但也是最有效的。

但,為什麼一個 DLL 會跟著 IE 一起被執行?因為,在 IE 裡面有很多的外掛工具和程式,可以透過 registry 裡的機碼設定一起被呼叫的,其中一個,就叫做 BHO (Browser Helper Object),很多瀏覽器內嵌的程式都會利用它在 IE 啟動的時候載入一些東西(像 Arcobat Reader ,或是一些輔助工具列都會),如果你不知道亂砍,那可能會導致某些方便的功能或程式不能動。

這個玩意的機碼在:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\BrowserHelperObjects

裡面有的會有 description,沒有的就有點可疑囉!(該死~Arcobat也沒有~)然後,複製那些 ID 再到 HKEY_CLASSES_ROOT 下面找找看有沒有被註冊的物件模組,找到後在 CLSID 的機碼值下展開,慢慢找應該會有這個物件的名稱和對應的 DLL 位置,吼~如果還是空白,或是那個名字不知道到底是什麼,就下來就去找到那個 DLL 所在的目錄和檔案,看看檔案裡的屬性有沒有所屬的公司名稱和版權,沒有資訊或很可疑的話,恭喜!那應該就找到囉!

這類物件,都是被註冊到系統裡的,所以當你硬要砍檔,有時候會說該檔案在使用中。比照之前的作法,先去反註冊(regsvr32 -u DLL檔名),再試著砍砍看,還是不行也別擔心,因為被反註冊了,下次開機就不會被載入,重開後就可以砍掉了。

除了這個 BHO 外,其他類似的玩意還有,碰到的話再整理出來,這也是為什麼如果你用的不是 IE ,什麼被綁架或被暗塞註冊的情況比較不會出現,因為樹大招風,微軟的 IE 當然就是該死,變成眾矢之的啦!

所以就算是 IE7(快出來了),也一點都引不起我使用的興趣,因為一樣的情況是不會改善的。第二個眾矢之的就是火鳥 firebird 啦,現在不也有一堆外掛程式嗎?如果外掛改寫成病毒或這類綁架程式,類似的 IE 惡夢也是跑不掉啦!所以有時候,用非主流的東西也是不錯的~

回應: 0

張貼留言

歡迎隨便亂哈啦留言或發表意見,不過要理性不做人身攻擊~匿名的朋友得到回應的速度會比較慢喔~
請注意發問相關的禮貌和規矩,不當留言、和本文無關的回應可能會被直接刪除無視喔!