From bb03a235327a6c760bbd01d3203fe1596d21ab2c Mon Sep 17 00:00:00 2001 From: ljc545w Date: Sat, 4 Jun 2022 21:29:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=83=A8=E5=88=86=E5=B7=B2?= =?UTF-8?q?=E7=9F=A5BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CWeChatRobot/pch.cpp | 31 +++++++++++++++++++++---------- Release/CWeChatRobot.exe | Bin 88064 -> 88576 bytes 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/CWeChatRobot/pch.cpp b/CWeChatRobot/pch.cpp index e9782c6..92b2681 100644 --- a/CWeChatRobot/pch.cpp +++ b/CWeChatRobot/pch.cpp @@ -81,17 +81,21 @@ DWORD GetWeChatRobotBase() { return dwHandle; } -void GetProcOffset(wchar_t* workPath) { +BOOL GetProcOffset(wchar_t* workPath) { wchar_t* dllpath = new wchar_t[MAX_PATH]; swprintf_s(dllpath, MAX_PATH, L"%ws%ws%ws", workPath, L"\\", dllname); string name = _com_util::ConvertBSTRToString((BSTR)dllpath); if (!isFileExists_stat(name)) { MessageBoxA(NULL, name.c_str(), "文件不存在", MB_ICONWARNING); - return; + return 1; } HMODULE hd = LoadLibraryW(dllpath); - if (!hd) - return; + if (!hd) { + wchar_t info[MAX_PATH] = { 0 }; + swprintf_s(info, MAX_PATH, L"无法加载位于%ws的%ws", workPath, dllname); + MessageBox(NULL, info, L"致命错误", MB_ICONWARNING); + return 1; + } DWORD WeChatBase = (DWORD)GetModuleHandleW(dllname); DWORD SendImageProcAddr = (DWORD)GetProcAddress(hd, SendImageRemote); @@ -153,6 +157,7 @@ void GetProcOffset(wchar_t* workPath) { FreeLibrary(hd); delete[] dllpath; dllpath = NULL; + return 0; } DWORD GetWeChatPid() { @@ -174,13 +179,16 @@ DWORD StartRobotService() { } wstring wworkPath = GetComWorkPath(); wchar_t* workPath = (wchar_t*)wworkPath.c_str(); + if (GetProcOffset(workPath) != 0) { + hProcess = NULL; + return 1; + } hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, wxPid); bool status = Injert(wxPid, workPath); - if (status == 1) { + if (status != 0) { CloseHandle(hProcess); - return status; + hProcess = NULL; } - GetProcOffset(workPath); return status; } @@ -189,11 +197,14 @@ DWORD StopRobotService() { if (!hProcess) return cpid; DWORD wxPid = GetWeChatPid(); - CheckFriendStatusFinish(); - StopReceiveMessage(); - RemoveDll(wxPid); + if (wxPid && GetWeChatRobotBase()) { + CheckFriendStatusFinish(); + StopReceiveMessage(); + RemoveDll(wxPid); + } ZeroMemory((wchar_t*)SelfInfoString.c_str(), SelfInfoString.length() * 2 + 2); CloseHandle(hProcess); + hProcess = NULL; return cpid; } diff --git a/Release/CWeChatRobot.exe b/Release/CWeChatRobot.exe index 43bcbc8dd5585ca4123be1f63308744bd2dce147..2dda725cfeee305da8f9d622d7a326f11137da1e 100644 GIT binary patch delta 17744 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 delta 17502 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
UER8qo4_nQ&VJg}LZ|xrc4^B4aTmS$7

-- 
GitLab