测试过程中如何分析抓包工具抓的HTTP或TCP包
http://www.docin.com/p-101479451.html
這是一個登陸請求的抓包:
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>
?
那么根據(jù)自定義的接口文檔來參考:
登陸的消息包頭組建格式為:
CLIENT->CSVR的消息的接口格式
| Protocal Version 2字節(jié),數(shù)字 | Length 4字節(jié),數(shù)字 | Type 2字節(jié),數(shù)字 | TransactionID 4字節(jié),數(shù)字 | Session ID 4字節(jié),數(shù)字 | MSG BODY XML格式,長度不定 |
Length:表示整條消息的總長度,包括protocal version, length, type, session id及msg body字段。
Type表示消息類型,其類型和取值為 登錄請求:1(Client->Server)
?
按照以上的協(xié)議分析:
MSGBODY前面的共:2+4+2+4+4=16個字節(jié)
所以找到從MSGBODY向前找,找到16個字節(jié),就正確了,
下面的就是從<req>向前找,??就可以找到這16個字節(jié):
0001??9c00??0100 ?0000??0100 0000 0000 0000
?
對比協(xié)議可以看出:
0001 ??????9c00 0100???0000?????0100 ?0000 ???????????0000 ?0000
nVersion???nLength?????nType????nTransactionID;4??????nSessionId
?
由于網(wǎng)絡字節(jié)序與主機字節(jié)序的區(qū)別,不同CPU的字節(jié)序不一樣,有些CPU是高字節(jié)在前面,有些是低字節(jié)在前面。網(wǎng)絡上傳輸?shù)南⒋a流是網(wǎng)絡字節(jié)序的,
我們如果分析抓包工具的消息,由于主機是奔騰的CPU,先要將網(wǎng)絡序轉換為主機序,需要前后左右置換一下。置換后為:
?
0100 ??????0001 009c???0000?????0000 ?0001 ???????????0000 ?0000
nVersion???nLength?????nType????nTransactionID;4??????nSessionId
?
轉化為10進制分別為:256 、65692、0、1、0
而實際的length的值我們可以數(shù)一下: 16+MSGBODY包共(140字節(jié))= 156
而且也看出ntype不對,實際上應該是1。版本也不對。
?
通過這樣一分析,就知道是登陸請求發(fā)錯了,而且知道了錯誤的原因。
?
(一般抓包:我是用root用戶直接用命令行抓,沒有用相關工具)
?抓包命令為:
??/usr/sbin/tcpdump/ -vvx -s 2048 -i etho port?端口號
總結
以上是生活随笔為你收集整理的测试过程中如何分析抓包工具抓的HTTP或TCP包的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 张沈鹏诗歌集
- 下一篇: 数学建模matlab文档、学习网站