diff --git a/app/wxhelper/src/offset.h b/app/wxhelper/src/offset.h index 7fb4967..d6a4e6c 100644 --- a/app/wxhelper/src/offset.h +++ b/app/wxhelper/src/offset.h @@ -243,12 +243,12 @@ const uint64_t kGetWebViewMgr = 0x9412d0; const uint64_t kShowWebView = 0x1d236b0; const uint64_t kSetUrl = 0x13dd410; #elif WECHAT_VERSION == V_3_9_10_19 -const uint64_t kGetAccountServiceMgr = 0xa7df30; +const uint64_t kGetAccountServiceMgr = 0x1c1fe70; const uint64_t kSyncMsg = 0xc39680; const uint64_t kSyncMsgNext = 0xc39680; -const uint64_t kGetCurrentDataPath = 0x11664e0; -const uint64_t kGetAppDataSavePath = 0x14f29c0; -const uint64_t kGetSendMessageMgr = 0xa7c730; +const uint64_t kGetCurrentDataPath = 0x2315ea0; +const uint64_t kGetAppDataSavePath = 0x26a7df0; +const uint64_t kGetSendMessageMgr = 0x1c1e670; const uint64_t kSendTextMsg = 0x238ec70; const uint64_t kFreeChatMsg = 0x1c1fef0; @@ -257,8 +257,8 @@ const uint64_t kSendImageMsg = 0x2384400; const uint64_t kChatMsgInstanceCounter = 0x1c287e0; const uint64_t kSendFileMsg = 0x2197a40; const uint64_t kGetAppMsgMgr = 0x1c23610; -const uint64_t kGetContactMgr = 0xa69fd0; -const uint64_t kGetContactList = 0x10b8420; +const uint64_t kGetContactMgr = 0x1c0bdc0; +const uint64_t kGetContactList = 0x22665a0; const uint64_t k_sqlite3_exec = 0x288ea10; const uint64_t k_sqlite3_prepare = 0x2896590; diff --git a/app/wxhelper/src/wechat_service.cc b/app/wxhelper/src/wechat_service.cc index e594180..33ae5aa 100644 --- a/app/wxhelper/src/wechat_service.cc +++ b/app/wxhelper/src/wechat_service.cc @@ -267,7 +267,9 @@ int64_t wechat::WeChatService::SendImageMsg(const std::wstring& wxid, new_chat_msg(reinterpret_cast(&chat_msg_temp)); uint64_t temp1 = 0; uint64_t temp2 = 0; + uint64_t temp3 = 1; uint64_t* flag[10] = {}; + flag[0] = reinterpret_cast(temp3); flag[8] = &temp1; flag[9] = &temp2; flag[1] = reinterpret_cast(p_chat_msg_temp); @@ -323,27 +325,24 @@ int64_t wechat::WeChatService::SendFileMsg(const std::wstring& wxid, (uint64_t*)HeapAlloc(GetProcessHeap(), 0, sizeof(uint64_t) * 4); uint64_t* temp3 = (uint64_t*)HeapAlloc(GetProcessHeap(), 0, sizeof(uint64_t) * 4); - uint64_t* temp4 = - (uint64_t*)HeapAlloc(GetProcessHeap(), 0, sizeof(uint64_t) * 4); + ZeroMemory(temp1, sizeof(uint64_t) * 4); ZeroMemory(temp2, sizeof(uint64_t) * 4); ZeroMemory(temp3, sizeof(uint64_t) * 4); - ZeroMemory(temp4, sizeof(uint64_t) * 4); - *temp4 = 0x1F; + uint64_t app_mgr = get_app_mgr(); success = send_file(app_mgr, reinterpret_cast(chat_msg), reinterpret_cast(to_user), reinterpret_cast(file_full_path), 1, reinterpret_cast(temp1), 0, reinterpret_cast(temp2), 0, - reinterpret_cast(temp3), 0, 0); + reinterpret_cast(temp3), 0, 0xC); free(reinterpret_cast(chat_msg)); HeapFree(GetProcessHeap(), 0, to_user); HeapFree(GetProcessHeap(), 0, file_full_path); HeapFree(GetProcessHeap(), 0, temp1); HeapFree(GetProcessHeap(), 0, temp2); HeapFree(GetProcessHeap(), 0, temp3); - HeapFree(GetProcessHeap(), 0, temp4); return success; }