mirror of
https://github.com/teest114514/chatlog_alpha.git
synced 2026-03-20 17:07:50 +08:00
e4f91629f410c54607b27ed0b552b290e7a50988
Introduces a new menu item and Manager method to restart WeChat and automatically retrieve the data key. Refactors menu indices, improves context key synchronization, and allows key extraction attempts even if WeChat is offline. Also ensures saved keys are loaded for accounts and enhances robustness in command-line key retrieval.
chatlog_alpha
原 chatlog 项目的二开版本,导入自 xiaofeng2042 的分支,以防止上游删库后分支被自动删除。
未经修改的源代码在 main 分支,本人不对代码中的任何内容负责。
项目概述
这是一个微信聊天记录解密工具,支持Windows和macOS平台。工具通过注入DLL或内存扫描的方式获取微信数据库密钥,然后解密微信聊天数据库文件。
主要功能
- 密钥获取:支持DLL注入和内存扫描两种方式获取微信数据库密钥
- 数据库解密:解密微信加密的SQLite数据库文件
- 图片解密:解密微信加密的图片文件(需要图片密钥)
- 自动监控:监控微信数据目录,自动解密新增数据
- HTTP服务:提供本地HTTP服务,支持MCP协议
- 多平台支持:支持Windows和macOS
- 多版本支持:支持微信3.x和4.x版本
快速开始
1. 获取密钥DLL
获取key请前往 https://github.com/ycccccccy/wx_key
将 wx_key.dll 文件放置在 lib/windows_x64/ 目录下。
2. 编译项目
go build -o chatlog_alpha.exe main.go
3. 运行程序
./chatlog_alpha.exe
4. 完整使用逻辑
1.启动chatlog
2.启动微信(不要点击登录)
3.等待chatlog获取到pid信息时,再点击登录
4.30s后返回key,注意获取图片key还未适配,欢迎大佬提交
使用说明
界面操作
程序启动后会出现TUI界面,主要功能包括:
- 获取密钥:从微信进程获取数据库密钥和图片密钥
- 解密数据:解密微信数据文件
- 启动HTTP服务:启动本地HTTP & MCP服务器
- 开启自动解密:监控数据目录,自动解密新增数据
- 设置:配置应用程序选项
- 切换账号:切换当前操作的账号
- 退出:退出程序
密钥获取流程
-
DLL方式(推荐):
- 程序会尝试加载
wx_key.dll - 初始化DLL Hook到微信进程
- 轮询获取密钥(需要用户登录微信并查看聊天记录触发数据库读取)
- 获取成功后自动清理Hook
- 程序会尝试加载
-
原生方式(备用):
- 如果DLL不可用,使用内存扫描方式
- 在微信进程内存中搜索密钥模式
- 需要微信已登录状态
临时账户管理
程序支持临时账户管理,当微信未登录或重启时:
- 临时账户名称:格式为
未登录微信_PID,会跟随PID变化自动更新 - 状态监控:实时监控微信进程状态变化
- 自动切换:微信登录后自动切换为真实账户名称
- 数据清理:微信退出后自动清理相关数据
配置说明
重要配置项
- HTTP服务地址:默认
127.0.0.1:5030 - 工作目录:解密后文件的存储目录
- 数据目录:微信数据文件所在目录
- 数据密钥:微信数据库解密密钥
- 图片密钥:微信图片解密密钥
配置文件
配置文件位于用户目录下的 .chatlog/config.json,包含:
- 历史账号信息
- 最后使用的账号
- HTTP服务配置
- 工作目录设置
重要提示
1. ffmpeg依赖
对dat转换一定要安装ffmpeg,并且在系统变量设置bin目录的path,否则会显式报错。
2. 图片密钥格式
图片解密aes key请转为hex,如:16位aes key → 34000000386000006538323730000000
3. 使用注意事项
- 获取密钥时微信会短暂卡顿,这是正常现象
- 请确保微信已登录并打开聊天窗口查看历史消息
- 对于微信V4,图片密钥可能不是必需的
- 程序需要管理员/root权限来访问进程内存
更新日志
2025年12月14日
- 优化临时账户名称管理,跟随PID变化自动更新
- 改进微信进程状态监控逻辑
- 修复微信重启后PID不更新的问题
- 增强错误处理和用户提示
2025年12月13日
- 同步了wx_key项目相关图片解密处理逻辑
- http://127.0.0.1:5030/默认页面增加了清除图片缓存功能,方便测试
- 对ffmpeg未安装导致的dat转换失败进行显示提示
早期版本
- 实现DLL密钥获取方式
- 添加DLL日志记录功能
- 支持微信未登录状态获取PID
- 实现自动监控和解密功能
- 添加HTTP服务支持
文件结构
chatlog_alpha/
├── main.go # 程序入口
├── internal/
│ ├── chatlog/ # 聊天记录处理核心
│ │ ├── app.go # TUI应用程序
│ │ ├── ctx/ # 上下文管理
│ │ └── manager.go # 管理器
│ ├── wechat/ # 微信相关功能
│ │ ├── wechat.go # 微信账号管理
│ │ ├── key/ # 密钥提取器
│ │ ├── decrypt/ # 解密器
│ │ └── process/ # 进程检测
│ └── ui/ # 用户界面组件
├── pkg/
│ ├── util/ # 工具函数
│ └── config/ # 配置管理
├── lib/
│ └── windows_x64/ # Windows DLL文件
└── dll调用指南.md # DLL使用指南
技术实现
密钥获取机制
-
DLL注入方式:
- 使用
wx_key.dll注入Shellcode到微信进程 - 通过共享内存传递密钥数据
- 支持微信4.x版本
- 使用
-
内存扫描方式:
- 读取微信进程内存
- 搜索特定的密钥模式
- 支持微信3.x和4.x版本
进程监控
- 实时检测微信进程状态
- 支持多实例微信
- 自动处理进程重启
- 状态变化时更新UI
日志系统
- DLL操作日志保存到程序运行目录
- 详细的错误信息和调试信息
- 支持日志级别控制
常见问题
Q: 获取密钥超时怎么办?
A: 请确保:
- 微信已登录(不能停留在登录界面)
- 打开任意聊天窗口
- 向上滚动查看历史消息(触发数据库读取)
- 或者发送/接收一条新消息
Q: DLL加载失败怎么办?
A: 请检查:
wx_key.dll文件是否在lib/windows_x64/目录- 系统架构是否匹配(需要64位系统)
- 杀毒软件是否拦截了DLL加载
Q: 图片解密失败怎么办?
A: 请检查:
- 图片密钥是否正确(需要16字节的HEX字符串)
- 微信版本是否支持图片解密
- 图片文件是否完整
Q: 程序无法检测到微信进程?
A: 请检查:
- 微信是否正在运行
- 程序是否有足够的权限
- 防病毒软件是否阻止了进程访问
许可证
本项目基于原chatlog项目,具体许可证信息请参考原项目。
免责声明
本项目仅供学习和研究使用,请勿用于非法用途。使用本工具产生的任何后果由使用者自行承担。
重要:请遵守当地法律法规,尊重他人隐私,合法使用本工具。
Languages
Go
92.9%
HTML
6.8%
Makefile
0.3%