2011-02-05 1 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

주사 코드가 올바르게 작동하고 있습니까? –

답변

4

먼저 당신은 당신이 주사를 할 식으로 DLL 또는 적어도 설명되지 않은 무형 문화 유산을 주입하는 데 사용하는 코드를 게시하지 않습니다.

그럼에도 불구하고 코드에 큰 문제가 있습니다. DllMain 안에 MessageBox으로 전화를 걸어보십시오. Kernel32.dll의 함수 만 사용하고 초기화 할 수없는 User32.dll은 작성하지 않는 것이 안전합니다. the MSDN에서 당신은 진단하기 어려운 문제가 발생할 수 있습니다 Kernel32.dll에서보다 다른 DLL을 필요로

호출 기능을 읽을 수 있습니다. 예를 들어 셸 및 COM 함수를 호출하면 함수가 다른 시스템의 구성 요소를로드하기 때문에 액세스 위반 오류가 발생할 수 있습니다.