9 回答 9
This answer is useful
49
要在 DLL 中运行函数,首先要使用任何 PE(便携式可执行文件)分析程序(例如Dependency Walker )找出这些函数是什么。然后使用以下语法使用RUNDLL32.EXE:
RUNDLL32.EXE
dllname 是你的 dll 文件的路径和名称,entrypoint 是函数名,可选参数是函数参数
于 2010-06-15T10:49:55.807 回答
This answer is useful
6
您可以使用rundll命令执行 DLL 文件中定义的函数。您可以使用Dependency Walker探索可用的功能。
于 2010-06-15T10:50:50.593 回答
This answer is useful
3
虽然很多人指出您不能直接执行 dll,而应该使用 rundll32.exe 来执行导出的函数,但这里是一个实际 dll 文件的屏幕截图,它就像一个可执行文件一样运行:
虽然您不能直接运行 dll 文件,但我怀疑可以使用 WinAPI 函数 CreateProcess 从另一个进程运行它们:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx
于 2016-09-23T13:54:37.197 回答
This answer is useful
1
DLL 是其他 Windows 程序使用的共享库,而 EXE 是实际执行并链接到 DLL 文件以便它们可以使用 DLL 的文件。两者具有相同的格式,PE(便携式可执行文件或简单的windows机器代码格式)。
换句话说,EXE 包含入口点(主),DLL 包含库函数。您不能执行仅包含库函数的文件,您可以通过其他程序使用它们。
但是仍然有像 rundll32.exe 这样的程序,它提供了调用 DLL 函数所需的入口点和一些最小框架。
我要说明的一点是,您永远无法执行 DLL 文件,您只能通过 EXE 或其他程序提供入口点来使用它的代码。
于 2020-10-19T06:50:07.643 回答
This answer is useful
0
你不能“执行”一个 DLL。您可以在 DLL 中执行函数,如其他答案中所述。尽管 .EXE 文件和 .DLL 文件在格式上基本相同,但 .EXE 的显着特征是它包含一个指定的“入口点”,可以执行创建 EXE 的任务。DLL 实际上有类似的东西,但“dll main”的目的只是执行初始化,而不是实现 DLL 的主要目的;那是为了它包含的(大概)各种其他功能。
假设您知道要执行哪个函数,您可以执行 DLL 导出的任何函数;一个 EXE 可能包含很多功能,但只有一个被特别指定为通过“运行”它来执行。
于 2015-02-26T04:53:14.863 回答
This answer is useful
0
运行.dll文件..首先找出它正在导出的功能..DLL文件将执行导出类别中指定的功能..要知道它正在导出什么功能,请参阅“filealyzer”应用程序..它会告诉你“PE EXPORT”类别下的导出函数..记下函数名称--然后打开命令提示符,输入Rundll32 dllname,functionname (dllname--你的dll的名称) (Functionname--你在PE下找到的函数的名称导出)注意:确保您的命令提示符位置是您的 dll 文件位置
于 2016-09-09T14:05:00.503 回答
This answer is useful
0
应该提到的是,由于完全可以像运行任何其他可执行文件一样运行 DLL,它长期以来一直被认为是一个安全问题。因此,已经有许多安全改进和注册表黑客(抱歉不再有引用链接)阻止在没有额外权限的情况下从常规用户空间运行 DLL。
作为一个很好的例子。我记得做过这些黑客,但因为我不再记得我到底做了什么。我不能再从普通用户 shell 环境运行任何 DLL,即使从 GUI 启动各种 Win 应用程序工作得很好。
也就是说,绝对应该阅读“动态链接库安全”和“防止 DLL 劫持的最佳实践”。
于 2018-11-03T02:18:48.050 回答
This answer is useful
-1
.DLL 文件不可执行,因为 .EXE/.COM/.BAT 文件是可执行的,所以我不确定您的意思。
您可以使用 Windows SDK 附带的 Dependency Walker 应用程序来询问 .DLL 并查看文件导出了哪些函数。
于 2010-06-15T10:47:11.100 回答
This answer is useful
-9
以下一系列步骤可能会有所帮助:
打开 Windows 资源管理器
点击左上角的“整理”
选择“文件夹和搜索选项”
切换到“查看”选项卡
向下滚动并取消选中“隐藏已知文件类型的文件扩展名”
点击确定
现在找到dll文件
右键单击它并选择“重命名”
更改扩展名(最后一个之后的内容.)并将其更改为.exe
于 2013-09-29T20:11:08.640 回答