Utama Lain-lain Cara Menggunakan Lua Dissector dalam Wireshark

Cara Menggunakan Lua Dissector dalam Wireshark



Sebagai salah satu alat penangkapan paket rangkaian terbaik dunia, Wireshark membolehkan anda memperoleh paket data tertentu supaya anda boleh menganalisisnya di luar talian dan dalam masa nyata. Fikirkan apl itu sebagai satu cara untuk memeriksa data yang mengalir melalui rangkaian anda dengan teliti, membolehkan anda menangkap isu dan penyelewengan.

cara memeriksa nombor yang disekat di iphone
  Cara Menggunakan Lua Dissector dalam Wireshark

Anda boleh menggunakan dissectors jika anda ingin menganalisis bahagian tertentu data paket. Seperti namanya, proses ini 'membedah' kod, membolehkan anda memotong aspek tertentu yang memerlukan perhatian anda. Tutorial ini menerangkan cara membuat dan menggunakan dissectors dalam Wireshark menggunakan bahasa skrip Lua.

Sebelum Anda Mula – Perkara yang Anda Perlu Tahu Mengenai Dissectors

Walaupun pembedah menawarkan cara cepat untuk menganalisis bahagian paket data dalam Wireshark, mereka perlu mengikut beberapa protokol untuk berfungsi dengan berkesan. Protokol ini termasuk yang berikut:

  • Setiap pembedah yang anda cipta perlu didaftarkan untuk mengendalikan jenis muatan yang ditetapkan daripada protokol yang berbeza. Untuk melengkapkan pendaftaran ini, anda mesti menetapkan objek 'Proto' kepada dissector anda, yang akan anda lihat di bawah.
  • Apabila anda memanggil pembedah melalui Wireshark, ia menerima tiga perkara daripada apl:
    • Objek TVB – Penampan TVB daripada paket data.
    • Objek TreeItem - Akar pokok yang mewakili satu nod dalam pepohon data.
    • Objek Pinfo – Rekod maklumat paket.
  • Anda hanya boleh memanggil dissector jika paket data anda sepadan dengan DissectorTable yang anda tetapkan kepada objek 'Proto' anda.
    • Anda boleh mengatasi keperluan ini dengan memaksa penggunaan dissector melalui fungsi 'Decode As'. Tetapi walaupun begitu, anda hanya boleh memaksa dissector jika DissectorTable yang anda tetapkan kepada objek 'Proto' anda adalah jenis yang betul.

Sediakan Disektor Anda Menggunakan LUA

Oleh kerana Wireshark kedua-duanya ditulis dalam dan menggunakan bahasa pengaturcaraan C, kebanyakan dissectors ditulis dalam C. Walau bagaimanapun, anda mungkin ingin menggunakan Lua. Bahasa skrip ini lebih mudah daripada C dan dengan itu lebih mudah diakses oleh pengekodan pendatang baru atau mereka yang hanya ingin mencipta pembedah menggunakan bahasa yang lebih ringan.

Walaupun kod anda akan menjadi lebih mudah, pembahagi yang anda dapat apabila menggunakan Lua biasanya lebih perlahan daripada yang anda buat menggunakan C. Namun begitu, ini adalah langkah yang perlu diikuti jika anda ingin mencipta pembahagi Wireshark menggunakan Lua.

Langkah 1 – Sediakan Lua dalam Wireshark

Anda perlu menyediakan Lua jika anda belum pernah menggunakannya dalam Wireshark sebelum ini:

  1. Klik 'Bantuan,' diikuti dengan 'Perihal Wireshark.'
  2. Klik 'Folder.'
  3. Pilih salah satu daripada yang berikut untuk mencipta skrip Lua yang aktif:
    • Pemalam Lua Global
    • Pemalam Lua Peribadi
    • Peribadi

Setelah diaktifkan, skrip anda akan sedia apabila anda memulakan Wireshark. Setiap kali anda membuat perubahan pada skrip itu, anda sama ada perlu memulakan semula Wireshark untuk mendaftarkan perubahan atau tekan 'Ctrl + Shift + L' untuk memuatkan semula semua skrip Lua anda untuk menjadikan perubahan anda aktif.

Langkah 2 – Langkah Asas untuk Mencipta Dissector Anda

