প্রধান অন্যান্য কিভাবে Wireshark এ Lua Dissector ব্যবহার করবেন

কিভাবে Wireshark এ Lua Dissector ব্যবহার করবেন



বিশ্বের সেরা নেটওয়ার্ক প্যাকেট ক্যাপচার টুলগুলির মধ্যে একটি হিসাবে, Wireshark আপনাকে নির্দিষ্ট ডেটা প্যাকেটগুলি অর্জন করতে দেয় যাতে আপনি অফলাইন এবং রিয়েল টাইমে উভয়ই বিশ্লেষণ করতে পারেন। আপনার নেটওয়ার্কের মাধ্যমে প্রবাহিত ডেটা ঘনিষ্ঠভাবে পরীক্ষা করার একটি উপায় হিসাবে অ্যাপটিকে ভাবুন, আপনাকে সমস্যা এবং অনিয়মগুলি ধরতে দেয়৷

  কিভাবে Wireshark এ Lua Dissector ব্যবহার করবেন

আপনি যদি প্যাকেটের ডেটার একটি নির্দিষ্ট অংশ বিশ্লেষণ করতে চান তবে আপনি ডিসেক্টর ব্যবহার করতে পারেন। নামটিই বোঝায়, এই প্রক্রিয়াটি কোডটিকে 'ব্যবচ্ছেদ' করে, যা আপনাকে আপনার মনোযোগের প্রয়োজন এমন কিছু দিক কাটাতে দেয়। এই টিউটোরিয়ালটি ব্যাখ্যা করে কিভাবে Lua স্ক্রিপ্টিং ভাষা ব্যবহার করে Wireshark-এ ডিসেক্টর তৈরি এবং ব্যবহার করতে হয়।

আপনি শুরু করার আগে - ডিসেক্টর সম্পর্কে আপনার যা জানা দরকার

যদিও বিচ্ছিন্নকারীরা Wireshark-এ একটি ডেটা প্যাকেটের অংশ বিশ্লেষণ করার একটি দ্রুত উপায় অফার করে, তবে কার্যকরভাবে কাজ করার জন্য তাদের কিছু প্রোটোকল অনুসরণ করতে হবে। এই প্রোটোকলগুলির মধ্যে নিম্নলিখিতগুলি অন্তর্ভুক্ত রয়েছে:

  • আপনার তৈরি করা প্রতিটি ডিসেক্টর একটি ভিন্ন প্রোটোকল থেকে একটি সেট ধরণের পেলোড পরিচালনা করতে নিবন্ধিত হতে হবে। এই নিবন্ধনটি সম্পূর্ণ করতে, আপনাকে অবশ্যই আপনার ডিসেক্টরে একটি 'প্রোটো' অবজেক্ট বরাদ্দ করতে হবে, যা আপনি নীচে দেখতে পাবেন।
  • আপনি যখন Wireshark এর মাধ্যমে একটি ডিসেক্টরকে কল করেন, তখন এটি অ্যাপ থেকে তিনটি জিনিস গ্রহণ করে:
    • TVB অবজেক্ট - ডেটা প্যাকেট থেকে একটি TVB বাফার।
    • TreeItem অবজেক্ট - একটি ট্রি রুট যা একটি ডেটা ট্রিতে একটি একক নোডকে প্রতিনিধিত্ব করে।
    • পিনফো অবজেক্ট - একটি প্যাকেট তথ্য রেকর্ড।
  • আপনি শুধুমাত্র একটি ডিসেক্টর কল করতে পারেন যদি আপনার ডাটা প্যাকেটটি আপনার 'প্রোটো' অবজেক্টে সেট করা DissectorTable এর সাথে মেলে।
    • আপনি 'ডিকোড এজ' ফাংশনের মাধ্যমে ডিসেক্টরের ব্যবহার বাধ্যতামূলক করে এই প্রয়োজনীয়তার চারপাশে কাজ করতে পারেন। কিন্তু তারপরও, আপনি শুধুমাত্র ডিসেক্টরটিকে জোর করতে পারেন যদি আপনি আপনার 'প্রোটো' অবজেক্টে সেট করা ডিসেক্টরটেবলটি সঠিক ধরণের হয়।

