PyWxDump 教程:三步解密导出微信聊天记录
2026/9/18 13:53:02 网站建设 项目流程

PyWxDump 教程:三步解密导出微信聊天记录

【免费下载链接】PyWxDump删库项目地址: https://gitcode.com/GitHub_Trending/py/PyWxDump

你的目标是把微信 PC 端的聊天记录,导出成一份能在浏览器里阅读的 HTML 文件。PyWxDump 是一款开源的微信数据解密工具,它把微信密钥提取、微信 PC 端数据库解密、结果导出这三步全部自动化。直接复制数据库文件是没用的,因为微信用一把动态密钥加密了所有数据,磁盘上的内容都是乱码。下面是不需要逆向工程基础、照着做的 PyWxDump 使用教程。

动手之前:环境与前置检查

开始前,先逐项核对下面的清单:

检查项要求
操作系统仅支持 Windows(Mac、Linux 不可用)
Python3.8 及以上版本
微信客户端已登录并处于运行状态,可以最小化
运行权限建议以管理员模式运行(需要读取微信进程内存)

克隆仓库并安装依赖:

git clone https://gitcode.com/GitHub_Trending/py/PyWxDump # 克隆项目仓库 cd PyWxDump # 进入项目目录

预期结果:当前目录下多出一个 PyWxDump 文件夹,进入后能看到项目源码。

pip install -r requirements.txt # 安装全部依赖包

预期结果:终端以 "Successfully installed ..." 结尾,没有任何红色报错行。

提示:该项目作者已于 2025 年 10 月收到律师函并清除了仓库代码,克隆后如果只看到一份说明文件,请先自行找到更早的版本,再按本文流程操作。

三步流水线:提取密钥 → 解密数据库 → 导出结果

三步有严格的先后依赖,每一步的产物都是下一步的输入,跳步会直接报错。

第 1 步:用 bias 命令提取微信密钥

目的:在正在运行的微信进程内存里找到加密密钥,存成偏移量(可理解为模块内部的"门牌号")配置文件。

python -m pywxdump bias --auto # 自动定位模块并扫描密钥

做对了长什么样:终端无报错,当前目录生成一个偏移配置文件,里面记录着模块基址和偏移值,同时显示检测到的微信版本号。

卡住了怎么办:如果提示找不到进程,或扫描不到偏移,先确认微信客户端已登录且在运行,然后加上--refresh参数重跑,清掉旧缓存再扫。

只有这一步生成了偏移文件,才能进行下一步的解密。

第 2 步:用 decrypt 一键解密全部数据库

目的:拿着刚生成的偏移,把微信数据目录下的所有加密数据库解开。

python -m pywxdump init # 生成解密所需配置 python -m pywxdump decrypt --all # 解密所有数据库文件

做对了长什么样:终端逐行打印处理过的文件清单,输出目录里出现明文数据库文件,用数据库查看器打开能看到正常的表和内容。

卡住了怎么办:如果解密失败、或者解出来的文件仍是乱码,多半是偏移不对。删掉旧配置,回到第 1 步重新提取。

第 2 步的产物是一套能直接读取的明文数据库,导出时只需告诉工具去哪里找它们。

第 3 步:用 export 导出微信 HTML

目的:把明文数据库转成人类可读的 HTML 文件。

python -m pywxdump export --format html # 导出为 HTML 格式

做对了长什么样:输出目录生成 HTML 文件,浏览器打开后能看到完整的聊天内容,文字、图片、语音都在。

卡住了怎么办:如果导出的文件是空的、或者缺少会话,检查配置文件里的路径是否指向第 2 步的输出目录,改对后重跑 export。

如果你同时开着多个微信,给对应命令加上--multi参数,可以多进程一起分析。

它凭什么能做到:密钥定位的一分钟解读

密钥为什么不在硬盘上?因为微信故意不把它写进数据库文件,而是等进程启动后才加载到内存里,程序一关就消失。这让复制文件这条路彻底失效。

PyWxDump 做的事,是在进程内存里把密钥找出来。它依赖一个固定关系:核心模块 WeChatWin.dll 和密钥之间的相对位置始终不变。这有点像在一本书里找某一页:模块基址(module base address,模块在内存中的起点)相当于这本书此刻放在书架上的位置,每次重新摆放都会变;偏移量相当于页码,同一版本里固定不变。书放在哪加上翻到哪一页,就定位到了密钥。

但不同"版本"的书,页码是不一样的。基址每次启动微信都会变化,偏移量也会随微信版本改变——后面"版本不匹配"的报错,根源都在这。

卡住了?对号入座式排障

先按症状找处方:

症状最可能的原因处方
bias --auto无输出,没生成偏移文件微信未登录,或旧缓存干扰确认微信在运行,再执行bias --refresh
刷新后仍找不到偏移当前版本的偏移不在已知列表里改用bias --deep做深度扫描
解密后数据库打不开、内容仍是乱码偏移取错(版本不匹配)删除旧偏移配置,回第 1 步重新提取
直接报版本不匹配错误配置文件属于另一个微信版本执行bias --force强制重算偏移
多开微信时数据混乱默认只分析了其中一个进程命令加--multi,多进程同时处理

三个参数各一句话说清用途:--refresh在旧结果干扰新结果时用;--deep在普通扫描一无所获时用;--force在确认微信升级过版本后用。

熟悉手动计算的话还有固定公式:旧版本(3.9.6.33 及以下)的密钥基址 = 用户名基址 − 0x24,新版本(3.9.6.33 以上)尾数换成 − 0x40。

都试完仍无解时,去项目的 Issue 区搜索相同报错或直接提问,多数情况已有现成答案。

红线与延伸

操作前,把四条红线记住:

  • 只操作本人拥有合法使用权的微信账号
  • 不用解密出来的数据侵犯他人隐私
  • 遵守《网络安全法》和微信平台用户协议
  • 解密工具与产物不要公开发布、不要商用

数据安全同样重要:全程在离线环境完成解密;导出完成后给产物加密存储,别明文丢在桌面;定期清理临时文件和中间输出。

这是一封律师函的截图,也是一个必须交代的事实:项目作者后来收到了微信官方的律师函,已把全部代码和历史从仓库移除(见 README 里的移除说明),现在克隆下来只剩说明文件。它就是上面红线的最直白注脚。

同一套"按内存位置定位数据"的手法,还能迁移到这些场景:

  • 应用调试与逆向分析:扫描进程内存,定位关键数据结构
  • 数据恢复:从运行中的进程提取尚未保存的内容
  • 安全审计:检查应用如何存储和传递敏感数据
  • 兼容性测试:对比不同版本之间的内存布局变化

现在就找一个测试账号,把三步流水线完整跑一遍,确认导出的内容完整无误,再回头处理你的正式数据。

【免费下载链接】PyWxDump删库项目地址: https://gitcode.com/GitHub_Trending/py/PyWxDump

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询