From 35663e4fea9736eaaf195e9e4ca0a63c2eee647a Mon Sep 17 00:00:00 2001 From: ljc545w Date: Mon, 28 Mar 2022 13:29:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=BF=E6=8D=A2=E4=BF=A1=E6=81=AF=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E5=8F=8C=E5=BC=95=E5=8F=B7=E5=AD=97=E7=AC=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CWeChatRobot/FriendList.cpp | 6 ++++++ CWeChatRobot/pch.cpp | 15 ++++++++++++++- CWeChatRobot/pch.h | 5 +++-- DWeChatRobot/SelfInfo.cpp | 3 ++- DWeChatRobot/UserInfo.cpp | 5 ++++- DWeChatRobot/pch.cpp | 13 +++++++++++++ DWeChatRobot/pch.h | 1 + Release/CWeChatRobot.exe | Bin 67584 -> 71168 bytes Release/DWeChatRobot.dll | Bin 28672 -> 30208 bytes wxRobot.py | 3 +-- 10 files changed, 44 insertions(+), 7 deletions(-) diff --git a/CWeChatRobot/FriendList.cpp b/CWeChatRobot/FriendList.cpp index 287bee9..3e2907b 100644 --- a/CWeChatRobot/FriendList.cpp +++ b/CWeChatRobot/FriendList.cpp @@ -70,6 +70,12 @@ void ReadFriendMessageByAddress(WxFriendAddrStruct* lpWxFriendAddr, WxFriendStru ZeroMemory(lpWxFriend->wxRemark, sizeof(wchar_t) * (length + 1)); ReadProcessMemory(hProcess, (LPCVOID)lpWxFriendAddr->wxRemarkAddr, &bufferaddr, sizeof(DWORD), 0); ReadProcessMemory(hProcess, (LPCVOID)bufferaddr, lpWxFriend->wxRemark, length * sizeof(wchar_t), 0); + wstring wswxRemark = wreplace(lpWxFriend->wxRemark,L'\"',L"\\\""); + delete[] lpWxFriend->wxRemark; + lpWxFriend->wxRemark = new wchar_t[wswxRemark.length() + 1]; + ZeroMemory(lpWxFriend->wxRemark, sizeof(wchar_t) * (wswxRemark.length() + 1)); + memcpy(lpWxFriend->wxRemark, wswxRemark.c_str(), wswxRemark.length() * 2); + wcout << lpWxFriend->wxRemark << endl; } } else { diff --git a/CWeChatRobot/pch.cpp b/CWeChatRobot/pch.cpp index 802dfa8..1fe5b20 100644 --- a/CWeChatRobot/pch.cpp +++ b/CWeChatRobot/pch.cpp @@ -32,7 +32,7 @@ bool isFileExists_stat(string& name) { return (stat(name.c_str(), &buffer) == 0); } -BOOL CreateConsole(void) { +BOOL CreateConsole() { if (AllocConsole()) { AttachConsole(GetCurrentProcessId()); FILE* retStream; @@ -169,4 +169,17 @@ wstring GetComWorkPath() { int pos = wpath.find_last_of(L"\\"); wpath = wpath.substr(0,pos); return wpath; +} + +wstring wreplace(wstring source, wchar_t replaced, wstring replaceto) { + wstring temp = L""; + wchar_t* buffer = (wchar_t*)source.c_str(); + for (unsigned int i = 0; i < source.length(); i++) { + if (buffer[i] == replaced) { + temp += replaceto; + continue; + } + temp += buffer[i]; + } + return temp; } \ No newline at end of file diff --git a/CWeChatRobot/pch.h b/CWeChatRobot/pch.h index 73c70bf..cc930da 100644 --- a/CWeChatRobot/pch.h +++ b/CWeChatRobot/pch.h @@ -34,5 +34,6 @@ DWORD GetWeChatRobotBase(); DWORD GetWeChatPid(); DWORD StartRobotService(); DWORD StopRobotService(); -BOOL CreateConsole(void); -wstring GetComWorkPath(); \ No newline at end of file +BOOL CreateConsole(); +wstring GetComWorkPath(); +wstring wreplace(wstring source, wchar_t replaced, wstring replaceto); \ No newline at end of file diff --git a/DWeChatRobot/SelfInfo.cpp b/DWeChatRobot/SelfInfo.cpp index 6613810..9d95de8 100644 --- a/DWeChatRobot/SelfInfo.cpp +++ b/DWeChatRobot/SelfInfo.cpp @@ -59,7 +59,8 @@ DWORD GetSelfInfoRemote() { wchar_t* wtemp = new wchar_t[strlen(temp) + 1]; ZeroMemory(wtemp, (strlen(temp) + 1) * 2); MultiByteToWideChar(CP_UTF8, 0, temp, -1, wtemp, strlen(temp) + 1); - selfinfo = selfinfo + wtemp; + wstring wrtemp = wreplace(wtemp,L'\"',L"\\\""); + selfinfo = selfinfo + wrtemp; selfinfo = selfinfo + L"\""; if(i!= SelfInfoAddr.size() - 1) selfinfo = selfinfo + L","; diff --git a/DWeChatRobot/UserInfo.cpp b/DWeChatRobot/UserInfo.cpp index 27f3f4f..5f21834 100644 --- a/DWeChatRobot/UserInfo.cpp +++ b/DWeChatRobot/UserInfo.cpp @@ -24,6 +24,7 @@ VOID WxUserInfo(DWORD address) { address + 0x10, address + 0x24, address + 0x38, + address + 0x58, address + 0x6C, address + 0xFC, address + 0x110, @@ -37,6 +38,7 @@ VOID WxUserInfo(DWORD address) { (WCHAR*)L"\"wxId\"", (WCHAR*)L"\"wxNumber\"", (WCHAR*)L"\"wxV3\"", + (WCHAR*)L"\"wxRemark\"", (WCHAR*)L"\"wxNickName\"", (WCHAR*)L"\"wxBigAvatar\"", (WCHAR*)L"\"wxSmallAvatar\"", @@ -49,7 +51,8 @@ VOID WxUserInfo(DWORD address) { wUserInfo += L"{"; for (unsigned int i = 0; i < InfoType.size(); i++) { wchar_t* wstemp = ((*((DWORD*)InfoType[i])) != 0) ? (WCHAR*)(*((LPVOID*)InfoType[i])) : (WCHAR*)L"null"; - wUserInfo = wUserInfo + InfoTypeName[i] + L":\"" + wstemp + L"\""; + wstring wsrtemp = wreplace(wstemp,L'\"',L"\\\""); + wUserInfo = wUserInfo + InfoTypeName[i] + L":\"" + wsrtemp + L"\""; if (i != InfoType.size() - 1) { wUserInfo += L","; } diff --git a/DWeChatRobot/pch.cpp b/DWeChatRobot/pch.cpp index b7a8382..7298de5 100644 --- a/DWeChatRobot/pch.cpp +++ b/DWeChatRobot/pch.cpp @@ -65,4 +65,17 @@ void UnHookAnyAddress(DWORD dwHookAddr, char* originalRecieveCode) void UnHookAll() { UnHookLogMsgInfo(); return; +} + +wstring wreplace(wstring source, wchar_t replaced, wstring replaceto) { + wstring temp = L""; + wchar_t* buffer = (wchar_t*)source.c_str(); + for (unsigned int i = 0; i < source.length(); i++) { + if (buffer[i] == replaced) { + temp += replaceto; + continue; + } + temp += buffer[i]; + } + return temp; } \ No newline at end of file diff --git a/DWeChatRobot/pch.h b/DWeChatRobot/pch.h index 213d7e7..d3a6383 100644 --- a/DWeChatRobot/pch.h +++ b/DWeChatRobot/pch.h @@ -59,3 +59,4 @@ void Wchar_tToString(std::string& szDst, wchar_t* wchar); void HookAnyAddress(DWORD dwHookAddr, LPVOID dwJmpAddress, char* originalRecieveCode); void UnHookAnyAddress(DWORD dwHookAddr, char* originalRecieveCode); DLLEXPORT void UnHookAll(); +wstring wreplace(wstring source, wchar_t replaced, wstring replaceto); diff --git a/Release/CWeChatRobot.exe b/Release/CWeChatRobot.exe index be8417b3810006a0b0ad2b3fb68b08cc50c4b5b1..f9c8f5c114ab3987854b66369300f9b19dc06da1 100644 GIT binary patch delta 21117 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
YdT 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 Z3FpUI;I1#d<|A5A?%ZdgzaE_We*h$)7s~(u delta 18217 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 diff --git a/Release/DWeChatRobot.dll b/Release/DWeChatRobot.dll index cefe23fd874e314094dea2e5535e91b27b97ca14..43536dde33e1e7441a53ec169d4e6f2e401fbe86 100644 GIT binary patch delta 13380 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 P+dMYbcC_yMMY8_`uxG>k delta 11713 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 G^ZXaNMdUvK diff --git a/wxRobot.py b/wxRobot.py index 16dbb9c..ab60803 100644 --- a/wxRobot.py +++ b/wxRobot.py @@ -189,5 +189,4 @@ def test_FriendStatus(): wx.StopService() if __name__ == '__main__': - test_SendText() - + test_SendText() \ No newline at end of file -- GitLab