3.9.0.28版本数据库和群相关功能

This commit is contained in:
hugy 2023-02-10 15:52:55 +08:00
parent e563710f80
commit 7be2903dd2
6 changed files with 88 additions and 88 deletions

View File

@ -109,20 +109,20 @@ vcpkg
6.发送文件
9.hook消息
10.取消hook消息
~~11.hook图片~~
~~12.取消hook图片~~
11.hook图片
12.取消hook图片
~~17.删除好友~~
~~25.获取群成员~~
~~27.删除群成员~~
~~28.增加群成员~~
~~31.修改群昵称~~
~~32.获取数据库句柄~~
~~34.查询数据库~~
~~40.转发消息~~
25.获取群成员
27.删除群成员
28.增加群成员
31.修改群昵称
32.获取数据库句柄
34.查询数据库
40.转发消息
44.退出登录
~~45.确认收款~~
46.联系人列表
~~47.获取群详情~~
47.获取群详情
48.获取解密图片
~~49.图片提取文字ocr~~
~~50.拍一拍~~
@ -226,7 +226,7 @@ vcpkg
###### 请求参数
|参数|必选|类型|说明|
|---|---|---|---|
|wxid |ture |string| 接收人wxid |
|wxid |true |string| 接收人wxid |
|msg|true |string|消息文本内容|
###### 返回字段
@ -265,7 +265,7 @@ vcpkg
###### 请求参数
|参数|必选|类型|说明|
|---|---|---|---|
|wxid |ture |string| 接收人wxid |
|wxid |true |string| 接收人wxid |
|imagePath|true |string|图片路径|
###### 返回字段
@ -303,7 +303,7 @@ vcpkg
###### 请求参数
|参数|必选|类型|说明|
|---|---|---|---|
|wxid |ture |string| 接收人wxid |
|wxid |true |string| 接收人wxid |
|filePath|true |string|文件路径|
###### 返回字段
@ -340,8 +340,8 @@ vcpkg
###### 请求参数
|参数|必选|类型|说明|
|---|---|---|---|
|port |ture |string| 本地服务端端口,用来接收消息内容 |
|ip |ture |string| 服务端ip地址用来接收消息内容可以是任意ip,即tcp客户端连接的服务端的ip (3.8.1.26版本)|
|port |true |string| 本地服务端端口,用来接收消息内容 |
|ip |true |string| 服务端ip地址用来接收消息内容可以是任意ip,即tcp客户端连接的服务端的ip (3.8.1.26版本)|
###### 返回字段
|返回字段|字段类型|说明 |
@ -410,7 +410,7 @@ vcpkg
###### 请求参数
|参数|必选|类型|说明|
|---|---|---|---|
|imgDir |ture |string| 图片保存的目录 |
|imgDir |true |string| 图片保存的目录 |
###### 返回字段
@ -479,7 +479,7 @@ vcpkg
###### 请求参数
|参数|必选|类型|说明|
|---|---|---|---|
|wxid |ture |string| 好友wxid |
|wxid |true |string| 好友wxid |
###### 返回字段
@ -516,7 +516,7 @@ vcpkg
###### 请求参数
|参数|必选|类型|说明|
|---|---|---|---|
|chatRoomId |ture |string| 群id |
|chatRoomId |true |string| 群id |
###### 返回字段
@ -557,8 +557,8 @@ vcpkg
###### 请求参数
|参数|必选|类型|说明|
|---|---|---|---|
|chatRoomId |ture |string| 群id |
|memberIds |ture |string| 成员id以,分割 |
|chatRoomId |true |string| 群id |
|memberIds |true |string| 成员id以,分割 |
###### 返回字段
@ -596,8 +596,8 @@ vcpkg
###### 请求参数
|参数|必选|类型|说明|
|---|---|---|---|
|chatRoomId |ture |string| 群id |
|memberIds |ture |string| 成员id以,分割 |
|chatRoomId |true |string| 群id |
|memberIds |true |string| 成员id以,分割 |
###### 返回字段
@ -634,9 +634,9 @@ vcpkg
###### 请求参数
|参数|必选|类型|说明|
|---|---|---|---|
|chatRoomId |ture |string| 群id |
|wxid |ture |string| 自己的id只能修改自己的群名片 |
|nickName |ture |string| 修改的昵称 |
|chatRoomId |true |string| 群id |
|wxid |true |string| 自己的id只能修改自己的群名片 |
|nickName |true |string| 修改的昵称 |
###### 返回字段
|返回字段|字段类型|说明 |
@ -733,8 +733,8 @@ vcpkg
###### 请求参数
|参数|必选|类型|说明|
|---|---|---|---|
|dbHandle |ture |int| 句柄 |
|sql |ture |string| sql语句 |
|dbHandle |true |int| 句柄 |
|sql |true |string| sql语句 |
###### 返回字段
@ -773,8 +773,8 @@ vcpkg
###### 请求参数
|参数|必选|类型|说明|
|---|---|---|---|
|wxid |ture |string| 消息接收人wxid |
|msgid |ture |number| 消息idhook消息接口中返回的消息id |
|wxid |true |string| 消息接收人wxid |
|msgid |true |number| 消息idhook消息接口中返回的消息id |
###### 返回字段
@ -931,7 +931,7 @@ vcpkg
###### 请求参数
|参数|必选|类型|说明|
|---|---|---|---|
|chatRoomId |ture |string| 群id |
|chatRoomId |true |string| 群id |
###### 返回字段
|返回字段|字段类型|说明 |
@ -974,8 +974,8 @@ vcpkg
###### 请求参数
|参数|必选|类型|说明|
|---|---|---|---|
|imagePath |ture |string| 图片路径 |
|savePath |ture |string| 保存路径 |
|imagePath |true |string| 图片路径 |
|savePath |true |string| 保存路径 |
###### 返回字段
|返回字段|字段类型|说明 |
@ -1014,7 +1014,7 @@ vcpkg
###### 请求参数
|参数|必选|类型|说明|
|---|---|---|---|
|imagePath |ture |string| 图片路径 |
|imagePath |true |string| 图片路径 |
###### 返回字段
|返回字段|字段类型|说明 |
@ -1037,8 +1037,8 @@ vcpkg
###### 请求参数
|参数|必选|类型|说明|
|---|---|---|---|
|chatRoomId |ture |string| 微信群聊id |
|wxid |ture |string| 要拍的用户wxid如果使用用户自定义的微信号则不会显示群内昵称 |
|chatRoomId |true |string| 微信群聊id |
|wxid |true |string| 要拍的用户wxid如果使用用户自定义的微信号则不会显示群内昵称 |
###### 返回字段
|返回字段|字段类型|说明 |
|---|---|---|
@ -1075,8 +1075,8 @@ vcpkg
###### 请求参数
|参数|必选|类型|说明|
|---|---|---|---|
|wxid |ture |string| 置顶消息的发送人wxid |
|msgid |ture |string| 消息id |
|wxid |true |string| 置顶消息的发送人wxid |
|msgid |true |string| 消息id |
###### 返回字段
|返回字段|字段类型|说明 |
|---|---|---|
@ -1113,8 +1113,8 @@ vcpkg
###### 请求参数
|参数|必选|类型|说明|
|---|---|---|---|
|chatRoomId |ture |string| 微信群聊id |
|msgid |ture |string| 消息id |
|chatRoomId |true |string| 微信群聊id |
|msgid |true |string| 消息id |
###### 返回字段
|返回字段|字段类型|说明 |
|---|---|---|
@ -1215,7 +1215,7 @@ vcpkg
###### 请求参数
|参数|必选|类型|说明|
|---|---|---|---|
|snsId |ture |string| 朋友圈的snsId |
|snsId |true |string| 朋友圈的snsId |

