11.8.1.1. ByteArray.new([hexbytes], [separator])
Creates a ByteArray
object.
Starting in version 1.11.3, if the second argument is a boolean true
,
then the first argyument is treated as a raw Lua string of bytes to use,
instead of a hexadecimal string.
Arguments
- hexbytes (optional)
-
A string consisting of hexadecimal bytes like "00 B1 A2" or "1a2b3c4d".
- separator (optional)
-
A string separator between hex bytes/words (default=" "),
or if the boolean value
true
is used, then the first argument
is treated as raw binary data
Returns
The new ByteArray object.
11.8.1.2. bytearray:__concat(first, second)
Concatenate two ByteArrays
.
Arguments
- first
-
First array.
- second
-
Second array.
Returns
The new composite ByteArray
.
11.8.1.3. bytearray:__eq(first, second)
Compares two ByteArray values.
Since: 1.11.4
Arguments
- first
-
First array.
- second
-
Second array.
11.8.1.4. bytearray:prepend(prepended)
Prepend a ByteArray
to this ByteArray
.
Arguments
- prepended
-
ByteArray
to be prepended.
11.8.1.5. bytearray:append(appended)
Append a ByteArray
to this ByteArray
.
Arguments
- appended
-
ByteArray
to be appended.
11.8.1.6. bytearray:set_size(size)
Sets the size of a ByteArray
, either truncating it or filling it with zeros.
Arguments
- size
-
New size of the array.
Errors
-
ByteArray size must be non-negative
11.8.1.7. bytearray:set_index(index, value)
Sets the value of an index of a ByteArray
.
Arguments
- index
-
The position of the byte to be set.
- value
-
The char value to set [0-255].
11.8.1.8. bytearray:get_index(index)
Get the value of a byte in a ByteArray
.
Arguments
- index
-
The position of the byte to get.
Returns
The value [0-255] of the byte.
11.8.1.9. bytearray:len()
Obtain the length of a ByteArray
.
Returns
The length of the ByteArray
.
11.8.1.10. bytearray:subset(offset, length)
Obtain a segment of a ByteArray
, as a new ByteArray
.
Arguments
- offset
-
The position of the first byte (0=first).
- length
-
The length of the segment.
Returns
A ByteArray
containing the requested segment.
11.8.1.11. bytearray:base64_decode()
Obtain a Base64 decoded ByteArray
.
Since: 1.11.3
Returns
The created ByteArray
.
11.8.1.12. bytearray:raw([offset], [length])
Obtain a Lua string of the binary bytes in a ByteArray
.
Since: 1.11.3
Arguments
- offset (optional)
-
The position of the first byte (default=0/first).
- length (optional)
-
The length of the segment to get (default=all).
Returns
A Lua string of the binary bytes in the ByteArray.
11.8.1.13. bytearray:tohex([lowercase], [separator])
Obtain a Lua string of the bytes in a ByteArray
as hex-ascii, with given separator
Since: 1.11.3
Arguments
- lowercase (optional)
-
True to use lower-case hex characters (default=false).
- separator (optional)
-
A string separator to insert between hex bytes (default=nil).
Returns
A hex-ascii string representation of the ByteArray
.
11.8.1.14. bytearray:__tostring()
Obtain a Lua string containing the bytes in a ByteArray
so that it can be used in
display filters (e.g. "01FE456789AB").
Returns
A hex-ascii string representation of the ByteArray
.
11.8.1.15. bytearray:tvb(name)
Creates a new Tvb
from a ByteArray
(it gets added to the current frame too).
Arguments
- name
-
The name to be given to the new data-source.
Returns
The created Tvb
.
A Tvb
represents the packet’s buffer. It is passed as an argument to listeners and dissectors,
and can be used to extract information (via TvbRange
) from the packet’s data.
To create a TvbRange
the Tvb
must be called with offset and length as optional arguments;
the offset defaults to 0 and the length to tvb:len()
.
![[Warning]](wsdg_graphics/warning.svg) | Warning |
---|
Tvbs are usable only by the current listener or dissector call and are destroyed
as soon as the listener/dissector returns, so references to them are unusable once the function
has returned.
|
11.8.2.1. tvb:__tostring()
Convert the bytes of a Tvb
into a string, to be used for debugging purposes, as '…'
will be appended if the string is too long.
Returns
The string.
11.8.2.2. tvb:reported_len()
Obtain the reported (not captured) length of a Tvb
.
Returns
The reported length of the Tvb
.
Obtain the actual (captured) length of a Tvb
.
Returns
The captured length of the Tvb
.
11.8.2.4. tvb:reported_length_remaining()
Obtain the reported (not captured) length of packet data to end of a Tvb
or -1 if the
offset is beyond the end of the Tvb
.
Returns
The captured length of the Tvb
.
11.8.2.5. tvb:bytes([offset], [length])
Obtain a ByteArray
from a Tvb
.
Since: 1.99.8
Arguments
- offset (optional)
-
The offset (in octets) from the beginning of the
Tvb
. Defaults to 0.
- length (optional)
-
The length (in octets) of the range. Defaults to until the end of the
Tvb
.
Returns
The ByteArray
object or nil.
Returns the raw offset (from the beginning of the source Tvb
) of a sub Tvb
.
Returns
The raw offset of the Tvb
.
Equivalent to tvb:range(…)
11.8.2.8. tvb:range([offset], [length])
Creates a TvbRange
from this Tvb
.
Arguments
- offset (optional)
-
The offset (in octets) from the beginning of the
Tvb
. Defaults to 0.
- length (optional)
-
The length (in octets) of the range. Defaults to until the end of the
Tvb
.
Returns
The TvbRange
11.8.2.9. tvb:raw([offset], [length])
Obtain a Lua string of the binary bytes in a Tvb
.
Since: 1.11.3
Arguments
- offset (optional)
-
The position of the first byte (default=0/first).
- length (optional)
-
The length of the segment to get (default=all).
Returns
A Lua string of the binary bytes in the Tvb
.
Checks whether the two Tvb
contents are equal.
Since: 1.99.8
A TvbRange
represents a usable range of a Tvb
and is used to extract data from the Tvb
that generated it.
TvbRange`s are created by calling a `Tvb
(e.g. 'tvb(offset,length)'). If the TvbRange
span is outside the
`Tvb’s range the creation will cause a runtime error.
Creates a (sub)Tvb
from a TvbRange
.
11.8.3.2. tvbrange:uint()
Get a Big Endian (network order) unsigned integer from a TvbRange
.
The range must be 1-4 octets long.
Returns
The unsigned integer value.
11.8.3.3. tvbrange:le_uint()
Get a Little Endian unsigned integer from a TvbRange
.
The range must be 1-4 octets long.
Returns
The unsigned integer value
11.8.3.4. tvbrange:uint64()
Get a Big Endian (network order) unsigned 64 bit integer from a TvbRange
, as a UInt64
object.
The range must be 1-8 octets long.
Returns
The UInt64
object.
11.8.3.5. tvbrange:le_uint64()
Get a Little Endian unsigned 64 bit integer from a TvbRange
, as a UInt64
object.
The range must be 1-8 octets long.
Returns
The UInt64
object.
Get a Big Endian (network order) signed integer from a TvbRange
.
The range must be 1-4 octets long.
Returns
The signed integer value
11.8.3.7. tvbrange:le_int()
Get a Little Endian signed integer from a TvbRange
.
The range must be 1-4 octets long.
Returns
The signed integer value.
11.8.3.8. tvbrange:int64()
Get a Big Endian (network order) signed 64 bit integer from a TvbRange
, as an Int64
object.
The range must be 1-8 octets long.
Returns
The Int64
object.
11.8.3.9. tvbrange:le_int64()
Get a Little Endian signed 64 bit integer from a TvbRange
, as an Int64
object.
The range must be 1-8 octets long.
Returns
The Int64
object.
11.8.3.10. tvbrange:float()
Get a Big Endian (network order) floating point number from a TvbRange
.
The range must be 4 or 8 octets long.
Returns
The floating point value.
11.8.3.11. tvbrange:le_float()
Get a Little Endian floating point number from a TvbRange
.
The range must be 4 or 8 octets long.
Returns
The floating point value.
11.8.3.12. tvbrange:ipv4()
Get an IPv4 Address from a TvbRange
, as an Address
object.
Returns
The IPv4 Address
object.
11.8.3.13. tvbrange:le_ipv4()
Get an Little Endian IPv4 Address from a TvbRange
, as an Address
object.
Returns
The IPv4 Address
object.
11.8.3.14. tvbrange:ipv6()
Get an IPv6 Address from a TvbRange
, as an Address
object.
Returns
The IPv6 Address
object.
11.8.3.15. tvbrange:ether()
Get an Ethernet Address from a TvbRange
, as an Address
object.
Returns
The Ethernet Address
object.
Errors
-
The range must be 6 bytes long
11.8.3.16. tvbrange:nstime([encoding])
Obtain a time_t structure from a TvbRange
, as an NSTime
object.
Arguments
- encoding (optional)
-
An optional ENC_* encoding value to use
Returns
The NSTime
object and number of bytes used, or nil on failure.
Errors
-
The range must be 4 or 8 bytes long
11.8.3.17. tvbrange:le_nstime()
Obtain a nstime from a TvbRange
, as an NSTime
object.
Returns
The NSTime
object.
Errors
-
The range must be 4 or 8 bytes long
11.8.3.18. tvbrange:string([encoding])
Obtain a string from a TvbRange
.
Arguments
- encoding (optional)
-
The encoding to use. Defaults to ENC_ASCII.
Returns
The string
11.8.3.19. tvbrange:ustring()
Obtain a Big Endian (network order) UTF-16 encoded string from a TvbRange
.
Returns
The string.
11.8.3.20. tvbrange:le_ustring()
Obtain a Little Endian UTF-16 encoded string from a TvbRange
.
Returns
The string.
11.8.3.21. tvbrange:stringz([encoding])
Obtain a zero terminated string from a TvbRange
.
Arguments
- encoding (optional)
-
The encoding to use. Defaults to ENC_ASCII.
Returns
The zero terminated string.
11.8.3.22. tvbrange:strsize([encoding])
Find the size of a zero terminated string from a TvbRange
.
The size of the string includes the terminating zero.
Since: 1.11.3
Arguments
- encoding (optional)
-
The encoding to use. Defaults to ENC_ASCII.
Returns
Length of the zero terminated string.
11.8.3.23. tvbrange:ustringz()
Obtain a Big Endian (network order) UTF-16 encoded zero terminated string from a TvbRange
.
Returns
Two return values: the zero terminated string, and the length.
11.8.3.24. tvbrange:le_ustringz()
Obtain a Little Endian UTF-16 encoded zero terminated string from a TvbRange
Returns
Two return values: the zero terminated string, and the length.
11.8.3.25. tvbrange:bytes([encoding])
Obtain a ByteArray
from a TvbRange
.
Starting in 1.11.4, this function also takes an optional encoding
argument,
which can be set to ENC_STR_HEX
to decode a hex-string from the TvbRange
into the returned ByteArray
. The encoding
can be bitwise-or’ed with one
or more separator encodings, such as ENC_SEP_COLON
, to allow separators
to occur between each pair of hex characters.
The return value also now returns the number of bytes used as a second return value.
On failure or error, nil is returned for both return values.
![[Note]](wsdg_graphics/note.svg) | Note |
---|
The encoding type of the hex string should also be set, for example
ENC_ASCII or ENC_UTF_8 , along with ENC_STR_HEX .
|
Arguments
- encoding (optional)
-
An optional ENC_* encoding value to use
Returns
The ByteArray
object or nil, and number of bytes consumed or nil.
11.8.3.26. tvbrange:bitfield([position], [length])
Get a bitfield from a TvbRange
.
Arguments
- position (optional)
-
The bit offset from the beginning of the
TvbRange
. Defaults to 0.
- length (optional)
-
The length (in bits) of the field. Defaults to 1.
Returns
The bitfield value
11.8.3.27. tvbrange:range([offset], [length])
Creates a sub-TvbRange
from this TvbRange
.
Arguments
- offset (optional)
-
The offset (in octets) from the beginning of the
TvbRange
. Defaults to 0.
- length (optional)
-
The length (in octets) of the range. Defaults to until the end of the
TvbRange
.
Returns
The TvbRange
11.8.3.28. tvbrange:uncompress(name)
Obtain an uncompressed TvbRange from a TvbRange
Arguments
- name
-
The name to be given to the new data-source.
Returns
The TvbRange
11.8.3.29. tvbrange:len()
Obtain the length of a TvbRange
.
11.8.3.30. tvbrange:offset()
Obtain the offset in a TvbRange
.
11.8.3.31. tvbrange:raw([offset], [length])
Obtain a Lua string of the binary bytes in a TvbRange
.
Since: 1.11.3
Arguments
- offset (optional)
-
The position of the first byte (default=0/first).
- length (optional)
-
The length of the segment to get (default=all).
Returns
A Lua string of the binary bytes in the TvbRange
.
11.8.3.32. tvbrange:__eq()
Checks whether the two TvbRange
contents are equal.
Since: 1.99.8
11.8.3.33. tvbrange:__tostring()
Converts the TvbRange
into a string. Since the string gets truncated,
you should use this only for debugging purposes
or if what you want is to have a truncated string in the format 67:89:AB:…
Returns
A Lua hex string of the first 24 binary bytes in the TvbRange
.