Utama Lainnya Cara Menggunakan Lua Dissector di Wireshark

Cara Menggunakan Lua Dissector di Wireshark



Sebagai salah satu alat penangkap paket jaringan terbaik di dunia, Wireshark memungkinkan Anda mendapatkan paket data tertentu sehingga Anda dapat menganalisisnya secara offline dan waktu nyata. Pikirkan aplikasi sebagai cara untuk memeriksa dengan cermat data yang mengalir melalui jaringan Anda, memungkinkan Anda menangkap masalah dan penyimpangan.

cara mendapatkan kunci streaming kedutan
  Cara Menggunakan Lua Dissector di Wireshark

Anda dapat menggunakan disektor jika Anda ingin menganalisis bagian tertentu dari data paket. Seperti namanya, proses ini “membedah” kode, memungkinkan Anda memotong aspek-aspek tertentu yang memerlukan perhatian Anda. Tutorial ini menjelaskan cara membuat dan menggunakan dissector di Wireshark menggunakan bahasa skrip Lua.

Sebelum Anda Mulai – Yang Perlu Anda Ketahui Tentang Dissectors

Meskipun dissector menawarkan cara cepat untuk menganalisis bagian dari paket data di Wireshark, mereka harus mengikuti beberapa protokol agar bekerja secara efektif. Protokol-protokol ini termasuk yang berikut:

  • Setiap dissector yang Anda buat harus didaftarkan untuk menangani jenis muatan tertentu dari protokol yang berbeda. Untuk menyelesaikan pendaftaran ini, Anda harus menetapkan objek 'Proto' ke disektor Anda, yang akan Anda lihat di bawah.
  • Saat Anda memanggil dissector melalui Wireshark, ia menerima tiga hal dari aplikasi:
    • Objek TVB – Buffer TVB dari paket data.
    • Objek TreeItem – Akar pohon yang mewakili satu node dalam pohon data.
    • Pinfo Object – Catatan informasi paket.
  • Anda hanya dapat memanggil dissector jika paket data Anda cocok dengan DissectorTable yang Anda atur ke objek 'Proto' Anda.
    • Anda dapat mengatasi persyaratan ini dengan memaksa penggunaan dissector melalui fungsi 'Decode As'. Namun demikian, Anda hanya dapat memaksa dissector jika DissectorTable yang Anda atur ke objek 'Proto' adalah tipe yang benar.

Menyiapkan Dissector Anda Menggunakan LUA

Karena Wireshark ditulis dalam dan menggunakan bahasa pemrograman C, kebanyakan dissector ditulis dengan cara yang sama dalam C. Namun, Anda mungkin ingin menggunakan Lua. Bahasa skrip ini lebih sederhana daripada C dan karenanya lebih mudah diakses oleh pengkode pemula atau mereka yang hanya ingin membuat pembagi menggunakan bahasa yang lebih ringan.

Meskipun kode Anda akan lebih sederhana, pembagi yang Anda dapatkan saat menggunakan Lua biasanya lebih lambat daripada yang Anda buat menggunakan C. Namun demikian, ini adalah langkah-langkah yang harus diikuti jika Anda ingin membuat pembagi Wireshark menggunakan Lua.

Langkah 1 – Siapkan Lua di Wireshark

Anda harus menyiapkan Lua jika Anda belum pernah menggunakannya di Wireshark sebelumnya:

  1. Klik 'Bantuan,' diikuti oleh 'Tentang Wireshark.'
  2. Klik 'Folder'.
  3. Pilih salah satu dari berikut ini untuk membuat skrip Lua aktif:
    • Plugin Lua Global
    • Plugin Lua Pribadi
    • Pribadi

Setelah diaktifkan, skrip Anda akan siap kapan pun Anda memulai Wireshark. Setiap kali Anda membuat perubahan pada skrip itu, Anda perlu me-restart Wireshark untuk mendaftarkan perubahan atau tekan 'Ctrl + Shift + L' untuk memuat ulang semua skrip Lua Anda agar perubahan Anda aktif.

Langkah 2 – Langkah Dasar Membuat Dissector Anda

