Põhiline muud Kuidas kasutada Lua dissectorit Wiresharkis

Kuidas kasutada Lua dissectorit Wiresharkis



Maailma ühe parima võrgupakettide püüdmise tööriistana võimaldab Wireshark teil saavutada konkreetseid andmepakette, et saaksite neid analüüsida nii võrguühenduseta kui ka reaalajas. Mõelge rakendusele kui võimalusele oma võrgu kaudu voolavaid andmeid tähelepanelikult uurida, võimaldades teil tuvastada probleeme ja eeskirjade eiramisi.

  Kuidas kasutada Lua dissectorit Wiresharkis

Saate kasutada dissektoreid, kui soovite analüüsida paketi andmete teatud osa. Nagu nimigi ütleb, 'lahkab' see protsess koodi, võimaldades teil välja lõigata teatud aspektid, mis vajavad teie tähelepanu. See õpetus selgitab, kuidas Lua skriptikeelt kasutades Wiresharkis dissektoreid luua ja kasutada.

Enne alustamist – mida peate dissectorite kohta teadma

Kuigi dissektorid pakuvad kiiret viisi andmepaketi osade analüüsimiseks Wiresharkis, peavad nad tõhusaks tööks järgima mõnda protokolli. Need protokollid hõlmavad järgmist.

  • Iga loodud dissektor peab olema registreeritud, et käsitleda teatud tüüpi kasulikku koormust erinevast protokollist. Selle registreerimise lõpuleviimiseks peate määrama oma dissektorile 'Proto' objekti, mida näete allpool.
  • Kui helistate Wiresharki kaudu dissektorile, saab see rakendusest kolm asja:
    • TVB Object – TVB puhver andmepaketist.
    • TreeItem Object – puujuur, mis esindab andmepuu ühte sõlme.
    • Pinfo Object – paketiteabe kirje.
  • Dissektorit saate kutsuda ainult siis, kui teie andmepakett vastab DissectorTable-le, mille määrasite oma objektile 'Proto'.
    • Saate sellest nõudest mööda minna, sundides funktsiooni 'Decode As' kaudu kasutama dissektorit. Kuid isegi siis saate dissektorit sundida ainult siis, kui DissectorTable, mille määrasite oma objektile 'Proto', on õiget tüüpi.

Dissectori seadistamine LUA abil

Kuna Wireshark on nii kirjutatud C-programmeerimiskeeles ja kasutab seda, on enamik dissektoreid sarnaselt kirjutatud C-keeles. Siiski võite soovida kasutada Lua-d. See skriptikeel on lihtsam kui C ja seega paremini juurdepääsetav kodeerivatele uustulnukatele või neile, kes soovivad lihtsalt luua dissektori, kasutades kergemat keelt.

Kuigi teie kood on lihtsam, on Lua kasutamisel saadav dissektor tavaliselt aeglasem kui see, mille loote C-ga. Sellegipoolest tuleb järgida neid samme, kui soovite luua Lua abil Wiresharki dissektori.

kuidas ss ilma neid teadmata

1. samm – seadistage Lua Wiresharkis

Kui te pole seda varem Wiresharkis kasutanud, peate Lua seadistama.

  1. Klõpsake 'Abi', seejärel 'About Wireshark'.
  2. Klõpsake 'Kaustad'.
  3. Valige aktiivse Lua skripti loomiseks üks järgmistest.
    • Globaalsed Lua pistikprogrammid
    • Isiklikud Lua pistikprogrammid
    • Isiklik

Pärast aktiveerimist on teie skript valmis iga kord, kui käivitate Wiresharki. Iga kord, kui teete selles skriptis muudatusi, peate muudatuse registreerimiseks taaskäivitama Wiresharki või vajutage klahvikombinatsiooni Ctrl + Shift + L, et muudatuste aktiveerimiseks uuesti laadida kõik oma Lua skriptid.

2. samm – dissektori loomise põhietapid

Kui olete Luaga juba tuttav, saate Wiresharkis töötava dissektori skripti loomiseks kasutada järgmisi samme.

  • Deklareerige oma dissektori protokoll, mis nõuab nii pika nime määramist protokollipuus kasutamiseks kui ka lühikese nime, mis toimib dissektori kuvafiltri nimena.
    • Looge järgmised kolm välja koos nende sobivate tüüpidega.
    • Küsimus – näitab küsimuse tüüpi.
    • Vastus – näitab vastuse tüüpi.
  • MessageType – näitab, kas teie pakett nõuab küsimust või vastust.
  • Registreerige oma väljad, et Wireshark teaks, kuidas neid kuvada. Ilma registreeritud väljadeta kuvatakse teade „Lua Error”, mis tavaliselt ütleb, et teie puuüksuse protoväli on kehtetu.
  • Looge lahkamisfunktsioon, mis sisaldab eelnevalt mainitud Pinfot (sisaldab andmeid teie paketi kohta) ja Tree Item (puu loomine, mille alampuule lisate). Samuti peate looma 'puhvri', mis asub teie TCP peal.
  • Määrake nii protokoll kui ka port, mille jaoks Wireshark dissektorit kasutama peab. Näiteks saate määrata protokolli 'TCP' ja pordi numbri, mida soovite kasutada.

