diff --git a/WeChatFerry/spy/message_sender.cpp b/WeChatFerry/spy/message_sender.cpp index da5b9f3..57089cb 100644 --- a/WeChatFerry/spy/message_sender.cpp +++ b/WeChatFerry/spy/message_sender.cpp @@ -51,7 +51,8 @@ Sender::Sender() func_send_pat = reinterpret_cast(g_WeChatWinDllAddr + OS_SEND_PAT_MSG); func_forward = reinterpret_cast(g_WeChatWinDllAddr + OS_FORWARD_MSG); func_send_emotion = reinterpret_cast(g_WeChatWinDllAddr + OS_SEND_EMOTION); - func_send_xml = reinterpret_cast(g_WeChatWinDllAddr + OS_SEND_XML); + func_send_xml = reinterpret_cast(g_WeChatWinDllAddr + OsSend::XML); + func_xml_buf_sign = reinterpret_cast(g_WeChatWinDllAddr + OsSend::XML_BUF_SIGN); } std::unique_ptr Sender::new_wx_string(const char *str) @@ -172,6 +173,7 @@ void Sender::send_file(const std::string &wxid, const std::string &path) void Sender::send_xml(const std::string &receiver, const std::string &xml, const std::string &path, uint64_t type) { +#if 0 std::unique_ptr buff(new char[0x500]()); std::unique_ptr buff2(new char[0x500]()); char nullBuf[0x1C] = { 0 }; @@ -194,6 +196,7 @@ void Sender::send_xml(const std::string &receiver, const std::string &xml, const func_free_chat_msg(reinterpret_cast(buff.get())); func_free_chat_msg(reinterpret_cast(buff2.get())); +#endif } void Sender::send_emotion(const std::string &wxid, const std::string &path) @@ -346,8 +349,8 @@ bool Sender::rpc_send_xml(const XmlMsg &xml, uint8_t *out, size_t *len) LOG_ERROR("Empty content or receiver."); rsp.msg.status = -1; } else { - send_xml(xml.receiver, xml.content, xml.path, xml.type); - rsp.msg.status = 0; + // send_xml(xml.receiver, xml.content, xml.path, xml.type); + rsp.msg.status = -1; } }); } diff --git a/WeChatFerry/spy/rpc_server.cpp b/WeChatFerry/spy/rpc_server.cpp index 9e2e9ee..8341289 100644 --- a/WeChatFerry/spy/rpc_server.cpp +++ b/WeChatFerry/spy/rpc_server.cpp @@ -251,7 +251,7 @@ const std::unordered_map RpcServer::rpcFu { Functions_FUNC_SEND_TXT, [](const Request &r, uint8_t *out, size_t *len) { return RpcServer::getInstance().sender_.rpc_send_text(r.msg.txt, out, len); } }, { Functions_FUNC_SEND_IMG, [](const Request &r, uint8_t *out, size_t *len) { return RpcServer::getInstance().sender_.rpc_send_image(r.msg.file, out, len); } }, { Functions_FUNC_SEND_FILE, [](const Request &r, uint8_t *out, size_t *len) { return RpcServer::getInstance().sender_.rpc_send_file(r.msg.file, out, len); } }, - // { Functions_FUNC_SEND_XML, [](const Request &r, uint8_t *out, size_t *len) { return sender.rpc_send_xml(r.msg.xml, out, len); } }, + { Functions_FUNC_SEND_XML, [](const Request &r, uint8_t *out, size_t *len) { return RpcServer::getInstance().sender_.rpc_send_xml(r.msg.xml, out, len); } }, // { Functions_FUNC_SEND_EMOTION, [](const Request &r, uint8_t *out, size_t *len) { return sender.rpc_send_emotion(r.msg.file, out, len); } }, // { Functions_FUNC_SEND_RICH_TXT, [](const Request &r, uint8_t *out, size_t *len) { return sender.rpc_send_rich_text(r.msg.rt, out, len); } }, // { Functions_FUNC_SEND_PAT_MSG, [](const Request &r, uint8_t *out, size_t *len) { return sender.rpc_send_pat(r.msg.pm, out, len); } },