手机端微信聊天记录数据库解密过程记录

出发点是想找回微信被撤回的信息。

根据《PC版QQ微信防撤回补丁》文章,拦截PC端的撤回函数,新的撤回消息将不会被撤回。但是打补丁前撤回的消息,依然无法查看。

之前发现,手机端的微信,图片、视频信息撤回后,可以在本地找到相应的记录。由此猜测,文本信息是否本地依然有记录。查询资料得知,文本的聊天记录,存放在Sqlite数据库中。本来想破解PC端的数据库,但是收集到的资料都是手机端的。

根据《手把手教你破解微信本地数据库(利用Sqlcipher查看)》和《Android动态破解微信本地数据库(EnMicroMsg.db)》,得知微信聊天记录的数据库存放在/data/data/com.tencent.mm/MicroMsg/<user-md5>路径下的EnMicroMsg.db数据库中。

进一步研究发现,以上两个教程的源头都来着《Android逆向之旅---静态方式破解微信获取聊天记录和通讯录信息》(目前有新更新《微信数据库最新的解密方式,使用C++代码解密微信加密数据库信息!》)。

实践过程中如下:

1、获取EnMicroMsg.db文件

访问该文件需要root权限,一开始打算在已经Root的虚拟机中获取,尝试多款虚拟机后,发现新版本的微信无法正常安装。最后Genymotion + Android 4.2.2 + Genymotion-ARM-Translation_v1.1 + Wechat 5.3组合,在虚拟机中正常启动微信。

但是微信版本过低,无法登陆。最后选择在MI 5上获取该文件。MI 5虽然是开发版系统,但是还没Root,在http://www.miui.com/unlock/index.html下载解锁工具后,可以在 安全中心的权限管理中获取Root权限。

解锁过程中发现,Fastboot模式下无法连接电脑,猜测是驱动问题,在http://www.miui.com/shuaji-393.html下载小米线刷工具,安装驱动后解决无法连接问题。

Root后,安装微信登陆,生成数据库,通过adb命令(cp res des)拷贝目标文件到/sdcard/Download路径下。通过USB文件传输模式拷贝到电脑。

2、获取IMEI与uin(uin是个整型,微信分配个用户的唯一ID)

IMEI获取比较简单,拨号界面输入*#06#获取,MI 5支持双卡,有两个IMEI号,都记录下来。


862033030*****2

862033030*****6

uin存储在/data/data/com.tencent.mm/shared_prefs/auth_info_key_prefs.xml文件中,用同样的方法拷贝到电脑,查看uin值:

3、计算密码

密码为MD5(IMEI+uin)的前7位,计算过程中,所有字母均为小写。

https://md5jiami.51240.com/计算,或者直接将拼接后的字符串存放在txt中,通过Md5checker工具计算。

4、通过SQLite管理软件查看数据

根据文章的截图,选用SQLiteDatabaseBrowser,但是两组密码均无效。

根据《手工解密微信聊天数据库的四个大坑》,发现是工具的问题,最新版的SQLiteDatabaseBrowser无法兼容微信的数据库(应该是微信为了兼容性,一直没升级)。应该选用V2.1版的工具,百度sqlcipher 2.1,可以下载到合适的版本。

成功解密数据库:

发现,撤回的文本消息直接被覆盖了,并没有保留在本地。

后续:

以上破解的手机端的数据库。后续发现PC端的微信,也是使用Sqlite数据库,但使用同样的密码,无法打开。查询后发现,PC端的密码和手机端不一样,为32位密码。目前网上没有详细的获取资料。

进一步发现,《安卓微信数据库解密》中,对微信数据库有了进一步的研究。

收获:

  1. 小米手机的Root流程
  2. 了解Sqlite数据库的管理工具:SQLiteExpert、SQLiteDatabaseBrowser
  3. MD5Checker的另类用法
  4. 了解sqlcipher库可以用于加密sqlite数据库

原文地址:https://www.cnblogs.com/foundkey/p/10115441.html

时间: 2024-10-01 03:34:55

手机端微信聊天记录数据库解密过程记录的相关文章

手机端与服务器数据库同步方案

服务器端: 1, 创建数据表 2, 操作数据库的日志. 定义三个字段(id,操作时间,操作内容,分发到所属手机端的用户id) Id: js uuid值 操作时间:2014/8/21 11:32:10 操作内容:以json格式存放select,delete,update之类的 分发到所属手机端的用户id:手机端并不是每个手机用户都需要,选择性的更新数据. 手机端: 建空库,直接取服务器端的操作数据库的日志运行操作.然后取服务器端的操作日志,过滤时间进行操作. 手机端与服务器数据库同步方案

2015 ecshop 微信支付插件v3版 含【PC端微信扫码支付+手机端微信支付】

2015ecshop微信支付接口真正的无线支付  ,  ecshop微信接口插件 完美对接微信公众平台 2015最新版本,包可用. 以下是配置截图 手机端配置: PC端配置: 以下是手机购物流程: 1. 2. 3. 4. 5. 6. 8. PC端扫码支付插图 附件下载地址: http://download.csdn.net/detail/joefche/8569353 联络QQ: 75189343

