2011-02-05 9 views
1

私は単純なDLLを作成しました。私はプロセスにそれを注入しているが、メッセージボックスを表示していない.MessgBoxのコードは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

注射コードが正しく機能していますか? –

答えて

4

まず、あなたはあなたが注入を行う方法DLLまたは少なくとも記述されていないICHを注入するために使用するコードを掲載しません。

あなたのコードには大きな問題があります。 DllMainの中にMessageBoxと呼ぶことを試みます。 Kernel32.dllの関数のみを使用し、初期化できないUser32.dllを作成するのは安全です。 the MSDNでは、あなたは 診断が難しい 問題が発生することがありKernel32.dllのより 他のDLLを必要と

呼び出す関数を読み取ることができます。たとえば、一部の 関数が他のシステムの コンポーネントを読み込むため、User、 Shell、およびCOM関数を呼​​び出すと、 にアクセス違反エラーが発生することがあります。

関連する問題