怎么分析抓包工具抓到的网络包

chichenzhe 2010-04-07 03:15:17
工具我是用的 smarsniff .
拿baidu做的实验.

报文如下:
GET / HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash,

application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application,

application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6.4; .NET CLR 2.0.50727; .NET CLR

3.0.04506.30; .NET CLR 1.1.4322; CIBA; InfoPath.2)
Host: www.baidu.com
Connection: Keep-Alive
Cookie: BAIDUID=76B1CD5413FF24C29FFBB0594025030A:FG=1; BD_UTK_DVT=1; USERID=1a48c894d3b59b2bfe6fc4f5a219


HTTP/1.1 200 OK
Date: Wed, 07 Apr 2010 06:16:35 GMT
Server: BWS/1.0
Content-Length: 1827
Content-Type: text/html;charset=gb2312
Cache-Control: private
Expires: Wed, 07 Apr 2010 06:16:35 GMT
Content-Encoding: gzip

..........uW.........@..]1+.C..C.....j.I.4=.n0....H...J...c...#.

-.u.v..N..q.m.v....N..9.....oH.Kie.J"g......hp.pGLc..".....b2..T`X.q..gll.+<.4...@.)Nyg!

A....}..IJ......A..`".../n.......w>|.........5...A*..es2....gv...'..}.....E=....ocg.%

<.H...n.a....$..8.X.3.1&.E^.

(..f..x...L0....`..4.dV..PW.,.f6O.M..g..x.k.....v$j..n.y#...m.m......:..y....l...{..@.?g..L.......)

{.......\.....E.).%?.V#...Q.wQ.....mJR..#..pN.-.... V..o.&......XD.>......J/.:...../..9Ob.4+.[.

_..l/)...G...lL....T.BFH@s.le.[.Y.(i...rd...G....N8.4o.ET.9.,.^..g....+x.........S.d.....b..p...!.p...*...-

x+.
kk...z........h .v8..F,.A+A+&...l....8Mc.....d..C}7.`{M...Fhx......Ae<..6.4.h.3...*]

I.....dRS..zq..h...\..i.Pg.@J......R...8.P#.Qi........$=.......i...$..[.{x.}......-..T.Fm\....%..A.c

.....u....q..jD.w../_...c!.h]...T|....1#t..'.+..s....~...?9._W&XN;%.!.{....#..2.Q.

E..rl.JlBP..M.....F...i.K.4.C..1.2..O....:..X..q-....
..pC..94....
.|}.A......d.A.T......ai...........zt..|V..{.<.ju.Ah..../...ZT6........u.. ..T.. yBu...._.y./..~<..

......)..GW... c>K.bNh6.....Z.... ..Y .>.i.....Ka*~.K.`......U..X&X...6.D.]......w.U....f.U
!h...x...[..........C.3.(.k{{.
....F.:.w..TS..|
...x........;..9.2>u..'..%M<G.%u..l.}pY.,y.@..9<..;.i."...LL!...y..4...o...karUY.....H..Xs"..x...
.a.8..~...W.......V.O....'...K..K..^./.f........ .J.c.. u.<..9

(...n..........]..B?.Y).z.:z......7.......%........9u.....'......I.XpN.B8.."+.....Ikd...&.......T.\.^%

M..Qk....k.{..m"..>s...O..%.v5.C.~.6..?...T.j.7o..5......&.=..# K..O...#.r8W$M....>.`...}............,7..

.Tg@i........L*..l..oqM...o........Wx...H...g..?..R/.7...[..P.....o............... ..bvH.
....9...E..n.....k....p..m.;8q|U.U.,B..}.z{............6bt/.v@....=..]....j_...$L.P..........n.P..Hw....?

c8..^....K..
...o.....m..(...V-.#...L.y^E
0......~.....a.+ayK$......e..z)..aIp..?.........%..r)........}.
..
..
GET /js/bdsug.js?v=1.1.1.0 HTTP/1.1
Accept: */*
Referer: http://www.baidu.com
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
If-Modified-Since: Wed, 03 Mar 2010 11:15:00 GMT; length=7983
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6.4; .NET CLR 2.0.50727; .NET CLR

3.0.04506.30; .NET CLR 1.1.4322; CIBA; InfoPath.2)
Host: www.baidu.com
Connection: Keep-Alive
Cookie: BAIDUID=76B1CD5413FF24C29FFBB0594025030A:FG=1; BD_UTK_DVT=1; USERID=1a48c894d3b59b2bfe6fc4f5a219


HTTP/1.1 304 Not Modified
Date: Wed, 07 Apr 2010 06:16:35 GMT
Server: Apache
ETag: "1f2f-4b8e44b4" 请问:

(1)我如何得到明文? http包头很简单,一些什么 host,Content-Length,等等的都明白.
可惜就是看不懂包体. 既然经过IE之后能转换成大家能懂的baidu 首页,那么,smarsniff 工具抓出来的东西理论上也可以经过一些转换就让大家看懂.

(2)我在本地做了个xxx.html 里面是写的点标准html语法的东西.这些东西挂到IIS上之后最终到底经过了多少次数据转换而显示到客户端的电脑上的?可以简单文字描述一下告诉我


比如我现在详细而[扯谈]的说(不清楚的地方我就开始扯谈,大家别被我误导,虽然我大部分是对的,但细节肯定错得离谱)
而这些我的理解中很多人可能又有其他疑问
1,为什么char要转换为1个字节的byte (char如果要2进制化就先要ascii化,而ascii码是用数值表示的0~255)
2,byte到底是什么 (1byte刚好是2进制的 11111111,byte是你最常用的最底层的变量类型)
3,...
这些问题离我这个题目有点远,不明白的话自己baidu去.

过程是这样:
客户端请求我的IIS上的 xxx.html
--http get方式,他的get请求包都是纯粹字符串包,这些包可以很简便的一次性变成N个char字符,然后每一个char字符再转换成1个字节的byte.然后这些byte再按照当时字符串的顺序排列起来形成字节流.然后他们被填充到IO输出缓冲区) 这个时候byte早已经不是byte了,而是2进制. 当然,我们不操作2进制,暂时不用关心2进制.

--客户端IO缓冲区的数据 经过socket服务
(我把socket理解为一个服务,估计错了很远了,但是原理应该是这样.就是你调用操作系统的网络API把数据给他.至于操作系统是运行的什么机制把这些数据发出去的,你就不关心了.)
(接上)的处理,把数据丢向internet上的目标服务器 - 我的IP地址的80端口.这个时候 数据在网线上跑呢.......(当然,HTTP的短连接是早建立好的.网线上的数据跑完之后这个HTTP的短连接会断开的.)好,网线上的数据终于到达我的电脑的80端口

--在我这边,80端口是IIS占用的,IIS接到数据之后先byte化,再char化,再string化,最终url指向化,直指我的iis上挂载的xxx.html目标.IIS知道客户端需要什么了,就把目标页面string话,然后填充到 response 的包体里面.最后response再经过前面我说的那个处理 然后再丢进IO输出缓冲区....
...全文
2191 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
chichenzhe 2010-04-08
  • 打赏
  • 举报
回复
谢谢.原来是GZIP...

其实我是想破解我抓到的另外一个 socket程序 的报文....但苦于暂时看不懂他们到底是把报文做了什么处理.
WM_JAWIN 2010-04-07
  • 打赏
  • 举报
回复
Content-Encoding: gzip
百度用了GZip压缩,收到的body内容进行Gzip解压就可以得到原始的html代码了

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