`

dll挟持神器 - AheadLib 2.2.150 转

 
阅读更多

http://www.tinpont.com/software/aheadlib.html

dll挟持神器 - AheadLib 2.2.150(源码)

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++ 模式的导出。

 

 

software_aheadlib_mainface.png

 

sourceCode

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics