2011-02-05 93 views
1

我创建了一个简单的dll。我在一个过程中注入它,但它不显示消息框。mesg框的代码是用dll写的。注入DLL不能正常工作?

DLL的代码:

所有的
//DLL TEST 
#include <windows.h> 

BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) { 
    if(callReason == DLL_PROCESS_ATTACH) 
        MessageBox(0, "Dll Injection Successful! ", "Dll Injector", MB_ICONEXCLAMATION | MB_OK); 
    return TRUE; 
} 
+0

你确定你的注射代码工作正常吗? – 2011-02-05 17:18:19

回答

4

首先,你就不贴您可以使用它注入你做的注射何种方式DLL或至少不说明ICH的代码。

不过,您的代码有一个很大的问题。您尝试致电DllMain内部的MessageBox。仅使用Kernel32.dll中的函数并且不能形成无法初始化的User32.dll是安全的。在the MSDN您可以阅读需要的DLL比的Kernel32.dll 其他可能导致 问题是难以 诊断

调用函数。例如,调用用户, Shell和COM功能可能导致 访问冲突错误,因为某些 函数会加载其他系统的 组件。