Selaa lähdekoodia

Merge branch 'dev' of http://itcivilian.vicp.io:33000/Home/WeChat into dev

完成微信多开
Jeff 6 vuotta sitten
vanhempi
commit
6b3881c269
2 muutettua tiedostoa jossa 91 lisäystä ja 1 poistoa
  1. 54 1
      source/hook/WeChats/WeChats.cpp
  2. 37 0
      source/基址分析.txt

+ 54 - 1
source/hook/WeChats/WeChats.cpp

@@ -55,7 +55,60 @@ BOOL CWeChatsApp::InitInstance()
 	GetIniInfo();
 	GetDebugPriv();
 
-#if _DEBUG
+#if _DEBUG // 创建进程,并挂起;
+	STARTUPINFO si;
+	PROCESS_INFORMATION pi;
+	ZeroMemory(&si, sizeof(si));
+	si.cb = sizeof(si);
+	ZeroMemory(&pi, sizeof(pi));
+
+	si.dwFlags = STARTF_USESHOWWINDOW;  // 指定wShowWindow成员有效
+	si.wShowWindow = TRUE;				// 此成员设为TRUE的话则显示新建进程的主窗口,
+	// 为FALSE的话则不显示
+	BOOL bRet = ::CreateProcess (
+		_T("C:\\Program Files (x86)\\Tencent\\WeChat\\WeChat.exe"),				// 不在此指定可执行文件的文件名
+		NULL,				// 命令行参数
+		NULL,				// 默认进程安全性
+		NULL,				// 默认线程安全性
+		FALSE,				// 指定当前进程内的句柄不可以被子进程继承
+		CREATE_SUSPENDED,	// 挂起进程;
+		NULL,				// 使用本进程的环境变量
+		NULL,				// 使用本进程的驱动器和目录
+		&si,
+		&pi);
+
+	if(bRet)
+	{
+		// 进程挂起后,仍能成功注入dll;
+		TCHAR szDllPath[MAX_PATH];
+		ZeroMemory(szDllPath,MAX_PATH);
+		_stprintf_s(szDllPath, _T("%shook.dll"), g_szModulePath);
+		for (int i = 0; i < 10; i++)
+		{
+			CInjection inject(pi.dwProcessId,szDllPath);
+			inject.InjectDynamicLibrary();
+			inject.EjectDynamicLibrary();
+			Sleep(3000);
+		}
+
+		//不sleep就会出现读取不到的297错误
+		Sleep(5000);				
+
+		//获取线程上下文
+		CONTEXT ct = { 0 };
+		ct.ContextFlags = CONTEXT_CONTROL;
+		GetThreadContext(pi.hThread, &ct);
+
+		::ResumeThread(pi.hThread);	
+
+		// 既然我们不使用两个句柄,最好是立刻将它们关闭
+		::CloseHandle (pi.hThread);
+		::CloseHandle (pi.hProcess);
+
+	}
+#endif
+
+#if !_DEBUG
 	TCHAR szDllPath[MAX_PATH];
 	ZeroMemory(szDllPath,MAX_PATH);
 	DWORD ss = sizeof(szDllPath);

+ 37 - 0
source/基址分析.txt

@@ -0,0 +1,37 @@
+日期:8:58 2019/1/9
+PC微信版本:2.6.6.25
+
+微信账号基址:WX_ACCOUNT_BAD
+6E121B90 = WeChatWin.dll+1131B90
+
+微信ID基址:WX_ID_BAD
+6E121B78 = WeChatWin.dll+1131B78	#指针
+6E121BEC = WeChatWin.dll+1131BEC	#指针
+
+微信昵称基址:WX_NICK_BAD
+6E121C64 = WeChatWin.dll+1131C64
+
+微信手机基址:WX_PHONE_BAD
+6E121C98 = WeChatWin.dll+1131C98
+
+微信省基址:WX_PROVINCE_BAD
+6E121D50 = WeChatWin.dll+1131D50
+
+微信市基址:WX_CITY_BAD
+6E121D68 = WeChatWin.dll+1131D68
+
+微信手机设备基址:WX_DEVICE_BAD:
+6E122030 = WeChatWin.dll+1132030
+
+微信邮箱基址:WX_EMAIL_BAD
+6E121C80 = WeChatWin.dll+1131C80	#指针
+
+微信大头像基址:WX_LIMG_BAD
+6E121F2C = WeChatWin.dll+1131F2C	#指针
+
+微信小图像基址:WX_SIMG_BAD
+6E121F44 = WeChatWin.dll+1131F44	#指针
+
+微信xxx基址:WX_xxx_BAD
+微信xxx基址:WX_xxx_BAD
+微信xxx基址:WX_xxx_BAD