小白解密安卓机上微信聊天记录

11次阅读

共计 1333 个字符,预计需要花费 4 分钟才能阅读完成。

安卓小白,出于调研“如何迁移微信聊天记录”而去破解了一下安卓机的微信聊天记录数据库文件,这个破解方式 2013 年就已经有人发表了文章,有兴趣可以去网上搜一搜,这篇文章主要是记录学习历程以及遇到的问题。
具体过程
1. 聊天记录信息全保存在手机 /data/data 目录里。这个目录需要 root 之后,手机上才能看到此目录(但是电脑端还是不可直接查看)
2. 通过 adb 连接手机,然后 adb shell 使用 su 权限授权 /data/data 777 权限,然后就可以通过电脑上的 android studio 里的 android device monitor 查看此目录结构
3.android device monitor 可以选择文件并导出到电脑上,进行进一步查看
4. 微信聊天记录位置:/data/data/com.tencent.mm/MicroMsg/ 一串 MD5 32 位小写格式的文件夹 /EnMicroMsg.db 里(这串 MD5 32 位小写格式的文件夹名是通过 mm+uin 然后 MD5 加密而成的)
5. 这个 EnMicroMsg.db 有密码,密码是手机 imei+uin 然后进行 MD5 的 32 位小写加密,并截取前 7 位。

获取 imei 号:在手机的打电话拨号盘输入 *#06# 获取
获取 uin:

方法一:访问 /data/data/com.tencent.mm/MicroMsg/*/system_config_prefs.xml,获取其中 name=”default_uin” value=”([0-9]+)” 的 value 字段值 uin。(我用的这个,有效) 方法二:也可以打开 wx.qq.com 网页版,查找.wx.qq.com 域的 cookie,其中 wxuin 字段的值就是 uin。(试过,密码错误,好像和正负数有关)方法三:也可以用 backup.tar 里的 apps/com.tencent.mm/sp/system_config_prefs.xml。
然后网上大部分说这个加密算法是不会变化的(MD5(IMEI+UIN).Substring(0, 7).toLower),因为维系为了兼容以前版本,如果数据库加密算法变动,那么老版本的用户升级到新版本,老版本的数据库解密就会失败的,也就是用户看不到以前的消息内容,那不可能的
6. 一般数据库软件像 navicat 无法打开 EnMicroMsg.db,需要专门的处理加解密的数据库软件打开,我用的大部分人推荐的 sqlcipher。(这是一个开源的库,听说如果版本不同,使用正确的密码也不能打开,现在使用的是 v2.1 版本,可以打开
7. 成功打开聊天记录信息的数据库,可以看到表结构
8. 可以去到 Browse Date 顶部菜单里查看数据数据:
用户基本信息——userinfo 表
联系人——rcontact 表
聊天记录——message 表
已发视频信息——videoinfo2 表
已发图片信息——imginfo2 表
已发语音信息——voiceinfo2 表
然后如果手机微信选择某一条信息删除,然后 db 就会更新为删除后的表。
参考资料:https://www.osslab.com.tw/how…https://articles.forensicfocu…https://blog.csdn.net/njweiyu…

正文完
 0