关于微信的一些总结(一天进步一点,坚持不懈,成功会慢慢向你走进)

一、关于Android动态破解微信本地数据库(EnMicroMsg.db) 的步聚:

微信本地数据库的加密规则:
1.root手机,以便获取su权限,以及修改微信目录的读写权限。
2.获取手机IMEI码  如141858783361415
3.获取当前登录微信账号的uin(存储在sp里面) ---shared_prefs/auth_info_key_prefs.xml  -897688233
4.拼接IMEI和uin , 如141858783361415-897688233
5.将拼接完的字符串进行md5加密, md5(141858783361415-897688233,32) = a9dd62add3ddd41017c174ee1d382dc8
6.截取加完密的字符串的前七位(字母必须为小写),结果: a9dd62a
7.通过通过SQLCipher这个库来连接加密的数据库:compile 'net.zetetic:android-database-sqlcipher:3.5.4@aar'  ,也可通过sqlcipher图形工具,通过这个工具,我们可以快速的查看微信的db文件里面有哪些表,每个表里面有哪些字段,然后我们就可以在代码中写出相应的sql语句来查询我们需要的数据了,sqlcipher的下载。常用库介绍:【rcontact】联系人表,【message】聊天消息表
 -------------------
说明:可以准确的定位到uin对应的EnMicroMsg.db文件,MD5("mm"+auth_info_key_prefs.xml中解析出微信的uin码) 生成的md5就是EnMicroMsg.db所处的父级文件夹的名称如:mm-897688233:91c8a5c0e536486eff63cae774335bb2

二、一些注意事项

1.代码生成图片,放到相册,微信是直接识别不了,需要发送一个广播,另外图片放到Tencent/MicroMsg/Camera下面效果更好,如下面的代码所示:


    public static void scanMediaFile(Context context, File imgFile){
        MyLog.e(imgFile.getAbsolutePath());
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {//如果是4.4及以上版本
            Intent mediaScanIntent = new Intent(
                    Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
            Uri contentUri = Uri.fromFile(imgFile); //out is your output file
            mediaScanIntent.setData(contentUri);
            context.sendBroadcast(mediaScanIntent);
            MyLog.e(Build.VERSION.SDK_INT+"\t方式1:"+imgFile.getAbsolutePath());
        } else {
            MyLog.e(Build.VERSION.SDK_INT+"\t方式2:"+imgFile.getAbsolutePath());
            context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,Uri.parse("file://" +imgFile.getAbsolutePath())));
        }
    }



    public static boolean saveQRcodeFileToDCIM(Context context, String url){
        Bitmap bitmap=createQRCodeBitmap(url);
        if(bitmap!=null){
            try {
                String name="MyQRcode";
                String parentPath="Tencent/MicroMsg/Camera";
                File f = new File(Environment.getExternalStoragePublicDirectory(parentPath), name+".png");
                saveBitmap(bitmap,f);
               // context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(f)));  //更新系统图库的方法
                scanMediaFile(context, f);
                MyLog.e("二维码生成功-  ---"+f.getAbsolutePath());
                return true;
            }catch (Exception e){

            }
        }
        return false;
    }




参考链接:
1. http://blog.csdn.net/njweiyukun/article/details/54024442
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值