Skip to content

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

License

Notifications You must be signed in to change notification settings

rhecs/chatlog_alpha

 
 

Repository files navigation

chatlog_alpha

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

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

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

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

项目概述

这是一个微信聊天记录解密工具,支持Windows平台(macOS目前支持有限)。工具通过注入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. 程序会提示 "正在进行第 X 轮内存扫描... 请打开任意图片"。
  4. 此时在微信中打开任意一张聊天图片(触发密钥加载)。
  5. 程序会自动捕获内存中的图片密钥并返回。

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

使用说明

界面操作

程序启动后会出现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),如果未登录或无缓存将自动等待。

临时账户管理

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

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

配置说明

配置文件

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

重要提示

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

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

  3. V4 图片密钥: 对于微信 V4,图片密钥获取需要用户配合打开图片。如果长时间未获取,请检查是否打开了图片。

更新日志

2025年12月16日

  • 自动解密机制优化
    • 增加开启前预检:开启自动解密前会自动运行一次解密测试,失败则禁止开启。
    • 增加故障自动熔断:运行过程中若解密失败(如密钥失效),会自动停止服务并弹窗提示,防止错误循环。
  • UI 交互增强
    • 底部状态栏增加最新消息预览:实时显示最新一条消息的发送人、时间及内容摘要。
    • 优化发送人显示逻辑:昵称缺失时自动降级显示账号 ID。
  • 修复
    • 修复批量解密时即便所有文件失败仍提示成功的 Bug。

2025年12月15日

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

2025年12月14日

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

文件结构

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 81.6%
  • C++ 13.7%
  • HTML 3.6%
  • C 0.4%
  • Shell 0.3%
  • Makefile 0.2%
  • Dockerfile 0.2%