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