LUA ব্যবহার করে আপনার ডিসেক্টর সেট আপ করা

যেহেতু Wireshark উভয়ই সি প্রোগ্রামিং ভাষাতে লেখা এবং ব্যবহার করে, বেশিরভাগ ডিসেক্টর একইভাবে সি তে লেখা হয়। তবে, আপনি লুয়া ব্যবহার করতে চাইতে পারেন। এই স্ক্রিপ্টিং ভাষাটি C-এর চেয়ে সহজ এবং এইভাবে নতুনদের কোডিং করতে বা যারা আরও হালকা ভাষা ব্যবহার করে একটি ডিসেক্টর তৈরি করতে চান তাদের জন্য আরও অ্যাক্সেসযোগ্য।

যদিও আপনার কোড সহজ হবে, Lua ব্যবহার করার সময় আপনি যে ডিসেক্টর পাবেন তা সাধারণত আপনি C ব্যবহার করে তৈরি করার চেয়ে ধীরগতির হয়। তবুও, আপনি যদি Lua ব্যবহার করে একটি Wireshark ডিসেক্টর তৈরি করতে চান তবে এই ধাপগুলি অনুসরণ করতে হবে।

ইচ্ছার অ্যাপ্লিকেশনটিতে সম্প্রতি দেখা কীভাবে সাফ করবেন

ধাপ 1 - Wireshark এ Lua সেট আপ করুন

আপনি যদি আগে Wireshark এ এটি ব্যবহার না করে থাকেন তবে আপনাকে Lua সেট আপ করতে হবে:

  1. 'সহায়তা' ক্লিক করুন এবং তারপরে 'ওয়্যারশার্ক সম্পর্কে' ক্লিক করুন।
  2. 'ফোল্ডার' এ ক্লিক করুন।
  3. একটি সক্রিয় লুয়া স্ক্রিপ্ট তৈরি করতে নিম্নলিখিতগুলির মধ্যে একটি চয়ন করুন:
    • গ্লোবাল লুয়া প্লাগইনস
    • ব্যক্তিগত লুয়া প্লাগইনস
    • ব্যক্তিগত

একবার সক্রিয় হয়ে গেলে, আপনি যখনই Wireshark শুরু করবেন তখনই আপনার স্ক্রিপ্ট প্রস্তুত হয়ে যাবে। প্রতিবার যখন আপনি সেই স্ক্রিপ্টে পরিবর্তন করবেন, পরিবর্তনটি নিবন্ধন করার জন্য আপনাকে হয় Wireshark পুনরায় চালু করতে হবে অথবা আপনার পরিবর্তনগুলি সক্রিয় করতে আপনার সমস্ত Lua স্ক্রিপ্ট পুনরায় লোড করতে 'Ctrl + Shift + L' টিপুন।

ধাপ 2 - আপনার ডিসেক্টর তৈরির জন্য প্রাথমিক পদক্ষেপ

