破解微信聊天记录_记录微信聊天记录软件

                   
专业调查机构联系电话,13717775644。代您查询删除各类记录资料,请来电咨询。

破解微信聊天记录_记录微信聊天记录软件_微信聊天记录在哪个文件夹

微信现在是老少皆宜,大街小巷都在使用,已经取代了传统的短信聊天模式了,只要涉及到聊天就必定有隐私消息,那么本文就来讲解怎样获得微信的聊天记录以及通讯录信息。

首先我们在没有网络的之后,打开微信同样可以查看聊天记录,说明微信会把聊天记录保存到本地,那么这么多信息显然会保存在数据库中,所以我们可以去查看微信的databases目录看看内容:

可惜的是,我们在这个底下并没有发现一些有用的数据,所以这时候就了解到了微信因为把重要信息的数据库存在其它目录下面,我们可以直接把微信的整个沙盒数据全部导出来,然后查找db文件:

在这个目录中找到了一些db文件

看到这个目录下有很多db文件,我们可以一个一个进行查看,这里可以直接使用SQLite Expert可视化工具进行查看

可惜的是破解微信聊天记录,这里打开失败了,看到提醒消息必须知道了,这个数据库文件被加密了。这也很令我们坚信这个数据库存放的是相当重要的信息,而且从安全角度来说,加密操作也有很正常的。

二、静态方法破解微信分析

微信聊天记录在哪个文件夹_记录微信聊天记录软件_破解微信聊天记录

好了到此处,看来得去看代码了,因为数据库加密了,既然是加密肯定有解读的过程,我们去探讨代码获得其密码即可。

首先我们可以使用apktool工具进行反编译,这里不演示了,微信本身没有加固操作,所以反编译没有报错的:

注意:

这里的命令中加上了-d的参数了,是为了反编译之后生成的是java文件,而不是smali文件。便于下面能够导入Eclipse中

反编译之后,接下来咋们就开始把文件导入Eclipse中,关于怎么导入的话,这里不介绍了,不知道的朋友可以转战这里:Eclipse中动态安装smali源码我们成功导出之后:

这里发现有些报错,但是这个不用太关心,我们探讨源码就可以了,其实到此处有的朋友可能想到的是速度调试:

借助之前说到的mprop工具来设置平台的安装属性ro.debuggable属性值,不知道这个软件的朋友可以看这篇文章:如何脱掉360加固的壳,如果不想用这个工具就有点费事了破解微信聊天记录,修改反编译时候的AndroidManifest.xml中开启调试属性,然后在回编译,不过幸好的是,在这个过程中我尝试过失败了几次,所以我最终引入了mprop工具来进行操作的。修改平台调试属性后来可以发现:

微信出于debug模式了,我们这时候只要根据之前说到的Eclipse中动态调试samli源码的方法来就能。但是这儿有一个问题,就是在调试的过程中会被卡死的,我尝试了很多次结果都失败了,所以此处就抛弃了动态模式破解微信了,而是采取静态方法去破解微信获取密码。

记录微信聊天记录软件_微信聊天记录在哪个文件夹_破解微信聊天记录

三、破解方法

之前在说到使用静态方法破解的之后第一点,一定要找到关键点,我们今天的难题是了解了数据库,但是这个是加密的,我们必须密码,那么在Android中即使使用数据库的话,肯定会涉及到一个类:SQLiteDatabase,我们可以在Eclipse中先去全局搜一下这个类:

因为微信工程代码相当大,所以在搜索的过程中必须等一段时间:

在samli中找到了com.tencent.kingkong.database.SQLiteDatabase类的定义了,因为smali语法看起来还是非常吃力的,所以我们使用Jadx工具进行可视化操作,之前一篇文章中介绍了:Android中反编译利器分析这里讲解了apktool和jadx工具的原理,为什么说jadx好用呢?主要是他是开源的,而且用Java编写的,同时还支持方式的跟踪,这个针对混淆代码的追踪非常有用。

这里应该留意个疑问,因为微信的apk太大了,所以得分开查看,因为微信有多个dex文件,而今天见到SQLiteDatabase类是在第一个dex中的,我们使用jadx查看第一个dex文件即可:

这样看起来就方便这些了,我们找到这个类,首先肯定看看他的openDatabase方法,不过此处会看到有众多重载方式,不过最后都要调用的是这个openDatabase方法:

微信聊天记录在哪个文件夹_记录微信聊天记录软件_破解微信聊天记录

内部接着调用了open方法,继续跟进:

内部又调用了openInner方法,接着跟进:

调用了SQLiteConnectionPool的open方法,再和出来:

哈哈,终于找到核心的地方了,这里发现其实有一个密码的字段,那么这个值就是SQLiteDatabase中的openDatabase方法的第二个参数,那么这次我们就去预测那里调用了SQLiteDatabase的openDatabase方法,因为SQLiteDatabase的openDatabase的重载方式很多了,所以一个一个找最费劲,所以可以直接搜SQLiteDatabase被调用的地方,可以直接使用Jadx的查找跟踪功能:

查找结果:

破解微信聊天记录_记录微信聊天记录软件_微信聊天记录在哪个文件夹

这里会看到,很多地方都调用了,看起来非常麻烦,所以此处得想个方法减少查找范围,我们今天见到SQLiteDatabase类中的open方法都是static的,所以在调用的之后恐怕是这样使用的:Lcom/tencent/kingkong/database/SQLiteDatabase; 这个是标准的smali语法调用方式,所以这时候我们在去Eclipse中全局搜索这个字符串内容:

最终看到在com.tencent.mm.bb.e这个类中,有多个地方都调用了,咋们再去聊聊这个类:

果然在d方法中读取了数据库的open方法,而且传入的str2就是密码,在跟踪d方法在那里被调用了

点击进入查看:

这里的this.Ee就是密码,看他的数组,是先读入j方法构造一个字符串出来,然后取前7个字符就能,再看看j方法:

这个方法看起来就眼熟了,计算字符串的MD5值的,这里必须注意的是,MD5的值是大写的,好了,到此处我们就知道了:密码本来是一个字符串的MD5值的前7位字符串,那么接下来的难题在再次跟踪是什么字符串来计算MD5的:


本文地址:http://www.tonghuadaicha.com//guanyuwomen/1361.html