Browse Source

格式化代码。

Wang Jeff 3 năm trước cách đây
mục cha
commit
81f7fc6db6

+ 4 - 4
天使插件源码/TSPlug/CreateGif/GSKCreateGIF.h

@@ -1,12 +1,12 @@
 #if !defined(GSK_CREATEGIF_H_)
 #define GSK_CREATEGIF_H_
 
-BOOL GetData(HBITMAP hBmp,BYTE **ppPalette,BYTE **ppData,BYTE *pBitsPixel,int *pWidth,int *pHeight);
+BOOL GetData(HBITMAP hBmp, BYTE** ppPalette, BYTE** ppData, BYTE* pBitsPixel, int* pWidth, int* pHeight);
 
-void CreateGIFHeard(HANDLE file,WORD nImageWidth,WORD nImageHeight,BYTE bitsPixel);
+void CreateGIFHeard(HANDLE file, WORD nImageWidth, WORD nImageHeight, BYTE bitsPixel);
 
-void AddImageToGIF(HANDLE file,BYTE *pData,BYTE *palette,WORD nImageWidth,WORD nImageHeight,BYTE bitsPixel,WORD nDelay,
-				   short int nTransparentColorIndex);
+void AddImageToGIF(HANDLE file, BYTE* pData, BYTE* palette, WORD nImageWidth, WORD nImageHeight, BYTE bitsPixel, WORD nDelay,
+	short int nTransparentColorIndex);
 
 void CloseGIF(HANDLE file);
 

+ 2 - 3
天使插件源码/TSPlug/DXBind.h

@@ -63,8 +63,8 @@ typedef bool(__stdcall* MySetWindowHook)(BOOL, DWORD);
 
 enum BIND_MODE
 {
-	BIND_WINHOOK,
-	BIND_IME,
+	BIND_WINHOOK,			// HOOK注入;
+	BIND_IME,				// 输入法注入;
 	BIND_IME101 = 101,
 	BIND_103 = 103,
 	BIND_201 = 201,
@@ -201,7 +201,6 @@ public:
 	LONG mousestep;
 	DWORD GDI_dwExStyle;
 private:
-
 	int CallCodelen;
 	LPVOID Alloaddr;//201注入的申请到的内存地址
 	HKL  MSetUpIME;

+ 81 - 81
天使插件源码/TSPlug/TSMyKernel32User32DllFuntion.cpp

@@ -3,61 +3,61 @@
 #include "TSMyKernel32DllFuntion.h"
 #include "TSRuntime.h"
 
-myWindowFromPoint  my_WindowFromPoint=NULL;
-myGetWindowLong my_GetWindowLong=NULL;
-myFindWindowEx my_FindWindowEx=NULL;
-mySendMessage my_SendMessage=NULL;
-myPostMessage my_PostMessage=NULL;
-myGetWindowThreadProcessId my_GetWindowThreadProcessId=NULL;
-myFindWindow my_FindWindow=NULL;
-myGetWindow my_GetWindow=NULL;
-myScreenToClient my_ScreenToClient=NULL;
-myClientToScreen my_ClientToScreen=NULL;
-myGetCursorPos my_GetCursorPos=NULL;
-myIsWindow   my_IsWindow=NULL;
+myWindowFromPoint  my_WindowFromPoint = NULL;
+myGetWindowLong my_GetWindowLong = NULL;
+myFindWindowEx my_FindWindowEx = NULL;
+mySendMessage my_SendMessage = NULL;
+myPostMessage my_PostMessage = NULL;
+myGetWindowThreadProcessId my_GetWindowThreadProcessId = NULL;
+myFindWindow my_FindWindow = NULL;
+myGetWindow my_GetWindow = NULL;
+myScreenToClient my_ScreenToClient = NULL;
+myClientToScreen my_ClientToScreen = NULL;
+myGetCursorPos my_GetCursorPos = NULL;
+myIsWindow   my_IsWindow = NULL;
 
-myZwOpenProcess my_ZwOpenProcess=NULL;
-myOpenProcess my_OpenProcess=NULL;
-myVirtualProtect my_VirtualProtect=NULL;
-myVirtualProtectEx my_VirtualProtectEx=NULL;
-myReadProcessMemory my_ReadProcessMemory=NULL;
-myWriteProcessMemory my_WriteProcessMemory=NULL;
-myTerminateProcess my_TerminateProcess=NULL;
-myCreateRemoteThread my_CreateRemoteThread=NULL;
-myDeviceIoControl my_DeviceIoControl=NULL;
-myGetTickCount my_myGetTickCount=NULL;
-mySleep my_sleep=NULL;
+myZwOpenProcess my_ZwOpenProcess = NULL;
+myOpenProcess my_OpenProcess = NULL;
+myVirtualProtect my_VirtualProtect = NULL;
+myVirtualProtectEx my_VirtualProtectEx = NULL;
+myReadProcessMemory my_ReadProcessMemory = NULL;
+myWriteProcessMemory my_WriteProcessMemory = NULL;
+myTerminateProcess my_TerminateProcess = NULL;
+myCreateRemoteThread my_CreateRemoteThread = NULL;
+myDeviceIoControl my_DeviceIoControl = NULL;
+myGetTickCount my_myGetTickCount = NULL;
+mySleep my_sleep = NULL;
 
 bool InitialMykernel32DllWIN7()
+{
+	bool bret = false;
+	//my_ZwOpenProcess
+	HMODULE hmod = ::LoadLibrary(L"ntdll.dll");
+	if (hmod)
 	{
-		bool bret=false;
-		//my_ZwOpenProcess
-		HMODULE hmod=::LoadLibrary(L"ntdll.dll");
-		if(hmod)
-			{
-				my_ZwOpenProcess=(myZwOpenProcess)::GetProcAddress(hmod,"ZwOpenProcess");
-				if(my_ZwOpenProcess!=NULL)
-				   bret=true;
-			}
+		my_ZwOpenProcess = (myZwOpenProcess)::GetProcAddress(hmod, "ZwOpenProcess");
+		if (my_ZwOpenProcess != NULL)
+			bret = true;
+	}
 
-		return bret;
+	return bret;
 
-	}
+}
 
 bool InitialMykernel32Dll()
