mirror of
https://github.com/teest114514/chatlog_alpha.git
synced 2026-03-21 01:18:09 +08:00
90d5c5354be3dcbde41fa415571d2a9cd038e985
Added information about the tested WeChat version.
chatlog_alpha
原 chatlog 项目的二开版本,导入自 xiaofeng2042 的分支,以防止上游删库后分支被自动删除。
未经修改的源代码在 main 分支,本人不对代码中的任何内容负责。
目前测试成功微信版本:4.1.5.30
项目概述
这是一个微信聊天记录解密工具,支持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%