Jika anda sudah biasa dengan Lua, anda boleh menggunakan langkah berikut untuk mencipta skrip dissector anda sendiri yang akan berfungsi dalam Wireshark:

  • Isytihar protokol untuk dissector anda, yang memerlukan anda menetapkan kedua-dua nama panjang untuk digunakan dalam pepohon protokol dan nama pendek yang berfungsi sebagai nama penapis paparan dissector.
    • Cipta tiga medan berikut, dengan jenis yang sesuai:
    • Soalan – Menunjukkan jenis soalan.
    • Jawapan – Menunjukkan jenis jawapan.
  • MessageType – Menunjukkan jika paket anda meminta soalan atau jawapan.
  • Daftarkan medan anda supaya Wireshark tahu cara memaparkannya. Tanpa medan berdaftar, anda akan menerima mesej 'Ralat Lua', biasanya memberitahu anda bahawa ProtoField Item Pokok anda tidak sah.
  • Cipta fungsi pembedahan yang termasuk Pinfo yang dinyatakan sebelum ini (mengandungi data tentang paket anda) dan Item Pokok (mencipta pepohon yang akan anda tambahkan pada subpokok). Anda juga mesti membuat 'penampan', yang terletak di atas TCP anda.
  • Tentukan kedua-dua protokol dan port yang Wireshark mesti menggunakan dissector. Sebagai contoh, anda boleh menetapkan protokol kepada 'TCP' dan nombor port kepada mana-mana yang anda mahu gunakan.

Langkah 3 – Tambahkan Dissector Anda ke Wireshark

Sekarang ini, dissector anda seperti mentol lampu tanpa elektrik. Ia wujud, tetapi ia tidak berguna kepada anda sehingga anda boleh menjalankan sedikit kuasa melaluinya. Dengan kata lain, dissector anda belum ditambahkan pada Wireshark lagi, jadi anda perlu menambahkannya secara manual untuk menjalankannya dengan menggunakan langkah-langkah ini:

  1. Klik pada 'Bantuan' dan pergi ke menu 'Mengenai Wireshark'.
  2. Pilih tab 'Folder' untuk mencari senarai laluan untuk fail Lua anda.
  3. Pilih 'Pemalam Lua Peribadi.' Buat direktori jika perlu.
  4. Salin dan tampal fail Lua yang anda buat ke dalam direktori 'Pemalam Lua Peribadi'. Muat semula Wireshark untuk menghidupkan dissector.

Adalah idea yang baik untuk menjalankan ujian pada dissector baharu anda dengan membuka beberapa paket yang telah anda tangkap. Wireshark harus menyampaikan mesej yang menunjukkan nama panjang yang anda pilih untuk dissector anda, bersama-sama dengan maklumat tentang jenis mesej (soalan atau jawapan) dan hasil semakan anda.

Beberapa Kod Contoh

Jika anda tidak pernah membuat pembedah sebelum ini (atau anda baru menggunakan Lua), Wireshark menawarkan pembahagi contoh yang berguna untuk anda cuba:

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)

Postdissectors dan Chained Dissectors

Anda mungkin mahu pergi sedikit lebih mendalam dengan penggunaan dissector anda setelah anda menguasai menciptanya dalam Lua. Wireshark menawarkan dua jenis dissectors tambahan - postdissectors dan chained dissectors - yang menawarkan lebih banyak fungsi.

bagaimana untuk menjadikan skor snap anda lebih tinggi

Postdissector adalah sama seperti pemeriksaan akhir semua dissectors yang anda jalankan untuk satu paket. Anda mendaftarkannya untuk dimaklumkan setelah Wireshark memanggil setiap pembedah lain yang anda mahu ia gunakan, dan anda boleh menggunakannya untuk menapis lajur 'Protokol' dan 'Maklumat'. Ciri ini amat berguna jika anda ingin menapis keluar berbilang paket dalam sesi di mana anda mempunyai jurang yang panjang antara set data dan tidak dapat mengingat setiap satu secara individu.

Pembelah rantai berfungsi dengan fungsi yang sama (sekurang-kurangnya dari segi penapisan melalui pembahagi yang digunakan sebelum ini) dengan memberi anda akses kepada data pembedah tunggal. Kelebihan utama di sini ialah pemisah berantai tidak perlu melalui setiap paket sekali lagi, memberikan anda hasil tanpa memaksa anda menunggu sehingga pembedah asal berjalan semula.

Bedah di Lua

