網(wǎng)站首頁 科技 > 正文
堆棧溢出一般是由什么原因?qū)е碌模ㄊ裁词菞R绯龊投岩绯觯?/h1> 2022-07-28 02:37:39 科技 來源:
想必現(xiàn)在有很多小伙伴對(duì)于什么是棧溢出和堆溢出方面的知識(shí)都比較想要了解,那么今天小好小編就為大家收集了一些關(guān)于什么是棧溢出和堆溢出方面的知識(shí)分享給大家,希望大家會(huì)喜歡哦。
1、棧溢出是由于C語言系列沒有內(nèi)置檢查機(jī)制來確保復(fù)制到緩沖區(qū)的數(shù)據(jù)不得大于緩沖區(qū)的大小,因此當(dāng)這個(gè)數(shù)據(jù)足夠大的時(shí)候,將會(huì)溢出緩沖區(qū)的范圍。
2、堆溢出的產(chǎn)生是由于過多的函數(shù)調(diào)用,導(dǎo)致調(diào)用堆棧無法容納這些調(diào)用的返回地址,一般在遞歸中產(chǎn)生。堆溢出很可能由無限遞歸(Infinite recursion)產(chǎn)生,但也可能僅僅是過多的堆棧層級(jí)。
3、int f(int x)
4、芝有士回答,版權(quán)必員究,未經(jīng)動(dòng)許可,不能得許轉(zhuǎn)載
5、{
6、時(shí)電里機(jī)形,組務(wù)示步按。
7、int a[10];
8、a[11] = x;
9、是我多高意直打斗信音克卻滿。
10、}
11、這個(gè)就是棧溢出,x被寫到了不應(yīng)該寫的地方。在特定編譯模式下,這個(gè)x的內(nèi)容就會(huì)覆蓋f原來的返回地址。也就是原本應(yīng)該返回到調(diào)用位置的f函數(shù),返回到了x指向的位置。一般情況下程序會(huì)就此崩潰。但是如果x被有意指向一段惡意代碼,這段惡意代碼就會(huì)被執(zhí)行。
12、堆溢出相對(duì)比較復(fù)雜,因?yàn)楦鞣N環(huán)境堆的實(shí)現(xiàn)都不完全相同。但是程序管理堆必須有額外的數(shù)據(jù)來標(biāo)記堆的各種信息。堆內(nèi)存如果發(fā)生上面那樣的賦值的話就有可能破壞堆的邏輯結(jié)構(gòu)。進(jìn)而修改原本無法訪問的數(shù)據(jù)。
13、int f(char *s, int n)
14、{
15、char a[10];
16、memcpy(a, s, n);
17、...
18、這個(gè)是棧溢出比較真實(shí)一點(diǎn)的例子,如果傳入的數(shù)據(jù)長度大于10就會(huì)造成溢出,進(jìn)而改變f的返回地址。只要事先在特定地址寫入惡意代碼,代碼就會(huì)被執(zhí)行。
本文到此結(jié)束,希望對(duì)大家有所幫助。
版權(quán)說明: 本文由用戶上傳,如有侵權(quán)請(qǐng)聯(lián)系刪除!
猜你喜歡:
- 2022-09-20 心境豁達(dá)恬淡的詩句有哪些呢(心境豁達(dá)恬淡的詩句有哪些)
- 2022-09-20 下雨前的征兆動(dòng)物(下雨前動(dòng)物有哪些征兆 – 糗問)
- 2022-09-20 便秘按摩哪里馬上見效快(便秘按摩哪里馬上見效)
- 2022-09-20 經(jīng)心的近義詞是什么呀(經(jīng)意的近義詞是什么呢)
- 2022-09-20 芡實(shí)怎么熬粥好吃(芡實(shí)和什么搭配熬粥好)
- 2022-09-20 0.44平方千米是多大(0.44平方千米有多大)
- 2022-09-20 北京奧運(yùn)會(huì)會(huì)徽中國印是什么?。ū本W運(yùn)會(huì)徽上中國印是什么)
- 2022-09-20 qq空間訪客數(shù)量是什么意思(QQ空間訪問量2000是什么概念)
最新文章:
- 2023-07-01 鵝蛋的最佳吃法(如何挑選新鮮鵝蛋 怎樣挑選新鮮鵝蛋)
- 2023-07-01 男士精油真的能修復(fù)海綿體嗎(全套半套什么意思)
- 2023-07-01 教室里面做黃油(菠蘿油里面是黃油嗎)
- 2023-07-01 木地板的保養(yǎng)(木地板保養(yǎng)注意事項(xiàng)有哪些)
- 2023-07-01 美的變頻空調(diào)用的是什么雪種(美的變頻空調(diào)用的是什么制冷劑)
- 2023-07-01 浪漫而不爛俗的高級(jí)文案短句(浪漫而不爛俗的高級(jí)文案)
- 2023-07-01 雨下的真大一段話100字(雨下的真大一段話)
- 2023-07-01 寵物青蛙品種大全(寵物青蛙怎么養(yǎng))
- 2023-07-01 電影推薦男女打撲克(關(guān)于撲克的電影推薦)
- 2023-07-01 特戰(zhàn)榮耀有第二部嗎(特戰(zhàn)榮耀有第二季嗎)
- 2023-07-01 劇情片是什么樣的(劇情片是什么意思)
- 2023-07-01 芒果臺(tái)聲生不息播出時(shí)間
- 2023-07-01 物理和化學(xué)不好怎么辦(物理和化學(xué)都不好應(yīng)該補(bǔ)那棵 物理和化學(xué)都不好應(yīng)該補(bǔ)什么地方)
- 2023-07-01 法師的養(yǎng)殖方法和澆水(冬天怎么給麥澆水 麥冬天怎么澆水)
- 2023-07-01 翡翠色的劃分(翡翠說的翡色什么意思 翡翠翡色的解釋)
- 2023-07-01 水沫和翡翠(翡翠跟水沫玉有什么區(qū)別 如何區(qū)別翡翠跟水沫玉)