协议分析报告Word文件下载.docx
《协议分析报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《协议分析报告Word文件下载.docx(30页珍藏版)》请在冰豆网上搜索。
3.2.2获取用户评论信息10
3.3切换版块功能分析11
3.4读取单条新闻功能分析14
3.5评论功能分析17
3.5.1查看评论17
3.5.1发表评论21
4分析总结25
1概述
1.1“腾讯新闻”应用软件介绍
腾讯新闻客户端是基于IOS、Android平台的腾讯新闻服务,快速、客观、公正地提供新闻资讯的中文免费应用程序。
凭借优异的用户体验引发用户大量下载,以王者之姿“秒”杀用户,带领移动资讯进入“秒”时代。
是腾讯团队用心打造的一款丰富、及时的新闻应用,本着精炼、轻便的目标,为用户提供高效、优质的阅读体验。
全球视野,聚焦中国,一朝在手,博览天下。
腾讯新闻功能如下:
1.每日新闻及时报道,洞察真相,领先一步
2.媒体订阅,全面接入优质媒体/微信自媒体,一处订阅,多处可看
3.云收藏,便捷收藏、随时访问、永久保存
4.视频、图片、直播,多媒体资讯,舒适体验,值得拥有
5.专题新闻,聚合报道重要新闻事件,了解事件全貌
6.离线下载智能启动,30秒下载1000条新闻,没有网络也有得看
7.横划手势切换2级栏目,单手操作更方便
8.三种阅读模式,2G/3G/4G/wifi环境顺畅浏览
9.腾讯微博、QQ空间、微信朋友圈、新浪微博、微信好友、手机QQ好友、邮件,随时与好友分享态度
腾讯新闻客户端自上线以来,以快速的推送速度、界面友好、内容专业原创、视频图片优势得到了用户普遍认可,用户数量、活跃度和口碑都在同类软件中名列前茅,一直保持着在AppStore新闻软件排名前三位。
在欧洲杯赛事和伦敦奥运期间,腾讯新闻客户端开创性的推出视频新闻和奥运专版举动,提高新闻客户端的竞争门槛,更是引发了行业强烈关注。
。
腾讯新闻客户端的特色在于把新闻、视频、微博有机地结合了起来,为手机用户提供多形式、多产品精华内容聚合的快速阅读体验。
同时拥有优秀的开发和运营团队、腾讯海量的品牌用户、良好的用户口碑以及强大的推广资源等优势腾讯还拥有数量庞大的无线互联网产品,可以互相推荐下载,并会第一时间接入王牌无线产品:
微信,让用户能够在微信中分享腾讯新闻,这是其他应用所不具备的。
此外,腾讯新闻客户端具有强大的实时推送功能,7x24小时不间断更新。
重大新闻瞬间推送到手机,随时随地掌握天下事。
用户通过腾讯新闻客户端,3秒即可连接到世界新闻,重大事件发生时,腾讯新闻客户端版能够实现30秒实时推送新闻。
300秒即可尽览每日资讯。
通过速度可以让用户真切的感受到了新闻触达指尖的便捷性。
1.2分析环境
1.2.1测试手机配置
测试手机配置如表1所示:
手机型号
红米Note3
Android版本
5.0.2LRX22G
MIUI版本
MIUI7
处理器
八核2.0GHz
运行内存
2GB
IMEI
868029028293744
MAC地址
10:
2a:
b3:
18:
9d:
f3
序列号
KRYHQGTWROR4558
表格1测试手机配置
1.2.2应用软件版本
1.2.3分析工具介绍
Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据。
Fiddler要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式。
这里使用Fiddlerv.4.4.9.8版本。
图表1Fiddler界面展示
1.2.4网络拓扑
待分析的应用为手机APP,因此将手机和PC接入同一局域网,将手机无线网代理设置为PC的IP地址,手机传输的数据包都会通过PC,即可以被PC上的Fiddler软件捕获。
2应用软件结构分析
响应包
GET/POST请求
http协议
客户端通过http协议将参数携带在url中由GET方式向服务器发送请求,服务器验证app的序列号(uid=d6b9884c-9ea1-44cc-9b57-d59847b4d20e)合格后,将app请求的内容数据以JSON格式返回给客户端。
3应用协议分析
3.1启动(连接)过程分析
3.1.1获取新闻各版块
当启动腾讯新闻时,腾讯新闻向服务器发送请求,请求首页内容。
请求包如图3.1所示。
客户端user-agent解码为腾讯新闻445,445为版本号。
由于尚未登录,cookie中携带的信息为空。
还可以看到服务器IP182.140.167.62。
图3.1启动请求包
APP用GET方式向服务器发出请求。
在请求URL中包含手机的一些信息,如手机型号、操作系统版本、手机串号和腾讯新闻客户端id等,图3.2是对URL进行解码后得到的信息。
由请求的URL可以看出uid是app的id,网络为wifi,设备为Xiaomi_MI2A,设备的IMEI为860310025811219,及设备的mac地址,app类型和版本号。
图3.3展示了URL中携带的手机的信息,整理为表格。
GEThttp:
//182.140.167.62/getQQNewsRemoteConfigAndroid?
uid=d6b9884c-9ea1-44cc-9b57-d59847b4d20e&
qqnetwork=wifi&
Cookie=%20lskey%3D%3B%20luin%3D%3B%20logintype%3D0%20&
qn-rid=156172261&
store=17&
hw=Xiaomi_MI2A&
devid=860310025811219&
qn-sig=c8730d6e27c47f598d3f848e2df9f4cf&
sceneid=73387&
mac=ac%253Af7%253Af3%253Ac7%253A51%253A6f&
imsi=460028824375613&
apptype=android&
appver=16_android_4.4.5HTTP/1.1
图3.2启动请求URL解码
图3.3启动请求包中携带的参数
服务器收到请求后向手机返回响应包,如图3.4所示。
其中新闻各个版块由JSON格式返回,如图3.5所示。
图3.5中还对比了app中显示的内容。
图3.4启动响应包
图3.5响应包中新闻各版块和手机客户端中的显示
3.1.2获取首页新闻列表
接下来就是获取新闻列表。
APP再次向服务器发出请求,URL中携带的参数与上次请求相似。
图3.6展示了该请求中的信息,可以看到请求的是要闻(news_news_top)版块的新闻列表,还多了屏幕宽度(screen_width)为720。
图3.6获取列表请求包中参数
响应包中依旧以JSON格式返回新闻列表,图3.7中可以看出第一条新闻,“多国民众悼念巴黎恐怖事件遇难者”,与图3.5中第一条新闻相对应。
每条新闻中还有一些其他参数,比如评论id,新闻id,图片信息等。
以下的新闻类似,不一一列举。
图3.7新闻列表响应包JSON
3.2登录(注册)分析
3.2.1登陆过程分析
APP打开登陆界面,输入用户名密码,向服务器发送登陆请求。
图3.8展示了请求包中所带的参数。
Cookie中携带了用户名和口令信息,口令加密变换非明文显示。
//182.140.167.62/getUserInfoPhone?
Cookie=%20lskey%3D0003000027984094b8f9b1f39ea27a473388cd6451ce330e1898c74c4784aad7c6dd46828e78e561c0e77430%3B%20luin%3Do0349819871%3B%20logintype%3D0%20&
qn-rid=1617535381&
qn-sig=23b37841353d990c6513033329f84010&
format=json&
appver=16_android_4.4.5&
apptype=androidHTTP/1.1
图3.8登陆请求包参数
服务器收到请求包后验证用户名口令,成功后返回登陆状态。
从json格式的数据中可以看出,昵称____"
,头像链接qqhead=
图3.9登陆响应包
3.2.2获取用户评论信息
登陆后,app再向服务器发请求,获取用户的一些信息,比如用户最近的评论,最后更新时间等等。
图3.10所示就是获取用户评论信息的响应包中的JSON数据,其中可以看到最新评论为“11111111111”.
//182.140.167.62/getCommentUserInfo?
coral_uid=&
coral_uin=&
Cookie=%20lskey%3D00030000c2ceb4353d7562ee498e24f188f126fd61d19a9090b6b0c89ccbcca67e2648442f2951834ff17728%3B%20luin%3Do0349819871%3B%20logintype%3D0%20&
qn-rid=1160662987&
qn-sig=b9245f636ab6fd9d784951a3695dd50d&
图3.10获取用户评论信息响应包
3.3切换版块功能分析
当点击“四川”、“体育”等其他版块时,app向服务器请求其他版块的新闻列表。
其URL中带的参数中,child字段的值为“news_news_sports”,即可切换到体育版块。
请求包所带参数如图3.11所示。
图3.11切换版块请求包
响应包中可以看到app中显示的内容,“活塞”、“马刺”等。
如图3.12和3.13所示。
图3.12体育版块
图3.13体育版块响应包
3.4读取单条新闻功能分析
当用户点击单独一条新闻时,app向服务器发送请求getSimpleNews,URL中SPO2015010700464109为该条新闻的ID。
请求URL中携带的参数如图3.14所示。
http:
//182.140.167.62/getSimpleNews/16_android_4.4.5/news_news_sports/SPO2015010700464109/wifi/720?
Cookie=lskey=0003000090fbe55bfd571a44f5864ce3726fc25c6783fe5f0d0b88379e2adeeeb0f7bd2bb4d4fc0ef2c21669;
luin=o0349819871;
logintype=0&
qn-rid=1359043997&
qn-sig=078b9d849139b68fcbb9721b822739bb&
mac=ac%3Af7%3Af3%3Ac7%3A51%3A6f&
HTTP/1.1
图3.14读取单条新闻请求包
图3.15为app中显示的新闻。
响应包以json格式返回数据,包含新闻的内容,如图3.16、3.17所示。
图3.18为相关新闻
图3.15app中显示新闻及相关新闻
图3.16响应包中的视频部分
图3.17响应包中的新闻内容部分
图3.18响应包中相关新闻部分
3.5评论功能分析
3.5.1查看评论
点击评论按钮,app向服务器发送getQQNewsComment请求,URL中包含新闻的ID,可以获取到该新闻的评论。
请求包参数如图3.19所示。
//182.140.167.62/getQQNewsComment?
comment_id=1012965980&
Cookie=%20lskey%3D00030000bb6ad0c4f1a5c9619bed1d9da6414b9c2016a43e2c8f4e190d19fde80eee66043422b04388e3532f%3B%20luin%3Do0349819871%3B%20logintype%3D0%20&
qn-rid=2031082801&
qn-sig=4a33ec42ce6e8e3cff5330498904cc7a&
chlid=news_news_sports&
url=http%3A%2F%2F%2Fa%2FSPO2015010700464109&
article_id=SPO201501080391720J&
page=1&
图3.19获取评论请求包参数
响应包中显示评论的数量。
如图3.20。
图3.20评论数量
图3.21显示app中的评论列表,图3.22中,可以看到评论用户的昵称、所在地和内容。
Agree_count表示评论获赞的数量。
图3.21app中显示评论内容
图3.22响应包中评论的内容
图3.23“喜欢”“汗”“愤怒”及其数量
3.5.1发表评论
写好评论后提交,通过POST请求提交给服务器。
请求包和响应包如图3.24所示。
在请求包的summary中可以看到评论的id和内容,以及该新闻的标题,可以在图3.25中看到(解码后)。
发表评论成功后,app显示评论内容,如图3.26服务器返回的响应包中会看到用户的昵称和评论内容,如图3.27。
POSThttp:
//182.140.167.62/shareQQNewsMulti?
qn-rid=448003266&
qn-sig=d54309d839cced8503341f41181aab1c&
图3.24发表评论的post请求和响应包的json
图3.25请求包中显示评论id和内容
图3.26APP中显示评论内容
图3.27评论成功后响应包中评论内容和昵称
4分析总结
该报告分析了腾讯新闻的启动、登陆、读取新闻、评论等功能的客户端服务器交互过程,详细分析了每次会话中请求包和响应包中的参数、数据等,了解腾讯新闻app的详细工作过程。
客户端通过http协议将参数携带在url中由GET方式向服务器发送请求,服务器验证app的序列号(uid=d6b9884c-9ea1-44cc-9b57-d59847b4d20e)合格后,将app请求的内容数据以JSON格式返回给客户端。
应用的唯一标示由app序列号uid确定,请求的关键数据都包含在URL中,响应的数据以JSON格式储存并传输,在客户端解析并显示。