美文网首页
Android破解微信数据库获取聊天记录

Android破解微信数据库获取聊天记录

作者: 神一般的男子 | 来源:发表于2018-05-09 19:23 被阅读1252次

前言: 通过日常使用微信得知,断网的情况下也是能够查看微信聊天记录,所以微信的聊天数据库肯定是存在本地文件的,所以我们只要找到微信存储的数据库位置就能通过数据库查看聊天记录了,但是微信本地数据库肯定是做了加密的,所以只要找到微信数据库的解密方法就能查看数据库了。

这里的微信解密规则具体不多讲,这是一个大神通过反编译查看微信的加密规则

想了解一下可点击大神的博客看下微信本地反编译解析过程原理

借鉴另外一个大神动态破解微信聊天记录   感谢这两位大神总结

微信本地数据库的加密规则:

  1.获取手机IMEI码

  2.获取当前登录微信账号的uin(存储在sp里面)

  3.拼接IMEI和uin

  4.将拼接完的字符串进行md5加密

  5.截取加完密的字符串的前七位(字母必须为小写)

适用范围:手机必须已经获取ROOT权限 

一.确保手机已经在root的情况下,手机上面下载安装 root explorer 文件管理器 各大应用市场都能搜到

二.打开手机文件 对应的微信数据库目录 /data/data/com.tencent.mm/shared_prefs/auth_info_key_prefs.xml

然后点击打开这个文件

如下图所示

获取到_auth_uin字段的value值,每个value值不一样,这只是我登录微信的值

三.通过代码获取数据库的校验密码

/**

    * 获取手机的imei码

    * @return

    */

    private void initPhoneIMEI() {

        TelephonyManager tm = (TelephonyManager) this.getSystemService(TELEPHONY_SERVICE);

        String  mPhoneIMEI = tm.getDeviceId();

        //1217750550  这个值就是在微信目录的value值 替换自己取到的值

        initDbPassword(mPhoneIMEI,"1217750550");

    }

    /**

    * md5加密

    * @param content

    * @return

    */

    private String md5(String content) {

        MessageDigest md5 = null;

        try {

            md5 = MessageDigest.getInstance("MD5");

            md5.update(content.getBytes("UTF-8"));

            byte[] encryption = md5.digest();//加密

            StringBuffer sb = new StringBuffer();

            for (int i = 0; i < encryption.length; i++) {

                if (Integer.toHexString(0xff & encryption[i]).length() == 1) {

                    sb.append("0").append(Integer.toHexString(0xff & encryption[i]));

                } else {

                    sb.append(Integer.toHexString(0xff & encryption[i]));

                }

            }

            return sb.toString();

        } catch (Exception e) {

            e.printStackTrace();

            return null;

        }

    }

 /**

    * 根据imei和uin生成的md5码,获取数据库的密码(去前七位的小写字母)

    * @param imei

    * @param uin

    * @return

    */

    private void initDbPassword(String imei, String uin) {

        if (TextUtils.isEmpty(imei) || TextUtils.isEmpty(uin)) {

            Log.d(TAG, "初始化数据库密码失败:imei或uid为空");

            return;

        }

        String md5 = md5(imei + uin);

        String password = md5.substring(0, 7).toLowerCase();

        //这里就是自己微信数据库的密码

        Log.d(TAG, "微信数据库密码====="+password);

    }

   四.复制微信数据库到电脑

   微信聊天记录数据库地址   /data/data/com.tencent.mm/MicroMsg/下面找到EnMicroMsg.db发送到电脑

五.下载sqlcipher图形化数据库

关于SQLCipher使用方法可以参考其官网https://www.zetetic.net/sqlcipher/sqlcipher-for-android/

然后使用sqlcipher打开发送到电脑的EnMicroMsg.db文件 ,输入上面代码计算出来微信数据库密码,输入成功然后就可以查看微信数据库数据了

Database Structure里面都是表结构,Browser Data里面则是表里面的数据了。

常用库介绍:【rcontact】联系人表,【message】聊天消息表 这里只上传了查看联系人图片了,想要查看聊天记录的自己可以试试查询message这张表。

相关文章

  • Android破解微信数据库获取聊天记录

    前言: 通过日常使用微信得知,断网的情况下也是能够查看微信聊天记录,所以微信的聊天数据库肯定是存在本地文件的,所以...

  • 破解微信数据库 并查询数据上传服务器

    由于工作需求破解了微信的数据库 并获取想要的信息上传服务器 都是内部手机 网上大神反编译了微信 发现微信的数据库是...

  • 【逆向】【Android微信】获取微信聊天记录

    2020-02-19 晴 郑州 出场人物 沉瓶 - 产品经理 饭咸 - 程序员 工作环境 硬件:MacBook P...

  • 微信数据库解密

    在网上看了好多微信数据库解密的文章,想要亲动手操作下 微信数据库加密方式:1.获取手机IMEI码2.获取当前登录微...

  • 获取Mac 微信聊天记录

    最近在做一个聊天的应用 刚好用到了数据库,看源代码是把所有的聊天消息都存储在一张表里的,对数据库不是很懂想着这样对...

  • Python - 获取微信聊天记录

    简介 最近接到公司的一个任务,要获取微信聊天记录,心想,这应该不太可能吧,毕竟微信这么多人用,要是能够轻易导出聊天...

  • 微信8.0聊天记录获取(2022年)

    本文章记录一下自己研究的和总结网上以前旧的微信聊天记录获取 获取手机微信聊天信息,需要较高的系统权限。手机要ROO...

  • 2018-11-20

    华为手机微信聊天记录删除了怎么恢复? 手机数据恢复精灵如何恢复微信聊天记录?安卓手机怎么找回删除的微信聊天记录?在...

  • 微信小程序开发指南v0.1

    前期工作包括,注册微信公众号获取 appid 等相关权限,有微信开放平台账号。急需体验的相关破解已有。 主要结构说...

  • 删除的微信聊天记录能恢复吗

    删除的微信聊天记录能恢复吗 微信用户最担心的事莫过于微信聊天记录被删除和微信通讯录被清空了,聊天记录被删除还好,如...

网友评论

      本文标题:Android破解微信数据库获取聊天记录

      本文链接:https://www.haomeiwen.com/subject/qszisxtx.html