feat(contact): ignore get contact info
This commit is contained in:
parent
e20ca0e61f
commit
e9c64e4ef4
@ -98,44 +98,7 @@ int accept_new_friend(const std::string &v3, const std::string &v4, int scene)
|
|||||||
RpcContact_t get_contact_by_wxid(const string &wxid)
|
RpcContact_t get_contact_by_wxid(const string &wxid)
|
||||||
{
|
{
|
||||||
RpcContact_t contact;
|
RpcContact_t contact;
|
||||||
#if 0
|
LOG_ERROR("技术太菜,实现不了。");
|
||||||
char buff[0x440] = { 0 };
|
|
||||||
wstring ws_wxid = util::s2w(wxid);
|
|
||||||
WxString pri(ws_wxid);
|
|
||||||
|
|
||||||
DWORD contact_mgr_addr = g_WeChatWinDllAddr + 0x75A4A0;
|
|
||||||
DWORD get_contact_addr = g_WeChatWinDllAddr + 0xC04E00;
|
|
||||||
DWORD free_contact_addr = g_WeChatWinDllAddr + 0xEA7880;
|
|
||||||
|
|
||||||
__asm {
|
|
||||||
PUSHAD
|
|
||||||
PUSHFD
|
|
||||||
CALL contact_mgr_addr
|
|
||||||
LEA ECX,buff
|
|
||||||
PUSH ECX
|
|
||||||
LEA ECX,pri
|
|
||||||
PUSH ECX
|
|
||||||
MOV ECX,EAX
|
|
||||||
CALL get_contact_addr
|
|
||||||
POPFD
|
|
||||||
POPAD
|
|
||||||
}
|
|
||||||
|
|
||||||
contact.wxid = wxid;
|
|
||||||
contact.code = util::get_str_by_wstr_addr(reinterpret_cast<DWORD>(buff) + g_WxCalls.contact.wxCode);
|
|
||||||
contact.remark = util::get_str_by_wstr_addr(reinterpret_cast<DWORD>(buff) + g_WxCalls.contact.wxRemark);
|
|
||||||
contact.name = util::get_str_by_wstr_addr(reinterpret_cast<DWORD>(buff) + g_WxCalls.contact.wxName);
|
|
||||||
contact.gender = util::get_dword(reinterpret_cast<DWORD>(buff) + 0x148);
|
|
||||||
|
|
||||||
__asm {
|
|
||||||
PUSHAD
|
|
||||||
PUSHFD
|
|
||||||
LEA ECX,buff
|
|
||||||
CALL free_contact_addr
|
|
||||||
POPFD
|
|
||||||
POPAD
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
return contact;
|
return contact;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -150,8 +113,8 @@ bool rpc_get_contacts(uint8_t *out, size_t *len)
|
|||||||
|
|
||||||
bool rpc_get_contact_info(const string &wxid, uint8_t *out, size_t *len)
|
bool rpc_get_contact_info(const string &wxid, uint8_t *out, size_t *len)
|
||||||
{
|
{
|
||||||
|
vector<RpcContact_t> contacts = { get_contact_by_wxid(wxid) };
|
||||||
return fill_response<Functions_FUNC_GET_CONTACT_INFO>(out, len, [&](Response &rsp) {
|
return fill_response<Functions_FUNC_GET_CONTACT_INFO>(out, len, [&](Response &rsp) {
|
||||||
vector<RpcContact_t> contacts = { get_contact_by_wxid(wxid) };
|
|
||||||
rsp.msg.contacts.contacts.funcs.encode = encode_contacts;
|
rsp.msg.contacts.contacts.funcs.encode = encode_contacts;
|
||||||
rsp.msg.contacts.contacts.arg = &contacts;
|
rsp.msg.contacts.contacts.arg = &contacts;
|
||||||
});
|
});
|
||||||
|
@ -261,7 +261,7 @@ const std::unordered_map<Functions, RpcServer::FunctionHandler> RpcServer::rpcFu
|
|||||||
{ Functions_FUNC_RECV_TRANSFER, [](const Request &r, uint8_t *out, size_t *len) { return misc::rpc_receive_transfer(r.msg.tf, out, len); } },
|
{ Functions_FUNC_RECV_TRANSFER, [](const Request &r, uint8_t *out, size_t *len) { return misc::rpc_receive_transfer(r.msg.tf, out, len); } },
|
||||||
{ Functions_FUNC_REFRESH_PYQ, [](const Request &r, uint8_t *out, size_t *len) { return misc::rpc_refresh_pyq(r.msg.ui64, out, len); } },
|
{ Functions_FUNC_REFRESH_PYQ, [](const Request &r, uint8_t *out, size_t *len) { return misc::rpc_refresh_pyq(r.msg.ui64, out, len); } },
|
||||||
{ Functions_FUNC_DOWNLOAD_ATTACH, [](const Request &r, uint8_t *out, size_t *len) { return misc::rpc_download_attachment(r.msg.att, out, len); } },
|
{ Functions_FUNC_DOWNLOAD_ATTACH, [](const Request &r, uint8_t *out, size_t *len) { return misc::rpc_download_attachment(r.msg.att, out, len); } },
|
||||||
// { Functions_FUNC_GET_CONTACT_INFO, [](const Request &r, uint8_t *out, size_t *len) { return contact::rpc_get_contact_info(r.msg.str, out, len); } },
|
{ Functions_FUNC_GET_CONTACT_INFO, [](const Request &r, uint8_t *out, size_t *len) { return contact::rpc_get_contact_info(r.msg.str, out, len); } },
|
||||||
{ Functions_FUNC_REVOKE_MSG, [](const Request &r, uint8_t *out, size_t *len) { return misc::rpc_revoke_message(r.msg.ui64, out, len); } },
|
{ Functions_FUNC_REVOKE_MSG, [](const Request &r, uint8_t *out, size_t *len) { return misc::rpc_revoke_message(r.msg.ui64, out, len); } },
|
||||||
{ Functions_FUNC_REFRESH_QRCODE, [](const Request &r, uint8_t *out, size_t *len) { return misc::rpc_get_login_url(out, len); } },
|
{ Functions_FUNC_REFRESH_QRCODE, [](const Request &r, uint8_t *out, size_t *len) { return misc::rpc_get_login_url(out, len); } },
|
||||||
{ Functions_FUNC_DECRYPT_IMAGE, [](const Request &r, uint8_t *out, size_t *len) { return misc::rpc_decrypt_image(r.msg.dec, out, len); } },
|
{ Functions_FUNC_DECRYPT_IMAGE, [](const Request &r, uint8_t *out, size_t *len) { return misc::rpc_decrypt_image(r.msg.dec, out, len); } },
|
||||||
|
Loading…
Reference in New Issue
Block a user