Jika Anda sudah terbiasa dengan Lua, Anda dapat menggunakan langkah-langkah berikut untuk membuat skrip disektor Anda sendiri yang akan berfungsi di Wireshark:

  • Deklarasikan protokol untuk disektor Anda, yang mengharuskan Anda menyetel nama panjang untuk digunakan di pohon protokol dan nama pendek yang berfungsi sebagai nama filter tampilan disektor.
    • Buat tiga bidang berikut, dengan tipe yang sesuai:
    • Pertanyaan – Menampilkan jenis pertanyaan.
    • Jawab – Menampilkan jenis jawaban.
  • MessageType – Menunjukkan apakah paket Anda meminta pertanyaan atau jawaban.
  • Daftarkan bidang Anda sehingga Wireshark tahu cara menampilkannya. Tanpa bidang terdaftar, Anda akan menerima pesan “Kesalahan Lua”, biasanya memberi tahu Anda bahwa ProtoField Item Pohon Anda tidak valid.
  • Buat fungsi pembedahan yang menyertakan Pinfo yang disebutkan sebelumnya (berisi data tentang paket Anda) dan Tree Item (membuat pohon yang akan Anda tambahkan ke subtree). Anda juga harus membuat 'buffer', yang berada di atas TCP Anda.
  • Tentukan protokol dan port tempat Wireshark harus menggunakan dissector. Misalnya, Anda dapat mengatur protokol ke 'TCP' dan nomor port mana pun yang ingin Anda gunakan.

Langkah 3 – Tambahkan Dissector Anda ke Wireshark

Saat ini, disektor Anda seperti bola lampu tanpa listrik. Itu ada, tetapi tidak ada gunanya bagi Anda sampai Anda dapat menjalankannya. Dengan kata lain, dissector Anda belum ditambahkan ke Wireshark, jadi Anda harus menambahkannya secara manual untuk menjalankannya dengan menggunakan langkah-langkah berikut:

  1. Klik 'Bantuan' dan buka menu 'Tentang Wireshark'.
  2. Pilih tab 'Folder' untuk menemukan daftar jalur untuk file Lua Anda.
  3. Pilih 'Plugin Lua Pribadi.' Buat direktori jika perlu.
  4. Salin dan tempel file Lua yang Anda buat ke direktori 'Personal Lua Plugins'. Muat ulang Wireshark untuk menghidupkan pembagi.

Sebaiknya jalankan tes pada disektor baru Anda dengan membuka beberapa paket yang telah Anda tangkap. Wireshark harus mengirimkan pesan yang menunjukkan nama panjang yang Anda pilih untuk dissector Anda, bersama dengan informasi tentang jenis pesan (pertanyaan atau jawaban) dan hasil pemeriksaan Anda.

cara me-reboot ps4 dalam mode aman

Beberapa Contoh Kode

Jika Anda belum pernah membuat dissector sebelumnya (atau Anda baru mengenal Lua), Wireshark menawarkan contoh disektor praktis untuk Anda coba:

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 ingin sedikit lebih mendalam dengan penggunaan disektor setelah Anda menguasai pembuatannya di Lua. Wireshark menawarkan dua jenis pembagi tambahan – postdissectors dan chained dissectors – yang menawarkan lebih banyak fungsi.

blok iklan vs blok iklan plus

Sebuah postdissector sangat mirip dengan pemeriksaan terakhir dari semua dissector yang telah Anda jalankan untuk sebuah paket. Anda mendaftarkannya untuk mendapatkan pemberitahuan setelah Wireshark memanggil setiap dissector lain yang ingin Anda gunakan, dan Anda dapat menggunakannya untuk memfilter kolom 'Protokol' dan 'Info'. Fitur ini sangat berguna jika Anda ingin memfilter beberapa paket dalam satu sesi di mana Anda memiliki jarak yang panjang antara kumpulan data dan tidak dapat mengingat setiap paket satu per satu.

Chaining dissector memiliki fungsi serupa (setidaknya dalam hal memfilter melalui dissector yang digunakan sebelumnya) dengan memberi Anda akses ke data satu dissector. Keuntungan utama di sini adalah bahwa disektor yang dirantai tidak harus menjalankan setiap paket lagi, memberi Anda hasil tanpa memaksa Anda untuk menunggu disektor asli untuk berjalan lagi.

Membedah di Lua

