سؤال

أنا أكتب برنامجي في VS2010 وهدف البناء هو .NET 4. أعتقد أن DEP علم التوافق يعمل بشكل افتراضي. هل هذا صحيح؟

هو .NET متوافق أيضًا افتراضيًا مع ASLR, ، وهل تم تشغيل ASLR افتراضيًا لعملي ، أم يجب أن أطلبها في وقت التشغيل؟

هل كانت مفيدة؟

المحلول

نعم ، يتم تشغيل علامة NXCompat بواسطة مجموعة Language القياسية. NET منذ .NET 2.0 SP1.

ASLR هو في الأساس تلقائي في برامج .NET بحكم برنامج التحويل البرمجي JIT. حيث ستضع رمز الجهاز المترجم JIT لا يمكن التنبؤ به. على الرغم من أنه من المحتمل أن يكون قابلاً للتكرار على نفس الجهاز بالضبط مع نفس رقم المراجعة بالضبط من CLR ونفس التدفق بالضبط لرمز بدء التشغيل ونفس DLL نفسه الذي يتم حقنه في العملية. لا يمكن استهدافها بسهولة عن طريق البرامج الضارة على الرغم من. تدعم مجموعات NGEN-ED .NET ASLR منذ إطلاق .NET 3.5 SP1.

أقوى بكثير هو ASLR للبيانات ، والقياس الأكثر أهمية ضد الهجمات. مهم لأن الغالبية العظمى من الهجمات تبدأ بالبيانات الخبيثة. في كل مرة تقوم فيها ببدء برنامجك ، يتغير موقع كومة الخيط ، وكومة GC وتغيير البيانات الثابتة. يمكن أن تكون مؤلمًا تمامًا عنك تحاول تصحيح AVE -BTW.

ASLR يحمي من العيوب الأمنية غير القابلة للاتصال المعروفة. يجب أن يكون عيب الأمن أولاً ، غير شائع في الكود يمكن التحقق منه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top