第二周进展
一、本周计划完成的任务
云班课资源和lua编写插件的学习
二、本周实际完成情况
练习微信读书中的示例,
foo协议
代码:
-- Define the "foo" protocol
foo_proto = Proto("foo", "Foo Protocol")
-- Define protocol fields
trans_id_field = ProtoField.uint16("foo.ID", "ID")
msg_type_field = ProtoField.uint16("foo.Type", "Type")
msg_data_field = ProtoField.uint32("foo.Data", "Data")
-- Add fields to the protocol
foo_proto.fields = {trans_id_field, msg_type_field, msg_data_field}
-- Define the dissector function
function foo_proto.dissector(tvb, pinfo, tree)
pinfo.cols.protocol = "foo"
local subtree = tree:add(foo_proto, tvb(0))
-- Add fields to the tree
subtree:add(trans_id_field, tvb(0, 2))
subtree:add(msg_type_field, tvb(2, 2))
subtree:add(msg_data_field, tvb(4, 4))
end
-- Register the dissector for TCP port 10001
tcp_table = DissectorTable.get("tcp.port")
tcp_table:add(10001, foo_proto)
抓包结果
尝试自主编写一个协议
代码截图
但是在实际运行中,并不能按照我们要求的显示相应内容,相反,相关数据包本来都能抓到,现在都被过滤掉了
基本可以确定是代码不合理,但是因为我们队伍对代码的学习还有待深入,所以暂未完全解决此问题
三、本周遇到的问题与解决过程
1.在运行博客中的示例插件中出现了以下报错
查找资料得知这是由于协议名称与已有协议名称相同导致的,修改协议名称或者禁用协议即可解决
2.代码编写中遇到的问题
通过查阅资料和询问GPT得到修改建议