View File

@ -7,21 +7,21 @@
#include "base64.h"
using namespace std;
#define WX_CHAT_ROOM_MGR_OFFSET 0x67ee70
#define WX_GET_CHAT_ROOM_DETAIL_INFO_OFFSET 0xa73a80
#define WX_NEW_CHAT_ROOM_INFO_OFFSET 0xd07010
#define WX_FREE_CHAT_ROOM_INFO_OFFSET 0xd072f0
#define WX_DEL_CHAT_ROOM_MEMBER_OFFSET 0xa69a50
#define WX_INIT_CHAT_MSG_OFFSET 0xdbf380
#define WX_FREE_CHAT_MSG_OFFSET 0x649ac0
#define WX_ADD_MEMBER_TO_CHAT_ROOM_OFFSET 0xa69560
#define WX_GET_MEMBER_FROM_CHAT_ROOM_OFFSET 0xa749b0
#define WX_INIT_CHAT_ROOM_OFFSET 0xd04d80
#define WX_FREE_CHAT_ROOM_OFFSET 0xa7c620
#define WX_MOD_CHAT_ROOM_MEMBER_NICK_NAME_OFFSET 0xa6f8f0
#define WX_NEW_CHAT_MSG_OFFSET 0x64adc0
#define WX_TOP_MSG_OFFSET 0xa76e60
#define WX_REMOVE_TOP_MSG_OFFSET 0xa76c50
#define WX_CHAT_ROOM_MGR_OFFSET 0x72cf60
#define WX_GET_CHAT_ROOM_DETAIL_INFO_OFFSET 0xb6f260
#define WX_NEW_CHAT_ROOM_INFO_OFFSET 0xe15de0
#define WX_FREE_CHAT_ROOM_INFO_OFFSET 0xe160b0
#define WX_DEL_CHAT_ROOM_MEMBER_OFFSET 0xb64180
#define WX_INIT_CHAT_MSG_OFFSET 0xed3be0
#define WX_ADD_MEMBER_TO_CHAT_ROOM_OFFSET 0xb63c50
#define WX_GET_MEMBER_FROM_CHAT_ROOM_OFFSET 0xB70260
#define WX_INIT_CHAT_ROOM_OFFSET 0xe13b30
#define WX_FREE_CHAT_ROOM_OFFSET 0xe13d50
#define WX_MOD_CHAT_ROOM_MEMBER_NICK_NAME_OFFSET 0xb6adf0
#define WX_NEW_CHAT_MSG_OFFSET 0x70e2a0
#define WX_FREE_CHAT_MSG_OFFSET 0x6f4ea0
#define WX_TOP_MSG_OFFSET 0xb727e0
#define WX_REMOVE_TOP_MSG_OFFSET 0xb725a0
int GetChatRoomDetailInfo(wchar_t* chat_room_id, ChatRoomInfoInner& room_info) {
int success = 0;
@ -182,8 +182,8 @@ int AddMemberToChatRoom(wchar_t* chat_room_id, wchar_t** wxids,int len){
int GetMemberFromChatRoom(wchar_t* chat_room_id,ChatRoomInner & out){
int success = 0;
WeChatString chat_room(chat_room_id);
DWORD chat_room_ptr = (DWORD) &chat_room;
WeChatString chat_room(chat_room_id);
DWORD chat_room_ptr = (DWORD) &chat_room;
char buffer[0x1D4] = {0};
DWORD base = GetWeChatWinBase();
DWORD get_member_addr = base + WX_GET_MEMBER_FROM_CHAT_ROOM_OFFSET;
@ -261,12 +261,12 @@ int ModChatRoomMemberNickName(wchar_t* chat_room_id,wchar_t* wxid,wchar_t * nick
int SetTopMsg(wchar_t* wxid,ULONG64 msg_id){
int success = -1;
char chat_msg[0x2A8] ={0};
char chat_msg[0x2C4] ={0};
DWORD base = GetWeChatWinBase();
DWORD new_chat_msg_addr = base + WX_NEW_CHAT_MSG_OFFSET;
DWORD get_chat_room_mgr_addr = base + WX_CHAT_ROOM_MGR_OFFSET;
DWORD handle_top_msg_addr = base + WX_TOP_MSG_OFFSET;
DWORD free_addr = base + WX_FREE_CHAT_ROOM_OFFSET;
DWORD free_addr = base + WX_FREE_CHAT_MSG_OFFSET;
vector<string> local_msg = GetChatMsgByMsgId(msg_id);
if(local_msg.empty()){
return -2;

View File

@ -4,8 +4,8 @@
#include "common.h"
#include "get_db_handle.h"
#include "wechat_data.h"
#define WX_FORWARD_MSG_OFFSET 0xb6a4e0
#define WX_INIT_CHAT_MSG_OFFSET 0xdbf380
#define WX_FORWARD_MSG_OFFSET 0xc715f0
#define WX_INIT_CHAT_MSG_OFFSET 0xed3be0
int ForwardMsg(wchar_t *wxid, unsigned long long msgid) {
int success = 0;

View File

@ -5,7 +5,7 @@
#include "new_sqlite3.h"
#include "pch.h"
#include "wechat_data.h"
#define CONTACT_G_PINSTANCE 0x2c42e78
#define CONTACT_G_PINSTANCE_OFFSET 0x2e2d628
#define DB_MICRO_MSG_OFFSET 0x68
#define DB_CHAT_MSG_OFFSET 0x1C0
#define DB_MISC_OFFSET 0x3D8
@ -15,10 +15,10 @@
#define DB_FUNCTION_MSG_OFFSET 0x11B0
#define DB_NAME_OFFSET 0x14
#define PUBLIC_MSG_MGR_OFFSET 0x2c7ec88
#define MULTI_DB_MSG_MGR_OFFSET 0x2c807d0
#define FAVORITE_STORAGE_MGR_OFFSET 0x2c801f8
#define FTS_FAVORITE_MGR_OFFSET 0x2c439b8
#define PUBLIC_MSG_MGR_OFFSET 0x2e6ce20
#define MULTI_DB_MSG_MGR_OFFSET 0x2e6ec84
#define FAVORITE_STORAGE_MGR_OFFSET 0x2e6e630
#define FTS_FAVORITE_MGR_OFFSET 0x2e2e168
using namespace std;
map<wstring, DatabaseInfo> dbmap;
@ -64,7 +64,7 @@ std::vector<void *> GetDbHandles() {
dbs.clear();
dbmap.clear();
DWORD base = GetWeChatWinBase();
DWORD p_contact_addr = *(DWORD *)(base + CONTACT_G_PINSTANCE);
DWORD p_contact_addr = *(DWORD *)(base + CONTACT_G_PINSTANCE_OFFSET);
DWORD micro_msg_db_addr = *(DWORD *)(p_contact_addr + DB_MICRO_MSG_OFFSET);
DWORD chat_msg_db_addr = *(DWORD *)(p_contact_addr + DB_CHAT_MSG_OFFSET);
DWORD misc_db_addr = *(DWORD *)(p_contact_addr + DB_MISC_OFFSET);

View File

@ -6,9 +6,9 @@ using namespace std;
// #define WX_HOOK_IMG_OFFSET 0xd7eaa5
// #define WX_HOOK_IMG_NEXT_OFFSET 0xda56e0
#define WX_HOOK_IMG_OFFSET 0xc672cc
#define WX_HOOK_IMG_NEXT_OFFSET 0xd82370
#define WX_SELF_ID_OFFSET 0x2C42A38
#define WX_HOOK_IMG_OFFSET 0xd723dc
#define WX_HOOK_IMG_NEXT_OFFSET 0xe91d90
#define WX_SELF_ID_OFFSET 0x2E2CD3C
#define BUFSIZE 1024
#define JPEG0 0xFF

View File

@ -135,24 +135,24 @@
#define SQLITE_NULL 5
#define SQLITE_TEXT 3
#define SQLITE3_EXEC_OFFSET 0x1ba9de0
#define SQLITE3_BACKUP_INIT_OFFSET 0x1b6f760
#define SQLITE3_PREPARE_OFFSET 0x1bb0730
#define SQLITE3_OPEN_OFFSET 0x1bde730
#define SQLITE3_BACKUP_STEP_OFFSET 0x1b6fb60
#define SQLITE3_BACKUP_REMAINING_OFFSET 0x1b702a0
#define SQLITE3_BACKUP_PAGECOUNT_OFFSET 0x1b702b0
#define SQLITE3_BACKUP_FINISH_OFFSET 0x1b701a0
#define SQLITE3_SLEEP_OFFSET 0x1bdef70
#define SQLITE3_ERRCODE_OFFSET 0x1bdd3d0
#define SQLITE3_CLOSE_OFFSET 0x1bdbb20
#define SQLITE3_STEP_OFFSET 0x1b785d0
#define SQLITE3_COLUMN_COUNT_OFFSET 0x1b78ae0
#define SQLITE3_COLUMN_NAME_OFFSET 0x1b793d0
#define SQLITE3_COLUMN_TYPE_OFFSET 0x1b79270
#define SQLITE3_COLUMN_BLOB_OFFSET 0x1b78b20
#define SQLITE3_COLUMN_BYTES_OFFSET 0x1b78c00
#define SQLITE3_FINALIZE_OFFSET 0x1b775a0
#define SQLITE3_EXEC_OFFSET 0x1d5cf70
#define SQLITE3_BACKUP_INIT_OFFSET 0x1d228d0
#define SQLITE3_PREPARE_OFFSET 0x1d638c0
#define SQLITE3_OPEN_OFFSET 0x1d918b0
#define SQLITE3_BACKUP_STEP_OFFSET 0x1d22ce0
#define SQLITE3_BACKUP_REMAINING_OFFSET 0x1d23420
#define SQLITE3_BACKUP_PAGECOUNT_OFFSET 0x1d23430
#define SQLITE3_BACKUP_FINISH_OFFSET 0x1d23320
#define SQLITE3_SLEEP_OFFSET 0x1d920f0
#define SQLITE3_ERRCODE_OFFSET 0x1d90550
#define SQLITE3_CLOSE_OFFSET 0x1d8ecd0
#define SQLITE3_STEP_OFFSET 0x1d2b750
#define SQLITE3_COLUMN_COUNT_OFFSET 0x1d2bc60
#define SQLITE3_COLUMN_NAME_OFFSET 0x1d2c550
#define SQLITE3_COLUMN_TYPE_OFFSET 0x1d2c3f0
#define SQLITE3_COLUMN_BLOB_OFFSET 0x1d2bca0
#define SQLITE3_COLUMN_BYTES_OFFSET 0x1d2bd80
#define SQLITE3_FINALIZE_OFFSET 0x1d2a720
typedef int (*Sqlite3_callback)(void*, int, char**, char**);