有个朋友上门寻求协助,带着她朋友的朋友的手机,说是手机硬件有问题,想把手机内的资料都备份出来,尤其是WeChat的聊天内容…我跟她说,那iTool等工具不就可以帮上忙了吗?没想到她早就试过了, 说iTool根本找不到WeChat的数据库EnMicroMsg.db,看来她真的是很想取出数据哈~下足功夫了…

其实,取出WeChat数据库还不算是个问题,重点是在取出后,如何萃取出里头的聊天内容,因为WeChat在Android里可是默认加密的数据库哦~但朋友嘛,只好尽力而为,帮帮她喽~毕竟,”凡走过必留下痕迹”,聊过的话,也必然还躺在数据库里头,真人面前不说假话…其实懂数据库特性者便知,所谓”删除”非真删除…

接下来,就请各位和在下化身为调查员,展开WeChat加密数据库的破解任务吧~先用iTool查看相关信息,很幸运的,这是支已root过的手机,处理起来也会方便多了…也许他/她当初只是为了取得手机的超级管理者权限以彻底的”玩”手机,但在这案例中,对欲破解Android中默认加密的WeChat数据库的我来说,便有了施力点,可说几乎是已成功了一半…现在各位更可以体认,为何说root是”两面刃”了吧~

1. 定位WeChat数据库所在位置并导出到计算机上进行后续处理

2.检视EnMicroMsg.db数据库内容,果然是加密的呢,想不到WeChat在Android的版本竟有如此的安全性哈..真是令人意外~

3.古人云:"有法必有破”,因此在破解前,先来研究一下它的加密原理

查到的数据显示,它的加密规则单纯,是利用IMEI搭配WeChat UIN,然后计算出MD5值,取前7码,这便是它的key.

IMEI-国际移动设备标识符-它可说是手机的身份证呢…是唯一识别,绝不会有2支机有同样的IMEI,这也是往往在犯罪侦查中,要扣押犯嫌手机之故,里头可是一个人生活的缩影…

UIN-微信用户的身份证号码,应该不用多加说明了…

4.找出手机的IMEI

有2个方式,随个人喜好:

a.)    拨号键盘按 *#06#

b.)    打开手机背盖,电池取出,可查看IMEI等相关信息

5.找出UIN,它位于档案system_config_prefs.xml中,搜寻字段 uin即可查到value

6.将IMEI与UIN合在一起(2个字符串中间不要自作聪明去加一些符号,不然死也解不了数据库…),算出一组MD5 Hash值,取其前7码

7.幸运的是,WeChat数据库所用的加密是开源的.因此可方便的找到相关资源.可以在不同操作系统平台运行后续的破解步骤.在此为简化步骤之故.直接用Windows版的SQLCipher来开启数据库

8.开启EnMicroMsg.db时,便会要求输入pragma key,请输入上述得到的前7码即可

9.拨云见日…总算可以看到聊天内容了

10.汇出聊天内容吧~产生成文件,方便她用字处理工具直接检视,无须再操作数据库.

后记:

皇天不负苦心人,友人想挖出手机内WeChat 6.0.1加密数据库的聊天内容,总算如愿以偿…

据了解,即使是知名取证设备大厂如xry等,目前尚无法有效处理WeChat的加密数据库..是WeChat版本太新关系吗?不太清楚…智能手机聊天App愈来愈进化了…”阅后即焚”的功能推陈出新,再加上”加密”,简直是固若金汤…未来要破解这类聊天App的聊天内容恐怕只会难上加难~

也许有人会说,那还不简单,聊天内容定期去删除就好啦~问题来了,这类聊天App软件都会将信息存在数据库中,而凡是只要存放在数据库中的数据,所谓"删除"也并非真正删除的..而只是注记,让它们隐身起来…除非真的用数据库工具或下指令去处理,不然数据,可是一直都在的哦~这也是我一开始对她所说的”凡走过必留下痕迹”…

Normal
0

0
2

false
false
false

EN-US
ZH-TW
X-NONE

