wireshark还原http数据

wireshark的HTTP协议分析代码大部分在epan/dissectors/packet-http.h(c)文件中,数据组装还原用到了epan/reassemble.h(c)文件中的函数。

当然,连接跟踪是tcp的基础,连接跟踪代码在epan/stream.h(c)文件中。

dissect_http_message基本流程如下:

is_http_request_or_reply()——是否是HTTP request或response头部

req_resp_hdrs_do_reassembly()——如果头部所有数据都在这个报文中,可以开始解析,否则,等待更多数据到来组装;

这里面有对chunked进行分析,只有当所有数据都传输完毕,或者没有更多的chunk时,dissect_http_message才会继续往下走,解剖协议。

下面的事情就是解开http header,

如果传输方式为chunked,把每个chunked块拼装在一起;

如果content-encoding是gzip或deflate,尝试解压缩数据,最后把数据提交给data handle展示在界面上。

转载随意~:陶醉 » wireshark还原http数据

赞 (22)
分享到:更多 ()