我进行了以下实验:
我注意到当我启动程序/ exe时它会自动加载modules / dll。以下是自动加载的模块列表:
D:\test.exe
C:\WINDOWS\SYSTEM32\ntdll.dll
C:\WINDOWS\System32\KERNEL32.DLL
C:\WINDOWS\System32\KERNELBASE.dll
C:\WINDOWS\SYSTEM32\apphelp.dll
C:\WINDOWS\System32\USER32.dll
C:\WINDOWS\System32\win32u.dll
C:\WINDOWS\System32\GDI32.dll
C:\WINDOWS\System32\gdi32full.dll
C:\WINDOWS\System32\msvcp_win.dll
C:\WINDOWS\System32\ucrtbase.dll
C:\WINDOWS\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.9279_none_50939ec6bcb7c97c\MSVCP90.dll
C:\WINDOWS\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.9279_none_50939ec6bcb7c97c\MSVCR90.dll
C:\WINDOWS\System32\IMM32.DLL
C:\WINDOWS\system32\uxtheme.dll
C:\WINDOWS\System32\msvcrt.dll
C:\WINDOWS\System32\combase.dll
C:\WINDOWS\System32\RPCRT4.dll
C:\WINDOWS\System32\SspiCli.dll
C:\WINDOWS\System32\CRYPTBASE.dll
C:\WINDOWS\System32\bcryptPrimitives.dll
C:\WINDOWS\System32\sechost.dll
C:\WINDOWS\System32\MSCTF.dll
C:\WINDOWS\System32\OLEAUT32.dll
C:\WINDOWS\system32\dwmapi.dll
我的目标:
我想检查操作系统是自动加载DLL /模块还是使用LoadLibrary API加载。
如果这是一个重复的问题。你能指导我解决这个问题吗?
谢谢你,美好的一天!
答案 0 :(得分:0)
我看到了两种可能的方法:
第二种方法假设没有DLL在其DllMain方法中显式调用LoadLibrary本身。但是,这样做会很糟糕,因为它可能会导致Loader Lock出现死锁。