凡聊过必留下痕迹-破解加密的WeChat数据库的更多相关文章

  1. Kittenblock画笔基础,移动留下痕迹的蝴蝶,图形化编程经验分享

    Kittenblock画笔基础,移动留下痕迹的蝴蝶,图形化编程经验分享 跟很多学生聊过,很多学生不是不努力,只是找不到感觉.有一点不可否认,同样在一个教室上课,同样是一个老师讲授,学习效果迥然不同.关 ...

  2. 破解加密PDF文件pdfcrack

    破解加密PDF文件pdfcrack   PDF是常见的文档格式.它允许用户设置双重密码来保护文档.第一重是用户密码(user password),当打开PDF文档,输入该密码.第二重是所有者密码(ow ...

  3. QT实现支持加密的Sqlite数据库引擎

    Sqlite数据库使用很广泛,我们经常会在发布一些小型软件的时候使用它,因为它不需要安装服务器.QT默认的数据库引擎是支持SQLITE数据库的,但并不支持对数据库加密,不加密的Sqlite数据库任何人 ...

  4. 巧用Red Gate SQL Compare破解加密了的存储过程和函数

      最近项目中遇到了一个遗留系统的存储过程和函数被加密了,网上找了半天,解决办法倒是有,但需要写一大堆脚本, 怕影响原系统的运行,就说先同步到其他服务器上去破解.没想到,打开Sql Compare一比 ...

  5. Unity防破解 —— 加密Dll与Key保护

        在阅读这篇文章之前,我在处理mono加密问题时,也是参考了雨凇的文章,所以建议先看一下雨凇写的关于加密Dll的文章: 1.Unity3D研究院之Android加密DLL与破解DLL .SO 2 ...

  6. LabVIEW - 破解加密vi

    步骤 使用二进制阅读软件打开加密vi 查找字段"00 00 00 30",其后的16位即可能是密码(可能查找到多个位置带有该字段,只有其中之一为密码位置) 将查找到的密码复制到MD ...

  7. sql2008破解加密存储过程

    网上的很多不能正确解密,出现空白,还好有这个,mark下了. Create PROCEDURE [dbo].[sp_windbidecrypt] (@procedure sysname = NULL, ...

  8. SQL SERVER 2008破解加密存储过程(修正存储过程过长解密出来是空白的问题)

    SQLServer2005里使用with encryption选项创建的存储过程仍然和sqlserver2000里一样,都是使用XOR进行了的加密.和2000不一样的是,在2005的系统表syscom ...

  9. 空间小姐姐生活照,我用python破解加密压缩包,无忧查看

    事情的经过是这样的: 又是奶茶,行吧行吧. 快点开工,争取李大伟回来之前搞定. 李大伟说是6位数字密码 那么我们可以利用python生成全部的六位数字密码 #生成从000000到99999的密码表f ...

随机推荐

  1. Java System.out的输出缓冲

    今天学习了java的正则表达式api,在写例子的时候遇到了让人摸不着头脑的问题:从控制台输入了字符串,却没有输出;直到输入的字符串不能匹配的时,一起与Unabled to match输出.相关代码如下 ...

  2. 图片_ _Android--加载大分辨率图片到内存

    http://www.cnblogs.com/plokmju/p/android_LoadBigImage.html#3084005 前言 在使用ImageView显示图片的时候,直接加载一个图片资源 ...

  3. 【转】C++ 单例模式

    http://blog.csdn.net/hackbuteer1/article/details/7460019 单例的一般实现比较简单,下面是代码和UML图.由于构造函数是私有的,因此无法通过构造函 ...

  4. stdlib

    system(pause): int cmp(const void *a ,const void *b) { return *(int *)a - *(int *)b ;          //从小到 ...

  5. Java8之默认方法和静态接口方法

    前言 上一篇文章30分钟入门Java8之lambda表达式,我们学习了lambda表达式.现在继续Java8新语言特性的学习,今天,我们要学习的是默认方法和静态接口方法. 这一Java8的新语言特性, ...

  6. java调用FFmpeg及mencoder转换视频为FLV并截图

    Conver.java package com.ll19.flv; public class Conver { public void run() { try { // 转换并截图 String fi ...

  7. rails4.2.6配置发送邮件

    调试了很久,最后终于可以发送了 1 在config/environments/development.rb文件里配置邮件信息 config.action_mailer.raise_delivery_e ...

  8. thinkphp 访问其它控制器模板

    默认的访问该方法对应得模板:$this->display() 访问其它控制器模板:$this->display(‘控制器名/方法’)

  9. C# 连接操作MYSQL 数据库_02

    using MySql.Data.MySqlclient; // 引进MYSQL 库 // C# 连接 MYSQL 数据库更好的方法 void func_02() { string str_conn_ ...

  10. 为何你的php代码没有写结束标签

    PHP闭合标签"?>"在PHP中对PHP的分析器是可选的.但是,如果使用闭合标签,任何由开发者,用户, 或者FTP应用程序插入闭合标签后面的空格都有可能会引起多余的输出.ph ...