2011-02-05 88 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功能可能導致 訪問衝突錯誤,因爲某些 函數會加載其他系統的 組件。