لماذا نستخدم الـ jmp esp في استغلال البفر ؟
الاجابه القصيره؛ لان الشل كود بيكون داخل رجيستر الـ esp فاذا حطينا عنوان الادرس تبع jmp esp بيشتغل الشل كود حقنا الي داخل الريجستر ..
🔞 تحذير للقلوب الضعيفه؛ يحتوي هذا الثريد على تعليمات اسمبلي
(assembly instructions)
الاجابه القصيره؛ لان الشل كود بيكون داخل رجيستر الـ esp فاذا حطينا عنوان الادرس تبع jmp esp بيشتغل الشل كود حقنا الي داخل الريجستر ..
🔞 تحذير للقلوب الضعيفه؛ يحتوي هذا الثريد على تعليمات اسمبلي
(assembly instructions)
طيب ليه ينحفظ الشل كود داخل ريجيستر الـ esp مو اي ريجيستر ثاني؟
هو للامانه ما ينحفظ الشل كود داخل ريجيستر الـ esp ينحفظ في القيمة السابقة للـesp قبل الـcall function عشان بعد ختمة الفنقشن او ما يُسمى
الـfunction epilogue يصير الـesp يأشر الى بداية الشل الكود
كيف؟ كونوا معنا 🔥
هو للامانه ما ينحفظ الشل كود داخل ريجيستر الـ esp ينحفظ في القيمة السابقة للـesp قبل الـcall function عشان بعد ختمة الفنقشن او ما يُسمى
الـfunction epilogue يصير الـesp يأشر الى بداية الشل الكود
كيف؟ كونوا معنا 🔥
مبدئياً كل فنقشن بالاسمبلي له بداية تهيئ الستاك والريجيسترات وله خاتمه تعيد الامور لمجرياتها الى ما قبل
الـ funcation call، وعشان ما ينفر مخك زياده ما راح نتكلم عن البدايه لاننا ما نحتاجها في فهم هذي النقطه ولكن علينا ان نفهم ختمة الفنقشنز
الـ funcation call، وعشان ما ينفر مخك زياده ما راح نتكلم عن البدايه لاننا ما نحتاجها في فهم هذي النقطه ولكن علينا ان نفهم ختمة الفنقشنز
* ملاحظه في غاية الاهميه؛ ما يبدأ تشغيل استغلال ثغرة البفر اوفر فلو الا بعد تنفيذ
الـ ret instruction * ( بنشوف كيف بعد شوي )
* ملاحظه ثانيه؛ الستاك داتا ستركتشر تعمل على نظام اخر شي يدخل هو اول شي يطلع LIFO
Last In First Out
الـ ret instruction * ( بنشوف كيف بعد شوي )
* ملاحظه ثانيه؛ الستاك داتا ستركتشر تعمل على نظام اخر شي يدخل هو اول شي يطلع LIFO
Last In First Out
فف بعد ال function epilogue او ختمة الفنقشن بياشر الـ esp بالضبط بمكان الشل كود والنوبات اللي المفروض تكون باللون الاحمر بالصوره الموجوده بالتغريده فوق ..
وشكراً 🙏
وشكراً 🙏
جاري تحميل الاقتراحات...