Skip to main content

动态链接库文件

DLL 文件

对于 Windows 操作系统,exe 与 dll 虽然同为 PE 文件,但是这 2 种文件类型依旧有着诸多的不同。DLL 是可执行函数或数据的共享库,可供多个应用程序同时使用。DLL 文件用于导出供进程使用的函数。与 EXE 文件不同,DLL 文件不能独自被用于执行代码 (不能双击运行),而是需要由其他程序调用 DLL 中的函数来实现代码执行。如我们之前探讨的 MessageBoxW,是从 user32.dll 导出的,因此如果程序想要调用该函数,首先需要将 user32.dll 加载到其地址空间中。

默认情况下,一些 DLL 会自动加载到每个进程中,例如 ntdll.dll、kernel32.dll 和 kernelbase.dll 等,因为这些导出函数对于进程的正常执行非常重要。

下图显示了explorer.exe进程当前加载的几个DLL。

 

DLL 入口