果核源碼網全新改版 記住新域名:www.lejfjz.tw
當前位置:網站首頁 > 易語言源碼 > 高級易源碼 > 正文

DLL劫持源碼

作者:applek 日期:2018-10-14 分類:高級易源碼

以一個D3D為例子,表現DLL劫持

DLL劫持原理[url=]編輯[/url]

由于輸入表中只包含DLL名而沒有它的路徑名,因此加載程序必須在磁盤上搜索DLL文件。首先會嘗試從當前程序所在的目錄加載DLL,如果沒找到,則在Windows系統目錄中查找,最后是在環境變量中列出的各個目錄下查找。利用這個特點,先偽造一個系統同名的DLL,提供同樣的輸出表,每個輸出函數轉向真正的系統DLL。程序調用系統DLL時會先調用當前目錄下偽造的DLL,完成相關功能后,再跳到系統DLL同名函數里執行。這個過程用個形象的詞來描述就是系統DLL被劫持(hijack)了。

利用這種方法取得控制權后,可以對主程序進行補丁。此種方法只對除kernel32.dll、ntdll.dll等核心系統庫以外的DLL有效,如網絡應用程序的ws2_32.dll、游戲程序中的d3d8.dll,還有大部分應用程序都調用的lpk.dll、sxs.dll,這些DLL都可被劫持。

偽造的dll制作好后,放到程序當前目錄下,這樣當原程序調用原函數時就調用了偽造的dll的同名函數,進入劫持DLL的代碼,處理完畢后,再調用原DLL此函數。

這種補丁技術,對加殼保護的軟件很有效,選擇掛接的函數最好是在殼中沒有被調用的,當掛接函數被執行時,相關的代碼已被解壓,可以直接補丁了。在有些情況下,必須用計數器統計掛接的函數的調用次數來接近OEP。此方法巧妙地繞過了殼的復雜檢測,很適合加殼程序的補丁制作。

一些木馬或病毒也會利用DLL劫持技術搞破壞,因此當在應用程序目錄下發現系統一些DLL文件存在時,如lpk.dll,應引起注意。

首先 運行exe他會把需要的DLL加載進來,加載的目錄如無特別的制定的話,現在當前目錄找,然后再去系統目錄找

我的附件中自帶了一個D3D9的繪圖程序,是VC寫的

調用的是系統的D3D9.DLL(因為目錄下沒有)

只解壓那個exe文件,是不會有文字出現的

如果把其他的DLL一起解壓,就會出現下圖文字  hello D3D hook!

 

那么我們如何劫持了D3D9.dll呢

d3d9_Ex.dll 這個文件其實就是D3D9.dll了,但是我們改名字了,程序就不認識了

我們先用

 

把D3D9.DLL的輸出表找到,弄到

下載地址

https://ghboke.ctfile.com/fs/7369060-0

已有2位網友發表了看法:

  • 訪客

    訪客  評論于 [2018-10-16 22:53:42]  回復

    地址無效

歡迎 發表評論:

請填寫驗證碼
安徽十一选五开奖结