কম্পিউটার টিউটোরিয়াল

আপনার কম্পিউটারের র‍্যাম অ্যাক্সেস ও পড়ার পদ্ধতি: একটি ব্যবহারিক গাইড

এই নিবন্ধটি আপনার কম্পিউটারের র‍্যামের বিষয়বস্তু পড়ার একটি বিস্তারিত গাইড।

র‍্যাম (RAM) কী এবং এটি কেন গুরুত্বপূর্ণ?

র‍্যান্ডম এক্সেস মেমরি (RAM) যেকোনো কম্পিউটার সিস্টেমের একটি অত্যন্ত গুরুত্বপূর্ণ উপাদান, যা সিস্টেমের কার্যক্রম সম্পন্ন করার জন্য অস্থায়ীভাবে ডেটা সংরক্ষণের দায়িত্বে থাকে। কিন্তু র‍্যামের বিষয়বস্তু খুব অস্থির, এবং সিস্টেম বন্ধ হলে সেগুলো সাধারণত হারিয়ে যায়।

র‍্যাম ডাম্প (RAM Dump) কী?

র‍্যামের বিষয়বস্তু সংরক্ষণ করার একটি উপায় হলো র‍্যাম ডাম্প করা, যা র‍্যামের বিষয়বস্তু কপি করে একটি স্টোরেজ ডিভাইসে (যেমন হার্ড ড্রাইভ) সংরক্ষণ করার প্রক্রিয়া। আপনি র‍্যাম ডাম্প বিশ্লেষণ করতে পারেন, এবং এর মধ্যে থাকা ডেটা ডাম্প নেওয়ার সময় সিস্টেমের অবস্থা সম্পর্কে মূল্যবান অন্তর্দৃষ্টি প্রদান করতে পারে।

র‍্যাম ডেটা কেন পড়বেন?

ডিস্ক থেকে ডেটা পড়া আপনার কাছে পরিচিত হতে পারে। কিন্তু কি আমরা র‍্যাম থেকে সরাসরি ডেটা পড়তে পারি, যেখানে সবচেয়ে অত্যাধিক গুরুত্বপূর্ণ তথ্য সংরক্ষিত থাকে?

ডেভেলপাররা হিসেবে আমরা স্পেস কমপ্লেক্সিটি تحقیق করতে পারি এবং র‍্যামের গভীরে उतরবো বুঝতে পারি কী ঘটছে।

র‍্যাম অ্যাক্সেসের ব্যবহারের ক্ষেত্র

  • ট্রাবলশুটিং ও ডায়াগনোসিস: কম্পিউটার সিস্টেমের সমস্যা নির্ণয় করতে র‍্যামের বিষয়বস্তু পরীক্ষা করা সহায়ক। যদি কম্পিউটার হঠাৎ ক্র্যাশ করে, তবে র‍্যাম পরীক্ষা করলে ক্র্যাশের কারণ শনাক্ত করা যায়।
  • ফরেনসিক বিশ্লেষণ: কোনো কম্পিউটার সিস্টেম তদন্ত করার সময় র‍্যাম বিশ্লেষণ থেকে সিস্টেমে কী কার্যক্রম চলেছিল তা জানা যায়। নিরাপত্তা পেশাদাররা প্রক্রিয়া চলে ছিল কিনা বা সম্প্রতি কোন ফাইল অ্যাক্সেস করা হয়েছে তা নির্ধারণ করতে পারেন।
  • সফটওয়্যার ডেভেলপমেন্ট ও গবেষণা: ডেভেলপাররা তাদের সফটওয়্যারের পারফরম্যান্স বুঝতে এবং বোতলनेक চিহ্নিত করতে পারেন। গবেষকরা ম্যালওয়ারের আচরণ অধ্যয়ন করতে বা নতুন নিরাপত্তা টুল विकাশ করতে পারেন।

শব্দসংখ্যা ও মূল ধারণা

