Lua определение функций рассечения - PullRequest
0 голосов
/ 26 марта 2020

Этот код является частью скрипта 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

1 Ответ

0 голосов
/ 27 марта 2020

Функция добавляет 3 поля в дерево протокола. buffer(n,m) - это tvbrange , где n указывает смещение в буфер, а m указывает длину. Все 3 поля представляют собой целые числа без знака в формате с прямым порядком байтов. 1-е и 3-е поля представляют собой 2-байтовые целые числа; 2-е - 4-байтовое целое число. Однако эта функция выполняет некоторую ненужную работу и может быть упрощена следующим образом:

function upload_function_req(buffer, subtree)

  subtree:add_le(buffer(14,2), "func_id:")
  subtree:add_le(buffer(16,4), "fixed_values:")
  subtree:add_le(buffer(20,2), "offset:")
end

Если вы хотите узнать больше об API Lua в Wireshark, вам следует взглянуть на Wireshark Developer's Руководство . В разделе Глава 11. Справочное руководство API Wireshark Lua вы найдете соответствующие подразделы.

В частности:

...