Fix get contacts
This commit is contained in:
parent
3042de5183
commit
1da3e0d69f
@ -9,21 +9,21 @@ std::vector<RpcContact_t> GetContacts()
|
||||
{
|
||||
int gender = 0;
|
||||
vector<RpcContact_t> vContacts;
|
||||
DWORD baseAddr = g_WeChatWinDllAddr + 0x23638F4;
|
||||
DWORD baseAddr = g_WeChatWinDllAddr + g_WxCalls.contact.base;
|
||||
DWORD tempAddr = GET_DWORD(baseAddr);
|
||||
DWORD head = GET_DWORD(tempAddr + 0x4C);
|
||||
DWORD head = GET_DWORD(tempAddr + g_WxCalls.contact.head);
|
||||
DWORD node = GET_DWORD(head);
|
||||
|
||||
while (node != head) {
|
||||
RpcContact_t rpcContact = { 0 };
|
||||
rpcContact.wxId = GetBstrByAddress(node + 0x30);
|
||||
rpcContact.wxCode = GetBstrByAddress(node + 0x44);
|
||||
rpcContact.wxName = GetBstrByAddress(node + 0x8C);
|
||||
rpcContact.wxCountry = GetBstrByAddress(node + 0x1D0);
|
||||
rpcContact.wxProvince = GetBstrByAddress(node + 0x1E4);
|
||||
rpcContact.wxCity = GetBstrByAddress(node + 0x1F8);
|
||||
rpcContact.wxId = GetBstrByAddress(node + g_WxCalls.contact.wxId);
|
||||
rpcContact.wxCode = GetBstrByAddress(node + g_WxCalls.contact.wxCode);
|
||||
rpcContact.wxName = GetBstrByAddress(node + g_WxCalls.contact.wxName);
|
||||
rpcContact.wxCountry = GetBstrByAddress(node + g_WxCalls.contact.wxCountry);
|
||||
rpcContact.wxProvince = GetBstrByAddress(node + g_WxCalls.contact.wxProvince);
|
||||
rpcContact.wxCity = GetBstrByAddress(node + g_WxCalls.contact.wxCity);
|
||||
|
||||
gender = GET_DWORD(node + 0x184);
|
||||
gender = GET_DWORD(node + g_WxCalls.contact.wxGender);
|
||||
if (gender == 1)
|
||||
rpcContact.wxGender = SysAllocString(L"男");
|
||||
else if (gender == 2)
|
||||
|
@ -4,15 +4,16 @@
|
||||
#include "load_calls.h"
|
||||
|
||||
#define SUPPORT_VERSION L"3.7.0.29"
|
||||
WxCalls_t wxCalls = {
|
||||
0x23631D0, // Login Status
|
||||
WxCalls_t wxCalls = { 0x23631D0, // Login Status
|
||||
{ 0x236307C, 0x23630F4, 0x2363128 }, // User Info: wxid, nickname, mobile
|
||||
0x521D30, // Send Message
|
||||
/* Receive Message:
|
||||
Hook, call, type, self, id, msgXml, roomId, wxId, content */
|
||||
{ 0x550F4C, 0xA94A50, 0x38, 0x3C, 0x184, 0x1EC, 0x48, 0x170, 0x70 },
|
||||
{ 0xBD780, 0x770120, 0x521640 } // Send Image Message
|
||||
};
|
||||
{ 0xBD780, 0x770120, 0x521640 }, // Send Image Message
|
||||
/* Get Contacts:
|
||||
Base, head, wxId, Code, Name, Gender, Country, Province, City*/
|
||||
{ 0x23638F4, 0x4C, 0x30, 0x44, 0x8C, 0x184, 0x1D0, 0x1E4, 0x1F8 } };
|
||||
|
||||
int LoadCalls(const wchar_t *version, WxCalls_t *calls)
|
||||
{
|
||||
|
@ -29,12 +29,25 @@ typedef struct SendImg {
|
||||
DWORD call3;
|
||||
} SendImg_t;
|
||||
|
||||
typedef struct Contact {
|
||||
DWORD base;
|
||||
DWORD head;
|
||||
DWORD wxId;
|
||||
DWORD wxCode;
|
||||
DWORD wxName;
|
||||
DWORD wxGender;
|
||||
DWORD wxCountry;
|
||||
DWORD wxProvince;
|
||||
DWORD wxCity;
|
||||
} Contact_t;
|
||||
|
||||
typedef struct WxCalls {
|
||||
DWORD login; // 登录状态
|
||||
UserInfoCall_t ui; // 用户信息
|
||||
DWORD sendTextMsg; // 发送消息
|
||||
RecvMsg_t recvMsg; // 接收消息
|
||||
SendImg_t sendImg; // 发送图片
|
||||
Contact_t contact; // 获取联系人
|
||||
} WxCalls_t;
|
||||
|
||||
typedef struct TextStruct {
|
||||
|
Loading…
Reference in New Issue
Block a user