fix: sendAppMsg update free addr

This commit is contained in:
hugy 2023-06-03 17:06:48 +08:00
parent 64a603c96b
commit d22aa9de2d
2 changed files with 46 additions and 10 deletions

View File

@ -393,9 +393,14 @@ int SendMessageMgr::SendAppletMsg(wchar_t* wxid, wchar_t* appletid){
DWORD receiver_list_ptr = (DWORD)&list->start; DWORD receiver_list_ptr = (DWORD)&list->start;
WeChatString wapplet(appletid); WeChatString wapplet(appletid);
char req[0x268]={0}; char req[0x268] = {0};
char temp[0x4] = {0}; char temp[0x4] = {0};
char buff[0x88]={0}; char buff[0x88] = {0};
DWORD flag = 0xF;
DWORD zero = 0;
WeChatStr clean;
WeChatStr app_id(c_applet_id);
__asm{ __asm{
PUSHAD PUSHAD
PUSHFD PUSHFD
@ -406,7 +411,8 @@ int SendMessageMgr::SendAppletMsg(wchar_t* wxid, wchar_t* appletid){
} }
// 0x40 gh // 0x40 gh
// 0xE8 img // 0xE8 img
memcpy(&req[0x4], &c_applet_id, sizeof(c_applet_id)); memcpy(&req[0x4], &app_id, sizeof(app_id));
__asm{ __asm{
PUSHAD PUSHAD
PUSHFD PUSHFD
@ -442,15 +448,18 @@ int SendMessageMgr::SendAppletMsg(wchar_t* wxid, wchar_t* appletid){
POPAD POPAD
} }
__asm{ // no need for WeChat to release memory
memcpy(&req[0x4], &clean, sizeof(clean));
memcpy(&req[0xC8], &zero, sizeof(zero));
memcpy(&req[0xCC], &flag, sizeof(flag));
__asm {
PUSHAD PUSHAD
PUSHFD PUSHFD
LEA ECX,req LEA ECX,req
PUSH 0x0
CALL free_share_app_msg_req_addr CALL free_share_app_msg_req_addr
POPFD POPFD
POPAD POPAD
}
return success;
} }
} // namespace wxhelper return success;
}
} // namespace wxhelperg

View File

@ -200,7 +200,8 @@
// send app msg // send app msg
#define NEW_SHARE_APP_MSG_REQ_OFFSET 0xfbae50 #define NEW_SHARE_APP_MSG_REQ_OFFSET 0xfbae50
#define FREE_SHARE_APP_MSG_REQ_OFFSET 0xfbc0d0 // #define FREE_SHARE_APP_MSG_REQ_OFFSET 0xfbc0d0
#define FREE_SHARE_APP_MSG_REQ_OFFSET 0xfbc100
#define NEW_WA_UPDATABLE_MSG_INFO_OFFSET 0x7b3d30 #define NEW_WA_UPDATABLE_MSG_INFO_OFFSET 0x7b3d30
#define FREE_WA_UPDATABLE_MSG_INFO_OFFSET 0x79d4c0 #define FREE_WA_UPDATABLE_MSG_INFO_OFFSET 0x79d4c0
#define SEND_APP_MSG_OFFSET 0xfe8e40 #define SEND_APP_MSG_OFFSET 0xfe8e40
@ -808,4 +809,30 @@ struct ContactProfile{
std::wstring nickname; std::wstring nickname;
std::wstring head_image; std::wstring head_image;
}; };
struct WeChatStr{
char * ptr;
DWORD field1;
DWORD field2;
DWORD field3;
DWORD len;
DWORD maxlen;
WeChatStr(const char* p) {
ptr = (char *)p;
field1 = 0;
field2 = 0;
field3 = 0;
len = strlen(p);
maxlen = len | 0xF;
}
WeChatStr() {
ptr = NULL;
field1 = 0;
field2 = 0;
field3 = 0;
len = 0;
maxlen = 0xF;
}
};
#endif #endif