length_octect=tvb_get_guint8(tvb,2)&0x3FF;(last ten bits offset value) ti = proto_tree_add_text(data_tree, tvb, offset, length_octect, "data"); I used the above function in c for the offset length.How to get the length_octect in lua script I tried something like this: local length_octect=(buffer((offset,2) or 0x3FF):unit() data=subtree:add(F.data,buffer(offset,length_octect)) but it is giving error as: Lua Error: C:\Program Files\Wireshark1\myproto.lua:104: No such 'unit' function/method/field for object type 'TvbRange' |
You've got typo in your function name. Try uint() not unit(). yes, i changed that . Now iam getting the following error: Expert Info (Warn/Malformed): Trying to fetch an unsigned integer with length 18
(20 Apr '15, 23:51)
lakshmi
Expert Info (Warn/Malformed): Trying to fetch an unsigned integer with length 18 This warning I am getting for every length greater than 4.
(21 Apr '15, 01:36)
lakshmi
This seems to be expected, pr the Lua reference manual found here: https://www.wireshark.org/docs/wsdg_html_chunked/lua_module_Tvb.html 11.8.3.3. tvbrange:uint() Get a Big Endian (network order) unsigned integer from a TvbRange. The range must be 1, 2, 3 or 4 octets long. Returns The unsigned integer value.
(21 Apr '15, 05:03)
Pascal Quantin
|