মেশিন কোড জেআইটি এবং এক্সিকিউশন অক্ষম বিট


10

রানটাইম-জেনারেট হওয়া মেশিন-কোড (যেমন একটি জেআইটির আউটপুট), আসলে সিপিইউ দ্বারা সম্পাদন করা হয় যদি সিপিইউ / ওএসের এক্সিকিউশন ডিজেবল বিট থাকে?

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

কিন্তু জেআইটি ইঞ্জিনগুলি, যেমন এলএলভিএম, যেমন গতিশীলভাবে মেশিন-কোড উত্পন্ন করে, কীভাবে এটি পাওয়া যায়?


এলএলভিএম-এ এটি কীভাবে করা হয় তা দেখতে মেমোরি :: বরাদ্দম্যাপডমেমরির বাস্তবায়নগুলি একবার দেখুন। - * নিক্সের জন্য - উইন্ডোজের জন্য
zr01

উত্তর:


6

লিনাক্স এবং অনেক Posix সিস্টেমে, একটি আবেদন প্রক্রিয়ার কিছু পরিসীমা সুরক্ষা পরিবর্তন করতে পারেন অ্যাড্রেস স্পেস মধ্যে ভার্চুয়াল মেমরি ব্যবহার mmap (2) এবং mprotect (2) syscalls।

সুতরাং জেআইটি ইঞ্জিন এগুলি ব্যবহার করতে পারে (সম্ভবত মেশিন কোড নিঃসরণের আগে , তবে সম্ভবত এটির পরে )।

বিটিডাব্লু, কিছু আর্কিটেকচারে, আপনাকে নতুন উপলব্ধ মেশিন কোড বিভাগগুলি, যেমন __builtin_clear_cacheজিসিসি সম্পর্কে সিপিইউ ক্যাশে জানাতে হবে ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.