dllmain.cpp 974 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. // dllmain.cpp : 定义 DLL 应用程序的入口点。
  2. #include "stdafx.h"
  3. HMODULE g_hModule = NULL;
  4. DWORD WINAPI ThreadProc(LPVOID lParam)
  5. {
  6. // 工作线程;
  7. return 0;
  8. }
  9. BOOL APIENTRY DllMain( HMODULE hModule,
  10. DWORD ul_reason_for_call,
  11. LPVOID lpReserved
  12. )
  13. {
  14. g_hModule = hModule;
  15. HANDLE hThreadProc = NULL;
  16. switch (ul_reason_for_call)
  17. {
  18. case DLL_PROCESS_ATTACH:
  19. // DLL注入,都在该Case下完成任务;
  20. // 1、准备工作;
  21. if ( true )
  22. {
  23. // 2、创建后台线程;
  24. OutputDebugString(_T("<InjectionDll> Injection!!!"));
  25. hThreadProc = CreateThread(NULL, 0, ThreadProc, NULL, 0, NULL);
  26. CloseHandle(hThreadProc);
  27. }
  28. else
  29. {
  30. // 如果不满足条件,DLL自我卸载;
  31. FreeLibraryAndExitThread(g_hModule, 0);
  32. }
  33. case DLL_THREAD_ATTACH:
  34. case DLL_THREAD_DETACH:
  35. case DLL_PROCESS_DETACH:
  36. break;
  37. }
  38. return TRUE;
  39. }