此代码是Lua解剖脚本的一部分。您能否解释一下此代码的含义,尤其是功能
add_le和le_uint。谢谢
-- Function: Upload functions request
function upload_function_req(buffer, subtree)
subtree:add_le(buffer(14,2), "func_id:", buffer(14,2):le_uint())
subtree:add_le(buffer(16,4), "fixed_values:", buffer(16,4):le_uint())
subtree:add_le(buffer(20,2), "offset:", buffer(20,2):le_uint())
end
该函数将3个字段添加到协议树。 buffer(n,m)
是tvbrange,其中n
表示到缓冲区的偏移量,m
表示长度。所有3个字段均为little-endian格式的无符号整数。第一和第三字段是2字节整数;第二个是4字节整数。该函数虽然做了一些不必要的工作,但可以像这样简化:
函数upload_function_req(缓冲区,子树)子树:add_le(buffer(14,2),“ func_id:”)子树:add_le(buffer(16,4),“ fixed_values:”)子树:add_le(buffer(20,2),“ offset:”)结束
如果想在Wireshark中了解有关Lua API的更多信息,请查看Wireshark Developer's Guide。在Chapter 11. Wireshark's Lua API Reference Manual下,您会找到相关子章节。
特别是:
treeitem:add_le()
在11.7.1.3 treeitem:add_le([protofield], [tvbrange], [value],[label])中描述。
tvbrange:le_uint()
在11.8.3.3 tvbrange:le_uint()中描述。