※首先,简单介绍一下微信加密数据库EnMicroMsg.db的破解方法:

要先批评一下微信,居然用开源的数据库加密方式,这不是一破解一个准吗...

如果你的模拟器或者真机已经获得了root权限,就可以直接将记录聊天记录的数据库文件拷贝出来,数据库文件具体存放位置如下:

在/data/data/中:

(题外话:android原生的模拟器root起来很复杂,推荐一款第三方模拟器:genymotion,很方便)

※我们拿到EnMicroMsg.db后,用常用的数据库管理软件打开,发现EnMicroMsg.db被加密了,但是密码生成规则很简单,具体如下:

(手机IMEI + 微信uin )取MD5的前7位

手机的IMEI获取:手机拨号盘输入:*#06#

微信uin获取:http://blog.csdn.net/yuanbohx/article/details/41280837

但是即使算出来解密密码,我们仍发现用刚才使用的数据库管理软件是打不开的。因为其用的是SQLCipher开源库提供的加密解密算法,故在网上下载SQLCipher.exe这个软件,打开.db文件时,输入计算出来的密码后,就可以打开EnMicroMsg.db文件了:

※上面提到了SQLCipher是一个提供数据库文件加密解密功能的第三方开源库,我们先来访问以下他们的官网看个究竟:

https://www.zetetic.net/sqlcipher/open-source/

我们惊喜的发现,现在SQLCipher提供了Android操作系统的开源库,源码在Github上可以下载获得,但是我尝试下载了Github上的工程,编译的时候遇到了很多问题,导致最终没有编译成功。所以建议大家下载如下图所示的开源库压缩包:

解压下载的压缩包,其目录如下图所示:

※下面涉及到Android工程创建、导入SQLCipher开源库等工作:

创建Android工程就不详细说了,创建完工程后,直接将sqlcipher-for-android-v3.2.0文件夹中的内容全部拷贝到android工程中即可:

接下来的步骤也很关键:

右键工程,Build Path → Configure Build Path,按照下图所示添加相应的jar包,删除android自有库:

最后在程序中加入读取加密数据库的关键代码即可:

public void readWeChatDatabase() {SQLiteDatabase.loadLibs(this);String password = "XXXXXXX";  File databaseFile = getDatabasePath("/data/data/com.tencent.mm/MicroMsg/47d58c79e692e212XXXXXXXXXXXXX/EnMicroMsg.db");//File databaseFile = getDatabasePath("EnMicroMsg.db");eventsData = new myDataHelper(this);SQLiteDatabaseHook hook = new SQLiteDatabaseHook(){public void preKey(SQLiteDatabase database){}public void postKey(SQLiteDatabase database){database.rawExecSQL("PRAGMA cipher_migrate;");  //最关键的一句!!!}};try {SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(databaseFile, "XXXXXXX(密码)", null, hook);      Cursor c = db.query("message", null, null, null, null, null, null);while (c.moveToNext()) {  int _id = c.getInt(c.getColumnIndex("msgId"));  String name = c.getString(c.getColumnIndex("content"));  Log.i("db", "_id=>" + _id + ", content=>" + name);  }  c.close();db.close();} catch (Exception e) {}}

程序很简答,password即为数据库的加密密码,databaseFile为数据库文件路径,database.rawExecSQL("PRAGMA cipher_migrate")这句最为关键,原因如下:

现在SQLCipher for Android已经是3.X版本了,而微信居然还停留在2.X时代,所以这句话是为了能够用3.X的开源库兼容2.X的加密解密方法,如果不加这句话,是无法对数据库进行解密的。

(题外话:SQLCipher的功能确实相当强大,我这里介绍的只是冰山一角,更多的功能大家可以通过其官网或者Github中提供的工程代码进行探究)

最后展示一下程序运行效果,从Logcat信息可以看到,我们成功读取了微信的EnMicroMsg.db文件中的message数据表:

当然,我所做的工作有着明显的不足,即需要先通过各种人工方式计算出数据库解密密码,然后再进行.db文件的解密。有兴趣的网友可以尝试直接在程序中取得IMEI与微信uin(这个应该是难点),然后MD5取前7位,最后用算出的解密码对数据库进行解密。

直接利用Android手机破解微信加密数据库EnMicroMsg.db相关推荐

  1. 利用Android手机破解微信加密数据库EnMicroMsg.db文件

    要先批评一下微信,居然用开源的数据库加密方式,这不是一破解一个准吗? 如果你的模拟器或者真机已经获得了root权限,就可以直接将记录聊天记录的数据库文件拷贝出来,数据库文件具体存放位置如下: 在/da ...

  2. 微信数据库最新的解密方式,使用C++代码解密微信加密数据库信息!

    原文转载于:https://blog.csdn.net/jiangwei0910410003/article/details/79436956 一.知识回顾 最近有人找我弄微信数据库解密的东西,其实这 ...

  3. 使用C++代码解密微信加密数据库信息!

    一.知识回顾 最近有人找我弄微信数据库解密的东西,其实这个现在网上都公开了,我在很早之前就静态分析过微信数据库加密算法,不了解的同学可以查看这里:Android中静态方式破解微信数据库加密密码,所以现 ...

  4. [html] android手机的微信H5弹出的软键盘挡住了文本框,如何解决?

    [html] android手机的微信H5弹出的软键盘挡住了文本框,如何解决? window.addEventListener("resize", function () {if ...

  5. Android逆向_微信本地数据库解密与删除聊天记录恢复完全教程

    # 前言 在电子数据取证过程中,对微信本地数据库的解密.提取与恢复是非常重要的工作内容.本文以华为mate系列手机和最新版的微信(7.0.3)为例,通过总结互联网上已经发表的文章经验,主要针对**华为 ...

  6. Android手机导出微信聊天记录

    如果android手机上有重要的微信聊天记录,一定有备份的需要,可参考以下方法: 1.首先需要您的android手机支持root,用可root的"手机资源管理器"进入目录拷贝微信数 ...

  7. 破解微信本地数据库,无法找回删除的聊天记录

    [说明:操蛋的微信从4.0后本地数据库都加密了,密码是IMEI+UIN取MD5 32位小写加密前7作为密码]  [数据库文件请ROOT后用RE浏览器得到] [UIN 文件路径:/data/data/ ...

  8. 利用 android手机DLNA功能,实现手机视频无线播放到电脑、电视

    利用DLNA功能可实现个人PC.消费电器.移动设备在内的无线网络和有线网络的互联互通. DLNA可以支持的格式: Image:JPEG PNG, GIF, TIFF Audio:LPCM AAC, A ...

  9. 如何实现android手机扫描条码到数据库查询信息并打印

    请问各位前辈,如何实现android手机扫描条码,然后到数据库查询资料,并打印出来. 我到网上查询资料说要使用zxing扫描条码,但要怎么实现呢?或者思路如何?谢谢!

最新文章

  1. 5分钟让你懂得什么是容器技术?
  2. EasyTable.js,令html的table布局变得非常简单!
  3. 拦截器,过滤器,监听器原理
  4. 部署OCS后修改web farm地址
  5. 43.Linux/Unix 系统编程手册(下) -- 进程间通信简介
  6. 物流管理系统【前台+后台】(Spring+SpringMVC+MyBatis+vue+shiro)(二)
  7. HEVC代码学习31:xCheckRDCostMerge2Nx2N函数
  8. 小程序嵌入h5并传值
  9. U盘拷贝时提示文件过大
  10. 智能家居无创新,不智能
  11. mysql计算时差_mysql-按组计算时差
  12. 软件测试是做什么的?好学的吗?
  13. PV、UV、VV、IP是什么意思?
  14. 数据分析--数据分析是什么?
  15. 二十七、74LS148芯片解析
  16. python成绩查询系统_Python爬虫实战:登录教务系统查成绩
  17. CodeForces - 366C Dima and Salad
  18. Vue源码解析之Template转化为AST的实现方法
  19. 大牛博客列表,要常看
  20. 【2021/5/8发布适用】在 Windows 上架设 7 Days to Die 服务端(基于官方教程)

热门文章

  1. Python爬虫开发从入门到实战
  2. 解决微信内置浏览器屏蔽下载链接问题
  3. Gvim开发环境配置笔记--Windows篇(转)
  4. 租用国外服务器应该注意哪些?
  5. Apache Pulsar PMC 成员翟佳:开源和 Apache 社区是个带有魔法的宝库
  6. glib linux,[转载]linux下glib.h的介绍
  7. oracle表连接查询逗号隔开_Oracle多表连接查询
  8. java frame 显示图片_java怎么在JFrame中显示动态图片?
  9. 3月21日短线黑马牛股公开验证
  10. java 霍夫变换_霍夫变换(Hough Transform)