❞ كتاب Stack Buffer Overflow ❝

❞ كتاب Stack Buffer Overflow ❝

هذا أول درس عن اكتشاف الثغرات، قمت بتبسيط الموضوع لأقصى حد ممكن مع شرح الأساسيات اللازمة لاكتشاف و استثمار هذه الثغرة.



مقدمة:

In software, a stack buffer overflow or stack buffer overrun occurs when a program writes to a memory address on the program's call stack outside of the intended data structure, which is usually a fixed-length buffer.[1][2] Stack buffer overflow bugs are caused when a program writes more data to a buffer located on the stack than what is actually allocated for that buffer. This almost always results in corruption of adjacent data on the stack, and in cases where the overflow was triggered by mistake, will often cause the program to crash or operate incorrectly. Stack buffer overflow is a type of the more general programming malfunction known as buffer overflow (or buffer overrun).[1] Overfilling a buffer on the stack is more likely to derail program execution than overfilling a buffer on the heap because the stack contains the return addresses for all active function calls.
}
: K لب المترجمات تقوم بتوليد الكود التالي في بداية كل دا åwٔ
MyProc:
push ebp
mov ebp, esp
...
Passing Parameters Using The Stack | تعمامامامال الملململمكدس M سN ر ا لبارامترترترترات u 2. تمتمتمتمر .1
يمكن K تدعية. و في هذه الحا M المس K اç: لال و ضعها في إطار المكدس التابع  وال من  رامترات ا N ر u تمر Ì تعمال المكدس M يمكن اس
تدعية. M المس K ا شير إلى إطار مكدس ا ² ي هو بدوره c ا EBP ل® تعمال المس M سN بر المكدس 7 الوصول إلى البارامترات الممررة
ال: â م
void MyProc(int a, int b, int c)
{
...
}
int main()
{
...
MyProc(10,20,30);
...
}
كالتالي: MyProc K ا اء ا 7 تد M كون اس u
push 30
push 20
push 10
call MyProc
: K ا اء ا 7 تد M شكل المكدس بعد اس
عنوان الرجوع
(10) 0000000Ah
(20) 00000014h
(30) 0000001Eh
Stack Buffer Overflow ض مخمخمخمخزن الملململمكدس % ف
ASSEMBLY IS POWER Page 4
EBP
ESP | EBP-20
ت G ن البيا u اتجاه تخز
ESP+14 | EBP-4
ESP+10 | EBP-8



تأليف:

Z3r0n3








-
من كتب لغة التجميع أسمبلي كتب لغات البرمجة - مكتبة كتب تقنية المعلومات.

نبذة عن الكتاب:
Stack Buffer Overflow

هذا أول درس عن اكتشاف الثغرات، قمت بتبسيط الموضوع لأقصى حد ممكن مع شرح الأساسيات اللازمة لاكتشاف و استثمار هذه الثغرة.



مقدمة:

In software, a stack buffer overflow or stack buffer overrun occurs when a program writes to a memory address on the program's call stack outside of the intended data structure, which is usually a fixed-length buffer.[1][2] Stack buffer overflow bugs are caused when a program writes more data to a buffer located on the stack than what is actually allocated for that buffer. This almost always results in corruption of adjacent data on the stack, and in cases where the overflow was triggered by mistake, will often cause the program to crash or operate incorrectly. Stack buffer overflow is a type of the more general programming malfunction known as buffer overflow (or buffer overrun).[1] Overfilling a buffer on the stack is more likely to derail program execution than overfilling a buffer on the heap because the stack contains the return addresses for all active function calls.
}
: K لب المترجمات تقوم بتوليد الكود التالي في بداية كل دا åwٔ
MyProc:
push ebp
mov ebp, esp
...
Passing Parameters Using The Stack | تعمامامامال الملململمكدس M سN ر ا لبارامترترترترات u 2. تمتمتمتمر .1
يمكن K تدعية. و في هذه الحا M المس K اç: لال و ضعها في إطار المكدس التابع  وال من  رامترات ا N ر u تمر Ì تعمال المكدس M يمكن اس
تدعية. M المس K ا شير إلى إطار مكدس ا ² ي هو بدوره c ا EBP ل® تعمال المس M سN بر المكدس 7 الوصول إلى البارامترات الممررة
ال: â م
void MyProc(int a, int b, int c)
{
...
}
int main()
{
...
MyProc(10,20,30);
...
}
كالتالي: MyProc K ا اء ا 7 تد M كون اس u
push 30
push 20
push 10
call MyProc
: K ا اء ا 7 تد M شكل المكدس بعد اس
عنوان الرجوع
(10) 0000000Ah
(20) 00000014h
(30) 0000001Eh
Stack Buffer Overflow ض مخمخمخمخزن الملململمكدس % ف
ASSEMBLY IS POWER Page 4
EBP
ESP | EBP-20
ت G ن البيا u اتجاه تخز
ESP+14 | EBP-4
ESP+10 | EBP-8



