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輸出函數。
一、簡介

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] 這樣就比較好用了

zhuwg修改版:文件類型: rarbin.rar (33.1 KB)    文件類型: rarsrc.rar (115.5 KB)

留言

  1. 嗯嗯嗯嗯不錯不錯
    但我比較喜歡用OllyDBG

    可惜沒有可以decrypt VMP殼的逆算法...不然我早就把楓谷雙開跳的網頁擋掉了

    現在每開1次楓谷都會準備好Alt+F4 !? ˊˇˋ

    回覆刪除
    回覆
    1. OllyDBG無疑也是神器一般,不過這工具的好處是在於直接幫你生成入口點ˊ ˇ ˋ
      並不需要脫VMP殼也可以擋掉跳窗,作者沒有對此下很嚴格的保護..

      刪除
  2. 我愛劫持!
    劫持DLL讓它運行我想要的(Good~!)

    回覆刪除

張貼留言

本月最夯

偷用電腦,怎知?事件檢視器全記錄!(開機時間、啟動項時間...)