加入收藏 | 设为首页 | 会员中心 | 我要投稿 宁德站长网 (https://www.0593zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

通过Python解密手机QQ聊天记录

发布时间:2022-05-13 08:57:03 所属栏目:安全 来源:互联网
导读:据说手机QQ 2012之后使用记录保存的sqliteDB内容加密,库没有设置密码,直接用sqliteadmin之类的软件打开之后可以看到一堆歪七扭八的字符。那么如何恢复和解密QQ聊天记录呢? 数据库在哪? 安卓在/data/data/com.tencent.qq/databases/你的QQ号.db, IOS好像在
         据说手机QQ 2012之后使用记录保存的sqliteDB内容加密,库没有设置密码,直接用sqliteadmin之类的软件打开之后可以看到一堆歪七扭八的字符。那么如何恢复和解密QQ聊天记录呢?
 
         数据库在哪?
 
         安卓在/data/data/com.tencent.qq/databases/你的QQ号.db,
 
         IOS好像在/var/mobile/Applications/QQ/Documents/contents/你的QQ号/QQ.db未测试。所以说苹果需要越狱、安卓需要root。
 
怎么加密了?
 
sqlite数据库本身没有被加密可以直接用,但是一些敏感的数据部分被伟大的。。。异或加密了。比如分组名称(聊天记录更不用说了)。
 
然后就是:key哪里来的?
 
显然对于异或这种东东。。。可以很简单的直接用明文和密文推密码。比如:我把一个分组命名成aaaaaaaaaaaaaaaaaaaa。然后:
  
果断发现和网上说的一样(别抽我)key是手机的IMEI(别问我如果是不支持移动数据的安卓pad key是啥)。
 
IMEI怎么获取?拨号键盘输入*#06#
 
聊天记录都在哪里?
 
每个聊天记录都存入了单独的数据表mr_friend_+MD5(好友QQ)+_New
 
其中msgData是聊天内容,senderuin是加密的发信者qq号。
 
解密聊天记录:
 
复制
# -*- coding: utf-8 -*-import struct
import sqlite3
 
IMEI=;***************;def check(thestr):
    #print ;checking;
    if  (len(thestr)==0):
        return 0
    i=0
    while i<len(thestr):
        if ord(thestr[i])^ord(IMEI[i%15])<=0x7f:
            i=i+1
            #print ;1;
        elif (ord(thestr[i])^ord(IMEI[i%15])<=0xef) and (ord(thestr[i])^ord(IMEI[i%15])>=0xe0) :
            i=i+3
            #print ;3;
        else :
            return 0
    return 1
 
f2 = open(;rec1.tmp;,;wb;)
conn = sqlite3.connect(;*********.db;)
cursor = conn.execute("SELECT msgdata  from mr_friend_******************************_New ")print "select database successfully";for row in cursor:
    a= row[0]
   
    sbstr=;;
    if check(a)or 1:
        #if (ord(a[0])^ord(IMEI[0])<0xef)and(ord(a[0])^ord(IMEI[0])>0xe0):
            for i in range(0,len(a)):
                sbstr+=unichr(ord(a[i])^ord(IMEI[i%15]))
                #f2.write(struct.pack(;B;,ord(a[i])^ord(IMEI[i%15])))
                f2.write(struct.pack(;B;,ord(a[i])^ord(IMEI[i%15])))
 
然后发现utf8的3字节编码中文不能直接print出来求大神大腿。

(编辑:宁德站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!