Memandangkan Wireshark sudah menawarkan keupayaan untuk mencipta pembahagi dalam C (bahasa semula jadinya), anda mungkin tidak melihat keperluan untuk menciptanya dalam Lua juga. Namun, mereka yang tidak selesa dengan C, serta mereka yang telah menguasai Lua, mungkin mendapati bahawa skrip Lua yang ringan memudahkan untuk mencipta pembahagi mereka. Memang, anda perlu menukar masa pemuatan yang lebih lama apabila anda menjalankan proses berbanding dengan pemisah berasaskan C, tetapi adalah berguna untuk mempunyai pilihan tanpa mengira.

Dengan itu, kami ingin mendengar daripada anda. Berapa kerapkah anda menggunakan dissectors dalam Wireshark? Pernahkah anda mencuba menciptanya dalam C sebelum ini, dan apakah faedah yang anda fikir menghasilkan pembedah dalam Lua? Beritahu kami di bahagian komen di bawah.

Artikel Yang Menarik

Pilihan Editor

Penghala wayarles terbaik tahun 2019: Ini adalah gear Wi-Fi terbaik yang boleh anda beli di UK
Penghala wayarles terbaik tahun 2019: Ini adalah gear Wi-Fi terbaik yang boleh anda beli di UK
Penghala tanpa wayar yang rendah adalah pusat kediaman bersambung internet. Ini adalah pintu masuk antara telefon, komputer riba, konsol permainan dan TV anda ke internet dan ia adalah sekeping kit yang sangat penting. Namun, ironinya, bagi banyak orang
Cara Membetulkannya Apabila Roku Tidak Akan Bersambung ke Wi-Fi atau Internet
Cara Membetulkannya Apabila Roku Tidak Akan Bersambung ke Wi-Fi atau Internet
Jika Roku anda tidak dapat menyambung ke Wi-Fi, semak kuasa dan sambungan internetnya. Jika itu tidak berjaya, meletakkan semula kedudukan itu boleh membantu meningkatkan isyarat Wi-Fi.
Cara Mematikan Waktu Tidur pada iPhone
Cara Mematikan Waktu Tidur pada iPhone
Apple kerap menolak tweak dan naik taraf untuk meningkatkan keupayaan iPhone. Banyak daripada peningkatan tersebut menjadikan kehidupan pengguna lebih mudah dalam satu atau lain cara. Dengan iOS 13, salah satu kemas kini yang paling mudah ialah Waktu Tidur
Hidupkan atau Matikan Umumkan Kekunci Fungsi seperti Diketik dalam Pencerita
Hidupkan atau Matikan Umumkan Kekunci Fungsi seperti Diketik dalam Pencerita
Cara Menghidupkan atau Mematikan Mengumumkan Kekunci Fungsi seperti Diketik dalam Narator pada Windows 10. Ini mungkin bermula pada Windows 10 versi 1903.
Cara Menggunakan Pengawal Xbox One dengan Mac
Cara Menggunakan Pengawal Xbox One dengan Mac
Sangat mudah untuk menyambungkan pengawal PS4 ke Mac anda, tetapi bagaimana dengan pengawal Xbox One? Berita baiknya adalah bahawa ia berfungsi dengan baik, tetapi berita buruknya ialah memerlukan sedikit lebih banyak persediaan berkat penggunaan teknologi wayarles proprietari oleh Microsoft. Tetapi jangan risau, gamer Xbox One, kami akan menunjukkan kepada anda bagaimana untuk bangun dan berjalan dengan pengawal Xbox One dan Mac anda.
Alat Pembuatan Media untuk Kemas kini Windows 10 RTM
Alat Pembuatan Media untuk Kemas kini Windows 10 RTM
Microsoft hari ini akhirnya mengeluarkan Windows 10 Anniversary Update untuk PC. Bersama dengan gambar ISO rasmi, Alat Pembuatan Media yang dikemas kini tersedia untuk dimuat turun dari Microsoft. Ini dia. Media Creation Tool adalah alat khas yang membolehkan anda membuat media bootable dengan Windows 10 Anniversary Update. Ia akan memuat turun Windows 10 secara automatik.
Cara Melumpuhkan Pembaca PDF di Google Chrome 57 dan Ke Atas
Cara Melumpuhkan Pembaca PDF di Google Chrome 57 dan Ke Atas
Berikut adalah cara melumpuhkan penampil PDF (pembaca) terbina dalam Google Chrome 57. Ikuti tutorial langkah demi langkah ini untuk melumpuhkannya.