Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Dôsledky pretečeniu zásobníka

Zápis dát do vyrovnávacej pamäte je bežnou súčasťou fungovania každého programu , a tiež hlavným zdrojom potenciálnych problémov . Keď sa program pokúsi dať viac dát do vyrovnávacej pamäte , ako jeho programátor navrhnutý tak , aby držať , následné pretečeniu dát môže byť poškodený iných programových dát . To môže viesť k softvéru pády , alebo potenciálne prostriedok pre hackerov únos program a spustiť škodlivý kód . Nárazníky a Pretečenie

vyrovnávacej pamäte je premenná pole navrhnutý pre ukladanie dát pre program používať v neskoršom okamihu v jeho prevedení . To by mohlo byť informácie užívateľ zadá do programu , obsah súboru , ktorý program načítava , alebo čokoľvek iného programu môže byť nutné vykonať . Nárazníky sú vytvorené s určitou veľkosťou , ktoré je vyhradené v pamäti počítača pre ukladanie dát v bufferi . K pretečeniu vyrovnávacej pamäti dôjsť , ak program zapisuje množstvo dát do vyrovnávacej pamäte, ktorá prevyšuje jeho skutočnú veľkosť , čo je program pre zápis dát cez umiestnenie buffera je v pamäti počítača a do pamäte vyhradenej pre iné nárazníky alebo premenných .

Pády

zrútenie programu , keď zistí , že nie je schopný vykonať úloha, to bolo kódované vykonať v určitom okamihu v čase , a jeho vývojár nemal obsahovať mechanizmus pre zotavuje z takej zlyhanie . Pretečenie zásobníka môže spôsobiť , že programy zlyhanie pri pretečeniu poškodí dáta , premenné , ktorý je uložený v neďalekom pamäťového slotu . Napríklad , ak pretečenia textového bufferu môže písať textové znaky na čísla uložené v pamäti slotu celé číslo premenné . Keď program pristupuje k dátam Táto premenná je vykonať výpočet , zistí , textové znaky namiesto čísel . Program nemožno vykonávať matematické výpočty na textové znaky , takže program bude reagovať zhadzovať .
Chyby zabezpečenia

advertentm vyrovnávacej pamäti preťaženie môže spôsobiť , že programy havárii , ale hackeri mohli úmyselne prinútiť buffer preťaženiu ohroziť funkciu programu . Napríklad , pamäťový slot vyrovnávacej pamäti by mohol byť v blízkosti pamäťový slot , ktorý drží konkrétny príkaz , program spustí . Hacker môže objaviť veľkosť vyrovnávacej pamäte , a vzdialenosť do pamäťového slotu na príkaze z konca vyrovnávacej pamäti . Ten by potom mohol prinútiť pretečeniu vyrovnávacej pamäte, ktorá by po - zápis dát medzi vyrovnávacej pamäte a pamäťový slot na príkaze , potom po - napísať pamäti slot Príkaz na nahradiť príkaz s jedným z jeho vlastného návrhu . Keď program volá pamäťový slot , ktorý príkaz a vykoná jej obsah , bolo by vykonávanie hackerovi kód namiesto jedného programátor zamýšľal .
Prevencia pretečeniu zásobníka

programátorov môže zabrániť pretečeniu vyrovnávacej pamäti tým , že zavedie bezpečnostné mechanizmy , ktoré zaistia , že program sa nesnaží zapísať viac dát do vyrovnávacej pamäte , ako on navrhol ho držať . Tie môžu zahŕňať kontrolu veľkosti dát užívateľov sa snaží , aby sa do neho , cez písanie alebo výber vstupného súboru, aby sa zabezpečilo , že nepresahuje veľkosť vyrovnávacej pamäte . Programátori by tiež mala snažiť minimalizovať príležitosti , ktoré užívatelia majú zapisovať dáta priamo do vyrovnávacej pamäti , pretože každý vstup , ktorý zapisuje priamo do vyrovnávacej pamäti , je potenciálnym vektora pre útok vyrovnávacej preťaženiu .

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené