写一个wireshark lua修改http协议类型
时间: 2023-08-02 19:24:01 浏览: 168
lua 插件 wireshark(源码)
以下是一个示例Wireshark Lua脚本,可以将HTTP请求的协议类型从HTTP/1.1改为HTTP/2:
```
-- HTTP协议类型修改脚本
-- 将HTTP请求的协议类型从HTTP/1.1改为HTTP/2
-- 过滤HTTP请求
http_request = Field.new("http.request")
http_method = Field.new("http.request.method")
http_version = Field.new("http.request.version")
function http_request_filter()
return http_request and http_method() == "GET" and http_version() == "HTTP/1.1"
end
-- 更新HTTP协议类型
function update_http_protocol_type()
local http_proto = http_version()
http_proto:set("HTTP/2")
end
-- 注册脚本
local http_request_dissector = Dissector.get("http")
DissectorTable.get("tcp.port"):add(80, http_request_dissector)
http_request_dissector:register_heuristic("tcp", http_request_filter, update_http_protocol_type)
```
该脚本首先定义了一个过滤器函数`http_request_filter()`,该函数仅过滤HTTP GET请求并且协议类型为HTTP/1.1。然后定义了一个更新HTTP协议类型的函数`update_http_protocol_type()`,该函数将HTTP协议类型设置为HTTP/2。
最后,该脚本使用`DissectorTable`和`Dissector`对象将HTTP解析器注册到TCP端口80上,并将`http_request_filter()`和`update_http_protocol_type()`函数注册为启发式分析器。当HTTP GET请求被检测到并且符合过滤器条件时,脚本将自动更新HTTP协议类型为HTTP/2。
阅读全文