Kategorie Netzwerktechnik - Forum Tools
Dissector für Wireshark findet vorhanden Dissector nicht !
geschrieben am 27.08.2008 um 10:54 von Leroux
Hallo bin neu hier und hab auch gleich meine erste frage.
Muss hier einen Plugin für Wireshark schreiben.
Das klappt auch alles ganz gut Source ist relativ einfach (LUA) nur jetzt kann ich den vorhanden Plugin/Dissector nicht aufrufen !
Es handelt sich hier um LLC(Logical Link Controll)
Es erscheint die fehlermeldung:
Lua:Error during loading: extents.lua:61: bad argument #1 to get 'get' (DissectorTable_get:no such dissector_table)
aber dieser Plugin ist ganz sicher vorhanden !
Mein Source:
-- declaring the protocol helen_proto = Proto("helen","HELEN","Helen Protocol")
-- create a function to dissect it function helen_proto.dissector(buffer,pinfo,tree) pinfo.cols.protocol = "HELEN" local treeitem = tree:add(helen_proto,buffer(),"Helen Protocol Data") local treeitem = tree:add(helen_proto,buffer(), info) treeitem:add(buffer(0,2),"The first two bytes: " .. buffer(0,2):uint()) treeitem = treeitem:add(buffer(2,2),"The next 20 bytes") treeitem:add(buffer(2,1),"The 3rd byte: " .. buffer(2,1):uint()) treeitem:add(buffer(3,1),"The 4th byte: " .. buffer(3,1):uint()) treeitem:add(buffer(4,1),"The 5th byte: " .. buffer(4,1):uint()) treeitem:add(buffer(5,1),"The 6th byte: " .. buffer(5,1):uint()) treeitem:add(buffer(6,1),"The 7th byte: " .. buffer(6,1):uint()) treeitem:add(buffer(7,1),"The 8th byte: " .. buffer(7,1):uint()) treeitem:add(buffer(8,1),"The 9th byte: " .. buffer(8,1):uint()) treeitem:add(buffer(9,1),"The 10th byte: " .. buffer(9,1):uint()) treeitem:add(buffer(10,1),"The 11th byte: " .. buffer(10,1):uint()) treeitem:add(buffer(11,1),"The 12th byte: " .. buffer(11,1):uint()) treeitem:add(buffer(12,1),"The 13th byte: " .. buffer(12,1):uint()) treeitem:add(buffer(13,1),"The 14th byte: " .. buffer(13,1):uint()) treeitem:add(buffer(14,1),"The 15th byte: " .. buffer(14,1):uint()) treeitem:add(buffer(15,1),"The 16th byte: " .. buffer(15,1):uint()) treeitem:add(buffer(16,1),"The 17th byte: " .. buffer(16,1):uint()) treeitem:add(buffer(17,1),"The 18th byte: " .. buffer(17,1):uint()) treeitem:add(buffer(18,1),"The 19th byte: " .. buffer(18,1):uint()) treeitem:add(buffer(19,1),"The 20th byte: " .. buffer(19,1):uint()) treeitem:add(buffer(20,1),"The 21th byte: " .. buffer(20,1):uint()) whole_buffer(buffer) magic_number(buffer(0,2)) checksum(buffer(2,4)) system_txtime() end
function magic_number(buffer) print("Helen Packet", buffer) end
function checksum(buffer) print("checksum", buffer) end
function whole_buffer(buffer) print("whole_buffer", buffer) end function system_txtime() print("System TX Time",os.date("%x"),os.date("%X")) end -- load the udp.port table udp_helen_table = DissectorTable.get("llc.ssap") udp_helen_table:add(0xaa,helen_proto)
Meine Aufgabe besteht darin das ich zusätzliche Daten aus einem Packet auslesen wenn es sich um eine bestimmt ID handelt.
geschrieben am 27.08.2008 um 20:37 von bewa
Re: Dissector für Wireshark findet vorhanden Dissector nicht
Muss hier einen Plugin für Wireshark schreiben.
Ich habe zwar nicht sofort einen Fehler gesehen, aber gerade ein kleines Deja-Vu. :-) Ist das für eine Hochschule im nördlichen NRW? :-))
Der schlägt fehl...
extents.lua:61: bad argument #1 to get 'get' (DissectorTable_get:no such dissector_table)
... und hier ist der einzige passende Aufruf:
udp_helen_table = DissectorTable.get("llc.ssap")
Bist du dir sicher, das die Pfadangabe zu llc.ssap passt? Hast du ein funktionierendes Beispiel zum Vergleichen? Ich bin bzgl. dieser Sachen schon wieder mächtig eingerostet, würde den Fehler aber da suchen.
geschrieben am 28.08.2008 um 07:29 von Leroux
Ne :-P komme nicht aus NRW und ist für eine Firma ^^
Ich bin bei Wireshark über Expression dann auf LLC und hab mir dort den Eintrag geholt den ich brauche.
In meinem Fall llc.ssap .
Ist es möglich den Eintrag noch an einer andernstelle nachzulesen hab zu den Protokollen bei Wireshark nicht gefunden.
//Doch gefunden:
http://www.wireshark.org/docs/dfref/l/llc.html
aber es stimmt
Hab jetzt mal ein bissel was getestet und hab gemerkt das keine Läd o.0
nur dieses scheiß udp.port Table
Hast du vllt noch die Datein mit denen dein ProtocolDessector geschrieben hast ?
geschrieben am 28.08.2008 um 08:13 von bewa
Ne :-P komme nicht aus NRW und ist für eine Firma ^^
Das hätte auf die Übungsaufgaben eines bestimmten Profs gepasst. Ist aber schon eine Weile her - zu meiner Zeit gab es noch kein LUA im Wireshark und der Name war noch Ethereal. :-))
//Doch gefunden:
http://www.wireshark.org/docs/dfref/l/llc.html
aber es stimmt
Moooment. Mag ja sein, das ich noch nicht ganz wach bin, aber: Du versuchst mit einer Routine eine Dissector-Tabelle zu laden. Das was du laden möchtest, ist ein Display-Filter?!
Hast du den hier mal getestet?
http://www.wireshark.org/docs/wsug_html_chunked/wslua_dissector_example.html
Hast du vllt noch die Datein mit denen dein ProtocolDessector geschrieben hast ?
Irgendwo im Archiv vielleicht noch - das war aber kein Protokoll, das man im Internet findet und der Dissektor ist nicht in LUA, sondern in C.
geschrieben am 28.08.2008 um 08:36 von Leroux
Ja C kann ich auch nur wollte ich es halt mit LUA lösen da ich keine Lust habe alle neu zu compilern bzw ich keine Ahnung hab wie man eine DLL erzeugt.
Ich werde mir den Link mal anschauen Dank dir =)
Ich schreib mal noch dazu was ich machen muss vllt bin ich selbst noch zu neu im geschäft mit Wireshark :-P
Also ich hab hier Telegramme wenn bei diesem Telegramm ein gewisse OrgId und ProtokollID auftritt. Soll er den Rest der Nutzdaten einen Timestamp auslesen denn dies wird von Wireshark nicht gemacht.
//EDIT Ach ja wäre Interesse an einem Partnertausch ?( http://www.uncreativ.de)
[ Dieses Thema im Live-Forum aufrufen ]
|