http://www.docin.com/p-101479451.html

工作中遇到C/S的通讯接口测试,经常会遇到由于请求的结构不对或者包发送错误,导致很多问题,通常需要通过抓包工具,把发送的包抓下来,然后做进一步的分析,就可以一很容易看出存在的错误。
 
根据自己的总结和经验,整理了一个简单的分析方法,做为自己的知识积累,便于以后参考。
 

这是一个登陆请求的抓包:

0x0010   0a01 03a6 50a5 2d6f df20 f96b 2f09 fa4d        ....P.-o...k/..M
0x0020   5010 825b ec59 0000 0000 0000 0000             P..[.Y........
14:23:10.184430 88.120.40.59.broad.sz.gd.dynamic.163data.com.cn.20645 > pcs3166.11631: P [tcp sum ok] 150:306(156) ack 26 win 33371 (DF) (ttl 109, id 23149, len 196)
0x0000   4500 00c4 5a6d 4000 6d06 f19f 3b28 7858        E...Zm@.m...;(xX
0x0010   0a01 03a6 50a5 2d6f df20 f96b 2f09 fa4d        ....P.-o...k/..M
0x0020   5018 825b afcc 0000 0001 9c00 0100 0000        P..[............
0x0030   0100 0000 0000 0000 3c72 6571 3e3c 6d73        ........<req><ms
0x0040   6973 646e 3e31 3336 3332 3631 3734 3339        isdn>13632617439
0x0050   3c2f 6d73 6973 646e 3e3c 7077 643e 3733        </msisdn><pwd>73
0x0060   3432 3830 3c2f 7077 643e 3c75 613e 506f        4280</pwd><ua>Po
0x0070   636b 6574 5f50 433c 2f75 613e 3c76 6572        cket_PC</ua><ver
0x0080   3e6d 7075 7368 2e31 2e31 2e31 2e30 3835        >mpush.1.1.1.085
0x0090   3c2f 7665 723e 3c63 6f6d 6d5f 7665 723e        </ver><comm_ver>
0x00a0   313c 2f63 6f6d 6d5f 7665 723e 3c6d 6574        1</comm_ver><met
0x00b0   6169 643e 303c 2f6d 6574 6169 643e 3c2f        aid>0</metaid></
0x00c0   7265 713e                                      req>

那么根据自定义的接口文档来参考:

登陆的消息包头组建格式为:

CLIENT->CSVR的消息的接口格式

Protocal Version

2字节,数字

Length

4字节,数字

Type

2字节,数字

TransactionID

4字节,数字

Session ID

4字节,数字

MSG BODY

XML格式,长度不定

Length:表示整条消息的总长度,包括protocal version, length, type, session id及msg body字段。

Type表示消息类型,其类型和取值为 登录请求:1(Client->Server)

按照以上的协议分析:

MSGBODY前面的共:2+4+2+4+4=16个字节

所以找到从MSGBODY向前找,找到16个字节,就正确了,

下面的就是从<req>向前找,  就可以找到这16个字节:

0001  9c00  0100  0000  0100 0000 0000 0000

对比协议可以看出:

0001       9c00 0100   0000     0100  0000            0000  0000

nVersion   nLength     nType    nTransactionID;4      nSessionId

由于网络字节序与主机字节序的区别,不同CPU的字节序不一样,有些CPU是高字节在前面,有些是低字节在前面。网络上传输的消息码流是网络字节序的,

我们如果分析抓包工具的消息,由于主机是奔腾的CPU,先要将网络序转换为主机序,需要前后左右置换一下。置换后为:

0100       0001 009c   0000     0000  0001            0000  0000

nVersion   nLength     nType    nTransactionID;4      nSessionId

转化为10进制分别为:256 、65692、0、1、0

而实际的length的值我们可以数一下: 16+MSGBODY包共(140字节)= 156

而且也看出ntype不对,实际上应该是1。版本也不对。

通过这样一分析,就知道是登陆请求发错了,而且知道了错误的原因。

(一般抓包:我是用root用户直接用命令行抓,没有用相关工具)

抓包命令为:

/usr/sbin/tcpdump/ -vvx -s 2048 -i etho port 端口号

测试过程中如何分析抓包工具抓的HTTP或TCP包相关推荐

  1. 使用Wireshark抓包工具抓取直播源

    介绍Wireshark Wireshark是一款世界范围最广.最好用的网络封包分析软件,功能强大,界面友好直观,操作起来非常方便.它的创始人是Gerald Combs,前身是Ethereal,作为开源 ...

  2. 计算机网络抓包设计,计算机网络实验利用wireshark抓包工具抓包

    计算机网络实验利用wireshark抓包工具抓包 计算机网络实验[利用wireshark抓包工具抓包] 一.实验名称 使用网络协议分析仪 Wireshark 二.实验目的 1.掌握安装和配置网络协议分 ...

  3. 解决某手短视频抓包工具抓不到问题

    解决某手短视频抓包工具抓不到问题 解决某手短视频抓包工具抓不到问题 代码python编写 抓包结果 解决某手短视频抓包工具抓不到问题 通过hook该app的okhttp请求发现,该app走的quic协 ...

  4. 华为固件解包工具linux,华为固件解包工具-官方版-华为固件解包工具update.app官方版-独木成林...

    华为官方固件update.app解包工具,用于解包华为官方SD卡刷机包UPDATA.APP,可将APP固件解包成IMG镜像分区文件,继续解包可对刷机包进行定制,可用本工具提取recovery.img. ...

  5. 华为固件解包工具linux,华为app固件解包工具下载

    华为固件update.app解包工具是一款专门为用户打造的华为app固件解包工具,可以帮助用户解华为官方sd卡刷机包UPDATA.APP,可以将app固件解包成img镜像文件,也可以对刷机包进行定制等 ...

  6. 计算机网络实验【利用wireshark抓包工具抓包】

    一.实验名称 使用网络协议分析仪 Wireshark 二.实验目的 1.掌握安装和配置网络协议分析仪Wireshark的方法: 2. 熟悉使用Wireshark工具分析网络协议的基本方法,加深对协议格 ...

  7. Android 各种抓包工具抓包总结

    前言 这篇文章算是总结一下我之前抓包遇到的一些问题, 个人属性里带bug, 所以遇到的问题会比较多, 算是给大家提供一个抓包抓不到应该如何解决的思路. 工具介绍 Android中可用的抓包软件有fid ...

  8. 使用Fiddler抓包工具抓取服务器数据

    在正常开发中,应用总是要和服务器交互,其中不免要分析服务器返回的数据,以及测试接口,我们要借助抓跑工具类帮助.所谓抓包工具,其实就是一个代理, 正常我们访问服务器是直接访问,使用代理后,就是通过代理去 ...

  9. Day1使用Burpsuite抓包工具抓包,改变UA头使得手机和pc端界面互相转换

    1.前期工作:安装Burpsuite工具这里网上有许多教程,大致步骤如下: 找到安装包然后解压缩,然后双击 安装jdk,然后就是配置环境变量,如果是默认jdk安装路径没有更改路径的话就是跟如下一样 配 ...

最新文章

  1. hdu2041java
  2. flex布局怎么设置子元素大小_Chrome72 嵌套 flex 布局修改,你的网站可能会发生布局错乱...
  3. 一个长方体玻璃容器从里面量长宽_泰来包装分享:如何设计钢边箱里面中型木包装箱...
  4. tensorflow没有这个参数_内存频率越高越好?如果不看这个参数,内存频率再高也没有用...
  5. linux下amd超频工具,AMD锐龙超频民间工具Work Tool:可单独超CCX模块
  6. Spring 无缝整合 quartz
  7. 计算机考试要怎么学,计算机二级该如何自学备考?千万不能大意!
  8. 安装报错_MySQL8.0安装后,报错ERROR 1045 (28000)
  9. phpstrom+xdebug调试远程服务器代码
  10. 文件I/O(不带缓冲)之read函数
  11. 计算机大学毕业好考公务员,哪些大学的毕业生更容易考上公务员?
  12. mysql慢查询监控及sql优化
  13. Spring Session
  14. 最土家乡话,莫过于栖霞
  15. linux挂载ipsan存储,centos系统ISCSI挂载IPSAN存储
  16. Java 生产环境 linux下汉字变方框解决
  17. 上班划水,给男朋友做个数字炸弹游戏
  18. 吃完饭后,到底是躺着、坐着、站着还是运动?看完终于不纠结了
  19. PTA翁恺7-6 厘米换算英尺英寸 (15 分)
  20. 联想个人云 X1 五盘位NAS全网首发评测 值得买吗?

热门文章

  1. 1234变4321java_java:把1234成4321整数倒逆代码
  2. 红亚太学链微信公众号正式发布
  3. android平板屏幕碎了触摸失灵,小白瞎折腾:从此手机与平板自己维修,拒绝被忽悠!...
  4. 从PLC ,PAC ,到施耐德的自动化开放系统
  5. 017 大数定律(车比学夫、辛钦)及中心极限定理
  6. 我的、新的、纯粹的:触摸荣耀长大后的面庞
  7. 好不容易说明白AQS,面试官却还要我说应用场景,我只好又讲了CountDownLatch ~~~
  8. 振动数据 自相关计算时时延_振动诊断技术
  9. 第八课:ShuffleNet v1、ShuffleNet v2学习
  10. python标准图形库——turtle