আপনি যদি ইতিমধ্যে লুয়ার সাথে পরিচিত হন, আপনি আপনার নিজস্ব ডিসেক্টর স্ক্রিপ্ট তৈরি করতে নিম্নলিখিত পদক্ষেপগুলি ব্যবহার করতে পারেন যা Wireshark এ কাজ করবে:

  • আপনার ডিসেক্টরের জন্য প্রোটোকল ঘোষণা করুন, যার জন্য আপনাকে প্রোটোকল ট্রিতে ব্যবহারের জন্য একটি দীর্ঘ নাম এবং একটি ছোট নাম যা ডিসেক্টরের প্রদর্শন ফিল্টার নাম হিসাবে কাজ করে উভয়ই সেট করতে হবে।
    • নিম্নলিখিত তিনটি ক্ষেত্র তৈরি করুন, তাদের উপযুক্ত প্রকারগুলি সহ:
    • প্রশ্ন – প্রশ্নের ধরন দেখায়।
    • উত্তর - উত্তরের ধরন দেখায়।
  • MessageType - আপনার প্যাকেট কোন প্রশ্ন বা উত্তরের অনুরোধ করলে তা প্রদর্শন করে।
  • আপনার ক্ষেত্রগুলি নিবন্ধন করুন যাতে Wireshark তাদের প্রদর্শন করতে জানে। নিবন্ধিত ক্ষেত্রগুলি ছাড়া, আপনি একটি 'লুয়া ত্রুটি' বার্তা পাবেন, সাধারণত আপনাকে বলে যে আপনার ট্রি আইটেম প্রোটোফিল্ড অবৈধ৷
  • একটি ডিসেকশন ফাংশন তৈরি করুন যাতে পূর্বে উল্লিখিত Pinfo (আপনার প্যাকেট সম্পর্কে ডেটা রয়েছে) এবং ট্রি আইটেম (যে গাছটি আপনি একটি সাবট্রিতে যুক্ত করবেন তা তৈরি করা) অন্তর্ভুক্ত করে। আপনাকে অবশ্যই একটি 'বাফার' তৈরি করতে হবে, যা আপনার TCP-এর উপরে বসে।
  • প্রোটোকল এবং পোর্ট উভয়ই নির্দিষ্ট করুন যার জন্য Wireshark অবশ্যই ডিসেক্টর ব্যবহার করবে। উদাহরণস্বরূপ, আপনি প্রোটোকলটিকে 'TCP' এবং পোর্ট নম্বরটি যেটি ব্যবহার করতে চান তাতে সেট করতে পারেন।

ধাপ 3 - Wireshark এ আপনার ডিসেক্টর যোগ করুন

এই মুহুর্তে, আপনার ডিসেক্টর বিদ্যুৎবিহীন আলোর বাল্বের মতো। এটি বিদ্যমান, তবে এটি আপনার কোন কাজে আসবে না যতক্ষণ না আপনি এটির মাধ্যমে কিছু শক্তি চালাতে পারেন। অন্য কথায়, আপনার ডিসেক্টর এখনও ওয়্যারশার্কে যোগ করা হয়নি, তাই আপনাকে এই পদক্ষেপগুলি ব্যবহার করে এটি চালানোর জন্য ম্যানুয়ালি যোগ করতে হবে:

  1. 'হেল্প' এ ক্লিক করুন এবং 'ওয়্যারশার্ক সম্পর্কে' মেনুতে যান।
  2. আপনার Lua ফাইলের পাথের তালিকা খুঁজতে 'ফোল্ডার' ট্যাবটি নির্বাচন করুন।
  3. 'ব্যক্তিগত লুয়া প্লাগইনস' বেছে নিন। প্রয়োজনে একটি ডিরেক্টরি তৈরি করুন।
  4. 'ব্যক্তিগত লুয়া প্লাগইনস' ডিরেক্টরিতে আপনার তৈরি করা লুয়া ফাইলটি কপি এবং পেস্ট করুন। ডিসেক্টর চালু করতে Wireshark পুনরায় লোড করুন।

আপনার ক্যাপচার করা কিছু প্যাকেট খুলে আপনার নতুন ডিসেক্টরে একটি পরীক্ষা চালানো একটি ভাল ধারণা। Wireshark একটি বার্তা সরবরাহ করবে যা বার্তার ধরন (প্রশ্ন বা উত্তর) এবং আপনার চেকের ফলাফল সম্পর্কে তথ্য সহ আপনার ডিসেক্টরের জন্য আপনার বেছে নেওয়া দীর্ঘ নামটি দেখায়।

কিছু নমুনা কোড

আপনি যদি আগে ডিসেক্টর তৈরি না করে থাকেন (বা আপনি লুয়াতে নতুন), ওয়্যারশার্ক আপনার চেষ্টা করার জন্য একটি সহজ উদাহরণ ডিসেক্টর অফার করে:

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)

পোস্ট ডিসেক্টর এবং চেইনড ডিসেক্টর

