这个方法只适用于安卓手机。
1.安装无Root抓包:Packet Capture
无Root抓包:Packet Capture
安装之后打开应用-->点击Get Started -> Continue -> Install Certificate(如下图)
最后点击确认,完成抓包工具的安装。
2.打开坦白说界面
记住,不要点击右上角的“收到的坦白说”。
之后点击安卓手机的home按键,让QQ在后台运行。
3.开始抓包
打开我们之前安装的Packet Capture,点击右上角的绿色箭头,带数字1的那个
在弹出的列表中找到我们的QQ,点击它
在弹出的窗口中点击确认,开始抓包
之后同样是点击home键,让抓包工具在后台运行,回到我们的QQ,点击坦白说“收到的坦白说”,等待加载完成之后返回到我们的Packet Capture
4.查询数据
进入到抓包工具后,点击右上角红色的方块停止抓取数据
点击产生的数据包,在里面找到有“SSL”标记的倒数第三个数据包
点击去之后拉到最后面应该可以看到坦白说列表的数据,是一个json格式的,如下图,没看到这个数据,可能不在这个包里,返回上图中的界面,多翻看几个
之后,点击JSON旁边的三个圆点点,之后点击TEXT,把格式转化为文本类型
再次点击右边的三个圆点点,点击COPY,把数据拷贝出来。
到了这里,准备工作已经完成了,后面就需要变成相关的知识了,如果不会,可以把以上操作得到的数据评论给我,我帮助解析。
5.最后的解码
解码的方式,这里提供了两种,一个是基于java的,一个是基于python的,最终结果都是一样的。
基于python:
# -*- coding: utf-8 -*-
import json
class Who:
def __init__(self):
self.key = {
"oe": "0", "n": "0", "z": "0", "on": "0",
"oK": "1", "6": "1", "5": "1",
"ow": "2", "-": "2", "A": "2", "oc": "2",
"oi": "3", "i": "3", "o": "3", "oz": "3",
"7e": "4", "v": "4", "P": "4", "7n": "4",
"7K": "5", "4": "5", "k": "5", "7": "5", "7v": "5",
"7w": "6", "C": "6", "s": "6", "7c": "6",
"7i": "7", "S": "7", "l": "7", "7z": "7",
"Ne": "8", "c": "8", "F": "8", "Nn": "8", "ov": "8",
"NK": "9", "E": "9", "q": "9", "Nv": "9"
}
def calc(self, string, debug=False):
result = ""
string = string.replace("*S1*", "")
while string:
if len(string) > 1:
if string[0:2] not in self.key:
if debug:
print(string[0:1], self.key[string[0:1]])
result += self.key[string[0:1]]
string = string[1:]
else:
if debug:
print(string[0:2], self.key[string[0:2]])
result += self.key[string[0:2]]
string = string[2:]
else:
if debug:
print(string, self.key[string])
result += self.key[string]
string = ""
return result
基于java:
这里不贴代码浪费篇幅了,直接下载源码查看,注意的点就是,按照我给出的方式,拷贝json字符串把双引号替换成单引号。
坦白说java源码:
链接:https://pan.baidu.com/s/1BxItF0NtY2zFFGoYGAjHkQ 密码:skxj
马赛克的部分就是我们的解密QQ号了,在QQ上粘贴这个QQ号,逐渐删除尾部数字(腾讯做了精准搜索处理),就能查到是谁给你发送的消息了。
补充:
以上的方式只能查询6月份之前收到的坦白说的内容,6月份以后,腾讯对加密部分重新设置了加密规则,还没有人能够破解它。