আরো बढ़তে হলে কিছু টার্মিনোলজি বুঝতে হবে। একটি ফিজিক্যাল হার্ডওয়্যার ডিভাইস হলো র‍্যাম (র‍্যান্ডম এক্সেস মেমরি): ফিজিক্যাল মেমরি, সিপিইউ, হার্ড ডিস্ক, এবং অন্যান্য ফিজিক্যাল কম্পোনেন্ট। এর উপরে আছে অপারেটিং সিস্টেম। অপারেটিং সিস্টেম সর্বদা "কার্নেল" নামক হার্ডওয়্যারের সাথে কথা বলে, যা এই সফটওয়্যারের সবচেয়ে গুরুত্বপূর্ণ দিকের একটি।

কার্নেল (Kernel) কী?

কার্নেল হলো একটি অপারেটিং সিস্টেমের মৌলিক অংশ যা প্রোগ্রামের সাহায্যে ব্যবহারকারীর নির্দেশনা গ্রহণ করে। সিপিইউ সব কিছু হিসাব করে, কিন্তু আমরা যা করি, সিপিইউর সেবা যেভাবে বэр করি, ডেটা, নির্দেশনা, কোড, এবং প্রোগ্রাম সব র‍্যামের মাধ্যমে যেতে হয়। এর মানে যেকোনো মুহূর্তে ডেটার সাথে যা করি, ফলাফল মেমরির শীর্ষে পাওয়া যায়। আপনি যদি প্রোগ্রামার হন এবং ডেটা স্ট্রাকচার বানান, তবে সমস্ত ডেটা র‍্যামের শীর্ষে থাকবে।

আমরা সরাসরি র‍্যামে जाकर দেখতে পারি ডেটা স্ট্রাকচার কীভাবে তৈরি হয়েছে, কীভাবে সাজানো হয়েছে, এবং স্পেস কমপ্লেক্সিটি কীভাবে কাজ করে। উদাহরণস্বরূপ, কোনো ওয়েব ব্রাউজার (যেমন ক্রোম) নিয়ে আলোচনা করলে, অ্যাপ্লিকেশনে নিরাপত্তা ত্রুটি থাকতে পারে। তখন সবচেয়ে কার্যকর পদ্ধতি হলো র‍্যামে গিয়ে দেখা যাক ডেটা কীভাবে কাজ করছে।

মান लीজिए আপনি ক্রোমে (বা যেকোনো ব্রাউজারে) জিমেইল খোলেন। জিমেইলে আপনি যে তথ্য (ইউজারনেম, পাসওয়ার্ড) লিখেন, সেটি গুগলের সার্ভারে এনক্রিপ্টেড হয়ে যায়। পাসওয়ার্ড ক্র্যাক করা Поч.tencent অসম্ভব। কিন্তু পাসওয়ার্ড লিখতে আপনি কীবোর্ড ব্যবহার করেন। তারপর কিছু প্রোগ্রাম ডেটা এনক্রিপ্ট করে ইন্টারনেটে পাঠায়। অর্থাৎ, প্রাথমিকভাবে আপনার ডেটা র‍্যামে ছিল।

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

উদাহরণ: ভেরিয়েবল ও ডেটা

মান করুন "a" একটি ভেরিয়েবল এবং "9" ডেটা। প্রোগ্রাম রান করলে এই ডেটা র‍্যামে লোড হয়। প্রোগ্রাম শেষ হলে র‍্যাম থেকে ডেটা চলে যায়, যদিও কেউ এখনো এটি প্রমাণ করেননি। কিন্তু এটি সত্য, এবং আমরা একটু তদন্ত করে এটি প্রমাণ করতে পারি।

তবে অ্যাপ্লিকেশন রান শেষ হলে র‍্যামের শীর্ষে লোড করা ডেটা এখনো আছে কিনা তা কীভাবে যাচাই করব? র‍্যামের বিষয়বস্তু शीঘ্রই মুছে যায়। "র‍্যাম ডাম্প" হলো সার র‍্যাম ক্যাপচার করার প্রক্রিয়া। এটি প্রদর্শন করে যে সম্পূর্ণ ডেটাসেট প্রথমবার র‍্যামে কোন আকারে লোড হয়েছিল। এবং আপনি শিখবেন কীভাবে মেমরি থেকে ডেটা ক্যাপচার বা এক্সট্রাক্ট করতে হয়।

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

LiME (Linux Memory Extractor) কী?

