Bufferin Daşması Zamanı Yaranan Xətanın İzahı
Buffer Overflow nədir? Stack nədir ? Stack anlayışı nədir? Stack anlayışının analizi necə həyata keçirilir?
Telegram kanalına qoşularaq bu və digər mövzular üzrə quizlərdə iştirak edə bilərsiniz!
Telegram (Kanal): https://t.me/xakeraz_official
Xətanın İzahı
Sizinlə əvvəlki pyalaşımda 15 ədəd A hərfindən daha çox arqument daxil edərək, hədəf proqramı bufferini doldurmuşduq. Bufferin daşması nəticəsində biz xəta ilə qarşılaşmışdıq (paylaşımın linkindən aşağıda görə bilərik) və bu paylaşımda xətanın izahını ətraflı şəkildə öyrənəcəyik.

Stacki bütün A hərfləri ilə doldurduğumuz zaman nə baş verdi? Əsas sual olaraq nəyə görə EİP registri A ilə doldu? (Niyə EBX və ECX olmadı? məhz EİP?)
Bu suallara ən adi cavab olaraq bütün funksiyaların (bizim məsələdə kopyalama funksiyası) qaydış adresini EİP registerində saxlamalıdır və müvəqqəti olaraq bu məlumat bufferdə, stackdə qeyd edilir. Aşağıdakı şəkildə stackin ən aşağısında EİP registerini görə bilərik.

Bizim məsələmizdə Bufferimiz 15 simvol ilə məhdudlaşdırılmışdı, amma biz onu çoxlu sayda A hərfi ilə doldurduq. Normal davranışına baxmayaq biz onu və bufferi doldurduq. Adil halda EİP registri 4 baytdan ibarətdir və biz normal halda 4 simvol daxile edərək onu doldura bilərik.

Şəkildə sol tərəfdə normal istifadə olunan stack və sağda isə bizim zəifliyindən istifadə etdiyimiz proqramın bufferinin daşması göstərilmişdir.
Bizi izləyin:
Telegram (Kanal): https://t.me/xakeraz_official
Paylaşımların səliqəli yığılmış halı: https://t.me/xakerazgroup
Fikir və şərhləriniz : https://t.me/xakerazchat