黑客之門:深入淺出windows的dll文件[圖]-IT浪潮-北方網
新聞 | 天津 | 民生 | 廣電 | 津抖雲 | 微視 | 讀圖 | 文娛 | 體育 | 圖事 | 理論 | 志願 | 專題 | 工作室 | 不良信息舉報
教育 | 健康 | 財經 | 地產 | 天津通 | 旅游 | 時尚 | 購物 | 汽車 | IT | 親子 | 會計 | 訪談 | 場景秀 | 發布系統

"津雲"客戶端
  您當前的位置 : 北方網  >  IT浪潮  >  北方學院  >  軟件文庫  >  系統相關
關鍵詞:

黑客之門:深入淺出windows的dll文件[圖]


http://www.enorth.com.cn  2006-08-16 11:47

今天又中木馬了,木馬咋越來越多了,弄的我的心跋涼跋涼的,經過一查找,發現原來是一個名叫XX的木馬,到木馬存放目錄下面,發現了一個dll文件,心想:小樣的,你穿上馬甲我也認識你,於是就單擊—右鍵—刪除……一個dll文件就這樣被刪掉了,不要對dll太狠了,要知道這可是程序員的血汗啊。。為什麼這樣說呢?那我們先來認識一下什麼是dll。

dll實際上是動態鏈接庫的縮寫,從windows1.0開始,動態鏈接庫就是整個操作系統的基礎,那麼這有什麼作用呢?在dos時代,程序員是通過編寫程序來達到預期的目的的,每實現一個目的就需要編寫一個程序,這樣下去,簡單的還好,要是復雜的程序話,那乞不是既浪費時間,又浪費青春。於是聰明的程序員們想出了一個辦法,把的實現一定功能的程序模塊存放在一個文件當中,以API函數形式存放在dll當中,當編寫程序的時候,需要用到這個功能,那麼直接從這個文件當中調用就可以了,於是就出現了dll——動態連接庫。

那麼動態連接庫有什麼作用呢?

優點之一,上面已經提過了,程序員把一些模塊壓入dll文件之後,在要運行程序的時候只需要調用動態鏈接庫就可以了,而並不需要把dll加載到內存中,節省了大量的內存空間,可以方便運行其他的程序,許多朋友在關機的時候,一直關不了,整的郁悶,其實就是因為系統所調用的dll太多,導致了計算機性能的驟減,其實只需要把一些無關緊要的dll刪除掉就可以了

優點之二,在一個很大的游戲中,通常需要調用許許多多的動態鏈接庫來給玩家一個美觀震撼的效果,《極品飛車9---最高通緝》讓本文作者我感受到了一種從來沒有感受過的感覺,那種感覺就象是初戀的味道,畫面效果棒極了。可是要實現這樣一個效果,需要許多程序員編寫不同的dll來互相協助,那麼這些dll可以用vc++,vb,Delphi,asm等等來完成,只要每個程序員負責編寫一個功能,這樣只要調用在一起就方便多了,節省了大量的人力,物力,財力。

既然dll有這麼多好處,而且又這麼方便,我那木馬的程序員又做出過什麼呢?他只不過調用了系統的dll函數罷了(windwos系統中有3個非常重要dllkernel32.dlluser32.dllgdi32.dll其中包括windows系統諸多功能的函數)

呵呵,其實話不能這樣說。木馬的編寫者也需要有很深的工夫哦,那麼我們現在以黑客之門做為一個例子來看看,這個例子需要的工具depend walker。

我們首先來看看用depend walker打開黑客之門的動態鏈接庫。

我們發現,在左邊的hkdoordll.dll下面的樹狀結構,顯示出了黑客之門所調用的dll列表,從這裡不難發現,其實dll也可以調用dll。那麼dll我們可以把他看做是一個exe文件,只是少了一個入口函數而已(就暫且這樣理解)

分支下有分支,而右邊中間的那4個東東,這個是dll的輸出函數表,在function欄目下的是輸出函數的名稱,因此,我們可以很容易發現,黑客之門hkdoordll.dll主要負責4個方面的任務。DllRegisterServer、DllUnRegisterServer、ServiceMain、DllCanUnloadNow 。

然而這對於一個後門來說已經夠了,這需要作者有足夠的編程知識,我們再一次向作者致敬。分享了這樣一個環保無污染的後門。

