本周计划
完成自己的部分
实际完成情况
还在调试代码,目前代码运行后没有预期效果。
-
未完成计划的原因:对lua语言的学习不足,对wireshark抓包不够熟悉。
-
改进:在接下来的一周中,加强对lua的学习以及熟悉wireshark的使用,对待吗进行改善,调试和运行。
代码:
do
-- 创建一个新的协议
local proto = Proto("UserCert", "User Certificate Protocol")
-- 定义协议字段
local fields = proto.fields
fields.certificate = ProtoField.bytes("UserCert.certificate", "Certificate")
-- 解析函数
function proto.dissector(buffer, pinfo, tree)
-- 将协议字段添加到树中
local subtree = tree:add(proto, buffer(), "User Certificate")
local offset = 0
-- 解析数字证书的长度
local cert_length = buffer(0, 2):uint()
subtree:add(fields.certificate, buffer(offset, cert_length))
offset = offset + cert_length
-- 指定协议字段的长度
pinfo.cols.protocol = "UserCert"
pinfo.cols.info = "User Certificate"
-- 指定协议字段的描述
local cert_info = string.format("Certificate length: %d bytes", cert_length)
pinfo.cols.info:append(" (" .. cert_info .. ")")
end
-- 注册协议
local tcp_port = DissectorTable.get("tcp.port")
tcp_port:add(443, proto)
end
遇到的问题
问题:在加载插件后,wireshark重新加载报错,表示没有pcap库。
解决:尝试了在Windows中链接lua-pcap库,但是链接没有成功,后面发现是代码问题,在修改代码后,插件加载就没问题了。