DLL劫持原理

2021-10-01 21:30:39 字數 1624 閱讀 5289

系統有一套標準的搜尋dll路徑的規則,這套規則又分為兩種搜尋模式,安全搜尋模式,非安全搜尋模式。

預設情況下啟用安全dll搜尋模式。要禁用此功能,需建立hkey_local_machine\system\currentcontrolset\control\session manager\safedllsearchmode登錄檔值並將其設定為0。

如果啟用了safedllsearchmode,則搜尋順序如下:

1.應用程式所在的目錄。使用getmodulefilename獲取exe所在的目錄

2.系統目錄即system32目錄。使用getsystemdirectory函式獲取此目錄的路徑。

3.16位系統目錄即system的目錄。

4.windows目錄。使用getwindowsdirectory函式獲取此目錄的路徑。

5.載入dll時所在的當前目錄。使用getcurrentdirectory獲取此目錄的路徑

6.path環境變數中列出的目錄。

如果禁用了safedllsearchmode,則搜尋順序如下:

應用程式所在的目錄

載入dll時所在的當前目錄。

系統目錄即system32目錄

16位系統目錄即system的目錄。

windows目錄。

path環境變數中列出的目錄。

如果乙個程式所需的dll在本機的known dlls列表中存在,系統將直接使用這個已知的dll而不會去搜尋dll。

計算機\hkey_local_machine\system\currentcontrolset\control\session manager\knowndlls。

windows

作業系統通過「dll路徑搜尋目錄順序」和「knowndlls登錄檔項」的機制來確定應用程式所要呼叫的dll的路徑,之後,應用程式就將dll載入了自己的記憶體空間,執行相應的函式功能。

不過,微軟又莫名其妙的允許使用者在上述登錄檔路徑中新增「excludefromknowndlls」登錄檔項,排除一些被「knowndlls登錄檔項」機制保護的dll。也就是說,只要在「excludefromknowndlls」登錄檔項中新增你想劫持的dll名稱就可以對該dll進行劫持,不過修改之後需要重新啟動電腦才能生效。

在上述描述載入dll的整個過程中,dll劫持漏洞就是在系統進行安裝「dll路徑搜尋目錄順序」搜尋dll的時候發生的。無論安全dll搜尋模式是否開啟,系統總是首先會從程式所在目錄載入dll,如果沒有找到就按照上面的順序依次進行搜尋。那麼,利用這個特性,攻擊者就可以偽造乙個相同名稱,相同匯出函式表的乙個「假」dll,並將每個匯出函式轉向到「真」dll。將這個「假」dll放到程式的目錄下,當程式呼叫dll中的函式時就會首先載入「假」dll,在「假」dll中攻擊者已經加入了惡意**,這時這些惡意**就會被執行,之後,「假」dll再將dll呼叫流程轉向「真」dll,以免影響程式的正常執行。

如何編寫乙個劫持的dll?

編寫乙個用於劫持指定dll的dll檔案,需要兩個步驟: 1.

檢視被劫持的

dll的匯出函式表。

2.程式設計實現劫持

dll向原

dll的匯出函式的**,並加入你的

「惡意**」。

提供乙個version.dll劫持的原始碼

一款通用的dll劫持

乙個批量驗證dll劫持的工具

DLL補丁劫持製作

dll 由於輸入表中只包含 dll 名而沒有它的路徑名,因此引導程式必須在磁碟上搜尋 dll 檔案。首先會嘗試從當前程式所在的目錄載入 dll,如果沒找到,則在windows 系統目錄中查詢,最後是在環境變數中列出的各個目錄下查詢。利用這個特點,先偽造乙個系統同名的 dll,提供同樣的輸出表,每個輸...

dll劫持破壞360

說起dll劫持技術,相信大家都不會陌生,因為這種技術的應用比較廣泛,比如 木馬後門的啟動 破解程式的記憶體補丁 外掛程式外掛程式的注入以及加密狗的模擬 等。之所以dll劫持技術深受黑客們的喜愛,主要是因為該技術可以有效的躲過大部分殺軟,並且實現起來技術難度不大。dll劫持技術也不是什麼新技術,記得在...

DLL載入順序劫持

動態鏈結庫搜尋順序 win32應用 微軟文件 技術分享 dll劫持 老樹開新花 dll劫持漏洞新玩法 h2z 深入解析dll劫持漏洞 wooyun知識庫 一種通用dll劫持技術研究 程式語言區 吾愛破解 lcg lsg 安卓破解 病毒分析 破解軟體 www.52pojie.cn 這個鏈結裡的內容沒看...