第一,我们打开手机即使没联网也能读取微信的聊天记录,这个时候我们就能知道聊天记录是保存在本地的
第二,聊天记录安卓用什么保存呢?txt?xml?这么多聊天记录当然是用数据库保存啦,也就是传说中的SQLite
第三,既然是数据库那我们就得找数据库文件,数据库后缀是.db文件
第四,既然知道是数据库文件那么应该怎么找呢?我就带大家找一下吧
第五,下载夜神模拟器,安装微信,登陆微信,然后聊天几句,我想这个应该大家都会的吧
第六,打开cmd CD 到夜神模拟器的路径下面 我用的就默认路径 cd C:UsersAdministratorAppDataRoamingNoxbin
如下图所示
第七,使用adb命令连接模拟器,也就是连接Linux系统
命令如下 nox_adb shell
执行完成后root@nox:/ #
然后输入cd /data/data/com.tencent.mm/MicroMsg 说明一下,这个目录是微信的安卓目录
第八 ,然后执行 ls,查看这个文件目录下有哪些文件夹
如图
然后我们发现有这么多文件夹,到底是哪个呢?其实就是32位的MD5值的,因为微信可以多账号登陆的嘛,不然其他账号的聊天记录怎么保存
接下来我们进入这两个32位加密的MD5文件夹
第九,我这是直接输入cd fc3e1140643f945def54b173b8e77d13 这个是随机的MD5值,得看你们自己的来
第十,一样的输入ls查看目录 然后我们惊奇的发现微信聊天记录的数据库存放在这里面
如图所示
然后记住这个目录 /data/data/com.tencent.mm/MicroMsg/fc3e1140643f945def54b173b8e77d13/EnMicroMsg.db
Ctrl+c结束连接
然后执行命令 nox_adb pull /data/data/com.tencent.mm/MicroMsg/fc3e1140643f945def54b173b8e77d13/EnMicroMsg.db C: 把数据库导出到C盘根目录下
然后我们得到了微信的聊天记录数据库
第十一,然后用SQLite打开发现打不开,为什么呢?因为数据库肯定是加密的,毕竟这么多用户量,腾讯做一点加密也是正常的
那么问题来了,为什么手机APP可以直接读取呢?因为人家会解密,可是不联网情况下他是怎么知道密码的呢?这个就得问操作系统大哥了
道理很简单,就是保存在本地文件
第十二,这里我就不详细说明了,不过这里是不能直接Debug的,微信好像有三个进程不让你调试,检测到动态调试的时候就会卡死,防止别人动态调试
这里比较费劲 直接告诉你们结果吧,后续更新这一块
第十三,其实他的数据库打开密码是保存在SharePreferences里面,那么在哪里呢,
执行命令 nox_adb pull /data/data/com.tencent.mm/shared_prefs/auth_info_key_prefs.xml C: 即可得到
如图
_auth_uin对应的值就是密码的一部分
第十四,那接下来就简单了,获取设备的IMEI
如图
第十五,然后就是在IMEI的值后面加上_auth_uin 一共是25个长度
然后取MD5值前面7位即可 一定要是小写
网址如下 http://www.cmd5.com/hash.aspx
第十六,然后我们用sqlcipher来打开加密数据库
如图所示
第十七,打开后选择message表就可以查看聊天记录
如图所示
然后打开rcontact就是微信保存本地联系的表
教程就到此结束了,感谢大家观看,希望大牛别喷,然后怎么获取密文部分后续更新,感谢大家的支持