Хотиранинг тўлиб тошиш таҳдиди
Ushbu kitob S va C++ dasturlash tillarida xotira to'lib toshishi tahdidini va uning sabablarini tushuntiradi. Unda xotira tuzilishi, stackning ishlash prinsipi va xotira to'lib toshishining mumkin bo'lgan oqibatlari, jumladan, dasturiy ta'minotni buzish yoki zararli kodni ishga tushirish kabi holatlar batafsil yoritilgan. Shuningdek, xotira to'lib toshishidan himoyalanish usullari, jumladan, xavfsiz funksiyalardan foydalanish va Canary texnologiyasi haqida ham ma'lumot berilgan.
Asosiy mavzular
- Xotira to'lib toshishi tahdidi: Web saytlar va dasturlarda foydalanuvchi kiritgan ma'lumotlar belgilangan hajmdan oshib ketsa, xotira to'lib toshishi yuzaga keladi. Bu esa dasturning buzilishiga olib kelishi mumkin.
- Xotira tuzilishi: Zamonaviy kompyuter xotirasi text, data, heap va stack kabi qismlarga bo'linadi. Stack funksiya chaqirishlari, parametrlar va qaytish manzillarini saqlaydi.
- Stackni avariya qilish: Funktsiyalar chaqirilganda stackdagi ma'lumotlar joylashuvi buzilsa, stack avariyaga uchrashi mumkin. Bu holatda qaytish manzili (ret) o'zgartirilishi natijasida dastur noto'g'ri manzilga o'tishi yoki ishdan chiqishi mumkin.
- Xavfsizlik funksiyalari: gets() kabi xavfli funksiyalar o'rniga fgets(), strcpy() o'rniga strncpy(), strcat() o'rniga strncat() va sprintf() o'rniga snprintf() kabi xavfsiz funksiyalardan foydalanish xotira to'lib toshishi tahdidini kamaytiradi.
- Canary texnologiyasi: Stackni himoyalash uchun qo'llaniladigan usul bo'lib, u stackga maxsus qiymat (Canary) qo'shadi va agar bu qiymat o'zgarsa, xotira to'lib toshishi aniqlanadi.