作业日期
2020/04/02
思路
两种方案:
方案一 手动获取DB文件,通过sqlcipher工具读取数据内容
方案二 已root手机的安装app,通过app将聊天记录上传值后台数据库
方案一 手动获取DB文件,读取数据内容
事前准备
1.Android Device Monitor(安卓SDK自带)
2.sqlcipher.exe(DB图形化查看器,查看EnMicroMsg.db,不大好找图形化版本的,这边放了个链接,在帖子底部)
步骤一 使用Android Device Monitor 工具拷贝出相关文件
Android Device Monitor 这个工具在安卓SDK文件中,工具路径可以参考我的。 D:\CommonDevSoftware\Android_ADT\sdk\tools\lib\monitor-x86_64
1.打开monitor链接模拟器,打开file explorer视图 微信资料路径在data/data/com.tencent.mm/MicroMsg 中
2.导出2个文件EnMicroMsg.db与auth_info_key_prefs.xml EnMicroMsg.db文件位于data\data\com.tencent.mm\MicroMsg\xxxxxxxx(瞄下,哪个目录名字最长就是那个了)
auth_info_key_prefs.xml文件位于data\data\com.tencent.mm\shared_prefs\auth_info_key_prefs.xml
步骤二 获取DB访问密码
1.读取EnMicroMsg.db需要访问密码,这边先来得到访问密码
2.密码为7位数,是手机IMEI码拼接微信UID码,经过md5加密后取前七位。
3.获取模拟器IMEI码(模拟器设置里面查看),真机的话可以去网上搜下有N种办法
4.获取微信UID码,打开刚刚拷贝出来的auth_info_key_prefs.xml,找到_auth_uin对应的value就是我们要的微信UID码
5.进行md5加密,有很多现成的网址,网上一搜就有了,取前7位
步骤三 访问DB
1.打开sqlcipher软件,将步骤一导出的EnMicroMsg.db文件拖入并输入密码就能看到数据库内容了
附上一些数据查询SQL
sql不是自己写的,这边是帖的github项目中别人写好的sql 传送门:wxrecord
取得用户信息
SELECT id,
TYPE,
value
FROM userInfo
WHERE id = 2
OR id = 4
OR id = 6
查询所有微信群信息
SELECT t1.nickname qunName,
t1.quanpin qunPin,
t1.username qunId,
(SELECT t3.nickname
FROM rcontact t3
WHERE t2.roomowner=t3.username) qunOwner, t2.displayname qunListName,t2.memberlist qunListId
FROM rcontact t1
INNER JOIN chatroom t2
ON t1.username=t2.chatroomname
查询所有微信群信息
SELECT msgId,
content,
createTime,
msgSeq,
talker
FROM message
WHERE talker=?
ORDER BY msgSeq
软件下载链接
sqlcipher.exe
免安装 pan.baidu.com/s/12u_d6Kqg… 码:7lve