golang实现aes-cbc-256加密解密过程记录

我为什么吃撑了要实现go的aes-cbc-256加密解密功能? 之前的项目是用php实现的,现在准备用go重构,需要用到这个功能,这么常用的功能上网一搜一大把现成例子,于是基于go现有api分分钟实现一对加密解密函数,你想得没错,一跑就失败,好了不废话了,go的aes-cbc实现由两个限制 1:面临两个问题 1:go秘钥长度必须是16/24/32 go源码如下,我们的秘钥长度是29,不符合啊 // NewCipher creates and returns a new cipher.Block.

微信开发第五篇手机端微信公众号自定义菜单及OAuth2.0授权页面

说到自定义菜单,首先要想到调用微信的接口,其实微信公众号开发本身就是看对不对微信公众号接口的熟悉程度,我也是在项目中才开始接触微信公众号开发的,很感谢公司能给我这个项目机会.其实对于一个程序员来说最宝贵的是他的学习能力,而不是经验,不扯没用的了. 菜单上一篇讲到了怎么查看微信开发文档,那么很容易找到自定义菜单管理,根据里面的内容可以做一下思路 手机微信客户端与微信服务器交互,再由微信服务器与咱们自己的服务器交互,在第一次交互时先删除原始的那种可以打字的那种菜单,之后设置自己新的菜单,最后把自己的

手机端微信扫描二维码直接打开外部浏览器访问网页的解决办法

想必大家会经常碰到网页链接在微信内无法打开和微信内无法打开app下载页的情况.通常这种情况微信会给个提示 “已停止访问该网址” ,那么导致这个情况的因素有哪些呢,主要有以下四点 1.网页链接被举报次数过多.2.网页含违规内容,含敏感词.3.被腾讯检测系统判断为诱导分享内容.4.转发分享次数达上限 那么上述问题怎么办呢?只要我们实现微信跳转浏览器的功能即可,下面给大家介绍下这个功能的实现方法. 功能目的 生成微信跳转链接,实现微信内置浏览器跳转外部浏览器打开网页. 操作步骤 第一步:打开 Elep

怎么样找回微信聊天记录

微信聊天记录被不小心删除了,怎么样找回微信聊天记录?这个问题相信困扰了很多微信用户吧,因为在使用微信进行沟通聊天的时候,多多少少会出现这个情况.那么就和大家介绍一下,微信聊天记录恢复器吧,让大家轻松恢复丢失的微信聊天记录. 一.互盾苹果恢复大师 1.互盾苹果恢复大师是一款专为苹果用户设计的用于恢复微信聊天记录的恢复软件.恢复功能强大,可以通过iTunes备份文件以及从iPhone设备中扫描恢复,提高了微信记录的恢复概率. 苹果恢复大师http://www.orsoon.com/Soft/1473

微信公众号文章增加手机端抄袭举报流程

前些天微信公布了公众号原创文章被恶意转载的一个公告,没想到今天微信公众号已经可以举报恶意转载的文章了.对于原创的作者们,深深地知道原创的不容易,微信此次的改革看来会拉拢不少原创作者的心. 此次微信公众平台发布的举报流程是通过手机端举报的,在手机端如果发现自己的原创文章被别人恶意转载,就可以直接点击举报按钮直接举报,对于其他的侵权的信息也可以通过电脑侵权投诉去举报,具体内容如下: 为了让公众号原创者更方便快速地对抄袭文章进行举报,微信公众平台上线了手机举报流程.具体功能如下: 1. 如发现有公众号

IBM Security AppScan Standard 用外部设备录制脚本(手机端应用、app、微信等)进行安全测试

一.打开AppScan,选择外部设备/客户机,点击下一步 二.记录代理设置,可以手动输入需要的端口号,也可以自动选择,记住端口号以及PC电脑的ip地址,手机端如何设置对应的端口跟ip可以参考 Jmeter(十三)用Jmeter自带录制工具代理录制手机端应用脚本APP脚本,原理是一样的 三.SSL证书,点击下一步 四.登陆管理,点击下一步, 选择"是" 五.选择测试策略,点击下一步 六.完成扫描配置向导 点击完成之后,会弹出录制窗口 七.外部流量记录器 这个时候,可以操作外部机器对需要扫

一、单页应用如何调用微信接口和手机端的一些方法?

因为angular 是单页应用,所以在调用一些手机端可微信接口的地方会很麻烦,这里总结一下在手机端调用分享和调用微信接口的时候出现的问题及解决的办法: 出现问题: 手机端的方法如果有回调,H5需要调用手机端某个方法的回调时,不管在哪个页面需要回调该方法都无法回调成功 如果做有关微信公众平台接口,在任何页面也是无法调用该接口 解决办法: 出现这种问题的原因是由于angular是单页应用引起的 解决方案:目前只想到一种解决办法就是:在index.html页面申明一个全局变量,然后将手机端或者微信接口