আপনি লুয়াতে সেগুলি তৈরি করতে পারদর্শী হয়ে গেলে আপনি আপনার ডিসেক্টর ব্যবহারের সাথে আরও একটু গভীরভাবে যেতে চাইতে পারেন। ওয়্যারশার্ক দুটি অতিরিক্ত ধরণের ডিসেক্টর অফার করে - পোস্টডিসেক্টর এবং চেইনড ডিসেক্টর - যা আরও কার্যকারিতা অফার করে।

একটি পোস্টডিসেক্টর অনেকটা এমন সব ডিসেক্টরের চূড়ান্ত চেকের মতো যা আপনি একটি প্যাকেটের জন্য চালিয়েছেন। Wireshark আপনি এটি ব্যবহার করতে চান এমন প্রতিটি ডিসেক্টরকে কল করার পরে আপনি এটিকে বিজ্ঞপ্তি পাওয়ার জন্য নিবন্ধন করুন এবং আপনি 'প্রোটোকল' এবং 'তথ্য' কলামগুলি ফিল্টার করতে এটি ব্যবহার করতে পারেন। এই বৈশিষ্ট্যটি বিশেষভাবে উপযোগী যদি আপনি একটি সেশনে একাধিক প্যাকেট ফিল্টার করতে চান যেখানে আপনার ডেটা সেটগুলির মধ্যে দীর্ঘ ব্যবধান রয়েছে এবং প্রতিটিকে পৃথকভাবে স্মরণ করতে পারবেন না।

চেইনিং ডিসেক্টরগুলি আপনাকে একটি একক ডিসেক্টরের ডেটাতে অ্যাক্সেস দিয়ে একই ধরণের কাজ করে (অন্তত পূর্বে ব্যবহৃত ডিসেক্টরগুলির মাধ্যমে ফিল্টার করার ক্ষেত্রে)। এখানে মূল সুবিধা হল যে চেইনড ডিসেক্টরটিকে আবার প্রতিটি প্যাকেটের মধ্য দিয়ে চলতে হবে না, আপনাকে মূল ডিসেক্টরকে আবার চালানোর জন্য অপেক্ষা করতে বাধ্য না করেই ফলাফল দেয়।

লুয়া মধ্যে ব্যবচ্ছেদ

প্রদত্ত যে Wireshark ইতিমধ্যে C (এর প্রাকৃতিক ভাষা) তে ডিসেক্টর তৈরি করার ক্ষমতা অফার করে, আপনি লুয়াতেও সেগুলি তৈরি করার প্রয়োজন দেখতে পাবেন না। তবুও, যারা C এর সাথে স্বাচ্ছন্দ্য বোধ করেন না, সেইসাথে যারা ইতিমধ্যে Lua আয়ত্ত করেছেন, তারা দেখতে পারেন যে Lua-এর লাইটওয়েট স্ক্রিপ্টিং তাদের ডিসেক্টর তৈরি করা সহজ করে তোলে। ঠিক আছে, আপনি যখন সি-ভিত্তিক ডিসেক্টরের তুলনায় প্রক্রিয়াটি চালান তখন আপনাকে একটি দীর্ঘ লোডিং সময় বাণিজ্য করতে হবে, তবে এটি নির্বিশেষে বিকল্প থাকা সহায়ক।

সঙ্গে যে বলেন, আমরা আপনার কাছ থেকে শুনতে চাই. আপনি কত ঘন ঘন Wireshark মধ্যে dissectors ব্যবহার করবেন? আপনি কি সেগুলি আগে সি-তে তৈরি করার চেষ্টা করেছেন এবং লুয়াতে ডিসেক্টর তৈরি করার সুবিধা কী বলে আপনি মনে করেন? নিচের মন্তব্য অংশে আমাদেরকে জানান।

কিভাবে ডিসঅর্ডার ডেস্কটপ বিজ্ঞপ্তি বন্ধ

আকর্ষণীয় নিবন্ধ

সম্পাদক এর চয়েস

