在mac os 中解密 WeChat DB
字数 1117 2025-08-07 08:21:57

Mac OS 中解密微信数据库(WeChat DB)完整教程

前提知识

微信数据库文件说明

微信在Mac OS中会生成多个数据库文件,各文件用途如下:

  1. Msg_1|2|3|4.db:分割存储的聊天记录数据库
  2. wccontact_new2.db:存储微信联系人信息
  3. group_new.db:存储群聊信息,包括群聊昵称和微信ID
  4. ftsmessage.db:目前无法用常规方法解密(需要特殊方法)

准备工作

所需工具

  1. lldb:Mac OS自带的调试工具
  2. DB Browser for SQLite:SQLite数据库查看工具
  3. UltraEdit(或其他十六进制编辑器):用于处理密钥
  4. 微信客户端:Mac版微信

系统设置调整

如果出现error: attach failed错误,需要执行以下步骤:

  1. 重启电脑,黑屏时按住Command + R进入恢复模式
  2. 输入账户密码
  3. 进入"实用工具" → "终端"
  4. 输入命令:csrutil disable
  5. 重启电脑

注意:这会关闭系统完整性保护(SIP),操作完成后建议重新启用(csrutil enable)。

解密步骤详解

第一步:启动微信并附加调试器

  1. 确保微信完全退出
  2. 启动微信,但不要进行任何操作
  3. 打开终端,执行以下命令获取微信进程ID:
    pgrep WeChat
    
  4. 使用lldb附加到微信进程:
    lldb -p [微信PID]
    

第二步:设置断点并捕获密钥

  1. 在lldb中设置断点(任选一种写法):
    breakpoint set –name sqlite3_key
    或
    br set -n sqlite3_key
    或
    br s -n sqlite3_key
    
  2. 继续执行:
    continue
    
  3. 在手机上确认登录微信

第三步:提取数据库密钥

  1. 断点触发后,查看寄存器状态
  2. 读取rsi寄存器内容:
    memory read –s 1 -f x -c 32 $rsi
    
  3. 输出示例:
    0x7ffedfd2a3d0: 0xaa 0xc8 0xb5 0x21 0xa9 0x87 0x40 0xec
    0x7ffedfd2a3d8: 0xb1 0x23 0x45 0x67 0x89 0xab 0xcd 0xef
    ...
    

第四步:处理密钥

  1. 使用UltraEdit或其他十六进制编辑器:
    • 删除地址部分(如0x7ffedfd2a3d0:
    • 去掉所有0x前缀
    • 去除空格
    • 将多行合并为一行
  2. 最终得到64字符的密钥
  3. 在密钥前添加0x前缀,形成最终解密密钥:
    0xaac8b521a98740ecb123456789abcdef...
    

第五步:解密数据库

  1. 安装并打开DB Browser for SQLite
  2. 拖入要解密的数据库文件(如wccontact_new2.db
  3. 选择"密钥"解密方式
  4. 输入处理后的密钥(带0x前缀的64位密钥)
  5. 点击"OK"打开数据库

注意事项

  1. 不同数据库文件使用相同密钥解密
  2. ftsmessage.db目前无法用此方法解密
  3. 操作完成后建议重新启用系统完整性保护:
    csrutil enable
    
  4. 此方法可能随微信版本更新而失效

常见问题解决

  1. 调试失败:确保已完全关闭SIP,微信进程未被其他调试器附加
  2. 密钥无效:检查密钥处理是否正确,确保包含0x前缀
  3. 数据库损坏:尝试备份原始文件后操作

通过以上步骤,您可以成功解密Mac版微信的主要数据库文件,查看和分析其中的数据。

Mac OS 中解密微信数据库(WeChat DB)完整教程 前提知识 微信数据库文件说明 微信在Mac OS中会生成多个数据库文件,各文件用途如下: Msg_ 1|2|3|4.db :分割存储的聊天记录数据库 wccontact_ new2.db :存储微信联系人信息 group_ new.db :存储群聊信息,包括群聊昵称和微信ID ftsmessage.db :目前无法用常规方法解密(需要特殊方法) 准备工作 所需工具 lldb :Mac OS自带的调试工具 DB Browser for SQLite :SQLite数据库查看工具 UltraEdit (或其他十六进制编辑器):用于处理密钥 微信客户端 :Mac版微信 系统设置调整 如果出现 error: attach failed 错误,需要执行以下步骤: 重启电脑,黑屏时按住 Command + R 进入恢复模式 输入账户密码 进入"实用工具" → "终端" 输入命令: csrutil disable 重启电脑 注意 :这会关闭系统完整性保护(SIP),操作完成后建议重新启用( csrutil enable )。 解密步骤详解 第一步:启动微信并附加调试器 确保微信完全退出 启动微信,但 不要进行任何操作 打开终端,执行以下命令获取微信进程ID: 使用lldb附加到微信进程: 第二步:设置断点并捕获密钥 在lldb中设置断点(任选一种写法): 继续执行: 在手机上确认登录微信 第三步:提取数据库密钥 断点触发后,查看寄存器状态 读取rsi寄存器内容: 输出示例: 第四步:处理密钥 使用UltraEdit或其他十六进制编辑器: 删除地址部分(如 0x7ffedfd2a3d0: ) 去掉所有 0x 前缀 去除空格 将多行合并为一行 最终得到64字符的密钥 在密钥前添加 0x 前缀,形成最终解密密钥: 第五步:解密数据库 安装并打开DB Browser for SQLite 拖入要解密的数据库文件(如 wccontact_new2.db ) 选择"密钥"解密方式 输入处理后的密钥(带 0x 前缀的64位密钥) 点击"OK"打开数据库 注意事项 不同数据库文件使用相同密钥解密 ftsmessage.db 目前无法用此方法解密 操作完成后建议重新启用系统完整性保护: 此方法可能随微信版本更新而失效 常见问题解决 调试失败 :确保已完全关闭SIP,微信进程未被其他调试器附加 密钥无效 :检查密钥处理是否正确,确保包含 0x 前缀 数据库损坏 :尝试备份原始文件后操作 通过以上步骤,您可以成功解密Mac版微信的主要数据库文件,查看和分析其中的数据。