কম্পিউটার

সি-তে সেলফ ডিস্ট্রাকটিং কোড


এখানে আমরা দেখব কিভাবে সি-তে স্ব-ধ্বংসকারী কোড তৈরি করা যায়। স্ব-ধ্বংসকারী কোডটি মূলত কোডটি কার্যকর করে এবং তারপর এক্সিকিউট করার পর এক্সিকিউটেবল ফাইলটি সরিয়ে দেয়।

এই কাজটি খুবই সহজ। এটি অপসারণ করার জন্য আমাদের এক্সিকিউটেবল ফাইলের নাম পেতে হবে। আমরা কমান্ড লাইন আর্গুমেন্ট ব্যবহার করতে পারেন. argv[0] এক্সিকিউটেবল ফাইলের নাম ধরে রাখবে। তারপর remove() ফাংশন ব্যবহার করে আমরা এটি অপসারণ করতে পারি।

প্রোগ্রামে আমরা দেখতে পাচ্ছি যে ফাইলটি সরানোর পরে একটি লাইন প্রিন্ট হচ্ছে। সুতরাং এখন প্রশ্ন আসে যে বর্তমান ফাইলটি উপস্থিত না থাকা অবস্থায় পরবর্তী লাইনটি কীভাবে কার্যকর হচ্ছে?

প্রকৃতপক্ষে সম্পূর্ণ রূপান্তরিত কোডটি কার্যকর করার আগে প্রাথমিক মেমরিতে অনুলিপি করা হয়। এক্সিকিউটিং ফাইলের বিষয়বস্তু কপি করা হয়; এটা নিজেই ব্যবহার করা হয় না. তাই প্রাথমিক মেমরি থেকে, পরবর্তী লাইন প্রিন্ট করা হবে।

উদাহরণ

#include<stdio.h>
int main(int c, char *argv[]) {
   printf("After completing this, the file will be removed\n");
   remove(argv[0]); //remove the argv[0] this is the name of the executable
   printf("Removed\n");
   return 0;
}

আউটপুট

After completing this, the file will be removed
Removed

  1. উইন্ডোজ 10 এ ত্রুটি কোড 0xC1900208 – 0x4000C কীভাবে ঠিক করবেন

  2. কীভাবে ম্যাকওএস-এ 'ত্রুটি কোড - 8076' ঠিক করবেন

  3. ঠিক করুন:ত্রুটি কোড 0x80040200 সহ DllUnregisterServer ব্যর্থ হয়েছে

  4. ফাইলগুলি অনুলিপি করার সময় "ত্রুটি কোড:0x80070052" কীভাবে ঠিক করবেন?