通過對上面的知識的理解。我們可以發現其實,dll可真算是一個大寶庫,不要對他太狠,一看到可疑的就丟到垃圾筒裡去了。其實dll文件還可以盜用哦。

我們用他來打開黑客之門的dll,可以看到他的版權等等,對於有位圖,音樂,圖表,對話框的dll,我們也可以看到他裡面的全部內容。我們可以修改版權,更換位圖,更換音樂,更換對話框,總之只有你想不到的,沒有你做不到的。

那麼既然dll被這樣多程序調用,如果結束掉這個木馬後門dll的調用過程,那麼這個後門是不是沒用啦,那回答當然是肯定的,那麼如何知道DLL文件被幾個程序使用呢?

我們只需要:

運行Regedit,進入HKEY_LOCAL_MACHINE\Software\Microsrft\Windows\Current-Version\SharedDlls子鍵查看,其右邊窗口中就顯示了所有DLL文件及其相關數據,其中數據右邊小括號內的數字就說明了被幾個程序使用,(2)表示被兩個程序使用,(0)則表示無程序使用,可以將其刪除。

嘿嘿,這下知道window優化大師那分析dll的原理了吧。

經常看到有人求助:我的搜索欄什麼也不能顯示了,怎麼辦啊?如圖

其實那是因為dll沒有注冊造成的。

只需要在開始---運行—然後注冊兩個dll然後重新啟動就可以了,具體方法是

regsvr32 vbscript

regsvr32 jscript

當你看到跳出個對話框,裡面寫著,vbscript 中的dllregister server成功的時候,說明已經注冊成功了。

什麼?還要注冊?或許你看到這裡開始疑問了,這什麼注冊啊?是不是象進入一個論壇,需要注冊一個帳號纔能進入一樣呢?

其實系統裡面的dll是分為兩類的。一類是需要注冊的,一類是不需要注冊的。

大多數都是通過命令regsvr32來注冊的。而windows為了減少所調用的dll的數量,提昇計算機的性能以及速度。通常只把幾個重要的dll默認就注冊了,不常用的dll需要你自己去注冊。而注冊之後,系統就可以調用他了,從而具有了相應的功能。

而當你認為你的計算機所調用的無用dll太多的時候,可以通過命令regsvr32 /u dll的名稱來反注冊。

有些朋友的愛機會出現這樣的情況,在啟動的時候,錯誤對話框中提示DLL文件丟失。

這是因為在卸載文件時會提醒你刪除某個DLL文件可能會影響其他應用程序的運行。所以當你卸載軟件時,就有可能誤刪共享的DLL文件。一旦出現了丟失DLL文件的情況,如果你能確定其名稱,可以在Sysbckup(系統備份文件夾)中找到該DLL文件,將其復制到System文件夾中。如果這樣不行,在電腦啟動時又總是出現『***dll文件丟失……』的提示框,你可以在『開始/運行』中運行Msconfig,進入系統配置實用程序對話框以後,單擊選擇『System.ini』標簽,找出提示丟失的DLL文件,使其不被選中,這樣開機時就不會出現錯誤提示了。

編輯:趙國棟
[進入IT論壇]
請您文明上網、理性發言並遵守相關規定,在注冊後發表評論。
 北方網精彩內容推薦
無標題文檔
天津民生資訊
天氣交通 天津福彩 每月影訊 二手市場
空氣質量 天津股票 廣播節目 二手房源
失物招領 股市大擂臺 天視節目 每日房價
熱點專題
北京奧運聖火傳遞和諧之旅 迎奧運 講文明 樹新風
解放思想 乾事創業 科學發展 同在一方熱土 共建美好家園
2008天津夏季達沃斯論壇 《今日股市觀察》視頻
北方網網絡相聲頻道在線收聽 2008高考招生簡章 復習衝刺
天津自然博物館館藏精品展示 2008年天津中考問題解答
帶你了解08春夏服飾流行趨勢 完美塑身 舞動肚皮舞(視頻)
C-NCAP碰撞試驗—雪佛蘭景程 特殊時期善待自己 孕期檢查
熱點新聞排行 財經 體育 娛樂 汽車 IT 時尚 健康 教育

Copyright (C) 2000-2021 Enorth.com.cn, Tianjin ENORTH NETNEWS Co.,LTD.All rights reserved
本網站由天津北方網版權所有