手机号查QQ号到底怎么实现的?我把 qq.py 拆开给你看

发布时间:2026/8/15 1:52:39
手机号查QQ号到底怎么实现的?我把 qq.py 拆开给你看 手机号查QQ号到底怎么实现的我把 qq.py 拆开给你看【免费下载链接】phone2qq项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq凌晨一点我在旧手机里翻遍了短信记录还是想不起那个八位数的QQ号。抱着最后一丝希望我找到了一个叫 phone2qq 的开源项目——它的用途很单纯手机号查QQ号。把手机号填进脚本脚本去和QQ的服务器对话再把结果翻译回人话。这篇文章就是我当时顺着代码走完一遍后的完整记录。先说结论它不完美但值得拆如果你指望它像官方找回流程那样稳定可靠我劝你先调整预期。项目自带的 README.md 写得很直白该方法可能已经失效2016.04.14。这是一份针对2016年前后旧版QQ登录协议的逆向产物到今天服务器大概率已经换了协议、换了密钥。但它依然是难得的学习材料——整个项目只有两个 Python 文件qq.py负责组包发包tea.py负责加解密加起来两百多行没有框架、没有第三方依赖。你能在一个晚上读完并且真的看懂。这种密度比不少XX协议实战教程来得实在。一段真实到有点狼狈的经历事情起因是换手机。新机装好QQ登录时才发现账号是多少来着我习惯用手机号登录可系统偏偏只认账号密码。密码我记得账号不记得死循环。官方找回流程是这样打开网页 → 点找回密码 → 输入手机号 → 收验证码 → 填验证码 → 等结果。听起来五分钟的事我实际折腾了快半小时——短信延迟、验证码过期、页面重定向每一步都在消耗耐心。当时我就在想手机号既然能登录那它和账号的绑定关系就一定能通过协议查出来只是官方没给你这个入口而已。于是有了这次的拆代码之旅。拿到 phone2qq先别急着跑仓库里躺着三样东西qq.py主程序模拟QQ客户端的两次登录握手tea.pyTEA 分组加密算法的 Python 实现README.md唯一一段使用说明——请自行修改相应代码注意最后那句。它不是开箱即用的成品而是一段需要你动手改的手机号查QQ号脚本。核心入口长这样login QQLogin() print(login.getQQ(10000000000)) # 把这里换成你的手机号顺着 qq.py 走它在跟服务器说什么这才是最有意思的部分。QQLogin类把假装客户端登录拆成了两步。第一步login0825。脚本对手机号做了一次很讨巧的变换每一位数字x都变成字符串3x比如1变成3111位号就变成22位十六进制数据拼进一个超长的包里。这个包用 TEA 加密后通过 UDP 发到183.60.56.100:8000——代码里写死的服务器地址。服务器回应后脚本从密文里挖出三样东西token0825、serverTime和serverIP它们是下一步的通行证。第二步login0826。拿着上一步的凭证重新组包手机号再次编码进去密码用 MD5 算一遍代码里默认是123456整个包再用另一组密钥加密。这次的响应里藏着答案——如果返回06开头QQ号就在第7到13位如果是fc开头就换一个位置取。最后str(int(..., 16))把十六进制转成十进制QQ号到手。而tea.py里的encipher/decipher是标准的 TEA 核心轮函数delta 0x9E3779B9这个魔法常数一出现懂行的人就笑了TEA 算法的标志性特征。整个流程的本质是把用手机号登录QQ这件事用代码完整模拟了一遍。服务器验证通过自然就把账号还给了你。这也是它必须开启手机号登录才生效的原因——没开这个功能服务器根本不认这次查询。让它跑起来只需要一条命令git clone https://gitcode.com/gh_mirrors/ph/phone2qq cd phone2qq python3 qq.py改好手机号后运行如果协议还通几秒内就能看到结果如果服务器没反应也别失望——这说明协议已经换代正好是你接着研究的新起点。qq.py末尾还留了一段被注释掉的批量示例for i in range(10000): num 1360106%04d % i qq login.getQQ(num) if qq: print(%s %s % (num, qq))注意这段是用来扫号段的别这么干。它只该出现在协议研究中不该出现在任何人的批量查询工具里。它能做什么不能做什么把边界说清楚你才不会用错地方✅ 查自己手机号绑定的QQ号前提是该号开启了手机号登录✅ 作为学习QQ登录协议、TEA加密、UDP组包的真实案例❌ 拿不到密码它只返回账号❌ 不能查别人的号用途越界就是违规❌ 别再指望它长期可用它是2016年的协议快照换句话说它的价值在看懂而不在一直能用。真到急需找回账号的时候官方验证码流程依然是最可靠的路。想接着研究给你几个抓手如果你被这段代码勾起了兴趣可以顺着这几个点往下挖把login0825和login0826的包拆成表格对比两次握手各自带了哪些字段改tea.py的密钥观察解密失败时返回值的形态理解校验机制用抓包工具对比当前QQ客户端的真实流量看这些年协议迭代了什么每一步都会有收获因为这是真实世界里的协议代码不是教程里那种删掉错误处理的伪代码。现在轮到你了。你的第一个目标很简单克隆仓库读完README.md把qq.py里getQQ那行改成自己的手机号跑一次——无论成功还是超时都算完成。跑完记得回来聊聊这是你第一次见到伪装客户端这种逆向思路还是已经在盘算着给这个老项目写个新版本了【免费下载链接】phone2qq项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考