From 9b486bd917c33aece058bcac3de064493c5051e3 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Mon, 6 May 2019 16:47:42 +0200 Subject: handle usbpcap traces --- usb/ncr-dispenser.lua | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/usb/ncr-dispenser.lua b/usb/ncr-dispenser.lua index c81b085..8494b11 100644 --- a/usb/ncr-dispenser.lua +++ b/usb/ncr-dispenser.lua @@ -1,4 +1,5 @@ -- declare some Fields to be read +usb_hl_f = Field.new("usb.usbpcap_header_len") usb_tt_f = Field.new("usb.transfer_type") usb_dl_f = Field.new("usb.data_len") @@ -31,18 +32,23 @@ dispenser_proto.fields = { -- create a function to "postdissect" each frame function dispenser_proto.dissector(buffer,pinfo,tree) -- obtain the current values the protocol fields + local usb_hl = usb_hl_f() local usb_tt = usb_tt_f() local usb_dl = usb_dl_f() if usb_tt.value == 0x01 and usb_dl.value >= 63 then - local magic = buffer(64 + 8,2) + local off = 64 + if usb_hl then + off = usb_hl.value + end + local magic = buffer(off + 8,2) if magic:le_uint() == 0xbeef then local subtree = tree:add(dispenser_proto, "NCR S1 Dispenser") - subtree:add(u00_00_F, buffer(64 + 0x00,1)) - subtree:add(u01_07_F, buffer(64 + 0x01,7)) - subtree:add_le( magic_F, magic) - subtree:add(u0a_0f_F, buffer(64 + 0x0a,6)) - subtree:add(u10_17_F, buffer(64 + 0x10,8)) - subtree:add(u18_1f_F, buffer(64 + 0x18,8)) + subtree:add(u00_00_F, buffer(off + 0x00,1)) + subtree:add(u01_07_F, buffer(off + 0x01,7)) + subtree:add_le(magic_F, magic) + subtree:add(u0a_0f_F, buffer(off + 0x0a,6)) + subtree:add(u10_17_F, buffer(off + 0x10,8)) + subtree:add(u18_1f_F, buffer(off + 0x18,8)) end end end -- cgit