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

    原作者: 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中即可。

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

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

    请发表评论

    全部评论

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

    查看全部评论>>

    粉丝3 阅读21473 回复3
    上一篇:
    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号 )