Skip to content

原 [chatlog]项目(一个微信数据库读取及提供mcp服务开源软件)的二次开发,会尽可能同步最新开源解密源码

License

Notifications You must be signed in to change notification settings

bytzhh/chatlog_alpha

 
 

Repository files navigation

chatlog_alpha

chatlog 项目的二开版本,导入自 xiaofeng2042 的分支,以防止上游删库后分支被自动删除。

未经修改的源代码在 main 分支,本人不对代码中的任何内容负责。

感谢 wx_key 项目提供的解密源码

目前测试成功微信版本:4.1.5.30

更新日志

2025年12月18日

  • MCP 扩展功能大版本更新
    • 媒体感知服务 (Media Perception)
      • 新增 get_media_content 工具:支持根据消息 ID 获取解码后的媒体文件(图片自动解密、语音转 MP3)。
      • 新增 ocr_image_message 工具:支持对特定图片消息进行视觉 OCR 解析(由模型驱动)。
    • 实时消息交互 (Real-time Interaction)
      • 新增 subscribe_new_messages 工具:允许模型通过资源更新机制订阅特定联系人或群组的实时消息流(资源路径:chatlog://realtime/{talker})。
      • 新增 send_webhook_notification 工具:允许模型在分析完成后触发外部 Webhook。
    • 社交画像与分析 (Social Insights)
      • 新增 analyze_chat_activity 工具:统计发言频率、活跃时段(带柱状图可视化模拟)。
      • 新增 get_user_profile 工具:获取详细的联系人备注、群成员、群主等背景信息。
    • 增强型提示词模板 (Prompts)
      • 内置 chat_summary_daily(每日摘要)、conflict_detector(情绪冲突检测)、relationship_milestones(关系里程碑)模板。
    • 跨应用检索
      • 新增 search_shared_files 工具:专项搜索聊天记录中发送的共享文件元数据。
  • 系统底层优化
    • 唯一消息 ID 系统:引入 (timestamp * 1000000 + local_id) 算法,彻底解决多媒体消息在同一秒内发送导致的 ID 冲突问题。
    • 多格式适配:PlainText、CSV、JSON 均已同步支持显示唯一的 MessageID (seq)。
    • 文本清理:优化聊天记录输出,简化图片、语音、视频消息的显示标签(例如 [图片]),使模型处理更高效。

2025年12月16日

  • 自动解密机制优化
    • 增加开启前预检:开启自动解密前会自动运行一次解密测试,失败则禁止开启。
    • 增加故障自动熔断:运行过程中若解密失败(如密钥失效),会自动停止服务并弹窗提示,防止错误循环。
  • UI 交互增强
    • 底部状态栏增加最新消息预览:实时显示最新一条消息的发送人、时间及内容摘要。
    • 优化发送人显示逻辑:昵称缺失时自动降级显示账号 ID。
  • 修复
    • 修复批量解密时即便所有文件失败仍提示成功的 Bug。
    • 修复图片密钥获取在样本未就绪/选到不匹配备用样本时“扫描很多轮仍无法获取”的问题:改为等待 *_t.dat 就绪后再开始扫描。

2025年12月15日

  • 重构密钥获取逻辑:实现 Data Key (DLL) 和 Image Key (原生扫描) 的职责分离与并行执行。
  • 优化图片密钥获取:适配 Dart 版逻辑,支持 60 秒轮询等待,允许用户后置操作(打开图片)。
  • 修复与优化:修复未登录时扫描崩溃问题;增加详细的扫描日志;优化 UI 菜单交互。
  • 暂停 V3 支持:集中资源优化 V4 体验。

2025年12月14日

  • 优化临时账户名称管理。
  • 改进微信进程状态监控逻辑。

项目概述

这是一个微信聊天记录解密工具,当前仅支持 Windows 平台。工具通过注入DLL或内存扫描的方式获取微信数据库密钥,然后解密微信聊天数据库文件。

注意:当前版本已移除对微信 3.x 版本的支持,仅支持微信 4.x。

主要功能

  • 密钥获取
    • 数据库密钥 (Data Key):通过 DLL 注入 (wx_key.dll) 高效获取。
    • 图片密钥 (Image Key):通过原生内存特征扫描获取,无需 DLL 支持(适配 img-key.dart 逻辑)。
  • 并行获取:支持同时并行获取两种密钥,提高效率。
  • 数据库解密:解密微信加密的SQLite数据库文件。
  • 图片解密:解密微信加密的图片文件(需要图片密钥)。
  • 自动监控:监控微信数据目录,自动解密新增数据。
  • HTTP服务:提供本地HTTP服务,支持MCP协议。

完整使用逻辑

获取数据密钥 (Data Key)

  1. 启动 chatlog_alpha.exe
  2. 启动微信(先不要点击登录)。
  3. 等待 chatlog 识别到微信进程 PID。
  4. 点击微信登录。
  5. 程序通过 DLL 自动捕获数据密钥。

获取图片密钥 (Image Key)

  1. 确保微信已登录。
  2. 在 chatlog 主界面选择 "获取图片密钥" 选项。
  3. 程序会先等待图片验证样本就绪(需要微信生成缩略图缓存文件 *_t.dat)。
  4. 在微信中打开任意一张聊天图片(触发缓存/密钥相关数据生成)。
  5. *_t.dat 生成后,程序会提示 "正在进行第 X 轮内存扫描... 请打开任意图片" 并开始扫描。
  6. 程序自动捕获内存中的图片密钥并返回。

说明:不需要“很快”打开图片;只要最终打开过图片让 *_t.dat 生成,程序就能稳定获取图片密钥。

注:解密数据操作会自动尝试获取两种密钥。

使用说明

界面操作

程序启动后会出现TUI界面,主要功能包括:

  1. 获取图片密钥:专门用于扫描内存获取图片密钥(需微信V4)。
  2. 重启并获取密钥:结束当前微信进程,重启后尝试获取密钥。
  3. 解密数据:一键解密数据库(包含自动获取 Data Key 的逻辑)。
  4. 启动HTTP服务:启动本地HTTP & MCP服务器。
  5. 开启自动解密:监控数据目录,自动解密新增数据。
  6. 设置:配置应用程序选项。
  7. 切换账号:切换当前操作的账号。
  8. 退出:退出程序。

密钥获取机制详解

  1. Data Key (DLL 模式)

    • 依赖 wx_key.dll
    • 通过 Hook 微信关键函数获取。
    • 推荐在微信启动/登录阶段获取。
  2. Image Key (原生扫描模式)

    • 不依赖 DLL,使用 Go 原生代码实现。
    • 采用暴力内存扫描 + 特征匹配(32字节字母数字串)+ 验证(AES解密缩略图头)。
    • 交互式获取:支持长达 60 秒的轮询等待,允许用户在点击按钮后从容打开图片。
    • 关键依赖:验证必须使用缩略图缓存样本 *_t.dat(由“打开聊天图片”触发生成)。样本未就绪时会持续等待提示,而不会进行无效扫描。
    • 稳定性说明:为避免选到不匹配的备用 .dat 样本导致“扫描很多轮仍失败”,当前仅在检测到 *_t.dat 后才认为图片验证就绪并开始扫描。

临时账户管理

程序支持临时账户管理,当微信未登录或重启时:

  • 临时账户名称:格式为 未登录微信_PID
  • 状态监控:实时监控微信进程状态变化。
  • 自动切换:微信登录后自动切换为真实账户名称。

配置说明

配置文件

配置文件位于用户目录下的 .chatlog/config.json

重要提示

  1. ffmpeg依赖: 对dat转换一定要安装ffmpeg,并且在系统变量设置bin目录的path,否则会显式报错。

  2. 权限: 程序需要管理员权限来读取微信进程内存。

  3. V4 图片密钥: 对于微信 V4,图片密钥获取需要用户配合打开图片以生成 *_t.dat。如果长时间未获取,请检查:

    • 微信是否已登录成功(不能停留在登录界面)
    • 是否打开过任意聊天图片(触发生成 *_t.dat

文件结构

chatlog_alpha/
├── main.go                    # 程序入口
├── internal/
│   ├── chatlog/              # 聊天记录处理核心
│   ├── wechat/               # 微信相关功能
│   │   ├── wechat.go         # 账号管理与密钥获取入口
│   │   ├── key/              # 密钥提取器 (DLL & Native)
│   │   │   ├── windows/      # Windows 实现 (v4_windows.go, dll_extractor.go)
│   │   ├── decrypt/          # 解密器
│   │   └── process/          # 进程检测
│   └── ui/                   # 用户界面组件
├── pkg/
│   ├── util/                 # 工具函数 (dat2img 等)
├── lib/
│   └── windows_x64/          # wx_key.dll

许可证

本项目基于原chatlog项目,具体许可证信息请参考原项目。

免责声明

本项目仅供学习和研究使用,请勿用于非法用途。使用本工具产生的任何后果由使用者自行承担。

About

原 [chatlog]项目(一个微信数据库读取及提供mcp服务开源软件)的二次开发,会尽可能同步最新开源解密源码

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 94.8%
  • HTML 4.5%
  • Other 0.7%