使用Rundll32运行DLL中的函数

标签: , ,

Windows系统中包含名为Rundll32.exe的命令行实用程序,通过这个程序可调用DLL中导出的函数。

但是,使用Rundll32.exe程序并不能调用从任何DLL导出的任何函数。Rundll32只能调用使用以下原型编写 <entrypoint> 函数:

void CALLBACK
EntryPoint(HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine, int nCmdShow);

Rundll32执行以下步骤:

  1. 它分析命令行。
  2. 它通过 LoadLibrary() 加载指定的 DLL。
  3. 它通过 GetProcAddress() 获取 <entrypoint> 函数的地址。
  4. 它调用 <entrypoint> 函数,并传递作为 <optional arguments> 的命令行尾。
  5. 当 <entrypoint> 函数返回时,Rundll.exe 将卸载 DLL 并退出。

参考链接:http://support.microsoft.com/kb/164787/zh-cn

赞赏

微信赞赏支付宝赞赏

随机文章:

  1. 用VBS判断无BOM头的文件是否UTF-8编码
  2. VBS调用WMI遍历搜索硬盘文件并计数
  3. 快捷方式都以IE打开的解决方法
  4. “WindowsLive.Writer.CoreServices.HttpRequestHelper”的类型初始值设定项引发异常
  5. FireFox(火狐)Cookie修改插件

留下回复