wireshark还原HTTP数据

转自:http://1.guotie.sinaapp.com/?p=40


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还原捕获的数据包或解码网络流量 #### 数据包过滤与查看 为了有效地处理捕获文件并从中提取有用的信息,可以利用Wireshark强大的过滤功能。通过应用显示过滤器(Display Filter),能够聚焦于特定类型的流量或是具有某些特征的数据流。例如,如果只关心HTTP请求,则可在过滤栏输入`http`来筛选这些数据包[^1]。 #### 解密加密通信 针对采用WPA/WPA2保护机制下的WiFi通讯记录,当已知对应的预共享密钥(Pre-shared Key, PSK)时,可以通过配置Wireshark来进行解密操作。进入编辑菜单中的首选项选项,在协议分类下找到IEEE 802.11部分,添加相应的EAPOL握手信息及SSID关联的密码字符串用于后续分析工作。对于案例中提到的无线接入点(AP SSID: bob 密码:daxueba111),按照上述方法设置后即可尝试解读该环境内传输的内容[^3]。 #### 协议解析树视图 一旦加载了捕获文件,每一个被捕获到的数据单元都会被分解成多个层次结构展示出来——即所谓的“协议解析树”。这种表示形式使得理解复杂的消息交换变得直观易懂。比如观察一个典型的IPv4数据帧,可以看到其不仅包含了目标和源MAC地址这样的链路层细节,还有更高层级如IP头字段等重要组成部分[^4]。 ```python # Python脚本示例:自动读取.pcapng格式的Wireshark捕获文件,并打印出所有TCP连接的相关统计信息 from scapy.all import * def analyze_pcap(file_name): packets = rdpcap(file_name) stats = {} for packet in packets: if TCP in packet: src_ip = packet[IP].src dst_ip = packet[IP].dst conn_key = f"{src_ip}:{packet[TCP].sport} -> {dst_ip}:{packet[TCP].dport}" if conn_key not in stats: stats[conn_key] = {'count': 0} stats[conn_key]['count'] += 1 for key, value in stats.items(): print(f"Connection {key}: Packets Count={value['count']}") analyze_pcap('example_capture.pcapng') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值