আপনি কি Lyft দিয়ে নগদ অর্থ প্রদান করতে পারেন
আপনি কি Lyft দিয়ে নগদ অর্থ প্রদান করতে পারেন
আপনি যদি ভাবছেন কীভাবে আপনার লিফট যাত্রার জন্য নগদ অর্থ প্রদান করবেন - আপনার ভাগ্যের বাইরে। এই বিকল্পটি এমনকি উপলব্ধ নয়। আজকের আধুনিক বিশ্বে, পুরানো ট্যাক্সি-স্টাইল ড্রাইভিং পরিষেবাগুলি নতুন পরিবহন সংস্থাগুলির দ্বারা প্রতিস্থাপিত হচ্ছে,
উইন্ডোজ 10-এ বিল্ট-ইন প্রশাসকের জন্য ইউএসি প্রম্পট সক্ষম করুন
উইন্ডোজ 10-এ বিল্ট-ইন প্রশাসকের জন্য ইউএসি প্রম্পট সক্ষম করুন
উইন্ডোজ 10-এ বিল্ট-ইন অ্যাডমিনিস্ট্রেটর অ্যাকাউন্টের জন্য ইউএসি প্রম্পট উপস্থিত হবে না অতিরিক্ত নিরাপত্তার জন্য, আপনি এই অ্যাকাউন্টের জন্য ইউএসি ডায়ালগ সক্ষম করতে পারেন।
আপনি মাইনক্রাফ্টে কত ঘন্টা খেলেছেন তা কীভাবে দেখুন
আপনি মাইনক্রাফ্টে কত ঘন্টা খেলেছেন তা কীভাবে দেখুন
আপনি যদি মাইনক্রাফট প্রেমিকা হন তবে আপনি বছরের পর বছর ধরে খেলায় প্রচুর সময় দিতে পারেন এবং আপনি মাইনক্রাফ্ট খেলে ঠিক কতটা সময় ব্যয় করেছেন তা শিখতে আকর্ষণীয় হতে পারে। আপনি চেষ্টা করছেন কিনা
উইন্ডোজে গ্যারেজব্যান্ড কীভাবে ব্যবহার করবেন
উইন্ডোজে গ্যারেজব্যান্ড কীভাবে ব্যবহার করবেন
গ্যারেজব্যান্ড একটি অ্যাপল অডিও প্রোগ্রাম যা কিছু পরিবারের নাম সংগীত উত্পাদন করতে ব্যবহার করে। এটি সেখানে সবচেয়ে জনপ্রিয় অডিও প্রোগ্রামগুলির মধ্যে একটি তবে এটি কেবল অ্যাপলের জন্য। এর কোনও উইন্ডোজ সংস্করণ নেই
উইন্ডোজ 10 এ কোনও স্ক্রিনটি নকল করার সময় বিজ্ঞপ্তিগুলি লুকান বা দেখান
উইন্ডোজ 10 এ কোনও স্ক্রিনটি নকল করার সময় বিজ্ঞপ্তিগুলি লুকান বা দেখান
এই নিবন্ধে, আমরা যখন দেখি আপনি উইন্ডোজ 10 এ আপনার প্রাথমিক স্ক্রিনটি নকল করছেন তখন আপনি কীভাবে বিজ্ঞপ্তিগুলি লুকিয়ে রাখতে বা প্রদর্শন করতে পারবেন।
ইয়াহু! মেসেঞ্জার: এটা কি ছিল এবং কেন এটা বন্ধ হয়ে গেল?
ইয়াহু! মেসেঞ্জার: এটা কি ছিল এবং কেন এটা বন্ধ হয়ে গেল?
ইয়াহু মেসেঞ্জার ছিল একটি তাত্ক্ষণিক বার্তাপ্রেরণ প্ল্যাটফর্ম। ইয়াহু মেসেঞ্জার কেন বন্ধ হয় এবং এর পরিবর্তে আপনি কী ব্যবহার করতে পারেন তা জানুন।
কিভাবে রাউটারের ইতিহাস চেক করবেন
কিভাবে রাউটারের ইতিহাস চেক করবেন
আপনার রাউটারের ইতিহাস পরীক্ষা করতে চান? ওয়েব ব্রাউজারের মাধ্যমে আপনার রাউটারে লগ ইন করুন এবং একটি লগ বা ইতিহাস সেটিং সন্ধান করুন।