Mengingat bahwa Wireshark sudah menawarkan kemampuan untuk membuat disektor dalam C (bahasa alaminya), Anda mungkin tidak melihat kebutuhan untuk membuatnya di Lua juga. Tetap saja, mereka yang tidak nyaman dengan C, serta mereka yang sudah menguasai Lua, mungkin menemukan bahwa scripting Lua yang ringan membuatnya lebih mudah untuk membuat dissector mereka. Memang, Anda harus memperdagangkan waktu pemuatan yang lebih lama saat Anda menjalankan proses dibandingkan dengan pembagi berbasis C, tetapi ada baiknya untuk memiliki opsi tersebut.

Dengan itu, kami ingin mendengar dari Anda. Seberapa sering Anda menggunakan dissector di Wireshark? Sudahkah Anda mencoba membuatnya di C sebelumnya, dan menurut Anda manfaat apa yang diberikan oleh pembagi di Lua? Beri tahu kami di bagian komentar di bawah.

Artikel Menarik

Pilihan Editor

Ulasan Samsung Gear VR Edisi Inovator untuk S6: Masa depan ada di sini
Ulasan Samsung Gear VR Edisi Inovator untuk S6: Masa depan ada di sini
Banyak sekali orang yang berpikir bahwa masa depan game dan bioskop melibatkan pemanfaatan realitas virtual dalam beberapa kapasitas. Benar, ada banyak dari mereka yang juga memiliki kepentingan dalam memastikan hal itu terjadi, tetapi, sementara itu bisa
Apakah Netflix Memberi Tahu Anda Saat Orang Lain Masuk ke Akun Anda?
Apakah Netflix Memberi Tahu Anda Saat Orang Lain Masuk ke Akun Anda?
Netflix telah menggemparkan dunia hiburan. Ini adalah solusi berbiaya rendah untuk banyak alternatif kabel dan memiliki konten yang bagus. Mulai dari film klasik, acara TV, dan bahkan film asli Netflix yang populer, Anda dapat menghabiskan waktu berhari-hari dengan sibuk
Cara memaksa menyegarkan thumbnail gambar dan video di folder Explorer
Cara memaksa menyegarkan thumbnail gambar dan video di folder Explorer
Windows Explorer memiliki fitur luar biasa seperti pengelola file lainnya untuk menampilkan pratinjau thumbnail gambar dan video di folder mana pun. Untuk memastikan bahwa thumbnail ditampilkan secara instan setiap kali Anda membuka folder, thumbnail tersebut di-cache. Sayangnya, terkadang gagal menghasilkan thumbnail untuk beberapa file, atau terus ditampilkan
Cara Menggunakan Zoom di Tablet Amazon Fire
Cara Menggunakan Zoom di Tablet Amazon Fire
Zoom telah mengukir reputasi sebagai salah satu layanan konferensi video terbaik di pasar untuk membantu Anda tetap terhubung dengan teman, keluarga, rekan bisnis, dan bahkan teman sekelas. Zoom dapat diakses di sebagian besar perangkat yang mendukung internet, termasuk PC,
Cara Mencetak Foto Anda Sendiri
Cara Mencetak Foto Anda Sendiri
Anda memiliki gambar dan Anda ingin mencetaknya. Berikut adalah langkah-langkah dan beberapa tip untuk mendapatkan hasil cetakan terbaik.
Microsoft mengubah UI Favorit di browser Edge
Microsoft mengubah UI Favorit di browser Edge
Microsoft telah mengumumkan pembaruan untuk antarmuka pengguna panel Favorit di browser Edge. Selain opsi penyematan panel yang telah kita bahas sebelumnya, ada tampilan gaya pohon baru, dan kemampuan untuk mengatur ulang entri secara langsung dengan drag-n-drop tanpa membuka pengelola bookmark. Menurut perusahaan, mereka menerima
Kamera dasbor terbaik tahun 2019: Kamera dasbor teratas Inggris mulai dari £35
Kamera dasbor terbaik tahun 2019: Kamera dasbor teratas Inggris mulai dari £35
Anda mungkin menganggap diri Anda sebagai orang yang tidak membutuhkan kamera dasbor. Bukankah itu hanya untuk jalan-jalan di Rusia, di mana pengemudi diwajibkan secara hukum untuk menggunakannya? Jalan-jalan kami - dan pengemudi - mungkin