-	{
-	bool bret=false;
+{
+	bool bret = false;
 
-	my_OpenProcess=(myOpenProcess)TSRuntime::GetPassR3HookFuntionAddr("kernel32.dll","OpenProcess");
-	my_VirtualProtect=(myVirtualProtect)TSRuntime::GetPassR3HookFuntionAddr("kernel32.dll","VirtualProtect");
-	my_ReadProcessMemory=(myReadProcessMemory)TSRuntime::GetPassR3HookFuntionAddr("kernel32.dll","ReadProcessMemory");
-	my_WriteProcessMemory=(myWriteProcessMemory)TSRuntime::GetPassR3HookFuntionAddr("kernel32.dll","WriteProcessMemory");
-	my_TerminateProcess=(myTerminateProcess)TSRuntime::GetPassR3HookFuntionAddr("kernel32.dll","TerminateProcess");
-	my_VirtualProtectEx=(myVirtualProtectEx)TSRuntime::GetPassR3HookFuntionAddr("kernel32.dll","VirtualProtectEx");
-	my_CreateRemoteThread=(myCreateRemoteThread)TSRuntime::GetPassR3HookFuntionAddr("kernel32.dll","CreateRemoteThread");
-	my_DeviceIoControl=(myDeviceIoControl)TSRuntime::GetPassR3HookFuntionAddr("kernel32.dll","DeviceIoControl");
-	my_myGetTickCount=(myGetTickCount)TSRuntime::GetPassR3HookFuntionAddr("kernel32.dll","GetTickCount");
-	my_sleep=(mySleep)TSRuntime::GetPassR3HookFuntionAddr("kernel32.dll","Sleep");
+	my_OpenProcess = (myOpenProcess)TSRuntime::GetPassR3HookFuntionAddr("kernel32.dll", "OpenProcess");
+	my_VirtualProtect = (myVirtualProtect)TSRuntime::GetPassR3HookFuntionAddr("kernel32.dll", "VirtualProtect");
+	my_ReadProcessMemory = (myReadProcessMemory)TSRuntime::GetPassR3HookFuntionAddr("kernel32.dll", "ReadProcessMemory");
+	my_WriteProcessMemory = (myWriteProcessMemory)TSRuntime::GetPassR3HookFuntionAddr("kernel32.dll", "WriteProcessMemory");
+	my_TerminateProcess = (myTerminateProcess)TSRuntime::GetPassR3HookFuntionAddr("kernel32.dll", "TerminateProcess");
+	my_VirtualProtectEx = (myVirtualProtectEx)TSRuntime::GetPassR3HookFuntionAddr("kernel32.dll", "VirtualProtectEx");
+	my_CreateRemoteThread = (myCreateRemoteThread)TSRuntime::GetPassR3HookFuntionAddr("kernel32.dll", "CreateRemoteThread");
+	my_DeviceIoControl = (myDeviceIoControl)TSRuntime::GetPassR3HookFuntionAddr("kernel32.dll", "DeviceIoControl");
+	my_myGetTickCount = (myGetTickCount)TSRuntime::GetPassR3HookFuntionAddr("kernel32.dll", "GetTickCount");
+	my_sleep = (mySleep)TSRuntime::GetPassR3HookFuntionAddr("kernel32.dll", "Sleep");
 	//my_ScreenToClient=(myScreenToClient)TSRuntime::GetPassR3HookFuntionAddr("user32.dll","ScreenToClient");
 	//my_GetWindow=(myGetWindow)TSRuntime::GetPassR3HookFuntionAddr("user32.dll","GetWindow");
 	//my_FindWindow=(myFindWindow)TSRuntime::GetPassR3HookFuntionAddr("user32.dll","FindWindowW");
@@ -67,52 +67,52 @@ bool InitialMykernel32Dll()
 
 	//TSRuntime::add_log( "my_GetCursorPos:%d,my_ClientToScreen:%d,my_ScreenToClient:%d,my_GetWindow:%d,my_FindWindow:%d,my_WindowFromPoint:%d,my_GetWindowLong:%d,my_FindWindowEx:%d",my_GetCursorPos,my_ClientToScreen
 	//	,my_ScreenToClient,my_GetWindow,my_FindWindow,my_WindowFromPoint,my_GetWindowLong,my_FindWindowEx);
-	if(my_OpenProcess==NULL
-		||my_VirtualProtect==NULL
-		||my_WriteProcessMemory==NULL
-		||my_ReadProcessMemory==NULL
-		||my_VirtualProtectEx==NULL
-		||my_TerminateProcess==NULL
-		||my_CreateRemoteThread==NULL)
+	if (my_OpenProcess == NULL
+		|| my_VirtualProtect == NULL
+		|| my_WriteProcessMemory == NULL
+		|| my_ReadProcessMemory == NULL
+		|| my_VirtualProtectEx == NULL
+		|| my_TerminateProcess == NULL
+		|| my_CreateRemoteThread == NULL)
 		return bret;
 	else
-		bret=true;
+		bret = true;
 
 	return bret;
-	}
+}
 
 
 bool InitialMyUser32Dll()
