From dc80d2ccdcd753f5b8d6a85baec6b4469389b46a Mon Sep 17 00:00:00 2001 From: aaqwq <172821606+weasUXL@users.noreply.github.com> Date: Mon, 10 Feb 2025 16:47:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E8=A7=A3=E6=9E=90=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...07\344\273\266\345\210\206\346\236\220.md" | 31 ++++----- .../data_line_msg_fts.db.md" | 13 ---- .../emoji.db.md" | 57 ++++++++++++++++ .../group_info.db.md" | 21 +++--- ...27\346\256\265\345\220\253\344\271\211.md" | 68 +++++++++---------- 5 files changed, 117 insertions(+), 73 deletions(-) delete mode 100644 "docs/plan/3.db\346\226\207\344\273\266\345\210\206\346\236\220/data_line_msg_fts.db.md" create mode 100644 "docs/plan/3.db\346\226\207\344\273\266\345\210\206\346\236\220/emoji.db.md" diff --git "a/docs/plan/1.db\346\226\207\344\273\266\345\210\206\346\236\220.md" "b/docs/plan/1.db\346\226\207\344\273\266\345\210\206\346\236\220.md" index b6236ec..fafe729 100644 --- "a/docs/plan/1.db\346\226\207\344\273\266\345\210\206\346\236\220.md" +++ "b/docs/plan/1.db\346\226\207\344\273\266\345\210\206\346\236\220.md" @@ -10,30 +10,29 @@ description: db文件分析 | ------------ | ------------------------------------------------------------ | -------------------------------------------- | | 🤔 | nt_msg.db | 聊天数据文件 | | 🤔 | profile_info.db | 联系人信息 | -| 🤔 | buddy_msg_fts.db | (疑似部分临时会话信息) | -| 🤔 | rich_media.db | (群聊或私聊发送/接收的文件信息,有待分析) | -| ✔ | data_line_msg_fts.db | (推测为我的设备接收文件信息) | -| 🤔 | files_in_chat.db | (暂时未解析出信息含义) | +| 🤔 | rich_media.db | 群聊或私聊发送/接收的文件信息存贮路径 | +| 🤔 | files_in_chat.db | 媒体文件信息(包括下载的图片视频路径) | | 🤔 | recent_contact.db | (推测为黑名单,待测试) | -| ❓ | gpro_v1-6_u_******.db | (由于暂未实现数据库解密无法分析) | -| 🤔 | group_info.db | | -| 🤔 | group_msg_fts.db | | -| 🤔 | guild_msg.db | | -| ✔ | ~~discuss_msg_fts.db~~ | (文件中未发现有效聊天信息) | -| ✔ | ~~file_assistant.db~~ | (文件中未发现有效信息) | -| ✔ | ~~collection.db~~ | (文件中未发现有效信息) | -| ✔ | ~~misc.db~~ | (文件中未发现有效聊天信息) | -| ✔ | ~~msg_fts.db~~ | (文件中未发现有效聊天信息) | +| ❓ | gpro_v1-6_{nt_uid}.db | (由于暂未实现数据库解密无法分析) | +| 🤔 | group_info.db | 群聊信息(包含群头像,群成员等) | +| 🤔 | guild_msg.db | 频道聊天数据 | +| 🤔 | collection.db | QQ收藏数据 | +| 🤔 | file_assistant.db | 已下载文件存放数据 | +| 🤔 | misc.db | 见下表 | +| ✔ | emoji.db | (存贮QQ表情包的数据库) | +| ✔ | group_msg_fts.db | 本地搜索使用的数据库 | +| ✔ | data_line_msg_fts.db| 本地搜索使用的数据库 | +| ✔ | buddy_msg_fts.db | 本地搜索使用的数据库 | +| ✔ | discuss_msg_fts.db | 本地搜索使用的数据库 | +| ✔ | msg_fts.db | 本地搜索使用的数据库 | | ✔ | ~~rdelivery.db~~ | (文件中未发现有效信息) | -| ✔ | ~~emoji.db~~ | (疑似存贮QQ热门表情包的数据库,不再分析) | | ✔ | ~~settings.db~~ | (无法理解的设置信息,有效信息很少,不再分析) | | ✔ | ~~yffm.db~~ | (文件中未发现有效信息) | # 注: - ~~已被删除~~是在本人数据库中未发现具有有效数据的,因此后续不再探查实际意义 + ~~已被删除~~是在本人数据库中未发现有意义的数据,因此后续不再探查 蓝色字体是存在有效信息的数据库,有待继续分析 的是已完成对表名的分析(列名会单独重开分析) 当然如果你发现你号对应的db中含有有价值的数据也欢迎提出,再分析……( - diff --git "a/docs/plan/3.db\346\226\207\344\273\266\345\210\206\346\236\220/data_line_msg_fts.db.md" "b/docs/plan/3.db\346\226\207\344\273\266\345\210\206\346\236\220/data_line_msg_fts.db.md" deleted file mode 100644 index 84dd50a..0000000 --- "a/docs/plan/3.db\346\226\207\344\273\266\345\210\206\346\236\220/data_line_msg_fts.db.md" +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: data_line_msg_fts.db -description: data_line_msg_fts.db分析…… ---- - -# data_line_msg_fts.db - -| data_line_msg_fts.db | | | -| ---------------------------------- | ----------------- | -------------------- | -| 是否完成分析 | 表名 | 分析 | -| 🤔 | data_line_msg_fts | 我的设备传输文件信息 | -| 其余表名为文件id等信息不具有大价值 | | | - diff --git "a/docs/plan/3.db\346\226\207\344\273\266\345\210\206\346\236\220/emoji.db.md" "b/docs/plan/3.db\346\226\207\344\273\266\345\210\206\346\236\220/emoji.db.md" new file mode 100644 index 0000000..720f487 --- /dev/null +++ "b/docs/plan/3.db\346\226\207\344\273\266\345\210\206\346\236\220/emoji.db.md" @@ -0,0 +1,57 @@ +--- +title:emoji.db +description:emoji.db分析…… +--- + +# emoji.db +`base_sys_emoji_table`:QQ默认表情数据 +| 列名 | 含义 | 说明 | +|--------|--------------------------------|----------------------------------------------------------------------| +| 81211 | 表情ID | | +| 81212 | 表情描述(外显文字) | | +| 81218 | protobuf格式 | 为81229与81230的下载链接内容 | +| 81221 | 特殊类表情标识 | 0为正常,1为特殊 | +| 81224 | 特殊限定类表情标识 | | +| 81225 | 特殊限定类表情标识 | | +| 81226 | EmojiType | 系统表情为1,emoji表情为2,动态可变表情为3(比如掷骰子) | +| 81266 | 表情类型说明 | | +| 81229 | 静态图片下载地址 | | +| 81230 | APNG图片下载地址 | emoji 表情没有此链接 | + +`bottom_emoji_table`:protobuf格式,包含该账号下已收藏的原创表情数据 + +`emoji_config_storage_table`:QQ系统表情数据 + +`emoji_group_table`:包含表情ID说明(如 超级表情0-16) + +`emoji_misc_data_table`:QQ默认表情下载地址 + +`fav_emoji_info_storage_table`:QQ收藏表情数据 + +| 列名 | 含义 | 说明 | +|--------|--------------------------------|----------------------------------------------------------------------| +| 80002 | 文件名 | 格式为`{uin}_0_0_0_{MD5}}_0_0` | +| 80001 | 表情排序 | 倒序,即最新的收藏表情序号为0 | +| 1002 | 收藏用户uin | | +| 80012 | 本地存贮路径 | | +| 80010 | 下载地址 | 格式为`hxxps://p.qpic.cn/qq_expression/{1002}/{8002}/0` | +| 80011 | 表情MD5 | 32位大写 | +| 80213 | 是否为原创表情 | 0为否,1为是 | +| 80201 | 原创表情标识符 | 当80213为1时,显示为对应原创表情的标识符 | +| 80202 | 原创表情包ID | 当80213为1时,显示对应原创表情包ID | +| 80223 | 表情备注 | | +| 80225 | 表情备注 | | + +`market_emoticon_package_table`:原创表情市场 +| 列名 | 含义 | 说明 | +| ------ | -------- | ----------------------------------------------------------------------------------- | +| 80943 | 原创表情 ID | 知道 ID 可在 ../{uin}/nt_qq/nt_data/Emoji/marketface/{ID} 找到已缓存的原创表情包 | +| 80947 | 原创表情包名字 | | +| 80948 | 表情包说明 | | +`market_emoticon_table` +| 列名 | 含义 | 说明 | +| ------ | ---------- | ---------------------------------------------- | +| 80920 | 表情标识符 | | +| 80943 | 原创表情包 ID | | +| 80921 | 表情描述 | 外显文字 | + diff --git "a/docs/plan/3.db\346\226\207\344\273\266\345\210\206\346\236\220/group_info.db.md" "b/docs/plan/3.db\346\226\207\344\273\266\345\210\206\346\236\220/group_info.db.md" index ee6ca42..2ddca45 100644 --- "a/docs/plan/3.db\346\226\207\344\273\266\345\210\206\346\236\220/group_info.db.md" +++ "b/docs/plan/3.db\346\226\207\344\273\266\345\210\206\346\236\220/group_info.db.md" @@ -4,13 +4,14 @@ description: group_info.db分析…… --- # group_info.db -| | group_info.db | | -| -------- | ------------------------------- | ---------------------------------------------------------- | -| 完成解析 | 表名 | 分析 | -| 🤔 | group_avatar | 据名称推断是群头像,未经验证 | -| 🤔 | group_bulletin | 疑似群公告,未经验证 | -| 🤔 | group_detail_info_ver1 | 这里发现了群公告实际内容(据测试,QQ并不会将完整公告内容) | -| 🤔 | group_detail_info_ver1_fts_data | 未推断出实际意义 | -| 🤔 | group_list | 群聊名称列表,包含群名称,群号,更多数据有待解析…… | -| 🤔 | group_member3 | 推测为群成员信息,包括群昵称,QQ号,QQ昵称等信息 | -| 🤔 | group_tab_1 | 推断为群火苗信息 | \ No newline at end of file +| | group_info.db | | +| -------- | ---------------------- | -------------------------------------------------- | +| 完成解析 | 表名 | 分析 | +| 🤔 | group_avatar | 据名称推断是群头像,未经验证 | +| ✅ | group_bulletin | 完整的群公告信息 | +| ✅ | group_essence | 群精华消息 | +| ✅ | group_detail_info_ver1 | 这里发现了群公告部分内容(应该是用于外显的) | +| 🤔 | group_list | 群聊名称列表,包含群名称,群号,更多数据有待解析…… | +| 🤔 | group_member3 | 推测为群成员信息,包括群昵称,QQ号,QQ昵称等信息 | +| 🤔 | group_tab_1 | 推断为群火苗信息 | + diff --git "a/docs/view/\345\255\227\346\256\265\345\220\253\344\271\211.md" "b/docs/view/\345\255\227\346\256\265\345\220\253\344\271\211.md" index 0523e0f..74785bb 100644 --- "a/docs/view/\345\255\227\346\256\265\345\220\253\344\271\211.md" +++ "b/docs/view/\345\255\227\346\256\265\345\220\253\344\271\211.md" @@ -12,21 +12,21 @@ description: 主要是nt_msg下私聊和群聊的部分消息定义 群聊数据 `group_msg_table` 表中的部分列含义如下: -| 列名 | 类型 | 含义 | 说明 | -| ----- | ----- | -------- | ---------------------------------------------------------------- | -| 40001 | int | 消息 ID | | -| 40003 | int | 消息序号 | 在每个群聊中依次递增 | -| 40021 | str | 群号 | | -| 40027 | int | 群号 | | -| 40030 | int | 群号 | QQNT 保存的群号 | -| 40033 | int | 发送者 QQ 号 | QQNT 保存发送者 QQ 号 | -| 40050 | int | 时间 | 时间戳 | -| 40058 | int | 日期 | 当日 0 时整的时间戳格式,时区为 GMT+0800 | -| 40090 | str | 发送者群名片 | 旧版 QQ 迁移数据中格式为 `name(12345)` 或 `name`, QQNT 中为群名片 | -| 40093 | str | 发送者昵称 | 旧版 QQ 此字段为空,QQNT 中未设置群名片时才有此字段 | -| 40600 | bytes | 撤回状态 | protobuf 格式 | -| 40800 | bytes | 消息内容 | protobuf 格式 | -| 40850 | int | 回复消息序号 | 该消息所回复的消息的序号 | +| 列名 | 类型 | 含义 | 说明 | +| ----- | ----- | ------------ | ------------------------------------------------------------ | +| 40001 | int | 消息 ID | | +| 40003 | int | 消息序号 | 在每个群聊中依次递增 | +| 40021 | str | 群号 | | +| 40027 | int | 群号 | | +| 40030 | int | 群号 | QQNT 保存的群号 | +| 40033 | int | 发送者 QQ 号 | QQNT 保存发送者 QQ 号 | +| 40050 | int | 时间 | 时间戳 | +| 40058 | int | 日期 | 当日 0 时整的时间戳格式,时区为 GMT+0800 | +| 40090 | str | 发送者群名片 | 旧版 QQ 迁移数据中格式为 `name(12345)` 或 `name`, QQNT 中为群名片 | +| 40093 | str | 发送者昵称 | 旧版 QQ 此字段为空,QQNT 中未设置群名片时才有此字段 | +| 40600 | bytes | 撤回状态 | protobuf 格式 | +| 40800 | bytes | 消息内容 | protobuf 格式或 protobuf array | +| 40850 | int | 回复消息序号 | 该消息所回复的消息的序号 | 私聊数据 `c2c_msg_table` 表中的部分列含义如下: @@ -49,25 +49,25 @@ description: 主要是nt_msg下私聊和群聊的部分消息定义 消息段(48000)的部分字段含义如下: -| Field Number | 类型 | 含义 | 说明 | -| ------------ | -------- | ------------------------------- | ---------- | -| 45001 | int | 消息段 ID | | -| 45002 | int | 消息类型 | 类型较多,见另表 | -| 45101 | str | 消息文本 | 适用于文本消息 | -| 45102 | str | 图片文件名 | 适用于图片消息 | -| 45402 | str | 图片文件名 | 适用于图片消息 | -| 45411 | int | 图片宽度(压制后) | 适用于图片消息 | -| 45412 | int | 图片高度(压制后) | 适用于图片消息 | -| 45812 | str | 本地缓存目录 | 适用于图片消息 | -| 45815 | str | 替代文本,如 "[动画表情]" | 适用于图片消息 | -| 47402 | int | 原消息序号 | 适用于引用消息 | -| 47403 | int | 原消息发送者 | 适用于引用消息 | -| 47404 | int | 原消息时间 | 适用于引用消息 | -| 47410 | protobuf | 格式复杂,存储原消息文本,疑似原消息过期后用以替代 47423 | 适用于引用消息 | -| 47413 | str | 显示的引用文本 | 适用于引用消息 | -| 47423 | protobuf | 引用消息段(嵌套) | 适用于引用消息 | -| 47713 | str | 撤回消息后缀 | 适用于系统撤回消息 | -| 48602 | str | XML 消息内容 | 适用于 XML 消息 | +| Field Number | 类型 | 含义 | 说明 | +| ------------ | -------- | -------------------------------------------------------- | ------------------ | +| 45001 | int | 消息段 ID | | +| 45002 | int | 消息类型 | 见下表 | +| 45101 | str | 消息文本 | 适用于文本消息 | +| 45102 | str | 图片文件名 | 适用于图片消息 | +| 45402 | str | 图片文件名 | 适用于图片消息 | +| 45411 | int | 图片宽度(压制后) | 适用于图片消息 | +| 45412 | int | 图片高度(压制后) | 适用于图片消息 | +| 45812 | str | 本地缓存目录 | 适用于图片消息 | +| 45815 | str | 替代文本,如 "[动画表情]" | 适用于图片消息 | +| 47402 | int | 原消息序号 | 适用于引用消息 | +| 47403 | int | 原消息发送者 | 适用于引用消息 | +| 47404 | int | 原消息时间 | 适用于引用消息 | +| 47410 | protobuf | 格式复杂,存储原消息文本,疑似原消息过期后用以替代 47423 | 适用于引用消息 | +| 47413 | str | 显示的引用文本 | 适用于引用消息 | +| 47423 | protobuf | 引用消息段(嵌套) | 适用于引用消息 | +| 47713 | str | 撤回消息后缀 | 适用于系统撤回消息 | +| 48602 | str | XML 消息内容 | 适用于 XML 消息 | 其中消息类型(45002)的已知消息类型与对应序号如下: