Commit Graph

51 Commits

Author SHA1 Message Date
2977094657
d37131bf96 feat(chat): 合并转发聊天记录支持预览与弹窗查看
- appmsg(type=19) 解析为 renderType=chatHistory,并透传 recordItem(recorditem 原文)
- 修复 recorditem CDATA 内包含 <refermsg> 时误判为引用消息的问题

- 列表/导出路径统一带上 recordItem,并避免已解析的 appmsg 被二次 XML 解析覆盖
- 前端聊天页新增聊天记录卡片 + 弹窗,支持按条展示及图片/视频/引用内容预览
- 会话列表与摘要统一显示为 [聊天记录]
2026-01-01 16:30:05 +08:00
2977094657
c1712ba6dd feat(keys): 自动保存密钥并支持前端回填
- 新增 output/account_keys.json 账号密钥存储(db_key / image_xor_key / image_aes_key)
- 新增 /api/keys 查询已保存密钥;缺失时兜底从账号目录 _media_keys.json 读取图片密钥

- 数据库解密成功后按账号写入 db_key;保存图片密钥时同步写入 store(失败静默不影响主流程)
- 前端解密页进入图片密钥步骤自动回填;进入下一步/跳过时自动保存一次
2026-01-01 16:29:16 +08:00
2977094657
67358deeef improvement(chat): packed_info md5 提取优先匹配 .dat 文件名
- packed_info 同时包含多个 32hex 时,优先从形如 xxx_t.dat/.t.dat 的文件名中提取 md5;无匹配再回退到原 32hex 众数策略

- 对齐 echotrace 的选择思路,降低取错 md5 概率
2025-12-31 11:35:51 +08:00
2977094657
0349d89def fix(chat): 图片消息优先使用资源 md5 修复 _t.dat 缩略图不显示
- 图片消息(local_type=3)优先使用 message_resource.db 的资源 md5,避免 XML md5 与本地 *_t.dat 基名不一致导致 /api/chat/media/image 404

- 同步覆盖消息合并/导出/列表三处解析路径

refs #12
2025-12-31 11:34:28 +08:00
2977094657
87605c42ef fix(chat): 图片消息优先使用包含 file_id 的本地 URL
- 当服务端返回本地 /api/chat/media/image URL 时,优先使用前端拼的本地 URL(携带 file_id),提高兜底命中率
2025-12-30 11:15:44 +08:00
2977094657
23dd59ed4d fix(media): 聊天图片增加会话 attach 快速兜底定位
- get_chat_image 在 hardlink 缺失/不完整时,按会话 attach 目录快速探测 *_t.dat/*_h.dat,避免默认 deep_scan=0 直接 404 造成破图

- md5 参数非 32 位时自动按 file_id 处理,覆盖部分版本的图片标识
2025-12-30 11:15:20 +08:00
2977094657
0894092325 feat(chat): 前端增加消息类型筛选与按类型导出
- 聊天页新增消息类型筛选下拉框(render_types)

- 导出弹窗新增“消息类型(导出内容)”多选与快捷项,并明确离线媒体不影响消息条数

- createChatExport 透传 message_types;图片本地 URL 可同时携带 md5+file_id

- 增加 message-filter-select 样式
2025-12-29 13:42:44 +08:00
2977094657
97ceed58b6 fix(chat): 修复导出 ZIP 写入冲突并支持按消息类型导出
- 修复导出时 ZIP entry 写句柄冲突(messages 先写临时文件再写入 ZIP)\n- 新增 message_types 过滤,进度/统计按所选类型计数\n- manifest.json 记录 messageTypes,避免导出含义歧义
2025-12-29 13:40:36 +08:00
2977094657
46e535dde7 perf(media): 媒体缺失查询默认快速 404(支持 deep_scan)
- image/video/video_thumb 增加 deep_scan 开关,默认避免昂贵递归扫描\n- video/video_thumb 增加常见路径快速探测,减少切换筛选时慢 404
2025-12-29 13:40:19 +08:00
2977094657
8488c1aa53 feat(chat): 会话消息列表支持按类型筛选
- /api/chat/messages 支持 render_types(逗号分隔,多类型)\n- 统一 renderType 归一化(如 redPacket -> redpacket),避免筛选命中问题
2025-12-29 13:40:02 +08:00
2977094657
69fe7fbf88 improvement(media): 提升图片/表情资源解密稳定性并自愈缓存
- 增加图片有效性校验并优化 JPEG/WebP 识别,降低 XOR 解密误判
- 图片资源按变体(b/h/c/t)与大小排序尝试多个候选,提高命中率
- 发现损坏缓存文件时自动删除并重建(单张获取与批量解密均生效)
- 表情本地解密失败时支持从 emoticon.db 安全回退下载,并支持 AES-CBC 解密
2025-12-26 21:46:07 +08:00
2977094657
761648f15a fix(chat): 解析 XML 的 cdn 链接时进行反转义
- 新增 _normalize_xml_url 统一处理 &amp; 等转义字符
- 图片/视频/表情消息的 cdn URL 解析统一规范化,避免误判为 file_id
2025-12-26 21:45:40 +08:00
2977094657
33be55bcca fix(chat): 修复发送侧表情下载按钮对齐
- 表情消息在发送方向使用反向布局,避免下载按钮位置错乱
- 下载按钮间距随发送/接收方向切换(mr-2/ml-2)
2025-12-26 21:45:16 +08:00
2977094657
c17b056701 docs(readme): 精简使用指南并补充搜索截图
- 移除字段模板/表结构文档/会话加速/图片资源解密等说明
- 增加聊天记录搜索截图并更新相关描述
2025-12-25 23:09:13 +08:00
2977094657
e7d977ae94 improvement(chat): 会话列表改用 session_last_message 缓存表
- 用 session.db::session_last_message 缓存会话最后一条消息预览,减少会话列表查询开销
- 增加缓存表构建/状态接口,列表缺失时自动补建
- 解密阶段支持自动构建,环境变量切换为 WECHAT_TOOL_BUILD_SESSION_LAST_MESSAGE
- 移除 session_preview_index 实现
2025-12-25 23:08:50 +08:00
2977094657
5a8075ca8a docs(readme): 补充索引与密钥使用说明
- 增加 session_preview.db 会话列表加速说明与开关

- 更新媒体密钥获取建议(wx_key)与相关使用提示

- 补充搜索相关截图资源
2025-12-25 20:28:44 +08:00
2977094657
ab91e5bb6e feat(chat): 前端聊天页支持消息搜索与筛选
- 新增搜索侧边栏:会话内/全局搜索、时间范围、发送者与类型筛选

- 支持搜索结果高亮与上下文定位

- 对接后端索引构建状态与错误提示
2025-12-25 20:28:12 +08:00
2977094657
fa08937ebd feat(chat): 增加消息搜索索引与会话预览索引
- 新增 chat_search_index.db:提供索引状态/构建/发送者接口

- 新增 session_preview.db:会话最新消息预览索引,支持指纹校验与过期重建

- 解密完成后默认预构建会话预览索引(WECHAT_TOOL_BUILD_SESSION_PREVIEW=0 可关闭)
2025-12-25 20:27:31 +08:00
2977094657
7a7069dcf7 improvement(media): 移除进程提取密钥并优化媒体解密
- 移除 pymem/yara-python 依赖,明确仅使用 wx_key 获取密钥

- 删除 media_key_finder.py,简化媒体密钥与资源定位逻辑

- 更新媒体接口/脚本与导出说明,避免误导进程提取能力
2025-12-25 20:26:56 +08:00
2977094657
1184dfcc33 docs(readme): 补充导出界面截图
- 在界面预览中增加导出弹窗截图
- 更新聊天记录页面说明,标明已支持离线导出
2025-12-23 20:33:01 +08:00
2977094657
0a3aad6ba3 feat(chat): 聊天页增加导出弹窗与进度展示
- 导出弹窗支持范围/格式/时间范围/媒体开关/文件名等参数
- 批量会话列表展示头像,提供 全部/群聊/单聊 tab 与搜索
- 导出进度使用 SSE 实时更新(失败回退轮询),提供进度条展示
- 支持任务取消与 ZIP 下载
- 隐私模式下导出同步隐私策略,且 hover 不再保持模糊
2025-12-23 20:26:21 +08:00
2977094657
0445889b9b feat(chat): 新增聊天记录离线导出接口
- 支持批量范围(选中/全部/群聊/单聊)与时间筛选
- 支持 json/txt 导出并打包为 zip,附带 manifest/report
- 可选打包离线媒体与头像;隐私模式下隐藏字段并禁用媒体/头像
- 提供任务查询/取消/下载与 SSE 进度事件流
- 修复导出路径名清理的正则误伤
2025-12-23 20:25:55 +08:00
2977094657
36f5067730 improvement(media): 聊天媒体支持 file_id 兜底定位
- 图片/视频消息无 MD5 时,解析并下发 file_id,用于本地资源兜底定位与展示
- 后端 chat_media/open_folder 支持 md5/file_id;视频优先可 Range 的文件响应,并在需要时解密落盘
- 前端聊天页与 API 调用适配 file_id;补充媒体 URL 可用性判断
- 解密页补充“获取密钥”提示,支持手动输入/保存密钥;README 同步说明;更新音频图标资源
2025-12-23 16:41:23 +08:00
2977094657
a4d652230f improvement(media): 优化媒体密钥提取与解密体验
- 微信进程 AES 密钥提取:支持多 PID/更多进程名,尝试启用 SeDebugPrivilege,并扩展扫描范围与可读页过滤提升成功率
- AES key 内存匹配支持 16/32 位候选,校验覆盖 JPEG/PNG/GIF/WEBP/MP4 等常见资源头
- 解密页新增 XOR/AES 密钥一键复制与反馈提示,并补充管理员运行提示
- README 更新徽章与界面预览表格,新增/更新截图资源
2025-12-22 17:07:37 +08:00
2977094657
6c04aee6ea improvement(chat): 优化会话时间显示并增强文件消息资源定位
- 会话列表时间按 今天/昨天/星期/日期/跨年 格式化

- 文件类消息在 msg/file 目录下按时间与多策略更稳健定位
2025-12-21 20:55:38 +08:00
2977094657
41a2b546b8 feat(chat): 聊天页支持可选 username 路由
- 将聊天页迁移为 pages/chat/[[username]].vue(/chat 与 /chat/:username)

- 选中会话时同步 URL,支持路由直达指定会话

- 文件消息卡片补充文件类型图标与 WeChat PC 标识资源
2025-12-21 20:54:58 +08:00
2977094657
2dc355cca7 refactor(api): 简化主入口文件为路由集成
- 将api.py从2600+行简化为25行
- 使用模块化路由替代单文件实现
- 提高代码可维护性和可扩展性
2025-12-19 16:18:20 +08:00
2977094657
8679f090ce refactor(api): 重构为模块化路由架构
- 新增routers目录,按功能划分路由模块
  - health.py: 健康检查端点
  - chat.py: 聊天会话与消息查询
  - media.py: 媒体资源解密
  - decrypt.py: 数据库解密
  - wechat_detection.py: 微信安装检测
  - chat_media.py: 聊天媒体资源访问
2025-12-19 16:17:46 +08:00
2977094657
7d911b4580 refactor(api): 提取辅助函数模块
- 新增chat_helpers.py: 聊天相关辅助函数(1064行)
- 新增media_helpers.py: 媒体处理辅助函数(1550行)
- 新增path_fix.py: 路径修复与验证功能(205行)
2025-12-19 16:17:07 +08:00
2977094657
6a35ac33f5 improvement(chat): 表情消息支持一键下载并优化渲染
useApi 增加 downloadChatEmoji,对接后端表情下载接口

聊天页识别远程表情地址并提供下载入口;下载成功后切换为本地表情 URL

修正文本混排表情的渲染结构并微调选中态颜色
2025-12-18 21:19:29 +08:00
2977094657
eaec54a517 feat(chat): 增强聊天媒体能力(表情下载/资源定位/会话预览)
新增 /api/chat/media/emoji/download,支持将表情资源下载到本地 resource

消息列表补充 emojiRemoteUrl,本地存在资源时优先返回本地 emojiUrl

open_folder 行为增强:更智能定位 emoji/资源目录,并改进 Windows Explorer 打开方式

会话列表预览改为使用 _load_latest_message_previews,提升 last message 准确性

工具脚本移除对 WxDatDecrypt 的依赖,媒体密钥提取逻辑内置到 media_key_finder

wheel 打包包含 VoipEngine.dll(Windows 解码依赖随包分发)
2025-12-18 21:19:02 +08:00
2977094657
13d2007002 chore(assets): 补充图片资源并更新致谢
- 新增 frontend/assets/images 下的微信风格图片资源

- 补充 frontend/public/image.png

- README 致谢加入 vue3-wechat-tool 项目链接
2025-12-17 17:06:59 +08:00
2977094657
ebc68de8a8 chore(tools): 添加解密与资源调试脚本
- 增加解密/资源/表情/媒体定位等调试脚本,便于本地排查与验证
2025-12-17 16:59:49 +08:00
2977094657
1583c28ebe chore(deps): 为Windows专有依赖添加平台标记
- pywin32/pymem 增加 sys_platform == 'win32' marker,避免非Windows环境安装失败

- 同步更新 uv.lock
2025-12-17 16:59:10 +08:00
2977094657
dc974b1752 improvement(chat): 优化聊天消息渲染与微信风格资源
- 转账/红包消息改为微信风格卡片展示,补充状态与金额展示

- 语音/通话等消息补充图标与交互样式,提升一致性

- 增加聊天页使用的静态资源与表情资源,并补充表情映射文件
2025-12-17 16:58:34 +08:00
2977094657
8341c3159e feat(media): 添加图片资源解密与SSE进度
- 后端新增图片解密密钥获取/保存接口(/api/media/keys)

- 新增批量解密接口与输出结构:resource/{md5前2位}/{md5}.{ext}

- 新增资源直读接口(/api/media/resource/{md5}),自动识别媒体类型返回

- 新增SSE实时进度接口(/api/media/decrypt_all_stream),前端可实时展示进度

- 前端解密页增加图片解密步骤与进度条/统计/失败说明,并对接相关API

- README 补充图片资源解密使用说明
2025-12-17 16:56:54 +08:00
2977094657
58f3c6862d chore: 更新配置和其他小改动
- 更新nuxt配置

- 优化首页样式

- 调整主程序和解密逻辑

- 添加数据库分析脚本
2025-12-14 21:25:07 +08:00
2977094657
98de7f5998 docs: 重写README并更新截图
- 移除所有emoji符号

- 界面预览移至功能特性上方

- 更新截图为PNG格式并移至前端公共目录

- 添加聊天记录页面说明(注明为基础功能)

- 添加oh-my-wechat到参考项目
2025-12-14 21:13:23 +08:00
2977094657
da85a88429 improvement(decrypt): 优化解密结果页面
- 主按钮改为查看聊天记录跳转到聊天页面

- 更换为统一风格的聊天图标
2025-12-14 21:13:06 +08:00
2977094657
482bd56faf feat(chat): 添加聊天记录查看功能
- 新增聊天记录页面,支持联系人列表和消息展示

- 支持文本、图片、语音、文件、链接等消息类型

- 添加语音消息直接播放功能(SILK转WAV)

- 添加隐私模式(模糊头像和消息内容)

- 新增pilk依赖用于语音转换
2025-12-14 21:12:54 +08:00
2977094657
a86e8f762f feat(detection): 添加当前登录账号检测功能 2025-08-19 17:10:32 +08:00
2977094657
ce06384f0a feat(README): 在 README 中加入 Star History 2025-08-12 16:06:18 +08:00
2977094657
54daffc29d feat(detection): 允许手动输入数据库路径进行检测 2025-08-12 15:58:24 +08:00
2977094657
c201bd01fb docs: 更新 README.md 添加项目进展链接 2025-08-01 22:08:25 +08:00
2977094657
a0302672d2 feat(frontend): 添加网站 Logo 和界面预览图片 2025-07-31 15:13:13 +08:00
2977094657
540a0fd823 feat(frontend): 添加前端页面 2025-07-25 20:21:26 +08:00
2977094657
0b12e31c96 fix(api): 修复解密校验逻辑 2025-07-24 18:03:38 +08:00
2977094657
701a05e041 docs(README): 更新项目开发状态和功能介绍 2025-07-20 21:28:45 +08:00
2977094657
582a813578 docs(README): 更新项目介绍 2025-07-20 18:38:13 +08:00
2977094657
8b3dec2b9d feat(detection): 改进微信账户检测逻辑 2025-07-17 22:44:56 +08:00