تأليف:

Z3r0n3







.
المزيد..

تعليقات القرّاء:

هذا أول درس عن اكتشاف الثغرات، قمت بتبسيط الموضوع لأقصى حد ممكن مع شرح الأساسيات اللازمة لاكتشاف و استثمار هذه الثغرة.


      هذا أول درس عن اكتشاف الثغرات، قمت بتبسيط الموضوع لأقصى حد ممكن مع شرح الأساسيات اللازمة لاكتشاف و استثمار هذه الثغرة.

    

مقدمة:
ت إلى مخزن G تنقل بيا K اء دا 7 تد M سN مج G عندما يقوم البر (Stack Buffer Overflow) ض مخزن المكدس % تحدث ثغرة ف
ابة جزء من f بير لك h ل j د اح l يو bc الها. ^ تق M صصة لاس ` ة ا V و المسا K ت المنقو G محجوز في المكدس و لا تقوم بفحص حجم البيا
ن w مج. يمكن ٔ G ذ البر % م في سير تنف t كون u ن w ي يمكن ٔ c لمخزن و إتلاف محتواها ا : اورة n رة ا h اc ت التي يتم نقلها في ا G البيا
Memory Access ) رة h اc خطاء الوصول إلى ا w ج عنها ٔ f ن ي w يمكن ٔ b مج و بذ G ذ البر % ب هذه الثغرة في تغيير مجرى تنف € س ت
واد hw ذ ٔ % مج المصاب و حقن ثم تنف G ر هذه الثغرة لتغيير سلوك البر  مج. يمكن اس G و انهيار البر w اطئة ٔ  نتائج ،(Violation
ثمر الثغرة.  تخدم مصالح مس (Malicious Cocde) يثة ^ خ
Stack and Calling Functions | وال  اء ا 7 تد M 1. الملململمكدس و اس
عند "دفع" قيمة إلى المكدس، يقوم المعالج .POP لتعليمة N سحب ¨ و PUSH تعمال التعليمة M سN ت في المكدس G توضع البيا
.ESP شير إليه ² ي c ثم كتابة القيمة في العنوان الجديد ا ESP ل مؤشر المكدس ® تم دفعها من مس ­ دد البايتات التي س 7 نقاص Nٕ
ت التي تمّ نقلها إلى المكدس. عند "سحب" قيمة من المكدس، ينقل المعالج G شير إلى عنوان البيا ² ESP ل® يصبح المس b و بذ
ن u ة في تخز V تغلال هذه المسا M لكي يتم اس .ESP ل® دد البايتات المسحوبة الى المس 7 القيمة الموجودة في قمة المكدس، ثم يضيف
سحب. ¨ ول قيمة w ة ٔ 7 ٓخر قيمة مدفو w يعني (LIFO) Last In First Out سمى هذه الخاصية ب ¨ خرى. w قيم ٔ
RET و CALL تعمامامامال التعليميميميمتينينينين M سN وال  اء ا 7 تد M 1. اس .1
لخطوات التالية: N يقوم المعالج ،CALL تعمال التعليمة M سN K اء دا 7 تد M عند اس
إلى المكدس (EIP) ل مؤشر التعليمة ® 1. دفع القيمة الحالية لمس
EIP ل® إلى المس K ا 2. تحميل عنوان ا
EIP ل® يها المس Ì شير إ ² ت التي Í ذ التعل % 3. تنف
لخطوات التالية: N ، يقوم المعالج K لعودة من دا : RET تعمال التعليمة M عند اس
EIP ل® ) و وضعها في المس K ا كون عنوان الرجوع من ا Ï ما Ð اد 7 1. سحب القيمة الموجودة في قمة المكدس (
إلى n ضافة القيمة N يقوم المعالج ٕ ،(RET n ب هكذا f كÏ) n ياري f خ Õ لى المعامل 7 تحتوي RET 2. إذا كانت التعليمة
. K ا هي حجم البارام ترات الممررة إلى ا n كون القيمة Ï ما Ð اد 7 رة المكدس. h يت من ذا N n رu ليتم تحر ESP ل® المس
) K ا اء ا 7 تد M كون التعليمة التي تلي تعليمة اس Ï ما Ð اد 7) EIP ل® ذ إلى العنوان الموجود في المس % 3. نقل التنف
(NEAR CALLS) قريبة K اء دا 7 تد M سN علقة f ملاحظة: هذه الخط
خرى. عند w خرى و قيم ٔ w ٔ K رها إلى دا u رامترات يتم تمر N غيرات محلية، f لى م 7 ن يحتوي w طر، يمكن لكل إطار ٔ w يقسّم المكدس إلى ٔ
شير إلى إطار ² ي c ا) ESP سخ محتوى مؤشر المكدس  ب K ا ما تقوم ا Ð اد 7 ي قيمة إلى المكدس، w ل دفع ٔ ^ ، و ق K اء دا 7 تد M اس
و عنوان الرجوع. K ا سهيل الوصول إلى البارامترات الممررة إلى ا  ل b و ذ EBP ل® تدعية) إلى المس M المس K ا مكدس ا
ال: â م
void MyProc()
{
...
}
: K لب المترجمات تقوم بتوليد الكود التالي في بداية كل دا åwٔ
MyProc:
push ebp
mov ebp, esp
...
Passing Parameters Using The Stack | تعمامامامال الملململمكدس M سN ر ا لبارامترترترترات u 2. تمتمتمتمر .1
يمكن K تدعية. و في هذه الحا M المس K اç: لال و ضعها في إطار المكدس التابع  وال من  رامترات ا N ر u تمر Ì تعمال المكدس M يمكن اس
تدعية. M المس K ا شير إلى إطار مكدس ا ² ي هو بدوره c ا EBP ل® تعمال المس M سN بر المكدس 7 الوصول إلى البارامترات الممررة
ال: â م
void MyProc(int a, int b, int c)
{
...
}
int main()
{
...
MyProc(10,20,30);
...
}
كالتالي: MyProc K ا اء ا 7 تد M كون اس u
push 30
push 20
push 10
call MyProc
: K ا اء ا 7 تد M شكل المكدس بعد اس
عنوان الرجوع
(10) 0000000Ah
(20) 00000014h
(30) 0000001Eh
Stack Buffer Overflow ض مخمخمخمخزن الملململمكدس % ف
ASSEMBLY IS POWER Page 4
EBP
ESP | EBP-20
ت G ن البيا u اتجاه تخز
ESP+14 | EBP-4
ESP+10 | EBP-8

 

In software, a stack buffer overflow or stack buffer overrun occurs when a program writes to a memory address on the program's call stack outside of the intended data structure, which is usually a fixed-length buffer.[1][2] Stack buffer overflow bugs are caused when a program writes more data to a buffer located on the stack than what is actually allocated for that buffer. This almost always results in corruption of adjacent data on the stack, and in cases where the overflow was triggered by mistake, will often cause the program to crash or operate incorrectly. Stack buffer overflow is a type of the more general programming malfunction known as buffer overflow (or buffer overrun).[1] Overfilling a buffer on the stack is more likely to derail program execution than overfilling a buffer on the heap because the stack contains the return addresses for all active function calls.

تحميل كتاب Stack Buffer Overflow  

تحميل مباشر كتاب Stack Buffer Overflow  

تأليف: Z3r0n3

 



حجم الكتاب عند التحميل : 1.6 ميجا بايت .
نوع الكتاب : pdf.
عداد القراءة: عدد قراءة Stack Buffer Overflow

اذا اعجبك الكتاب فضلاً اضغط على أعجبني
و يمكنك تحميله من هنا:

تحميل Stack Buffer Overflow
شكرًا لمساهمتكم

شكراً لمساهمتكم معنا في الإرتقاء بمستوى المكتبة ، يمكنكم االتبليغ عن اخطاء او سوء اختيار للكتب وتصنيفها ومحتواها ، أو كتاب يُمنع نشره ، او محمي بحقوق طبع ونشر ، فضلاً قم بالتبليغ عن الكتاب المُخالف:

برنامج تشغيل ملفات pdfقبل تحميل الكتاب ..
يجب ان يتوفر لديكم برنامج تشغيل وقراءة ملفات pdf
يمكن تحميلة من هنا 'http://get.adobe.com/reader/'