代码拉取完成,页面将自动刷新
同步操作将从 Janisa/ComWeChatRobot 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include "pch.h"
struct GetUserInfoStruct {
DWORD message;
DWORD length;
};
std::wstring GetWxUserInfo(DWORD pid,wchar_t* wxid) {
DWORD dwReadSize = 0;
wstring info = L"";
WeChatProcess hp(pid);
if (!hp.m_init) return L"{}";
DWORD GetWxUserInfoRemoteAddr = hp.GetProcAddr(GetWxUserInfoRemote);
DWORD DeleteUserInfoCacheProcAddr = hp.GetProcAddr(DeleteUserInfoCacheRemote);
if (GetWxUserInfoRemoteAddr == 0)
return L"{}";
WeChatData<wchar_t*> r_wxid(hp.GetHandle(), wxid, TEXTLENGTH(wxid));
if (r_wxid.GetAddr() == 0)
return L"{}";
DWORD ret = CallRemoteFunction(hp.GetHandle(), GetWxUserInfoRemoteAddr, r_wxid.GetAddr());
if (ret == 0)
return L"{}";
GetUserInfoStruct userinfo = { 0 };
ReadProcessMemory(hp.GetHandle(), (LPVOID)ret, &userinfo, sizeof(GetUserInfoStruct), &dwReadSize);
if (userinfo.length) {
wchar_t* wmessage = new wchar_t[userinfo.length + 1];
ZeroMemory(wmessage, (userinfo.length + 1) * 2);
ReadProcessMemory(hp.GetHandle(), (LPVOID)userinfo.message, wmessage, userinfo.length * 2, &dwReadSize);
info = (wstring)wmessage;
delete[] wmessage;
wmessage = NULL;
}
CallRemoteFunction(hp.GetHandle(), DeleteUserInfoCacheProcAddr, NULL);
return info;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。