লিনাক্স মেমরি এক্সট্র্যাক্টর, যাকে সংক্ষেপে LiME বলা হয়, একটি শক্তিশালী সফটওয়্যার। এটি লিনাক্স থেকে মেমরি বের করতে ব্যবহৃত হয়। এই সফটওয়্যারকে ড্রাইভার বা মডিউলও বলা হয়। কারণ র‍্যাম একটি ডিভাইস, যা বিষয়টিকে আরও জটিল করে তোলে।

ডিভাইস অ্যাক্সেস করতে আমাদের একটি ড্রাইভার দরকার যাতে এর বিষয়বস্তু পড়া যায়। LiME হলো একটি ড্রাইভার উদাহরণ, এবং আপনি যদি লিনাক্স জানেন তবে জানেন যে কোনো ড্রাইভার কাজ করতে করলে কার্নেলের সাহায্যে সেটি লোড করতে হয়। লিনাক্সের প্রেক্ষিতে ড্রাইভারকে মডিউলও বলা হয়। তাই LiME হলো একটি লিনাক্স কার্নেল মডিউল। আমাদের কাছে কার্নেল লোডেবল মডিউল আছে, যা অপারেটিং সিস্টেমে মডিউল ইনস্টল করতে দেয়।

সেটআপ ও ইনস্টলেশন

আমাদের শুধু LiME ড্রাইভার দরকার। মডিউল ডাউনলোড লিংক: https://github.com/gursimarsm/LiME

আপনার লিনাক্স সিস্টেম বুট করুন (আমি রেডহ্যাট এন্টারপ্রাইজ লিনাক্স ব্যবহার করি)। free -h কমান্ড দিয়ে র‍্যাম মেমরি ব্যবহার, উপলব্ধতা ইত্যাদি চেক করুন।

র‍্যাম অ্যাক্সেস করতে আমাদের এমন সফটওয়্যার দরকার যেখানে কার্নেল এক্সট্রা মডিউল লোড করতে পারে। আমাদের কেসে মডিউলটির নাম LiME। তাই আমাদের ইনস্টল করতে হবে "kernel-devel" এবং "kernel-headers"। এই দুটি সফটওয়্যার ইনস্টল করলে আমরা পরবর্তীতে LiME মডিউল ব্যবহার করতে পারব।

সফটওয়্যার ইনস্টল করতে "yum" কনফিগার করা থাকতে হবে। কনটেক্সটের জন্য, yum হলো রেডহ্যাট লিনাক্সে সফটওয়্যার ইনস্টল করার কমান্ড। অ্যাপেন্ডিক্সে কনফিগারেশন দেখানো হয়েছে।

এখন Git ইনস্টল করুন যদি না থাকে: yum install git। আপনার অ্যাকাউন্ট কনফিগার করুন:

# git config --global user.name "Your Name"
# git config --global user.email "you@example.com"

রিপোজিটরি ক্লোন করুন: git clone https://github.com/gursimarsm/LiME। ডাউনলোডের পর "src" ডিরেক্টরিতে যান। সেখানে সি ল্যাঙ্গুয়েজের একাধিক প্রোগ্রাম আছে। সেগুলো কম্পাইল করতে make কমান্ড ব্যবহার করুন। ইনস্টল করুন:

# yum install make
# yum install gcc

/LiME/src/ ডিরেক্টরিতে make রান করুন। এরর আসলে elfutils-libelf-devel ইনস্টল করুন: yum install elfutils-libelf-devel। এরপর আবার make রান করুন। কম্পাইলেশনের পর একটি কার্নেল অবজেক্ট ফাইল তৈরি হবে, যা LiME-র ফাইনাল মডিউল। ls কমান্ড দিয়ে ফাইলটি খুঁজে বের করুন।

মডিউল ব্যবহারের পদ্ধতি

এই মডিউলের মাধ্যমে কার্নেল এখন পুরো র‍্যাম ক্যাপচার বা পড়তে সক্ষম। ডিফল্টভাবে আমরা একসাথে পুরো র‍্যাম পড়তে পারি না, কিন্তু LiME মডিউলের কারণে এখন পারি।

