前言:在很多工作过程中,看到很多人事莫名其妙的微信被封了,但是想辅助找回或者找到之前里面联系人,但是因为登录不上去,无法查看,身为一个技术,这里我找了一下解决办法了,希望能帮你们工作上面。通过日常使用微信得知,断网的情况下也是能够查看微信聊天记录,所以微信的聊天数据库肯定是存在本地文件的,所以我们只要找到微信存储的数据库位置就能通过数据库查看聊天记录了,但是微信本地数据库肯定是做了加密的,所以只要找到微信数据库的解密方法就能查看数据库了。
适用范围:手机必须已经获取ROOT权限 手机必须要root Android(安卓)必须Root 苹果必须越狱!!!如果手机没有root或者刷机,可以百度一下手机root或越狱这里我暂时今天只说Android手机的使用方法
微信本地数据库的加密规则: 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).length() == 1) { sb.append("0").append(Integer.toHexString(0xff & encryption)); } else { sb.append(Integer.toHexString(0xff & encryption)); } } 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打开发送到电脑的EnMicroMsg.db文件 ,输入上面代码计算出来微信数据库密码,输入成功然后就可以查看微信数据库数据了
|