其实早在半年以前就研究过手机QQ聊天记录的破解,只是当时研究了一半没什么进展就放下了,现在业务需要,同时又有一些资料,就再次研究了这个问题。要想拿到聊天记录的数据库,当然首先需要root,聊天记录的数据库就在/data/data/com.tencent.mobileqq/databases/{所登录的QQ号码}.db。数据库位置
      手机QQ不像微信那样直接加密数据库,而是对数据库里面的字段进行加密,我们如果直接打开QQ的数据库,看到的是这样的!QQ数据库因此需要对数据的内容进行解密,其中解密的KEY为手机的IMEI。解密的重要代码如下

//传入字符串,输出解密结果
public static String decrypt(String s) {
    char[] imeiArr = IMEI.toCharArray();//手机IMEI
    int imeiLen = imeiArr.length;
    char[] enArr = s.toCharArray();
    int enLen = enArr.length;
    for (int i = 0; i < enLen; i++) {
        enArr[i] = (char) (enArr[i] ^ imeiArr[i % imeiLen]);
    }
    return new String(enArr);
}

上图好友列表,解密之后的结果为:解密结果
聊天记录及群列表同理。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!

Retrofit使用之自定义Converter 上一篇
先导篇 下一篇