提問者:頭像不好看了 2020-10-15
他怎么防止緩沖區(qū)溢出的,?假如說,,我地址跳轉(zhuǎn)或者覆蓋成了另一個(gè)函數(shù),獲取到了shell,,這個(gè)cookie還有用嗎?還是說這個(gè)cannery保護(hù)是保護(hù)什么的?
群里回復(fù)您了,,我把另一個(gè)同學(xué)的解釋發(fā)給你:這個(gè)是塞在返回地址前的,相當(dāng)于守衛(wèi),,只允許一種人過,,就是自己人,要想越過門衛(wèi)進(jìn)入城內(nèi),,就必須先偽造成自己人,,才能進(jìn)去,。這個(gè)保護(hù)是針對(duì)變量的,當(dāng)有寫入變量的時(shí)候這個(gè)保護(hù)才有用,。只有允許你寫數(shù)據(jù)的時(shí)候,,這個(gè)保護(hù)才開啟。為了防止你過多的寫數(shù)據(jù),,覆蓋它的返回地址,。它在返回地址前面的4(32位)字節(jié)里面填入隨機(jī)數(shù)據(jù),會(huì)在你向里面寫時(shí)候,,并且你已經(jīng)寫完的時(shí)候檢查,。如果你數(shù)據(jù)寫過了,或者已經(jīng)寫到返回地址處了,,這個(gè)隨機(jī)數(shù)就不正確,,程序就會(huì)直接宕機(jī)報(bào)錯(cuò)崩潰