From daaed3909c3104996c5851dc03e08e3d75393dc5 Mon Sep 17 00:00:00 2001 From: eric Date: Thu, 21 Nov 2024 10:24:39 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=94=AF=E6=8C=81=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E4=BA=8C=E7=BB=B4=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WeChatFerry/spy/funcs.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/WeChatFerry/spy/funcs.cpp b/WeChatFerry/spy/funcs.cpp index 0c3cb7ee..60f206b9 100644 --- a/WeChatFerry/spy/funcs.cpp +++ b/WeChatFerry/spy/funcs.cpp @@ -35,6 +35,7 @@ extern QWORD g_WeChatWinDllAddr; #define OS_GET_MGR_BY_PREFIX_LOCAL_ID 0x213FB00 #define OS_GET_PRE_DOWNLOAD_MGR 0x1C0EE70 #define OS_PUSH_ATTACH_TASK 0x1CDF4E0 +#define OS_LOGIN_QR_CODE 0x59620d8 typedef QWORD (*GetSNSDataMgr_t)(); typedef QWORD (*GetSnsTimeLineMgr_t)(); @@ -348,8 +349,17 @@ int RevokeMsg(QWORD id) string GetLoginUrl() { - char url[] = "方法还没实现"; - return "http://weixin.qq.com/x/" + string(url); + LPVOID targetAddress = reinterpret_cast(g_WeChatWinDllAddr) + OS_LOGIN_QR_CODE; + + char* dataPtr = *reinterpret_cast(targetAddress); // 读取指针内容 + if (!dataPtr) { + LOG_ERROR("Failed to get login url"); + return "error"; + } + + // 读取字符串内容 + std::string data(dataPtr, 22); + return "http://weixin.qq.com/x/" + data; } int ReceiveTransfer(string wxid, string transferid, string transactionid)