读取微信聊天记录并导出

流程

  1. 一部已经root了安卓手机 or 安卓虚拟机(此处用夜神)
  2. 虚拟机安装微信,登入,使用电脑版微信备份手机聊天记录,虚拟机登入该微信,使用电脑微信还原备份的记录
  3. 寻找KEY,传统方法IMEI + uin进行md5加密后前六位,在本机试验不成功
  4. 使用frida注入劫持获取KEY,感谢ooooooh灰灰大佬提供hack方法
  5. 准备python环境
1
2
pip install frida
pip install frida-tools
  1. 查看架构(此处使用虚拟机,故为x86)
1
2
3
adb shell getprop ro.product.cpu.abi

x86

然后去 https://github.com/frida/frida/releases 页面下载对应的 frida-server-<版本号>-x86.xz 包,然后解压。注意:这边的 frida-server 版本号要和上面电脑安装的 frrida 的版本号一致,否则可能会出现额外的错误。通过 adb 把 frida-server 传到手机:adb push frida-server-<版本号>-android-x86 /data/local/tmp

  1. 手机运行frida-server
1
2
3
4
5
adb shell
su
cd /data/local/tmp
chmod 777 frida-server-<版本号>-android-arm
./frida-server-<版本号>-android-arm
  1. 新开窗口执行(端口映射)
1
2
3
adb forward tcp:27042 tcp:27042
adb forward tcp:27043 tcp:27043
frida-ps -U
  1. 执行python代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import frida 
import sys

jscode = """
Java.perform(function(){
var utils = Java.use("com.tencent.wcdb.database.SQLiteDatabase"); // 类的加载路径

utils.openDatabase.overload('java.lang.String', '[B', 'com.tencent.wcdb.database.SQLiteCipherSpec', 'com.tencent.wcdb.database.SQLiteDatabase$CursorFactory', 'int', 'com.tencent.wcdb.DatabaseErrorHandler', 'int').implementation = function(a,b,c,d,e,f,g){
console.log("Hook start......");
var JavaString = Java.use("java.lang.String");
var database = this.openDatabase(a,b,c,d,e,f,g);
send(a);
console.log(JavaString.$new(b));
send("Hook ending......");
return database;
};

});
"""


def on_message(message,data):
if message["type"] == "send":
print("[*] {0}".format(message["payload"]))
else:
print(message)

process = frida.get_remote_device()
pid = process.spawn(['com.tencent.mm'])
session = process.attach(pid)
script = session.create_script(jscode)
script.on('message',on_message)
script.load()
process.resume(pid)
sys.stdin.read()

实例输出:

image-20221118224747430
  1. 解密,从/data/data/xxxxx/MicroMsg/EnMicroMsg.db导出,使用sqlcipher v2.1打开

    1. 链接:https://pan.baidu.com/s/1PTjaWjUm6Vzw8OqyL1bZiA

      提取码:long

      感谢[陈德龙大佬分享

  2. 把message表(聊天记录)导出为csvimage-20221118225046334

参考