-	{
-	bool bret=false;
-	my_GetCursorPos=(myGetCursorPos)TSRuntime::GetPassR3HookFuntionAddr("user32.dll","GetCursorPos");
-	my_ClientToScreen=(myClientToScreen)TSRuntime::GetPassR3HookFuntionAddr("user32.dll","ClientToScreen");
-	my_ScreenToClient=(myScreenToClient)TSRuntime::GetPassR3HookFuntionAddr("user32.dll","ScreenToClient");
-	my_GetWindow=(myGetWindow)TSRuntime::GetPassR3HookFuntionAddr("user32.dll","GetWindow");
-	my_FindWindow=(myFindWindow)TSRuntime::GetPassR3HookFuntionAddr("user32.dll","FindWindowW");
-	my_WindowFromPoint=(myWindowFromPoint)TSRuntime::GetPassR3HookFuntionAddr("user32.dll","WindowFromPoint");
-	my_GetWindowLong=(myGetWindowLong)TSRuntime::GetPassR3HookFuntionAddr("user32.dll","GetWindowLongW");
-	my_FindWindowEx=(myFindWindowEx)TSRuntime::GetPassR3HookFuntionAddr("user32.dll","FindWindowExW");
-	my_SendMessage=(mySendMessage)TSRuntime::GetPassR3HookFuntionAddr("user32.dll","SendMessageW");
-	my_PostMessage=(myPostMessage)TSRuntime::GetPassR3HookFuntionAddr("user32.dll","PostMessageW");
-	my_GetWindowThreadProcessId=(myGetWindowThreadProcessId)TSRuntime::GetPassR3HookFuntionAddr("user32.dll","GetWindowThreadProcessId");
-	my_IsWindow=(myIsWindow)TSRuntime::GetPassR3HookFuntionAddr("user32.dll","IsWindow");
+{
+	bool bret = false;
+	my_GetCursorPos = (myGetCursorPos)TSRuntime::GetPassR3HookFuntionAddr("user32.dll", "GetCursorPos");
+	my_ClientToScreen = (myClientToScreen)TSRuntime::GetPassR3HookFuntionAddr("user32.dll", "ClientToScreen");
+	my_ScreenToClient = (myScreenToClient)TSRuntime::GetPassR3HookFuntionAddr("user32.dll", "ScreenToClient");
+	my_GetWindow = (myGetWindow)TSRuntime::GetPassR3HookFuntionAddr("user32.dll", "GetWindow");
+	my_FindWindow = (myFindWindow)TSRuntime::GetPassR3HookFuntionAddr("user32.dll", "FindWindowW");
+	my_WindowFromPoint = (myWindowFromPoint)TSRuntime::GetPassR3HookFuntionAddr("user32.dll", "WindowFromPoint");
+	my_GetWindowLong = (myGetWindowLong)TSRuntime::GetPassR3HookFuntionAddr("user32.dll", "GetWindowLongW");
+	my_FindWindowEx = (myFindWindowEx)TSRuntime::GetPassR3HookFuntionAddr("user32.dll", "FindWindowExW");
+	my_SendMessage = (mySendMessage)TSRuntime::GetPassR3HookFuntionAddr("user32.dll", "SendMessageW");
+	my_PostMessage = (myPostMessage)TSRuntime::GetPassR3HookFuntionAddr("user32.dll", "PostMessageW");
+	my_GetWindowThreadProcessId = (myGetWindowThreadProcessId)TSRuntime::GetPassR3HookFuntionAddr("user32.dll", "GetWindowThreadProcessId");
+	my_IsWindow = (myIsWindow)TSRuntime::GetPassR3HookFuntionAddr("user32.dll", "IsWindow");
 
 	//TSRuntime::add_log( "my_GetCursorPos:%d,my_ClientToScreen:%d,my_ScreenToClient:%d,my_GetWindow:%d,my_FindWindow:%d,my_WindowFromPoint:%d,my_GetWindowLong:%d,my_FindWindowEx:%d",my_GetCursorPos,my_ClientToScreen
 	//	,my_ScreenToClient,my_GetWindow,my_FindWindow,my_WindowFromPoint,my_GetWindowLong,my_FindWindowEx);
-	if(my_GetCursorPos==NULL
-		||my_ClientToScreen==NULL
-		||my_ScreenToClient==NULL
-		||my_GetWindow==NULL
-		||my_FindWindow==NULL
-		||my_WindowFromPoint==NULL
-		||my_GetWindowLong==NULL
-		||my_FindWindowEx==NULL
-		||my_SendMessage==NULL
-		||my_PostMessage==NULL)
+	if (my_GetCursorPos == NULL
+		|| my_ClientToScreen == NULL
+		|| my_ScreenToClient == NULL
+		|| my_GetWindow == NULL
+		|| my_FindWindow == NULL
+		|| my_WindowFromPoint == NULL
+		|| my_GetWindowLong == NULL
+		|| my_FindWindowEx == NULL
+		|| my_SendMessage == NULL
+		|| my_PostMessage == NULL)
 		return bret;
 	else
-		bret=true;
+		bret = true;
 
 	return bret;
-	}
+}

