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

Ako je možné prekročenie & formátovací reťazec Bugs Zmeňte program toku vášho programu ?

Pretečenie vyrovnávacej pamäte a formátovací reťazec chyby sú dve metódy , z ktorých používatelia môžu získať kontrolu nad programom . Zvyčajne sa nachádzajú v nižšej úrovni jazykov , ako je C alebo C + + , a to ako spoliehať na schopnosti hackera manipulovať vstup užívateľa , aby program vykonávať v iných , než bolo zamýšľané spôsoby . Pretečeniu spoliehajú na nedostatok bezpečnostných opatrení okolo vstupu používateľa , zatiaľ čo formát reťazca chyby sa vyskytujú v skutočnom vstupné /výstupné funkcie programovacieho jazyka . Pochopenie ako každá práca vyžaduje pochopenie , prečo sa vyskytujú v kóde . Pretečeniu vyrovnávacej pamäte

pretečeniu vyrovnávacej pamäte môže dôjsť pri spustení programu , kedy dátová štruktúra vyrovnávacej pamäte určené na spracovanie užívateľského vstupu je daná príliš veľa dát pre spracovanie . Napríklad programátor môže vyhlásiť štruktúru pole obsahujúce znaky , ktoré sa v užívateľských prihlasovacie údaje . Programátor môže rozhodnúť obmedziť veľkosť poľa 25 znakov . Ak programátor nekladie žiadne záruky v mieste , užívateľ môže zadať ľubovoľný množstvo dát ako prihlasovacie meno . Ak užívateľ nemá to , presahujúcej znaky okrem 25. pretečeniu pamäte na pole a poškodené dáta v priľahlých pamäťových miest . To sa nazýva pretečeniu vyrovnávacej pamäti .
Pretečenie vyrovnávacej pamäte a zabezpečenie

Hackeri môžu využiť pretečeniu vyrovnávacej pamäti zmeniť cestu vykonávanie programu . Ak hacker vie , ako program funguje , potom tiež vie , aké druhy dát sú v blízkosti poľa znakov . V programovanie C , premenné a funkčné odkazy sú uložené v pamäti . Je Ak referenčné premenné alebo funkcie je umiestnený v blízkosti poľa , hacker môže prekročenie pole takým spôsobom , aby sa zmeniť hodnotu premennej , tak , že sa umožní , aby sa prihlásiť s falošnými poverenia . Hacker môže tiež zmeniť funkciu tak , že spustí škodlivý kód , a umožňuje hacker do systému .
Formát Reťazce

" formátovací reťazec " predstavuje osobitný argument , dodávaný na vstupných a výstupných funkcií v C Pre príklad , " printf ( ) " funkcia má ako prvý argument na formátovací reťazec , ktorý popíše , ako by mal výstup vyzerať užívateľmi . Nasledovať toto, printf ( ) funkcia prijíma premenný zoznam argumentov reprezentujúcich dáta na výstup ako formátovaný pomocou formátovacieho reťazca . Táto nasledujúci príklad Detaily ako formátovací reťazec pracuje v súvislosti s formátovacím reťazcom obsahujúce formát znak ( " % d " ) , čo znamená , že číslo argument , nahradí tento znak na výstupe :

printf ( " Toto je formátovací reťazec , nasleduje číslo na tlač % d " , 56 ) ;
formátovacích reťazcoch a bezpečnostné

bezpečnostné problémy Formát reťazca dôjsť , keď používateľ dokáže vstupný formát reťazec obsahujúci formátovací znak , ktorý nie je určený programátorom . Keď funkcia printf ( ) je volaná , formátovací reťazec a argumenty po nej sa tlačil do pamäte , a funkcia " prechádzky " po pamäti , nahradí všetky formátovacie znaky s hodnotami v príslušných pamäťových miest . Ak hacker vloží formátovanie znakov do reťazca , môžete si prípadne prečítať hodnoty dát umiestnených kdekoľvek v okolí na zásobníku - a či vie čítať stoh , vie , ako a kde meniť dáta a manipulovať vykonávanie programu
.

Najnovšie články

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