قبل لا نبدا فيه اشياء مهمة لازم نفهمها ونعرفها ف اذا تعرفها وملم فيها بشكل كويس سوي سكيب
- Numbers
- CPU
- instructions
- Registers
- Machine Code
- Assembly language
- Memory
- Stack
الحين بنشرح ذي الاشياء بشكل مبسط جدا ومراح نتعمق فيها مره بعطيكم فقط الاشياء الي بنحتاجها
- Numbers
- CPU
- instructions
- Registers
- Machine Code
- Assembly language
- Memory
- Stack
الحين بنشرح ذي الاشياء بشكل مبسط جدا ومراح نتعمق فيها مره بعطيكم فقط الاشياء الي بنحتاجها
طيب ايش هو ال registers يبو كلاينت ؟
الريجسترز ياطويل العمر هي عبارة عن وحدات تخزينه صغيررررة جدا وسريعة داخل المعالج بتقولي طيب وش فايدتها بقولك مع كمية الاشياء الي المعالج يسويها والعمليات بيحتاج مساحة قريبة منه وسريعة بحيث يقدر ينفذ عمليات اسرع في وقت اقل وهكذا
الريجسترز ياطويل العمر هي عبارة عن وحدات تخزينه صغيررررة جدا وسريعة داخل المعالج بتقولي طيب وش فايدتها بقولك مع كمية الاشياء الي المعالج يسويها والعمليات بيحتاج مساحة قريبة منه وسريعة بحيث يقدر ينفذ عمليات اسرع في وقت اقل وهكذا
ما ابغا اتعمق اكثر في موضوع الرجيسترز حاليا عشان لا تتشتت لكن بتعرف وش فايدة ال registers قدام لما نكمل ، طيب الحين نتكلم عن الرام او الميموري
" تنوية " الريجسترز تختلف من CPU للثاني على حسب ال architecture سواء كان x64(64-bit) او x86(32-bit)
" تنوية " الريجسترز تختلف من CPU للثاني على حسب ال architecture سواء كان x64(64-bit) او x86(32-bit)
وطبعا الرام يكون لها عنوانين ال low address memory وال high address memory زي ما هو موضح في الصورة الي فوق
- High Address Memory
(0xFFFFFFFF)
- Low Address Memory (0x00000000)
- High Address Memory
(0xFFFFFFFF)
- Low Address Memory (0x00000000)
طيب اهم شي بنتعامل معه حاليا هو ال stack طيب ايش هو ال stack هو عبارة عن مكان يتم فيه تخزين البيانات داخل الرام زي ماشفنا في الصورة وال stack يكبر بالعكس يعني اذا قلنا اذا قاعدة ال stack 100 مثلا ف سقف ال stack بيكون 50 ف هو يكبر من تحت لفوق يعني عشان يكبر مثلا بنقول بنطرح
-4 byte واذا نبغاه يصغر بنزود 4 byte وتقدر تقول كل مازاد كل مانقص والعكس والخ
ادري انك مليت وممكن ماتكون فاهم شي للحين بس معليش طبيعي في الاول ماتفهم اي شي او انا شرحي خلى الموضوع اسوء واسوء 😂 لكن المهم الحين بنتكلم عن شي مهم بعد والي هو موضوع ال numbers
ادري انك مليت وممكن ماتكون فاهم شي للحين بس معليش طبيعي في الاول ماتفهم اي شي او انا شرحي خلى الموضوع اسوء واسوء 😂 لكن المهم الحين بنتكلم عن شي مهم بعد والي هو موضوع ال numbers
وش تقصد بال numbers يبو كلاينت !
اقصد ياطويل العمر الي هم ال
- Binary
(معروفة يا 0 يا 1 وال base حقها 2 )
- Octal
( 0,1,2,3,4,5,6,7 وال base حقها 8 لان ال 0 يعتبر digit ونبدا من 0 )
- Decimal
(والي هي الارقام العادية من 0 الى 9 وال base حقها 9 )
اقصد ياطويل العمر الي هم ال
- Binary
(معروفة يا 0 يا 1 وال base حقها 2 )
- Octal
( 0,1,2,3,4,5,6,7 وال base حقها 8 لان ال 0 يعتبر digit ونبدا من 0 )
- Decimal
(والي هي الارقام العادية من 0 الى 9 وال base حقها 9 )
- Hexadecimal
( 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F وال base حقها 16 ) ودايم صيغة ال hex تبدا ب 0x ف اذا شفت شي يبدا ب0x تعرف ان هذا hex
ادري انك طفشت والله وحاب اهنيك اذا وصلت لهنا صراحة وقاعد تكمل قرآه بس ماعليك اصمل معي قربنا 😂💔
واخر شي بتكلم عنه قبل لا ندخل على جزئيةالBOF
( 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F وال base حقها 16 ) ودايم صيغة ال hex تبدا ب 0x ف اذا شفت شي يبدا ب0x تعرف ان هذا hex
ادري انك طفشت والله وحاب اهنيك اذا وصلت لهنا صراحة وقاعد تكمل قرآه بس ماعليك اصمل معي قربنا 😂💔
واخر شي بتكلم عنه قبل لا ندخل على جزئيةالBOF
وهي ال Assembly بكل اختصار هي لغة low level تحول ال machine code من شي الانسان مايقدر يقراه ولا يفهمه للغة الاسمبلي الي الانسان يقدر يفهم منها ال instructions الي صارت ومن ذي الامور
طيببببب نجي هنا ونبدا عاد طولنا والله بس معليش عشان الكل يستفيد ف الاشياء الي بنركز عليها الحين هي ال
- CPU ( Registers )
- RAM ( Stack )
طيببب ايش هي ثغرة البفر اوفر فلو عشان ابسطها عليك ياصديقي الجميل بقولك الحين لو عندي الحين مساحة داخل الميموري حجمها مثلا 10 byte
- CPU ( Registers )
- RAM ( Stack )
طيببب ايش هي ثغرة البفر اوفر فلو عشان ابسطها عليك ياصديقي الجميل بقولك الحين لو عندي الحين مساحة داخل الميموري حجمها مثلا 10 byte
ف المفروض انك تعطي البفر ال 10 byte لان فقط هذي هي المساحة الي هو بيقدر يتحملها غير كذا مراح يقدر لاسف يتحمل طيييب لو قلنا اني عطيته 20 byte مثلا ايش راح يصير ؟ لو البرنامج غير مصاب بياخذ ال 10byte الي هو يقدر يتحملهم فقط ويرمي الباقي بيقولك انا مقدر اتحمل والله
ف تقدر تقول بكل اختصار ان ثغرة ال Buffer overflow هي عبارة عن خطأً برمجي يتيح للمهاجم انه يدخل مدخلات اكثر من الي مسموح داخل الميموري وفي نفس الوقت البرنامج المصاب مايسوي تحقق لعدد المدخلات الي هو محددها او حاطت لها حد
طيب ايش الضرر منها ؟
- System crashes
- Access control loss
- Further security issues
واكثر لغتين برمجة متسببين لل BOF هم ال C/C++
- System crashes
- Access control loss
- Further security issues
واكثر لغتين برمجة متسببين لل BOF هم ال C/C++
طيب عندنا ٣ انواع مهمة من ال registers بنركز عليهم والي هم
- ESP ( Extended Stack Pointe )
وهذا الي يأشر او يسوي pointing على قمة ال stack
- EBP ( Extended Base Pointer )
وهذا الي يأشر على قاع ال stack
وبم ان عندنا قاع وقمة ف تكون شي اسمه stack frame
وعندنا ال
- ESP ( Extended Stack Pointe )
وهذا الي يأشر او يسوي pointing على قمة ال stack
- EBP ( Extended Base Pointer )
وهذا الي يأشر على قاع ال stack
وبم ان عندنا قاع وقمة ف تكون شي اسمه stack frame
وعندنا ال
How to Prevent Buffer Overflows :
- Address space randomization ( ASLR )
- Data execution prevention
- Structured exception handler overwrite protection (SEHOP)
- Address space randomization ( ASLR )
- Data execution prevention
- Structured exception handler overwrite protection (SEHOP)
وطبعا اي شي يتخزن في الميموري ياخذ address او عنوان عشان ال CPU يعرف مكان ال instruction والخ
وبس والله ادري الشرح شوي عشوائي وفيه اشياء ماذكرتها لان مستحيل اتكلم من الصفر لل exploitation في تويتر كتابة لكن حاولت على قد ما اقدر ابسط فكرة ال BOF لان فيه ناس ممكن يكون عندها صعوبة في فهمها غير ان شرحي سيء ادري انا ماعرف اشرح صراحة لكن حاولت واتمنى انكم استفدتم لو شي بسيط ❤️
More useful resources :
- youtu.be
- youtu.be
- youtu.be
- youtube.com
- youtu.be
- youtube.com
- youtu.be
- imperva.com
-cloudflare.com
- youtu.be
- youtu.be
- youtu.be
- youtube.com
- youtu.be
- youtube.com
- youtu.be
- imperva.com
-cloudflare.com
youtube.com/playlist?list=…
Buffer Overflows Made Easy
In this course, we cover 32-bit Windows buffer overflows and make them look easy!
cloudflare.com/learning/secur…
What is buffer overflow? | Cloudflare
A buffer overflow occurs when a program writing data to a buffer overloads that buffer's capacity.
youtube.com/playlist?list=…
شرح Buffer Overflow | OSCP | OSCE | Ethical Hacking
Windows Exploit Development - Buffer Overflow Series by Eng Muhammad https://twitter.com/0xMuhammad...
imperva.com/learn/applicat…
What is a Buffer Overflow | Attack Types and Prevention Methods | Imperva
Attackers exploit buffer overflow issues to change execution paths, triggering responses that can da...
جاري تحميل الاقتراحات...