помощью Wireshark отображены все полезные данные, если строка слишком длинная

фон:

Для того, чтобы поддержать новый протокол в Wireshark. здесь я пишу скрипт на Lua. на самом деле я буду использовать tshark загрузки скрипта Lua и преобразования пакета PCAP в txt. окончательный текст-это то, что мне нужно.


Вопрос:

Я найти с помощью Wireshark не может показать все данные, когда они слишком длинные. Я также найти некоторые ссылки в официальном руководстве. https://www.wireshark.org/docs/wsdg_html_chunked/lua_module_Tvb.html вы можете искать as '…​' will be appended if the string is too long., чтобы найти описание ссылки.


в следующую картину. заполнение данных слишком долго, так что некоторые данные не указаны. наконец, когда я преобразовать PCAP в txt по tshark. заполнение данных также является неполным.

Я не знаком с lua и не знаю, как ее решить. Любой, у кого есть идея может сказать мне

capture0. помощью Wireshark Луа загрузить и открыть на PCAP

enter image description here

capture1. окончательный тхт

enter image description here


Я также прикрепить скрипт на Lua


local ecpri_proto = Proto("ECPRI_Header", "ECPRI Header")
local ecpri_payload_proto = Proto("ECPRI_PAYLOAD", "ECPRI Payload")
local fcs_proto = Proto("eth_fcs", "Payload_Fcs")

-- ecpri common header
local ecpri_common_header_Revision = ProtoField.uint8("ecpri_common_header.Revision", "Revision", base.DEC, nil, 0xF0)
local ecpri_common_header_Res = ProtoField.uint8("ecpri_common_header.Res", "Res", base.DEC, nil, 0x0E)
local ecpri_common_header_C = ProtoField.uint8("ecpri_common_header.C", "C", base.DEC, nil, 0x01)
local ecpri_common_header_Message_Type = ProtoField.uint8("ecpri_common_header.Message_Type", "Message_Type", base.DEC, nil, 0xFF)
local ecpri_common_header_Frame_Size = ProtoField.uint16("ecpri_common_header.Frame_Size", "Frame_Size", base.DEC, nil, 0xFFFF)
-- ecpri_payload
local ecpri_payload_Pc_Id = ProtoField.uint8("ecpri_payload.Pc_Id", "Pc_Id", base.DEC)
local ecpri_payload_Seq_Id = ProtoField.uint8("ecpri_payload.Seq_Id", "Seq_Id", base.DEC)
local ecpri_payload_Rtc_Id = ProtoField.uint8("ecpri_payload.Rtc_Id", "Rtc_Id", base.DEC)
local ecpri_payload_Padding = ProtoField.bytes("ecpri_payload.Padding", "Padding")
-- Fcs
local Fcs = ProtoField.uint8("eth.fcs", "Payload_Fcs", base.HEX)


ecpri_proto.fields = {
    ecpri_common_header_Revision,
    ecpri_common_header_Res,
    ecpri_common_header_C,
    ecpri_common_header_Message_Type,
    ecpri_common_header_Frame_Size
}

ecpri_payload_proto.fields = {
    ecpri_payload_Pc_Id,
    ecpri_payload_Seq_Id,
    ecpri_payload_Padding,
}

fcs_proto.fields = {
    Fcs
}

function ecpri_proto.dissector(buffer, pinfo, treeitem)

    pinfo.cols.protocol:set("ECPRI")

    local offset = 0
    local buffer_len = buffer:len()

    local ecpri_common_hdr_tree = treeitem:add(ecpri_proto, buffer:range(buffer_len), "ECPRI Header Protocol Data")
    ecpri_common_hdr_tree:add(ecpri_common_header_Revision, buffer(0, 1))
    ecpri_common_hdr_tree:add(ecpri_common_header_Res, buffer(0, 1))
    ecpri_common_hdr_tree:add(ecpri_common_header_C, buffer(0, 1))
    ecpri_common_hdr_tree:add(ecpri_common_header_Message_Type, buffer(1, 1))
    ecpri_common_hdr_tree:add(ecpri_common_header_Frame_Size, buffer(2, 2))
    offset = offset + 4

    message_type = buffer(1, 1):uint()
    frame_size = buffer(2, 2):uint()
    if message_type == 0
    then
        local ecpri_payload_tree = treeitem:add(ecpri_payload_proto, buffer:range(buffer_len), "ECPRI Payload Protocol Data")
        ecpri_payload_tree:add(ecpri_payload_Pc_Id, buffer(offset, 1))
        offset = offset + 1
        ecpri_payload_tree:add(ecpri_payload_Seq_Id, buffer(offset, 1))
        offset = offset + 1
        ecpri_payload_tree:add(ecpri_payload_Padding, buffer(offset, frame_size - 2 - 4))
        offset = offset + frame_size - 2 - 4
    end

    local fcs_tree = treeitem:add(fcs_proto, buffer:range(buffer_len), "FCS")
    fcs_tree:add(Fcs, buffer(offset, 4))
end

local ethertype_table = DissectorTable.get("ethertype")
ethertype_table:add(0xaefe, ecpri_proto)

0
2019-09-17 19:27:38
источник
0 ответов

Посмотрите другие вопросы по меткам