• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    硬盘基地手机版
  • 关注官方公众号
    微信扫一扫关注
    硬盘基地公众号
  • 安卓手机微信取数据库打开密码的代码

    原作者: 330wang数据恢复 收藏 分享 邀请
    由于本人已经找到了通用的安卓微信数据库打开方法,所以写下这个打开方法。           
           话说安卓微信的打开密码由两个部分组成,一个是imei另一个是uin。这个imei好取得,但是uin可不是那么好取得的。
           不知大家注意到没有,在MicroMsg文件夹下有两个cfg文件。一个是systeminfo.cfg另一个是compatibleinfo.cfg。
    在这两个文件中,用户的imei和uin以hashmap的方式进行存储。具体什么是hashmap大家百度一下吧。这里我就不多说了。

     下面是对这两个文件取得打开密码的java代码:
    //////////////////////////////////////////////////////////////////////////////////////////////////
     package com.ime;
    import java.io.FileInputStream;
    import java.io.ObjectInputStream;
    import java.security.MessageDigest;
    import java.util.HashMap;
    public class IMEI {
     public static void main(String[] args) {
      try {
       ObjectInputStream in = new ObjectInputStream(new FileInputStream(
         args[0]));
       Object DL = in.readObject();
       HashMap hashWithOutFormat = (HashMap) DL;
       ObjectInputStream in1 = new ObjectInputStream(new FileInputStream(
         args[1]));
       Object DJ = in1.readObject();
       HashMap hashWithOutFormat1 = (HashMap) DJ;
       String s = String.valueOf(hashWithOutFormat1.get(Integer
         .valueOf(258))); // 取手机的IMEI
       s = s + hashWithOutFormat.get(Integer.valueOf(1)); //合并到一个字符串
       s = encode(s); // hash
       System.out.println("The Key is : " + s.substring(0, 7));
       in.close();
       in1.close();
      } catch (Exception e) {
       e.printStackTrace();
      }
     }
     public static String encode(String content)
      {
       try {
        MessageDigest digest = MessageDigest.getInstance("MD5");
        digest.update(content.getBytes());
        return getEncode32(digest);
        }
       catch (Exception e)
       {
        e.printStackTrace();
       }
       return null;
      }
      private static String getEncode32(MessageDigest digest)
      {
       StringBuilder builder = new StringBuilder();
       for (byte b : digest.digest())
       {
        builder.append(Integer.toHexString((b >> 4) & 0xf));
        builder.append(Integer.toHexString(b & 0xf));
       }
        return builder.toString();
     
      }
    }

    ///////////////////////////////////////////////////////////////////////////////////////////

    编译生成jar后,运行java -jar XXXX.jar systemInfo.cfg CompatibleInfo.cfg
    就可以得到加密数据库的打开密码了。
    注意: 保证命令行可用java,输入java -version 应该输出当前版本信息,具体JDK安装配置可从网上查一下,安装后将JDK的bin放在环境变量的PATH中即可。

    大家看,得到一个数据库的打开密码。但是这个微信登录了三个号,是哪个的呢??
    告诉大家,是最后一个登录的微信数据库的打开密码。 

    要是有人问我,那我要得到其它的微信数据库打开密码要怎么办??
    这个。。。。。。
    最笨的方法是每个微信分别登录一下。
    1

    开心

    鄙视
    4

    鼓掌

    愤怒

    可怜

    刚表态过的朋友 (5 人)

    该文章已有2人参与评论

    请发表评论

    全部评论

      • 引用 启先生 2018-2-2 10:36
        报错
        imei.java:6: 错误: 类IMEI是公共的, 应在名为 IMEI.java 的文件中声明
        public static class IMEI {
                      ^

    查看全部评论>>

    粉丝3 阅读18757 回复2
    上一篇:
    iPhone手机数据恢复基础 苹果OS的磁盘分区发布时间:2015-01-12
    下一篇:
    三星手机字库损坏该如何维修?发布时间:2014-01-06
    热门推荐
    专题导读
    热门话题
    阅读排行榜

    扫描微信二维码

    查看手机版网站

    随时了解更新最新资讯

    .

    在线客服(服务时间 9:00~18:00)

    在线QQ客服
    .
    Email:9443120@qq.com
    移动电话:13011628855

    Powered by Intohard X1.0© 2001-2013 Inhdd Inc.( 鲁ICP备09029790号 )