۴ سال پیش
اصطلاح ASLR در بالا برای حفاظت در قبال آسیبپذیری Buffer Overflow به کار گیری میشد . دراین جور هجوم ها , مهاجمان به یک سیستم تا حدی که گنجایش داراست دادههای تحمیلی ارسال می کند بعد از آن یک Payload مُخرب میفرستند که بر روی دادههایی که برنامه قصد دسترسی به آنان را داراست , ویرایش میگردد . مثلا , روش مرسوم JailbreakMe یکیاز روشهای Jailbreaking در iOS 4 از آسیبپذیری بافر اورفلو استعمال می کرد که در غایت اپل را وادار به اضافه کردن ASLR به iOS 4 . 3 کرد .
در هجوم ها Buffer Overflow تعرضآمیز بایستی محل ذخیرهسازی هر بخش از برنامه در یاد را بداند که پی بردن این مسئله معمولاً نیازمند یک روند پیچیدهٔ امتحان و نادرست است که بعداز معلوم شدن , تعرضآمیز بایستی یک Payload ساخت کرده و محل مطلوب برای اینجکت آن را بیابد . به طور کلی , سوءاستفاده از یک برنامه میتواند طاقت فرسا و یا این که نا ممکن باشد در صورتیکه تعرضآمیز محل ذخیرهسازی کد انگیزه را نداند .
ASLR همراه با مدیر حافظهٔ مجازی برای تصادفی گزینش کردن محلهای ذخیرهسازی قسمتهای متفاوت برنامه در خاطر کار مینماید . هر زمان که برنامه در حالا اجرا است , اجزاء آن ( دربرگیرنده استک , هیپ و بعضا دیگر لایبرریها ) به یک نشانی متعدد در حافظهٔ مجازی غیر وابسته دارای ارتباط میشوند و دراین حالت است که مهاجمان دیگر حاذق به دانستن محل ذخیرهسازی کد انگیزه از روش امتحان و نادرست نیستند چون نشانی آن هر توشه مختلف است . عموماً برنامهها بایستی با پشتیبانی ASLR کامپایل شوند و این مورد در هم اکنون تبدیل شدن به یک پیشفرض برای برنامهها است ( حتیدر نسخهٔ 5 و فراتر اندروید هم به یک بایستی تبدیل شدهاست ) .