获知dll中函数的参数(源码)

前面讲了如何动态反编译得到DLL的Function参数,今又看到一篇文章,可以通过工具来生成DLL相关头文件,AheadLib 2.2.150

Yonsm写的一款工具AheadLib  2.2 . 150 ,用来生成DLL相关头文件。 类似工具dummy也写过一款:http: // bbs . pediy . com / showthread . php?t = 50460

引用:
http:
// www . yonsm . net / read . php? 170
2005 / 01 / 14   09 : 26

一、简介

  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.rar
AheadLib_2.2.150源码

你可能感兴趣的:(dll)