+ 1 - 2
天使插件源码/TSPlug/TSPlug.cpp

@@ -38,8 +38,7 @@ STDAPI DllUnregisterServer(void)
 	return hr;
 }
 
-// DllInstall - 按用户或者按计算机在系统注册表中添加/删除
-//              项。	
+// DllInstall - 按用户或者按计算机在系统注册表中添加/删除项。	
 STDAPI DllInstall(BOOL bInstall, LPCWSTR pszCmdLine)
 {
 	HRESULT hr = E_FAIL;

+ 65 - 74
天使插件源码/TSPlug/dllmain.cpp

@@ -66,10 +66,8 @@ void IMEUnLoadThread(void* para)
 			return;
 		}
 		Sleep(10);
-
 		//CString scd;
 	}
-
 }
 
 DWORD CALLBACK CBFunA(DWORD calldata1, DWORD calldata2, DWORD calldata3)	//输入法注入回调函数
@@ -99,7 +97,6 @@ static HMODULE ModuleFromAddress(PVOID pv)
 
 static LRESULT WINAPI GetMsgProc(int code, WPARAM wParam, LPARAM lParam)
 {
-
 	return ::CallNextHookEx(g_hSetWindowsHook, code, wParam, lParam);
 }
 
@@ -114,11 +111,9 @@ BOOL WINAPI CBFunB(BOOL bInstall, DWORD dwThreadId)
 		{
 			bOk = true;
 		}
