用于攻击性操作的 LoadLibrary。
https://www.mdsec.co.uk/2021/06/bypassing-image-load-kernel-callbacks/
DARKMODULE DarkModule = DarkLoadLibrary(
LOAD_LOCAL_FILE, // 控制标志
L"TestDLL.dll", // 本地 DLL 路径(从磁盘加载时使用)
NULL, // 从内存加载时使用的 DLL 缓冲区
0, // 从内存加载时使用的 DLL 大小
NULL // 从内存加载时使用的 DLL 名称
);
该路径可以是 CreateFileW 能够打开的任何路径。
此参数仅在设置 LOAD_MEMORY 时需要。此时该参数应为包含 DLL 的缓冲区。
此参数仅在设置 LOAD_MEMORY 时需要。此时该参数应为包含 DLL 的缓冲区大小。
此参数仅在设置 LOAD_MEMORY 时需要。此时该参数应为 DLL 在 PEB 中注册的名称。
Windows 加载器非常复杂,能够处理加载 DLL 时的各种边缘情况和复杂性。有些边缘情况我还没有时间发现、逆向工程并实现。因此,某些 DLL 可能无法与此加载器正常工作。
话虽如此,我计划尽可能完善这个加载器,所以如果遇到无法正确加载的 DLL,请提出 issue。