소스 검색

Merge branch 'master' of http://thinking.zicp.io:3000/Home/scbc_repos

sat23 3 년 전
부모
커밋
41e8c26d3f
1개의 변경된 파일19개의 추가작업 그리고 6개의 파일을 삭제
  1. 19 6
      DLLInjection/RegistryInjection/InjectionDLL/InjectionDLL/dllmain.cpp

+ 19 - 6
DLLInjection/RegistryInjection/InjectionDLL/InjectionDLL/dllmain.cpp

@@ -11,10 +11,15 @@ BOOL CALLBACK EnumWndProc(HWND hwnd, LPARAM lParam)
     TCHAR szLog[MAX_PATH] = {0};
     DWORD dwCurrentProcessId = *((DWORD*)lParam);
     // 根据进程ID、窗口,获取当前窗口所在线程ID;
-    DWORD dwThreadProcessId = GetWindowThreadProcessId(hwnd, &dwCurrentProcessId);
-    _stprintf_s(szLog, _T("<Injecter> 进程ID=%ld, 窗口进程ID=%ld"), dwCurrentProcessId, dwThreadProcessId);
+	DWORD dwWindProcessId = 0;
+    DWORD dwThreadId = GetWindowThreadProcessId(hwnd, &dwWindProcessId);
+#if _MSC_VER >= 1200 && _MSC_VER < 1500
+	sprintf(szLog, _T("<Injecter> 进程ID=%ld, 窗口进程ID=%ld\n"), dwCurrentProcessId, dwThreadId);
+#else
+	_stprintf_s(szLog, _T("<Injecter> 进程ID=%ld, 窗口进程ID=%ld\n"), dwCurrentProcessId, dwThreadId);
+#endif
     OutputDebugString(szLog);
-    if ( dwCurrentProcessId == dwThreadProcessId && GetParent(hwnd) == NULL )   // GetParent==Null表示主窗口,本来就是找顶级的,有点多余?;
+    if ( dwCurrentProcessId == dwWindProcessId && GetParent(hwnd) == NULL )   // GetParent==Null表示主窗口,本来就是找顶级的,有点多余?;
     {
         *((HWND*)lParam) = hwnd;
         // 回调函数调用SetLastError以获取有意义的错误代码,以返回给EnumWindows的调用方
@@ -42,7 +47,11 @@ HWND GetMainWnd()
         return (HWND)dwCurrentProcessId;
     }
 
-    _stprintf_s(szLog, _T("<Injecter> 进程ID=%ld, 没找到窗口,GetLastError=%ld"), dwCurrentProcessId, dwError);
+#if _MSC_VER >= 1200 && _MSC_VER < 1500
+	sprintf(szLog, _T("<Injecter> 进程ID=%ld, 没找到窗口,GetLastError=%ld\n"), dwCurrentProcessId, dwError);
+#else
+	_stprintf_s(szLog, _T("<Injecter> 进程ID=%ld, 没找到窗口,GetLastError=%ld\n"), dwCurrentProcessId, dwError);
+#endif
     OutputDebugString(szLog);
 
     return NULL;
@@ -66,10 +75,14 @@ DWORD WINAPI WorkThreadProc(LPVOID lParam)
 
     // 得到窗口名称
     GetWindowText(hWnd,szWndTitle,sizeof(szWndTitle));
-    _stprintf_s(szLog, _T("找到窗口名称:%s"),  szWndTitle);
+#if _MSC_VER >= 1200 && _MSC_VER < 1500
+	sprintf(szLog, _T("找到窗口名称:%s\n"),  szWndTitle);
+#else
+    _stprintf_s(szLog, _T("找到窗口名称:%s\n"),  szWndTitle);
+#endif
     OutputDebugString(szLog);
     //是否名称是计算器
-    if( 0 == _tcsstr(szWndTitle, _T("计算器")) )
+    if( _tcsstr(szWndTitle, _T("计算器")) )
     {
         OutputDebugString(_T("<Injecter> 找到指定窗口!!!"));
         // 2、创建后台线程;