-
 	}
 	else
 	{
-
 		if (g_hSetWindowsHook)
 		{
 			//::MessageBox(0,L"Dll Main:UnhookWindowsHookEx",L"TS",0);
@@ -133,84 +128,81 @@ extern "C" BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpRes
 {
 	switch (dwReason)
 	{
-	case DLL_PROCESS_ATTACH:
-	{
-
-		TSRuntime::InitKeyPressCharMap();
-		TSRuntime::InitVirtualToASCIIMap();
-		TSRuntime::InitKeyMap();
-		TSRuntime::InitKeyPressMap();
-		SySTpye = TSRuntime::InitialWindowsVersion();
-		g_hInstance = hInstance;
-		//wcscpy(gDLLFolder,TSRuntime::GetComPath()); 
-		TSRuntime::GetComPath(gDLLFolder);
-		//::MessageBox(0,gDLLFolder,L"TS",0);
-		char pszMapName[MAX_PATH] = { 0 };
-		sprintf(pszMapName, "%s%d", TS_MAPVIEW_NAME, GetCurrentProcessId());
-		HANDLE hFileMap = OpenFileMappingA(FILE_MAP_ALL_ACCESS, FALSE, pszMapName);
-		//如果hFileMap句柄不为空说明DLL被注入,准备启动注入线程
-		if (hFileMap != NULL)
+		case DLL_PROCESS_ATTACH:
 		{
-			//::MessageBox(0,L"Dll Main:DLL_PROCESS_ATTACH",L"TS",0);
-		   //// 这里先打开共享内存,共享内存和程序是一对一的关系
-			CShareMemory* sm = new CShareMemory(pszMapName);
-			TSRuntime::pData = (CMessageData*)sm->GetBuffer();
-			//// 共享内存的初始化数据是不能为空的,为空就不正常
-			if (TSRuntime::pData != NULL)
+			TSRuntime::InitKeyPressCharMap();
+			TSRuntime::InitVirtualToASCIIMap();
+			TSRuntime::InitKeyMap();
+			TSRuntime::InitKeyPressMap();
+			SySTpye = TSRuntime::InitialWindowsVersion();
+			g_hInstance = hInstance;
+			//wcscpy(gDLLFolder,TSRuntime::GetComPath()); 
+			TSRuntime::GetComPath(gDLLFolder);
+			//::MessageBox(0,gDLLFolder,L"TS",0);
+			char pszMapName[MAX_PATH] = { 0 };
+			sprintf(pszMapName, "%s%d", TS_MAPVIEW_NAME, GetCurrentProcessId());
+			HANDLE hFileMap = OpenFileMappingA(FILE_MAP_ALL_ACCESS, FALSE, pszMapName);
+			//如果hFileMap句柄不为空说明DLL被注入,准备启动注入线程
+			if (hFileMap != NULL)
 			{
-				if (TSRuntime::pData->InjectType == BIND_201 || TSRuntime::pData->InjectType == BIND_203)//201模式注入
+				//::MessageBox(0,L"Dll Main:DLL_PROCESS_ATTACH",L"TS",0);
+			   //// 这里先打开共享内存,共享内存和程序是一对一的关系
+				CShareMemory* sm = new CShareMemory(pszMapName);
+				TSRuntime::pData = (CMessageData*)sm->GetBuffer();
+				//// 共享内存的初始化数据是不能为空的,为空就不正常
+				if (TSRuntime::pData != NULL)
 				{
-					if (TSRuntime::pData->InjectType == BIND_201)
-						TSRuntime::pData->InjectType = 202;
-					else if (TSRuntime::pData->InjectType == BIND_203)
-						TSRuntime::pData->InjectType = 204;
-					//TSRuntime::add_log("201模式注入");
-					DWORD InternalCallWinProc_Addr = (DWORD)::GetModuleHandle(L"user32.dll");
-					if (SySTpye == 1)//WinXP
-						InternalCallWinProc_Addr += USER32InternalCallWinProcXPoffse;
-					else if (SySTpye == 2)//Win2003
-						InternalCallWinProc_Addr += USER32InternalCallWinProcWin2003offse;
-					else if (SySTpye == 4 && TSRuntime::IsWin7X64)//WIN7X64
-						InternalCallWinProc_Addr += USER32InternalCallProcWin7x64offse;
-					else if (SySTpye == 4)//WIN7X86
-						InternalCallWinProc_Addr += USER32InternalCallProcWin7offse;
-					else if (SySTpye == 5 && TSRuntime::IsWin8X64)//WIN8X64
-						InternalCallWinProc_Addr += USER32InternalCallProcWin8x64offse;
-					else if (SySTpye == 5)//WIN8X86
-						InternalCallWinProc_Addr += USER32InternalCallProcWin8offse;
-
-					BYTE ori[5] = { 0x55,0x8b,0xec,0x56,0x57 };
-
-					//注入完成还原钩子
-					memcpy((void*)InternalCallWinProc_Addr, ori, 5);
-					FlushInstructionCache(GetCurrentProcess(), (void*)InternalCallWinProc_Addr, 5);
+					if (TSRuntime::pData->InjectType == BIND_201 || TSRuntime::pData->InjectType == BIND_203)//201模式注入
+					{
+						if (TSRuntime::pData->InjectType == BIND_201)
+							TSRuntime::pData->InjectType = 202;
+						else if (TSRuntime::pData->InjectType == BIND_203)
+							TSRuntime::pData->InjectType = 204;
+						//TSRuntime::add_log("201模式注入");
+						DWORD InternalCallWinProc_Addr = (DWORD)::GetModuleHandle(L"user32.dll");
+						if (SySTpye == 1)//WinXP
+							InternalCallWinProc_Addr += USER32InternalCallWinProcXPoffse;
+						else if (SySTpye == 2)//Win2003
+							InternalCallWinProc_Addr += USER32InternalCallWinProcWin2003offse;
+						else if (SySTpye == 4 && TSRuntime::IsWin7X64)//WIN7X64
+							InternalCallWinProc_Addr += USER32InternalCallProcWin7x64offse;
+						else if (SySTpye == 4)//WIN7X86
+							InternalCallWinProc_Addr += USER32InternalCallProcWin7offse;
+						else if (SySTpye == 5 && TSRuntime::IsWin8X64)//WIN8X64
+							InternalCallWinProc_Addr += USER32InternalCallProcWin8x64offse;
+						else if (SySTpye == 5)//WIN8X86
+							InternalCallWinProc_Addr += USER32InternalCallProcWin8offse;
+
+						BYTE ori[5] = { 0x55,0x8b,0xec,0x56,0x57 };
+
+						//注入完成还原钩子
+						memcpy((void*)InternalCallWinProc_Addr, ori, 5);
+						FlushInstructionCache(GetCurrentProcess(), (void*)InternalCallWinProc_Addr, 5);
+
+						////TS_BIND201_NAME
+						wchar_t pszEventName[MAX_PATH] = { 0 };
+						::wsprintf(pszEventName, L"%s%d", TS_BIND201_NAME, ::GetCurrentProcessId());
+						HANDLE picEvent = ::CreateEvent(NULL, TRUE, FALSE, pszEventName);
+						::WaitForSingleObject(picEvent, INFINITE);
+						::CloseHandle(picEvent);
+						g_Unbind = false;
 
-					////TS_BIND201_NAME
-					wchar_t pszEventName[MAX_PATH] = { 0 };
-					::wsprintf(pszEventName, L"%s%d", TS_BIND201_NAME, ::GetCurrentProcessId());
-					HANDLE picEvent = ::CreateEvent(NULL, TRUE, FALSE, pszEventName);
-					::WaitForSingleObject(picEvent, INFINITE);
-					::CloseHandle(picEvent);
-					g_Unbind = false;
-
-					_beginthread(IMEUnLoadThread, 0, 0);
-					if (TSRuntime::pData->InjectType == 202)
-						TSRuntime::g_DxObj.hookApi();
-				}
-				else if (TSRuntime::pData->InjectType != 202 && TSRuntime::pData->InjectType != 204) //// 这里根据传入的模式进行函数拦截,兵起一个检测线程进行检测
-				{
-					if (TSRuntime::pData->InjectType == 205)//203绑定
 						_beginthread(IMEUnLoadThread, 0, 0);
-					TSRuntime::g_DxObj.hookApi();
+						if (TSRuntime::pData->InjectType == 202)
+							TSRuntime::g_DxObj.hookApi();
+					}
+					else if (TSRuntime::pData->InjectType != 202 && TSRuntime::pData->InjectType != 204) //// 这里根据传入的模式进行函数拦截,兵起一个检测线程进行检测
+					{
+						if (TSRuntime::pData->InjectType == 205)//203绑定
+							_beginthread(IMEUnLoadThread, 0, 0);
+						TSRuntime::g_DxObj.hookApi();
+					}
 				}
 			}
-
+			break;
 		}
-
-		break;
 	}
 
-	}
 	return _AtlModule.DllMain(dwReason, lpReserved);
 }
 
@@ -223,7 +215,6 @@ TsMutex::TsMutex(char* pszEventName)
 		hEvent = CreateEventA(NULL, FALSE, FALSE, pszEventName);
 		::SetEvent(hEvent);
 	}
-
 }
 
 TsMutex::~TsMutex()

+ 0 - 2
天使插件源码/TSPlug/dllmain.h

@@ -28,6 +28,4 @@ public:
 	TsMutex* m_ptcmutex;
 };
 
-
-
 extern class CTSPlugModule _AtlModule;