Эх сурвалжийг харах

当条件不满足时,DLL实现自我卸载。

sat23 3 жил өмнө
parent
commit
e40ca979e0

+ 12 - 4
DLLInjection/RegistryInjection/InjectionDLL/InjectionDLL/dllmain.cpp

@@ -22,10 +22,18 @@ BOOL APIENTRY DllMain( HMODULE hModule,
 	case DLL_PROCESS_ATTACH:
         // DLL注入,都在该Case下完成任务;
         // 1、准备工作;
-        // 2、创建后台线程;
-        OutputDebugString(_T("<InjectionDll> Injection!!!"));
-        hThreadProc = CreateThread(NULL, 0, ThreadProc, NULL, 0, NULL);
-        CloseHandle(hThreadProc);
+        if ( true )
+        {
+            // 2、创建后台线程;
+            OutputDebugString(_T("<InjectionDll> Injection!!!"));
+            hThreadProc = CreateThread(NULL, 0, ThreadProc, NULL, 0, NULL);
+            CloseHandle(hThreadProc);
+        }
+        else
+        {
+            // 如果不满足条件,DLL自我卸载;
+            FreeLibraryAndExitThread(g_hModule, 0);
+        }
 	case DLL_THREAD_ATTACH:
 	case DLL_THREAD_DETACH:
 	case DLL_PROCESS_DETACH: