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