WCU / Cybersecurity
~/CSC 471/Class 06/KP 08
Class 06 · KP 08 / 21

What DllMain Sees

// Inside evil.dll -- runs in the TARGET process context
BOOL APIENTRY DllMain(HMODULE h, DWORD reason, LPVOID res) {
    switch (reason) {
    case DLL_PROCESS_ATTACH:
        DisableThreadLibraryCalls(h);   // reduce noise
        // payload: hook APIs, patch a string, exfil data...
        MessageBoxA(NULL, "injected!", "evil.dll", MB_OK);
        break;
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}
  • DLL_PROCESS_ATTACH fires when the DLL is loaded — this is the entry point for the payload.
  • Heavy work in DllMain is risky (loader lock); real malware often just spawns a worker thread here.