LiME মডিউল সম্পর্কে জানতে modinfo lime কমান্ড ব্যবহার করুন। এটি ফাইল লোকেশন এবং প্যারামিটার দেখাবে। আমরা দুটি গুরুত্বপূর্ণ প্যারামিটার ব্যবহার করব: path এবং format।

  • path: র‍্যাম পড়ার সময় ডেটা কোন ফাইলে সংরক্ষণ হবে তা নির্দেশ করে।
  • format: র‍্যাম ডেটা কোন ফরম্যাটে পড়া হবে তা নির্দেশ করে। র‍্যামে ডেটা বাইনারি ফরম্যাটে থাকে, এবং আমরা র‍ ফরম্যাটেই ক্যাপচার করব।

ডেমোন্সট্রেশন

ক্রোমে জিমেইলের পাসওয়ার্ড টাইপ করুন এই ডেমোর জন্য। এটি শেখাবে কীভাবে র‍্যাম থেকে ডেটা ক্যাপচার করতে হয় এবং পাসওয়ার্ড এনক্রিপ্টেড কিনা।

কমান্ড প্রম্পটে যান এবং মডিউল লোড করুন insmod কমান্ড দিয়ে। মডিউলের পূর্ণ পথ কপি করে insmod কমান্ডের সাথে পেস্ট করুন। মডিউল কার্নেলের সাহায্যে লোড হবে এবং পুরো র‍্যামের ডেটা ক্যাপচার করে একটি ফাইলে (যেমন myram.data) সংরক্ষণ করবে র‍ ফরম্যাটে। এটি কয়েক সেকেন্ড সময় নেয়।

ডেটা পড়ার পদ্ধতি

এখন myram.data` ফাইলে পুরো র‍্যামের ডেটা র‍ ফরম্যাটে (বাইনারি) আছে। মানব 눈으로 সরাসরি পড়া যায় না। cat কমান্ড দিয়ে পড়লে বাইনারি দেখাবে। তাই strings কমান্ড ব্যবহার করুন যা বাইনারি মানব-पাঠযোগ্য টেক্সটে রূপান্তর করে:

cat /myram.data | strings

লিস্ট লম্বা হবে। Ctrl+C দিয়ে বন্ধ করুন। এখন পাসওয়ার্ড (mywebpasswordgmail) খুঁজতে grep ব্যবহার করুন:

cat /myram.data | strings | grep mywebpasswordgmail

এই উদাহরণে দেখা যায়, কীবোর্ডে যা টাইপ করেন সেটি র‍্যামে যায়—পাসওয়ার্ড হোক বা সিকিউর সাইট সার্ফিং, ডেটা র‍্যামে থাকে। প্রোগ্রাম কী কিনো, কীবোর্ড ব্যবহার করলে সব র‍্যামে লোড হয় এবং এক্সট্র্যাক্ট করা যায়। ইটিই হলো মেমরি ডাম্প।

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

উপসংহার

এই নিবন্ধের শেষে আসেছি। আশা করি আপনি আন্দাজ করেছেন এবং কিছু নতুন শিখেছেন। লিংকডইনে সাজেশন ও আলোচনার জন্য খোলা আছি। লিখালে ভালো লাগলে গিটহাবে স্টার দিন এবং লিংকডইনে এন্ডোর্স করুন। পরবর্তী পর্যন্ত নিরাপদ থাকুন এবং শিখতে থাকুন।

ফ্রি কোড ক্যাম্পের ওপেন সোর্স কারিকুলাম ৪০,০০০+ মানুষকে ডেভেলপার হিসেবে চাকরি পেতে সাহায্য করেছে। শুরু করুন।

  1. উইন্ডোজ ১১ পরিচিত ইস্যু ও সমস্যাগুলো

  2. ৩টি এসএসডি অপ্টিমাইজেশন কৌশল যা বেकार বা ক্ষতিকর

  3. Windows 11/10-এ ইউজার প্রোফাইল ডেটা ফোল্ডার অন্য ড্রাইভে সরানোর উপায়

  4. উইন্ডোজ ১০ নেটওয়ার্ককে প্রাইভেট করতে পরিবর্তন করার উপায়