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