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. 从内存中读取数据库密钥

详细操作流程:

  1. 启动调试工具

    • 打开吾爱破解专版OllyDbg
    • 启动微信或附加到已运行的微信进程
  2. 附加到微信进程

    • 在OD菜单中选择"文件"→"附加"
    • 在进程列表中找到名为"WeChat"的进程(窗口名称为"登陆")
    • 点击"附加"按钮
  3. 定位关键模块

    • 选择"查看"→"可执行模块"
    • 找到名为"Wechatwin.dll"的模块并双击选中
  4. 搜索关键函数

    • 在插件菜单中选择"中文搜索引擎"→"搜索ASCII"
    • 右键选择"Find",搜索字符串"DBFactory::encryptDB"
    • 双击搜索结果跳转到对应代码位置
  5. 设置断点

    • 定位到"test edx, edx"指令处
    • 在此处设置断点(F2键)
  6. 触发断点

    • 切换到微信登录界面
    • 完成登录操作(需手机端确认)
    • 观察OD界面,等待EDX寄存器值不再为全0且窗口内容停止滚动
  7. 提取密钥

    • 在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. 从内存中读取密钥

详细操作流程:

  1. 启动调试会话

    • 打开终端
    • 输入命令:lldb -p $(pgrep WeChat)
  2. 设置断点

    • 在LLDB提示符下输入:br set -n sqlite_key
    • 继续执行:c
  3. 触发断点

    • 登录微信(会卡在正在登录界面)
  4. 读取密钥

    • 在终端输入:
    memory read --size 1 --format x --count 32 $rsi
    
    • 输出结果为64位十六进制字符串,即数据库密钥

3. 解密并读取数据

使用DB Browser for SQLite(Mac版):

  1. 打开软件
  2. 选择"打开数据库"
  3. 选择加密的数据库文件
  4. 输入从内存中提取的密钥
  5. 即可查看解密后的聊天记录

注意事项

  1. 工具获取

    • 吾爱破解专版OD需自行下载(文中提到提取码:H7QT)
  2. 版本兼容性

    • 本方法针对微信2.6.x版本有效
    • 新版本微信可能采用不同的加密机制
  3. 法律合规

    • 取证操作需在法律允许范围内进行
    • 未经授权获取他人聊天记录可能涉及法律问题
  4. 技术限制

    • 部分高版本微信可能需要其他方法获取密钥
    • 微信数据存储结构可能随版本更新而变化

关键点总结

  1. Windows平台核心:

    • 使用OD附加微信进程
    • 在Wechatwin.dll中搜索"DBFactory::encryptDB"
    • 通过EDX寄存器获取密钥
  2. macOS平台核心:

    • 使用LLDB附加微信进程
    • 在sqlite_key函数处设置断点
    • 通过$rsi寄存器读取密钥
  3. 通用步骤:

    • 定位数据库文件路径
    • 获取内存中的解密密钥
    • 使用适当工具解密数据库

本指南提供了完整的微信取证技术流程,适用于Windows和macOS两大平台,涵盖了从数据库定位、密钥提取到最终解密的全部关键步骤。

Windows & macOS 下微信取证技术指南 准备工作 必要工具 Windows平台: 吾爱破解专版OllyDbg(OD) SQLite数据库管理软件 macOS平台: LLDB调试器(系统自带) DB Browser for SQLite(Mac版) 微信版本要求 适用于微信2.6.x版本 Windows平台微信取证步骤 1. 获取微信聊天记录数据库文件 数据库文件路径: 关键文件: ChatMsg.db(加密的聊天记录数据库) MicroMsg.db(其他微信数据) 2. 从内存中读取数据库密钥 详细操作流程: 启动调试工具 打开吾爱破解专版OllyDbg 启动微信或附加到已运行的微信进程 附加到微信进程 在OD菜单中选择"文件"→"附加" 在进程列表中找到名为"WeChat"的进程(窗口名称为"登陆") 点击"附加"按钮 定位关键模块 选择"查看"→"可执行模块" 找到名为"Wechatwin.dll"的模块并双击选中 搜索关键函数 在插件菜单中选择"中文搜索引擎"→"搜索ASCII" 右键选择"Find",搜索字符串"DBFactory::encryptDB" 双击搜索结果跳转到对应代码位置 设置断点 定位到"test edx, edx"指令处 在此处设置断点(F2键) 触发断点 切换到微信登录界面 完成登录操作(需手机端确认) 观察OD界面,等待EDX寄存器值不再为全0且窗口内容停止滚动 提取密钥 在EDX的值上右键选择"数据窗口中跟随" 数据窗口中将显示EDX的内容,即解密密钥 3. 解密数据库文件 使用解密工具: 解密成功后生成: de_ ChatMsg.db(解密后的数据库文件) 使用SQLite数据库管理软件打开解密后的文件即可查看聊天记录。 macOS平台微信取证步骤 1. 获取微信聊天记录数据库文件 数据库文件路径: 2. 从内存中读取密钥 详细操作流程: 启动调试会话 打开终端 输入命令: lldb -p $(pgrep WeChat) 设置断点 在LLDB提示符下输入: br set -n sqlite_key 继续执行: c 触发断点 登录微信(会卡在正在登录界面) 读取密钥 在终端输入: 输出结果为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两大平台,涵盖了从数据库定位、密钥提取到最终解密的全部关键步骤。