3. samm – lisage oma dissector Wiresharki

Praegu on teie dissektor nagu elektripirn. See on olemas, kuid sellest pole teile kasu enne, kui saate selle kaudu jõudu kasutada. Teisisõnu, teie dissektor pole veel Wiresharki lisatud, nii et peate selle käsitsi lisama, et see käivitada, järgides neid samme.

käsuviip täisekraanil
  1. Klõpsake nuppu 'Abi' ja minge menüüsse 'Teave Wiresharki kohta'.
  2. Valige vahekaart 'Kaust', et leida oma Lua-faili teede loend.
  3. Valige 'Isiklikud Lua pluginad'. Vajadusel looge kataloog.
  4. Kopeerige ja kleepige loodud Lua fail kataloogi 'Personal Lua Plugins'. Dissektori sisselülitamiseks laadige uuesti Wireshark.

Hea mõte on testida oma uut dissektorit, avades mõned jäädvustatud paketid. Wireshark peaks edastama sõnumi, mis näitab dissektorile valitud pikka nime koos teabega sõnumi tüübi (küsimus või vastus) ja kontrolli tulemuste kohta.

Mõned näidiskoodid

Kui te pole varem dissektorit loonud (või olete Lua uus kasutaja), Wireshark pakub teile proovimiseks käepärast lahkaja näidet:

local p_multi = Proto("multi", "MultiProto");
local vs_protos = {
    [2] = "mtp2",
    [3] = "mtp3",
    [4] = "alcap",
    [5] = "h248",
    [6] = "ranap",
    [7] = "rnsap",
    [8] = "nbap"
}
local f_proto = ProtoField.uint8("multi.protocol", "Protocol", base.DEC, vs_protos)
local f_dir = ProtoField.uint8("multi.direction", "Direction", base.DEC, { [1] = "incoming", [0] = "outgoing"})
local f_text = ProtoField.string("multi.text", "Text")
p_multi.fields = { f_proto, f_dir, f_text }
local data_dis = Dissector.get("data")
local protos = {
    [2] = Dissector.get("mtp2"),
    [3] = Dissector.get("mtp3"),
    [4] = Dissector.get("alcap"),
    [5] = Dissector.get("h248"),
    [6] = Dissector.get("ranap"),
    [7] = Dissector.get("rnsap"),
    [8] = Dissector.get("nbap"),
    [9] = Dissector.get("rrc"),
    [10] = DissectorTable.get("sctp.ppi"):get_dissector(3), -- m3ua
    [11] = DissectorTable.get("ip.proto"):get_dissector(132), -- sctp
}
function p_multi.dissector(buf, pkt, tree)
    local subtree = tree:add(p_multi, buf(0,2))
    subtree:add(f_proto, buf(0,1))
    subtree:add(f_dir, buf(1,1))
    local proto_id = buf(0,1):uint()
    local dissector = protos[proto_id]
    if dissector ~= nil then
        -- Dissector was found, invoke subdissector with a new Tvb,
        -- created from the current buffer (skipping first two bytes).
        dissector:call(buf(2):tvb(), pkt, tree)
    elseif proto_id < 2 then
        subtree:add(f_text, buf(2))
        -- pkt.cols.info:set(buf(2, buf:len() - 3):string())
    else
        -- fallback dissector that just shows the raw data.
        data_dis:call(buf(2):tvb(), pkt, tree)
    end
end
local wtap_encap_table = DissectorTable.get("wtap_encap")
local udp_encap_table = DissectorTable.get("udp.port")
wtap_encap_table:add(wtap.USER15, p_multi)
wtap_encap_table:add(wtap.USER12, p_multi)
udp_encap_table:add(7555, p_multi)

Postdissektorid ja aheldatud dissektorid

Võib-olla soovite oma dissektorite kasutamisega veidi põhjalikumalt minna, kui olete õppinud neid Luas looma. Wireshark pakub kahte täiendavat tüüpi dissektoreid – postdissektoreid ja aheldatud dissektoreid –, mis pakuvad rohkem funktsionaalsust.

Järeldissektor sarnaneb paljuski kõigi paketi jaoks käivitatud lahkajate viimase kontrolliga. Registreerite selle, et saada märguanne, kui Wireshark on helistanud kõigile teistele dissektoritele, mida soovite kasutada, ja saate seda kasutada veergude „Protokoll” ja „Teave” filtreerimiseks. See funktsioon on eriti kasulik, kui soovite välja filtreerida mitu paketti seansi jooksul, kus andmekogumite vahel on pikk vahe ja te ei suuda neid kõiki eraldi meelde tuletada.

