সরাসরি মূল বিষয়ে যান

Execute Disable (NX)

আর্কিটেকচার রেফারেন্সFeex

Execute Disable, যা x86 পরিভাষায় NX বা XD নামেও পরিচিত, পেজ টেবিলকে মেমরিকে নন-এক্সিকিউটেবল হিসেবে চিহ্নিত করার অনুমতি দেয়। এটি একটি হার্ডওয়্যার বিল্ডিং ব্লক যা অপারেটিং সিস্টেমের এক্সিকিউশন-সুরক্ষা নীতি দ্বারা ব্যবহৃত হয়।

আপনার যা জানা প্রয়োজন

Execute Disable, যা x86 পরিভাষায় NX বা XD নামেও পরিচিত, পেজ টেবিলকে মেমরিকে নন-এক্সিকিউটেবল হিসেবে চিহ্নিত করার অনুমতি দেয়। এটি একটি হার্ডওয়্যার বিল্ডিং ব্লক যা অপারেটিং সিস্টেমের এক্সিকিউশন-সুরক্ষা নীতি দ্বারা ব্যবহৃত হয়।

এটি যেভাবে কাজ করে

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

যেখানে এটি কার্যকর

একটি OS এক্সিকিউশন অনুমতি ছাড়াই একটি ডেটা বাফার ম্যাপ করতে পারে, যাতে সেই বাফারে মেশিন-কোড বাইট লিখলেও তা এক্সিকিউটেবল কোড পেজে পরিণত না হয়। JIT রানটাইমগুলি জেনারেট করা কোডের জন্য নথিভুক্ত মেমরি-ম্যানেজমেন্ট API এবং অনুমতি নীতি ব্যবহার করে।

সাপোর্ট এবং সক্ষমতা কীভাবে পরীক্ষা করবেন

CPUID.80000001H:EDX বিট 20 সংশ্লিষ্ট ভেন্ডর সংজ্ঞার অধীনে x86 এক্সিকিউট-ডিজেবল সক্ষমতা তালিকাভুক্ত করে। প্রকৃত প্রয়োগ পেজিং মোড এবং OS সক্ষমকরণের ওপরও নির্ভর করে। CPU মডেল থেকে অনুমান না করে OS-এর নথিভুক্ত সুরক্ষা স্থিতি পরীক্ষা করুন।

সক্ষমতা, সক্রিয়করণ এবং প্রয়োগ আলাদাভাবে পরীক্ষা করা আবশ্যক। একটি প্রসেসর একটি সুরক্ষাকে সমর্থন করতে পারে যখন OS, অ্যাপ্লিকেশন বা ভার্চুয়াল-মেশিন নীতি এটি সক্রিয় করে না। একটি ডাটাবেস সমর্থন ক্ষেত্র একটি চলমান সিস্টেমের প্রমাণীকরণ নয়।

এই বৈশিষ্ট্যটি যা নিশ্চিত করে না

NX কোনো এক্সিকিউটেবল ফাইল নিরাপদ কিনা তা নিশ্চিত করে না, প্রতিটি কোড-পুনর্ব্যবহার আক্রমণ প্রতিহত করে না বা Windows-এর যোগ্যতা প্রমাণ করে না। পৃথক অনুমতি অনুসারে ডেটা পাঠযোগ্য বা লিখনযোগ্য থাকে। একটি ফিচার ফ্ল্যাগের অর্থ এই নয় যে প্রতিটি মেমরি ম্যাপিং একটি কঠোর লিখন/এক্সিকিউট নীতি অনুসরণ করে।

বাস্তবে সামঞ্জস্য এবং কর্মক্ষমতা

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

একটি ব্যবহারিক যাচাইকরণ চেকলিস্ট

  1. সংশ্লিষ্ট সুনির্দিষ্ট প্রসেসর বা প্ল্যাটফর্ম মডেল এবং অ্যাপ্লিকেশন, OS ও রানটাইম সংস্করণগুলি রেকর্ড করুন। প্রকৃত ত্রুটি বা প্রয়োজনীয়তার সঠিক শব্দচয়ন সংরক্ষণ করুন।
  2. সেই নির্দিষ্ট মডেলের জন্য প্রস্তুতকারকের রেফারেন্স পরীক্ষা করুন, তারপর প্রোগ্রামটি যে পরিবেশে চলে সেখানে কার্যকর সক্ষমতা এবং সক্রিয় অবস্থা পর্যবেক্ষণ করুন।
  3. নির্বাচিত বাইনারি বা ব্যাকএন্ডের প্রতিটি প্রয়োজনীয়তা তুলনা করুন। একই নামের কোনো বৈশিষ্ট্য, উপনাম বা বিস্তৃত প্রযুক্তির লেবেলই যথেষ্ট নয়।
  4. অ্যাপ্লিকেশনটি কাঙ্ক্ষিত বাস্তবায়ন নির্বাচন করেছে কিনা তা নিশ্চিত করুন। প্রয়োজনীয়তা পূরণ না হলে এর নথিভুক্ত ডায়াগনস্টিকস এবং একটি সমর্থিত ফলব্যাক ব্যবহার করুন।
  5. একবারে একটি সমর্থিত পরিবর্তন করুন এবং একই কাজের চাপ পুনরাবৃত্তি করুন। মূল কনফিগারেশন এবং পুনরুদ্ধারের পথ উপলব্ধ রাখুন।

যদি বৈশিষ্ট্যটি তালিকাভুক্ত থাকে কিন্তু সফটওয়্যার এটি ব্যবহার করতে না পারে

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

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

এই ব্যাখ্যার উৎস এবং পরিধি

Intel 64 and IA-32 Architectures Software Developer's Manual

এই রেফারেন্সগুলি আর্কিটেকচারাল আচরণ এবং সফটওয়্যার প্রয়োজনীয়তা স্থাপন করে। এগুলি একটি লিঙ্কযুক্ত হার্ডওয়্যার মডেল পৃষ্ঠার প্রতিটি বৈশিষ্ট্যের মান স্বাধীনভাবে যাচাই করে না। মডেল সাপোর্টের জন্য, সেই পৃষ্ঠার প্রস্তুতকারকের প্রমাণ ব্যবহার করুন এবং কার্যকর সিস্টেম কনফিগারেশন পরীক্ষা করুন। এই নিবন্ধটি কোনো বেঞ্চমার্ক, সার্টিফিকেশন বা স্বাধীন পর্যালোচনার তারিখ সরবরাহ করে না।

উৎস এবং যাচাইকরণ

সম্পাদকীয় মালিকানা: Feex। কোনো স্বাধীন পর্যালোচনার তারিখ রেকর্ড করা নেই। আমরা কীভাবে গবেষণা করি.

  • Intel 64 and IA-32 Architectures Software Developer's Manual · ভলিউম 1 এবং 2 নামযুক্ত নির্দেশিকা পরিবার এবং CPUID বর্ণনা করে; ভলিউম 3 স্টেট, পেজিং, VMX এবং সুরক্ষা নিয়ন্ত্রণ বর্ণনা করে। আর্কিটেকচার ডকুমেন্টেশন কোনো নির্দিষ্ট মডেলের জন্য সাপোর্ট নিশ্চিত করে না।

এই নিবন্ধটি কি দরকারী ছিল?

একটি হ্যাঁ বা না-ই যথেষ্ট। আপনি চাইলে একটি কারণ বেছে নিন, বা একটি ছোট মন্তব্য যোগ করুন।

এই নিবন্ধটি কি দরকারী ছিল?