緩沖區(qū)溢出攻擊_第1頁
緩沖區(qū)溢出攻擊_第2頁
緩沖區(qū)溢出攻擊_第3頁
緩沖區(qū)溢出攻擊_第4頁
緩沖區(qū)溢出攻擊_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、2021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)12021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)22021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)32021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)42021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)532位位CPU所含有的寄存器有:所含有的寄存器有:4個(gè)數(shù)據(jù)寄存器(EAX、EBX、ECX和EDX)2個(gè)變址和指針寄存器(ESI和EDI) 2個(gè)指針寄存器(ESP和EBP) 6個(gè)段寄存器(ES、CS、SS、DS、FS和GS)1個(gè)指令指針寄存器(EIP) 1個(gè)標(biāo)志寄存器(EFlags) 2021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)64個(gè)

2、數(shù)據(jù)寄存器(EAX、EBX、ECX和EDX):數(shù)據(jù)寄存器主要用來保存操作數(shù)和運(yùn)算結(jié)果等信息,從而節(jié)省讀取操作數(shù)所需占用總線和訪問存儲(chǔ)器的時(shí)間。2021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)72個(gè)變址寄存器(ESI和EDI) :寄存器ESI、EDI稱為變址寄存器(Index Register),它們主要用于存放存儲(chǔ)單元在段內(nèi)的偏移量,用它們可實(shí)現(xiàn)多種存儲(chǔ)器操作數(shù)的尋址方式,為以不同的地址形式訪問存儲(chǔ)單元提供方便。2021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)82個(gè)指針寄存器(ESP和EBP) :它們主要用于訪問堆棧內(nèi)的存儲(chǔ)單元,并且規(guī)定:EBP為基指針(Base Pointer)寄存器,

3、用它可直接存取堆棧中的數(shù)據(jù); ESP為堆棧指針(Stack Pointer)寄存器,用它只可訪問棧頂。 2021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)96個(gè)段寄存器(ES、CS、SS、DS、FS和GS):段寄存器是根據(jù)內(nèi)存分段的管理模式而設(shè)置的。內(nèi)存單元的物理地址由段寄存器的值和一個(gè)偏移量組合而成的,這樣可用兩個(gè)較少位數(shù)的值組合成一個(gè)可訪問較大物理空間的內(nèi)存地址。CPU內(nèi)部的段寄存器:ECS代碼段寄存器(Code Segment Register),EDS數(shù)據(jù)段寄存器(Data Segment Register),2021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)10EES附加段寄存器(E

4、xtra Segment Register),ESS堆棧段寄存器(Stack Segment Register),EFS附加段寄存器(Extra Segment Register),EGS附加段寄存器(Extra Segment Register),2021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)111個(gè)指令指針寄存器(EIP):指令指針EIP(Instruction Pointer)是存放下次將要執(zhí)行的指令在代碼段的偏移量。12sub:減法指令第一個(gè)參數(shù)是被減數(shù)所在的寄存器,第二個(gè)參數(shù)是減數(shù)。add:加法指令第一個(gè)參數(shù)是被加數(shù)所在的寄存器,第二個(gè)參數(shù)是加數(shù)。注:sub和add指令常被用來操

5、作堆棧,例如,如果要在堆棧中分配四個(gè)四字節(jié)長整型數(shù)的空間,就沒有必要調(diào)用四次push指令,簡單調(diào)用sub esp,16(16=4*4)就可以了,當(dāng)然也可以調(diào)用add指令恢復(fù)堆棧。13push:入棧指令32位平臺(tái),push指令將一個(gè)32位的操作數(shù)壓入堆棧,導(dǎo)致esp減4。因?yàn)閑sp指向棧頂,且堆棧是向小地址生長的,所以會(huì)導(dǎo)致esp減4。pop:出桟指令跟push指令對(duì)應(yīng),在32位平臺(tái),pop指令將一個(gè)32的數(shù)彈出堆棧,會(huì)導(dǎo)致esp加4. pop指令的參數(shù)一般是寄存器,將棧頂?shù)臄?shù)據(jù)彈出到寄存器。2021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)14call:調(diào)用函數(shù)call指令和jmp指令不同,c

6、all指令會(huì)先把下一條要執(zhí)行的指令入棧,然后跳到被調(diào)用的函數(shù)的地方。所以,call指令相當(dāng)于push+jmp。 ret:從函數(shù)返回ret指令和jmp指令不同,ret指令會(huì)先把函數(shù)的返回地址出桟,再跳到返回的地址。所以,ret指令相當(dāng)于pop+jmp。棧幀的一般結(jié)構(gòu)2021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)15local1 local2 localnEBPRET地址參數(shù)1 參數(shù)2參數(shù)n關(guān)注函數(shù)調(diào)用時(shí)堆棧變化void foo(int m,int n)int local;local=m+n; void main()int t1=0 x1111;int t2=0 x2222;foo(t1,t2

7、);2021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)16緩沖區(qū)溢出方式緩沖區(qū)溢出的原因是由于字符串處理等函數(shù)( strcpy 、strcmp)沒有對(duì)數(shù)組的越界加以監(jiān)視和限制,結(jié)果覆蓋了堆棧數(shù)據(jù)。有以下幾種緩沖區(qū)溢出攻擊方式:1)攻擊者可用任意數(shù)據(jù)覆蓋堆棧中變量的內(nèi)容;2)覆蓋堆棧中保存的寄存器內(nèi)容,導(dǎo)致程序崩潰;3)把堆棧里面的返回地址覆蓋,替換成一個(gè)自己指定的地方,而在這個(gè)個(gè)地方,可以植入一些精心設(shè)計(jì)了的代碼以達(dá)到攻擊的目的。2021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)172021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)182021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)19vo

8、id come()printf(Success!);void test(int i)char buf12;/用于發(fā)生溢出的數(shù)組int addr4;int k=(int)&i-(int)buf;int go=(int)&come;addr0=(go24;addr1=(go24;addr2=(go24;addr3=go24; for(int j=0;j4;j+)bufk-j-1=addr3-j;void main()void test(int i);test(1);202021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)212021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)222021-8-8計(jì)算機(jī)

9、系統(tǒng)安全原理與技術(shù)(第2版)232021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)242021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)252021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)262021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)272021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)282021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)292021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)302021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)312021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)322021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)332021-8-8計(jì)算機(jī)系統(tǒng)安

10、全原理與技術(shù)(第2版)342021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)352021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)362021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)372021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)382021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)392021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)402021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)412021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)422021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)432021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)442021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)452021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)462021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)472021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)482021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)492021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)502021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(第2版)512021-8-8計(jì)算機(jī)系統(tǒng)安全原理與技術(shù)(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論