|
88精币
使用了精易模块 WOW64_hook
不知道这个模块call的用法 硬搬了一部分 感觉不对 来大腿帮忙转一下 版本3.9.11.25
[C++] 纯文本查看 复制代码 vector<RpcContact_t> GetContacts()
{
vector<RpcContact_t> contacts;
GetContactMgr_t funcGetContactMgr = (GetContactMgr_t)(g_WeChatWinDllAddr + OS_GET_CONTACT_MGR);
GetContactList_t funcGetContactList = (GetContactList_t)(g_WeChatWinDllAddr + OS_GET_CONTACT_LIST);
QWORD mgr = funcGetContactMgr();
QWORD addr[3] = { 0 };
if (funcGetContactList(mgr, (QWORD)addr) != 1) {
LOG_ERROR("GetContacts failed");
return contacts;
}
QWORD pstart = (QWORD)addr[0];
QWORD pend = (QWORD)addr[2];
while (pstart < pend) {
RpcContact_t cnt;
QWORD pbin = GET_QWORD(pstart + OS_CONTACT_BIN);
QWORD lenbin = GET_DWORD(pstart + OS_CONTACT_BIN_LEN);
cnt.wxid = GetStringByWstrAddr(pstart + OS_CONTACT_WXID);
cnt.code = GetStringByWstrAddr(pstart + OS_CONTACT_CODE);
cnt.remark = GetStringByWstrAddr(pstart + OS_CONTACT_REMARK);
cnt.name = GetStringByWstrAddr(pstart + OS_CONTACT_NAME);
cnt.country = GetCntString(pbin, pbin + lenbin, FEAT_COUNTRY, FEAT_LEN);
cnt.province = GetCntString(pbin, pbin + lenbin, FEAT_PROVINCE, FEAT_LEN);
cnt.city = GetCntString(pbin, pbin + lenbin, FEAT_CITY, FEAT_LEN);
if (pbin == 0) {
cnt.gender = 0;
} else {
cnt.gender = (DWORD) * (uint8_t *)(pbin + OS_CONTACT_GENDER);
}
contacts.push_back(cnt);
pstart += OS_CONTACT_STEP;
}
return contacts;
}
变量名 | 类 型 | 静态 | 数组 | 备 注 | contacts | RpcContact_t | | | mgr | 长整数型 | | | addr | 长整数型 | | 4 | jc | 整数型 | | | pstart | 长整数型 | | | pend | 长整数型 | | | pbin | 长整数型 | | | lenbin | 长整数型 | | | 读取长度 | 整数型 | | | data | 字节集 | | |
mgr = GetContactMgr ()如果真 (GetContactList (mgr, 取变量地址 (addr )) ≠ 1 )返回 (contacts )pstart = addr [1 ]pend = addr [3 ]判断循环首 (pstart < pend )内存64_读长整数型 (进程句柄, pstart + #OS_CONTACT_BIN, pbin )内存64_读长整数型 (进程句柄, pstart + #OS_CONTACT_BIN_LEN, lenbin )内存64_读整数型 (进程句柄, pstart + #OS_CONTACT_WXID - 8, 读取长度 )内存64_读字节集 (进程句柄, pstart + #OS_CONTACT_WXID, 读取长度 × 2, data )contacts.wxid = 编码_Unicode到Ansi (data )调试输出 (contacts.wxid )判断循环尾 ()返回 (contacts )返回 (X64_Call (模块jz + #OS_CONTACT_MGR, , , , , , , , , , )) |
GetContactList | 整数型 | | |
mgr | 长整数型 | | | | addr | 长整数型 | | | | 返回 (X64_Call (模块jz + #OS_CONTACT_LIST, mgr, addr, , , , , , , , ))
|
|