标题: 使用Rundll32运行DLL中的函数
作者: Demon
链接: https://demon.tw/operating-system/rundll32-dll-function.html
版权: 本博客的所有文章,都遵守“署名-非商业性使用-相同方式共享 2.5 中国大陆”协议条款。
Windows系统中包含名为Rundll32.exe的命令行实用程序,通过这个程序可调用DLL中导出的函数。
但是,使用Rundll32.exe程序并不能调用从任何DLL导出的任何函数。Rundll32只能调用使用以下原型编写 <entrypoint> 函数:
void CALLBACK EntryPoint(HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine, int nCmdShow);
Rundll32执行以下步骤:
- 它分析命令行。
- 它通过 LoadLibrary() 加载指定的 DLL。
- 它通过 GetProcAddress() 获取 <entrypoint> 函数的地址。
- 它调用 <entrypoint> 函数,并传递作为 <optional arguments> 的命令行尾。
- 当 <entrypoint> 函数返回时,Rundll.exe 将卸载 DLL 并退出。
参考链接:http://support.microsoft.com/kb/164787/zh-cn
赞赏微信赞赏支付宝赞赏
随机文章: