注入的 DLL 不执行任何操作

Injected DLL does nothing

本文关键字:任何 操作 执行 DLL 注入      更新时间:2023-10-16

我试图在另一个WIN32控制台程序中注入一个C++DLL。注入器 (winjet) 显示它已成功注入,但 DLL 本身不执行任何操作。作为编译器,我使用Visual Studio 2013,我刚刚发现如果我使用预编译标头和此预设.cpp而不是没有预编译标头的空项目,它可以工作。

dll.cpp :

BOOL APIENTRY Dllmain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved){
     switch (reason) {
     case DLL_PROCESS_ATTACH:
          MessageBoxA(NULL, "Attached!", "InjectedDLL", MB_OK);
     }
     return TRUE;
}

此代码适用于预设设置和预编译标头。但为什么没有它呢?

Windows DLL 的入口点称为 DllMain ,而不是Dllmain

您不会因此收到编译错误(例如拼写错误时main ),因为它是可选的。