AheadLib 2.2.150 - DLL劫持神器
原作者檔案出處:http://www.yonsm.net/post/170
AheadLib 是一個DLL的分析模擬工具,用來分析DLL中函數參數調用,也就是人稱lpk劫持...
Yonsm是一位傳說中的大神,他在04年發佈的DebugTrack調試字符串顯示工具到現在還非常流行。
在05年的時候,他發佈了AheadLib,這款在當時名噪一時的劃時代軟件。AheadLib主要功能是分析dll的輸出函數,生成含有對應輸出函數的dll代碼(只有函數名,別處調用的時候會跳轉到原DLL輸出函數)。主要有兩種用法:
1. 挾持系統dll:利用windows的dll加載順序,把自己寫好的dll放到軟件目錄,優先加載。在自己寫的dll裡面加載系統dll,把對應的輸出函數轉發到系統dll輸出函數
2. 挾持任意dll:把原dll改名,之後把自己寫好的dll改名成與原dll一樣,放到軟件目錄,軟件會加載自己寫的dll。在自己寫的dll裡面加載系統dll,把對應的輸出函數轉發到系統dll輸出函數。
1. 挾持系統dll:利用windows的dll加載順序,把自己寫好的dll放到軟件目錄,優先加載。在自己寫的dll裡面加載系統dll,把對應的輸出函數轉發到系統dll輸出函數
2. 挾持任意dll:把原dll改名,之後把自己寫好的dll改名成與原dll一樣,放到軟件目錄,軟件會加載自己寫的dll。在自己寫的dll裡面加載系統dll,把對應的輸出函數轉發到系統dll輸出函數。
一、簡介
AheadLib 是用來生成一個DLL分析模擬工具,用於分析DLL中的函數參數調用(比如記錄Socket send了什麼等等)、更改函數功能(隨心所欲了:)、更改界面功能(比如在Hook裡面生成一個按鈕,截獲事件等等)。
二、使用
1.用 AheadLib 打開要模擬的 DLL,生成一個 CPP 文件。
2.用 Visual Studio 6.0/.NET 建立一個 DLL 工程,把這個 CPP 文件加入到項目中。
3.使用 Release 方式編譯,生成的 DLL 將和原來的 DLL 具有一模一樣的導出函數,並且能順利把這些函數轉發到原來的函數中。
4.AheadLib 還可以生成 Hook 代碼,用於截取當前進程的所有消息,這樣就可以隨心所欲地處理各種消息了 (修改第三方程序界面功能的好助手)。
三、備註
1.如果導出函數過多,在 Visual Studio 6.0 中,如果出現編譯錯誤,請在項目屬性關閉與編譯頭功能。
2.如果是 C++ 、C __stdcall、C __fastcall 的方式導出的話,生成的函數聲明將會還原成原代碼級別(可能需要修改才能編譯,比如導出C++類的情況)。此時使用 __declspec(dllexport) 導出 ——不能指定導出序號。
3.如果是 NONAME 或者 C _CDECL 方式導出(比如 DEF 導出,大多數Windows DLL都是這種情況,比如WS2_32等等),則使用#pragma comment(linker, 「/EXPORT:…)導出,且指定導出序號。
4.如果系統中沒有 DbgHelp.dll,將無法識別 C++ 模式的導出。
原始版本:AheadLib 2.2.150_src.rar
但是 AheadLib 轉發方式把函數地址先傳送到eax 然後再jmp eax的方式和fastcall的調用就會發生衝突,因為fastcall需要用eax傳送參數,所以需要先用一個變量保存再jmp [addr] 這樣就比較好用了
但是 AheadLib 轉發方式把函數地址先傳送到eax 然後再jmp eax的方式和fastcall的調用就會發生衝突,因為fastcall需要用eax傳送參數,所以需要先用一個變量保存再jmp [addr] 這樣就比較好用了
嗯嗯嗯嗯不錯不錯
回覆刪除但我比較喜歡用OllyDBG
可惜沒有可以decrypt VMP殼的逆算法...不然我早就把楓谷雙開跳的網頁擋掉了
現在每開1次楓谷都會準備好Alt+F4 !? ˊˇˋ
OllyDBG無疑也是神器一般,不過這工具的好處是在於直接幫你生成入口點ˊ ˇ ˋ
刪除並不需要脫VMP殼也可以擋掉跳窗,作者沒有對此下很嚴格的保護..
我愛劫持!
回覆刪除劫持DLL讓它運行我想要的(Good~!)