Windows &MacOS 下微信取证
字数 1455 2025-08-15 21:31:13
Windows & macOS 下微信取证技术指南
准备工作
必要工具
- Windows平台:
- 吾爱破解专版OllyDbg(OD)
- SQLite数据库管理软件
- macOS平台:
- LLDB调试器(系统自带)
- DB Browser for SQLite(Mac版)
微信版本要求
- 适用于微信2.6.x版本
Windows平台微信取证步骤
1. 获取微信聊天记录数据库文件
数据库文件路径:
C:\Users\[用户名]\Documents\WeChat Files\[微信ID]\Msg\
关键文件:
- ChatMsg.db(加密的聊天记录数据库)
- MicroMsg.db(其他微信数据)
2. 从内存中读取数据库密钥
详细操作流程:
-
启动调试工具
- 打开吾爱破解专版OllyDbg
- 启动微信或附加到已运行的微信进程
-
附加到微信进程
- 在OD菜单中选择"文件"→"附加"
- 在进程列表中找到名为"WeChat"的进程(窗口名称为"登陆")
- 点击"附加"按钮
-
定位关键模块
- 选择"查看"→"可执行模块"
- 找到名为"Wechatwin.dll"的模块并双击选中
-
搜索关键函数
- 在插件菜单中选择"中文搜索引擎"→"搜索ASCII"
- 右键选择"Find",搜索字符串"DBFactory::encryptDB"
- 双击搜索结果跳转到对应代码位置
-
设置断点
- 定位到"test edx, edx"指令处
- 在此处设置断点(F2键)
-
触发断点
- 切换到微信登录界面
- 完成登录操作(需手机端确认)
- 观察OD界面,等待EDX寄存器值不再为全0且窗口内容停止滚动
-
提取密钥
- 在EDX的值上右键选择"数据窗口中跟随"
- 数据窗口中将显示EDX的内容,即解密密钥
3. 解密数据库文件
使用解密工具:
dewechat ChatMsg.db
解密成功后生成:
- de_ChatMsg.db(解密后的数据库文件)
使用SQLite数据库管理软件打开解密后的文件即可查看聊天记录。
macOS平台微信取证步骤
1. 获取微信聊天记录数据库文件
数据库文件路径:
~/Library/Containers/com.tencent.xinWeChat/Data/Library/Application Support/com.tencent.xinWeChat/[用户ID]/[子目录]/Message/
2. 从内存中读取密钥
详细操作流程:
-
启动调试会话
- 打开终端
- 输入命令:
lldb -p $(pgrep WeChat)
-
设置断点
- 在LLDB提示符下输入:
br set -n sqlite_key - 继续执行:
c
- 在LLDB提示符下输入:
-
触发断点
- 登录微信(会卡在正在登录界面)
-
读取密钥
- 在终端输入:
memory read --size 1 --format x --count 32 $rsi- 输出结果为64位十六进制字符串,即数据库密钥
3. 解密并读取数据
使用DB Browser for SQLite(Mac版):
- 打开软件
- 选择"打开数据库"
- 选择加密的数据库文件
- 输入从内存中提取的密钥
- 即可查看解密后的聊天记录
注意事项
-
工具获取
- 吾爱破解专版OD需自行下载(文中提到提取码:H7QT)
-
版本兼容性
- 本方法针对微信2.6.x版本有效
- 新版本微信可能采用不同的加密机制
-
法律合规
- 取证操作需在法律允许范围内进行
- 未经授权获取他人聊天记录可能涉及法律问题
-
技术限制
- 部分高版本微信可能需要其他方法获取密钥
- 微信数据存储结构可能随版本更新而变化
关键点总结
-
Windows平台核心:
- 使用OD附加微信进程
- 在Wechatwin.dll中搜索"DBFactory::encryptDB"
- 通过EDX寄存器获取密钥
-
macOS平台核心:
- 使用LLDB附加微信进程
- 在sqlite_key函数处设置断点
- 通过$rsi寄存器读取密钥
-
通用步骤:
- 定位数据库文件路径
- 获取内存中的解密密钥
- 使用适当工具解密数据库
本指南提供了完整的微信取证技术流程,适用于Windows和macOS两大平台,涵盖了从数据库定位、密钥提取到最终解密的全部关键步骤。