注入的 DLL 什么都不做
Injected DLL does nothing
我试图在另一个 WIN32 控制台程序中注入 C++ DLL。注入器 (winjet) 显示它已成功注入,但 DLL 本身什么也不做。
作为编译器,我使用 Visual Studio 2013,我刚刚发现如果我使用预编译 header 和这个预设 .cpp 而不是没有预编译 header 的空项目,它就可以工作。
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;
}
此代码适用于预设设置和预编译 header。但是为什么没有它呢?
Windows DLL 的入口点称为 DllMain
,而不是 Dllmain
。
你不会为此得到编译错误(比如拼写错误 main
),因为它是可选的。
我试图在另一个 WIN32 控制台程序中注入 C++ DLL。注入器 (winjet) 显示它已成功注入,但 DLL 本身什么也不做。 作为编译器,我使用 Visual Studio 2013,我刚刚发现如果我使用预编译 header 和这个预设 .cpp 而不是没有预编译 header 的空项目,它就可以工作。
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;
}
此代码适用于预设设置和预编译 header。但是为什么没有它呢?
Windows DLL 的入口点称为 DllMain
,而不是 Dllmain
。
你不会为此得到编译错误(比如拼写错误 main
),因为它是可选的。