kuidas anda admin vastuolude korral

Dissektorite aheldamine täidab sarnast funktsiooni (vähemalt varem kasutatud dissektorite kaudu filtreerimise osas), andes teile juurdepääsu ühe dissektori andmetele. Peamine eelis on see, et aheldatud lahkaja ei pea uuesti iga paketti läbi jooksma, andes teile tulemuse, ilma et peaksite ootama, kuni algne dissector uuesti töötab.

Lahkamine Luas

Arvestades, et Wireshark pakub juba C-s (oma loomulikus keeles) dissektorite loomist, ei pruugi te näha vajadust nende loomiseks ka Luas. Sellegipoolest võivad need, kes ei tunne C-d hästi, aga ka need, kes on juba Luat õppinud, avastada, et Lua kerge skriptimine muudab dissektorite loomise lihtsamaks. Tõsi, peate protsessi käivitamisel leppima pikema laadimisajaga võrreldes C-põhiste dissektoritega, kuid see on kasulik, kui teil on võimalus sellest hoolimata.

Sellega seoses tahame sinust kuulda. Kui tihti te Wiresharkis dissektoreid kasutate? Kas olete proovinud neid varem C-vormingus luua ja millist kasu teie arvates Luas lahkajate tegemine pakub? Andke meile teada allpool olevas kommentaaride jaotises.

Huvitavad Artiklid

Toimetaja Valik

Kuidas saada suurepäraseks kiireks inseneriks
Kuidas saada suurepäraseks kiireks inseneriks
Karjääritrendid tulevad ja lähevad, eriti seoses tehnoloogia ja eriti tehisintellekti (AI) edusammudega. Kiire inseneritöö on üks uuemaid karjäärivõimalusi, mida kaaluda. Seda võib võrrelda arvutiprogrammeerimisega, kuid mis teeb selle erinevaks
Kuidas keelt WeChatis muuta
Kuidas keelt WeChatis muuta
Hiina sotsiaalvõrgustiku rakendus WeChat on muutumas hitiks kogu maailmas. Hiinas kasutavad seda kõik oma sotsiaalse suhtlusvõrgustikuna peamiselt seetõttu, et see teeb palju rohkem kui WhatsApp. See ütles, teades, kuidas muuta
Opera 67: külgriba seadistuspaneel, tõstke kursoriga duplikaatide vahelehed esile
Opera 67: külgriba seadistuspaneel, tõstke kursoriga duplikaatide vahelehed esile
Opera brauseri uus arendajaväljaanne eelseisvast versioonist 67 paljastab rakendusse jõudva hulga uusi funktsioone, sealhulgas külgriba seadistuspaneeli, hõljumise vahelehtede esiletõstmise esiletõstmise ja palju muud. Kuulutus Opera 67.0.3574.0 Developer põhineb Chromium 80-l ja sellega kaasnevad järgmised olulised muudatused. Külgriba seadistuspaneel Külgriba
Kuidas Gmodis kollektsiooni teha
Kuidas Gmodis kollektsiooni teha
Garry's Modi abil on teil praktiliselt piiramatud võimalused. Niikaua kui lisate uusi varasid ja mudeleid, saate alati luua midagi uut ja ainulaadset. Steam tutvustas, et aidata kasutajatel oma lisandmoodulite ja objektide loendit kataloogida
Alcatel One Touch Idol S ülevaade
Alcatel One Touch Idol S ülevaade
Alcatel oli kunagi Suurbritannia mobiiltelefonide turul suur jõud, kuid sellest ajast alates on see langenud natuke osaliseks mängijaks. Kui selle Android-telefon Onetouch Idol S on siiski midagi minna, on see siiski valmis
MAC-aadressi filtreerimine: mis see on ja kuidas see töötab
MAC-aadressi filtreerimine: mis see on ja kuidas see töötab
WiFi-võrgu turvalisuse parandamiseks kaaluge MAC-aadressi filtreerimise kasutamist, et takistada seadmetel ruuteriga autentimist.
FIFA 17 The Journey: Ebatäiuslik, kuid EA võiks olla millegi tõeliselt erilise peale, kui nad sellest kinni peavad
FIFA 17 The Journey: Ebatäiuslik, kuid EA võiks olla millegi tõeliselt erilise peale, kui nad sellest kinni peavad
Uudisega, et FIFA 18 näeb tagasi teekonda, tundus olevat hea aeg uuesti vaadata oma kogemusi esimese hooajaga. Kahjuks jätkab järgmine hooaeg Alex Hunteri lugu - mis on hea, aga