手机QQ3.0 TMP协议分析与模拟实现
📅 2026/7/19 11:21:42
👁️ 次浏览
1. 协议分析TMP项目概述最近在研究一个老版本手机QQ3.0版的通信协议分析项目这个版本采用的是TMPTencent Mobile Protocol协议。作为一个存在近十年的老协议它的设计简单直接非常适合作为网络协议分析的入门案例。通过这个项目我们可以学习到基本的网络抓包技巧、协议逆向分析方法以及简单的客户端模拟实现。这个协议分析主要涉及以下几个核心环节使用Wireshark进行网络封包捕获分析明文的HTTP键值对格式模拟客户端与服务器的交互过程解析各种命令的请求响应格式2. 工具准备与环境搭建2.1 所需工具清单进行协议分析需要准备以下工具kEmulatorJava手机模拟器用于运行老版本手机QQ客户端Wireshark网络协议分析工具用于捕获和分析网络数据包JD-GUIJava反编译工具用于查看客户端代码逻辑老版本手机QQ3.0客户端分析对象2.2 环境配置步骤安装kEmulator并配置Java环境下载手机QQ3.0的JAR包并导入模拟器安装Wireshark并配置抓包网卡确保所有工具都能正常运行提示建议在虚拟机环境中进行实验避免影响主机网络环境。3. 协议分析详细过程3.1 服务器信息获取首先需要获取QQ服务器的地址信息。这个版本的QQ通过一个固定的URL获取服务器列表http://conf.3g.qq.com/newConf/kjava/aubin2.jsp访问这个URL会返回如下格式的配置信息SERVERCONFIG_NUM5 SERVERCONFIG_TYPEKQQTCP,KQQTCP,KQQHTTP,KQQHTTP,KQQHTTP SERVERCONFIG_URLsocket://58.60.12.177:14000,socket://211.136.236.88:14000, http://tqq.tencent.com:8000,http://mconn.tencent.com:14000,http://kconn.tencent.com:21001关键字段说明SERVERCONFIG_NUM可用服务器数量SERVERCONFIG_TYPE服务器类型TCP或HTTPSERVERCONFIG_URL服务器地址列表3.2 Wireshark抓包分析启动Wireshark选择正确的网卡开始抓包在kEmulator中运行QQ并登录在Wireshark过滤器中输入目标服务器IP进行过滤通过分析抓包数据可以发现这个版本的QQ协议完全是明文传输的HTTP键值对格式非常易于分析。3.3 协议格式解析典型的协议格式如下VER1.4CON1CMDLoginSEQ123UIN123456PSpassword...主要字段说明VER协议版本号CMD命令类型Login、Logout等SEQ序列号用于匹配请求响应UINQQ号码PS密码明文传输3.4 关键命令分析3.4.1 登录命令请求格式VER1.4CON1CMDLoginSEQ{seq}UIN{qq}PS{ps}M51LG0LC{lc}GD{gd}CKE\r\n响应格式VER1.1CMDLoginSEQ{seq}UIN123456RES0RS0HI60LI300SG***SSG123456789\r\n关键响应字段RES0服务器成功响应RS0登录成功其他值表示各种错误状态3.4.2 获取好友信息请求格式VER1.4CON1CMDSimpleInfo2SEQ{seq}UIN{qq}SID{sid}XP{xp}UN0TO0\r\n响应格式VER1.1CMDSIMPLEINFO2SEQ{seq}UIN{qq}RES0NP65535SN0UNFCNK\r\n关键字段NP65535表示返回了所有好友信息UN好友QQ号列表NK好友昵称列表3.4.3 发送消息请求格式VER1.4CON1CMDCLTMSGSEQ{seq}UIN{qq}SID{sid}XP{xp}UN{qq2}MG{mg}\r\n响应格式VER1.1CMDCLTMSGSEQ{seq}UIN{qq}RES04. 协议模拟实现4.1 模拟登录流程通过HTTP GET获取服务器列表建立Socket连接到选定的服务器发送登录命令处理服务器响应示例代码片段Pythonimport socket def qq_login(server_ip, server_port, qq_number, password): s socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((server_ip, server_port)) login_cmd fVER1.4CON1CMDLoginSEQ1UIN{qq_number}PS{password}\r\n s.send(login_cmd.encode(utf-8)) response s.recv(1024).decode(utf-8) print(Login response:, response) # 解析响应获取SID等关键信息 return parse_response(response)4.2 消息收发实现实现消息发送的基本流程构造符合协议格式的消息命令通过已建立的Socket连接发送等待并解析服务器响应示例代码def send_message(socket_conn, from_qq, to_qq, sid, xp, message): msg_cmd fVER1.4CON1CMDCLTMSGSEQ2UIN{from_qq}SID{sid}XP{xp}UN{to_qq}MG{message}\r\n socket_conn.send(msg_cmd.encode(utf-8)) response socket_conn.recv(1024).decode(utf-8) return response5. 常见问题与解决方案5.1 抓包问题排查问题1Wireshark抓不到QQ的数据包检查是否选择了正确的网卡确认QQ客户端确实通过该网卡通信尝试关闭防火墙和杀毒软件问题2数据包太多难以分析使用Wireshark过滤器如ip.addr 58.60.12.177可以按协议类型过滤如tcp.port 140005.2 协议模拟问题问题1登录总是失败检查QQ号和密码是否正确确认使用的是正确的服务器地址和端口检查协议格式是否正确特别是结尾的\r\n问题2接收不到好友消息确认登录后获取了正确的SID检查消息监听线程是否正常运行可能需要定期发送心跳包维持连接6. 安全注意事项这个老版本协议使用明文传输密码极不安全切勿在真实环境中使用仅限学习研究使用不要用于非法用途建议在隔离的测试环境中进行实验现代QQ版本已经采用加密协议分析方法完全不同7. 扩展思考通过这个简单的协议分析项目我们可以思考以下几个问题为什么现代即时通讯协议都采用加密传输在设计网络协议时如何平衡安全性和性能协议版本兼容性如何处理如何设计更高效的二进制协议替代文本协议这个TMP协议分析虽然简单但涵盖了网络协议分析的基本方法和思路对于理解现代即时通讯协议的设计有很大帮助。
1. 项目概述:SFT「不完全学习」现象与未来研究方向去年在调试一个对话系统时,我发现模型在特定领域的表现总是不稳定——有些样本处理得很好,有些却错得离谱。这让我意识到监督微调(SFT)过程中存在的"不完全学习&…
📅 2026/7/18 2:05:31
1. STM32 GPIO基础概念与LED控制原理GPIO(General Purpose Input/Output)是STM32单片机最基础也是最常用的外设之一。作为初学者接触STM32的第一个实操环节,GPIO控制LED看似简单,却蕴含着嵌入式开发的核心思想——通过寄存器操作控…
📅 2026/7/18 2:05:31
说实话,以前我对 E-LAND 集团旗下的牌子印象挺复杂的。毕竟那个经典的鹿标,在很多人的记忆里,可能还停留在“校服风”或者“韩系休闲”的刻板印象里。但最近我深入研究了一下,发现他们家其实藏着一个被严重低估的高端线——GEO。如果你还在纠结要不要入手,或者想知道这牌子…
📅 2026/7/18 2:05:14
如何在7天内掌握AI桌面助手:零代码GUI自动化的完整指南 【免费下载链接】UI-TARS-desktop The Open-Source Multimodal AI Agent Stack: Connecting Cutting-Edge AI Models and Agent Infra 项目地址: https://gitcode.com/GitHub_Trending/ui/UI-TARS-desktop …
📅 2026/7/19 11:21:19
1. Qt/C项目开发全景解析在工业控制、嵌入式HMI和跨平台应用开发领域,Qt框架配合C的组合堪称黄金搭档。我经手过的多个工业级项目证明,这套技术栈既能保证界面响应速度达到毫秒级,又能实现代码复用率超过80%。最近完成的智能仓储管理系统&…
📅 2026/7/19 11:21:19
3分钟掌握秒传技术:永久解决百度网盘分享失效难题的智能方案 【免费下载链接】rapid-upload-userscript-doc 秒传链接提取脚本 - 文档&教程 项目地址: https://gitcode.com/gh_mirrors/ra/rapid-upload-userscript-doc
还在为百度网盘分享链接7天就过期而…
📅 2026/7/19 11:21:19
1. 汽车产业数据治理的特殊性汽车行业的数据治理与其他行业相比存在显著差异。这个行业的特殊性主要体现在三个方面:数据来源的复杂性、产业链的协同性以及数据应用的实时性要求。现代汽车早已不是单纯的机械产品,而是集成了数百个ECU(电子控…
📅 2026/7/19 11:21:19
如何利用React Diff Viewer解决代码审查中的可视化对比难题 【免费下载链接】react-diff-viewer A simple and beautiful text diff viewer component made with Diff and React. 项目地址: https://gitcode.com/gh_mirrors/re/react-diff-viewer
React Diff Viewer是一…
📅 2026/7/19 11:21:19
1. 开发者成长之路:从代码到职业叙事 在技术社区里,我们常听到"开发者成长"这个说法,但很少有人真正拆解过这个过程的本质。作为一个从业十年的老码农,我想分享一个不太一样的视角——开发者的发展本质上是在编写自己的…
📅 2026/7/19 11:20:18
1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…
📅 2026/7/19 0:00:51
1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…
📅 2026/7/19 0:00:51
更多请点击:
https://intelliparadigm.com
第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…
📅 2026/7/19 0:00:51
1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…
📅 2026/7/19 0:00:51
1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…
📅 2026/7/19 0:00:51
更多请点击:
https://intelliparadigm.com
第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…
📅 2026/7/19 0:00:51
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/19 7:02:11
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/18 17:01:33
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/19 5:02:03