代码拉取完成,页面将自动刷新
同步操作将从 Janisa/ComWeChatRobot 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include "pch.h"
VARIANT GetQrcodeImage(DWORD pid)
{
VARIANT vsa;
vsa.vt = VT_ARRAY | VT_UI1;
V_ARRAY(&vsa) = NULL;
WeChatProcess hp(pid);
if (!hp.m_init)
return vsa;
DWORD GetQrcodeImageAddr = hp.GetProcAddr(GetQrcodeImageRemote);
DWORD ret = CallRemoteFunction(hp.GetHandle(), GetQrcodeImageAddr, NULL);
if (ret == 0)
return vsa;
DWORD ret_info[2] = {0};
ReadProcessMemory(hp.GetHandle(), (LPCVOID)ret, &ret_info, sizeof(ret_info), 0);
DWORD buf_addr = ret_info[0];
int size = ret_info[1];
if (size == 0 || buf_addr == 0)
return vsa;
unique_ptr<BYTE[]> image(new BYTE[size + 1]());
ReadProcessMemory(hp.GetHandle(), (LPCVOID)buf_addr, image.get(), size, 0);
SAFEARRAYBOUND rgsaBound = {(ULONG)size, 0};
SAFEARRAY *psaValue = SafeArrayCreate(VT_UI1, 1, &rgsaBound);
BYTE *buf = NULL;
::SafeArrayAccessData(psaValue, (void **)&buf);
memcpy(buf, image.get(), size);
::SafeArrayUnaccessData(psaValue);
V_ARRAY(&vsa) = psaValue;
return vsa;
}
BOOL isWxLogin(DWORD pid)
{
WeChatProcess hp(pid);
if (!hp.m_init)
return 1;
DWORD isWxLoginRemoteAddr = hp.GetProcAddr(isWxLoginRemote);
if (isWxLoginRemoteAddr == 0)
return 1;
DWORD ret = CallRemoteFunction(hp.GetHandle(), isWxLoginRemoteAddr, NULL);
return ret == 1;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。