博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
windows下rundll32介绍
阅读量:6835 次
发布时间:2019-06-26

本文共 698 字,大约阅读时间需要 2 分钟。

最近看书介绍rundll32可以加载dll文件并执行其中导出函数,在MSDN中我们可以看到绍
rundll32调用的函数要有特定的格式如下图:
 
hwnd - 窗口句柄,它应该用作 DLL 创建的任何窗口的所有者窗口
hinst - DLL的实例句柄
pszCmdLine - DLL应分析的字符串
lnCmdShow - 描述DLL的窗口应如何显示
 
我们可以看到有的脚本中直接用rundll32.exe直接调用dll执行一些命令,我们也可以自己写一个dll进行测试
#include 
<Windows.h>
 
_declspec
(
dllexport 
) 
void 
__cdecl 
MsgBox 
(
HWND 
hwnd
, 
HINSTANCE 
hinst
, 
LPTSTR 
lpCmdLine 
, 
int 
nCmdShow
)
{
    
MessageBox
(
hwnd 
, 
lpCmdLine
, 
"Title"
, 
MB_OK 
);
}
我在vs2008中使用msdn中所说的WINAPI在windowsNT中即:__stdcall调用出现错误
调用使用:
成功调用,其实windows下DLL和EXE文件区别并不大,都是PE文件格式,rundll32也就是动态加载了我们输入中的dll文件,并执行我们指定的函数(函数格式必须按照它指定的格式),其实就是调用了 LoadLibrary加载动态库, GetProcAddress根据函数名获取函数地址,然后通过 FreeLibrary卸载动态库.

转载于:https://www.cnblogs.com/ourroad/p/3290484.html

你可能感兴趣的文章
Spring Mvc 实例
查看>>
MySQL深入理解
查看>>
三步快速解决dll冲突问题
查看>>
vue
查看>>
[JSOI2007]文本生成器
查看>>
Python基础算法综合:加减乘除四则运算方法
查看>>
《一面》
查看>>
sed命令详解
查看>>
【cl】找不到火狐Cannot find firefox binary in PATH
查看>>
移动端无法复制:使用clipboard.js碰到的一个小问题
查看>>
程序员常去的103个网站
查看>>
联想的amd电脑,Debian8.8开机后亮度值始终最大,尝试过各种方法,始终无法解决,最后debian8.8在安装开源驱动后,成功调节...
查看>>
debian8修改kde桌面语言
查看>>
PHP对于数据库的基本操作——更新数据
查看>>
How HashMap works in Java
查看>>
洛谷P2057 善意的投票
查看>>
UVa11401 Triangle Counting
查看>>
MongoDB
查看>>
深入Android 【三】 —— 组件入门
查看>>
Matlab DIP(瓦)ch11表示与描述练习
查看>>