2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1.緩沖區(qū)溢出攻擊原理,堆棧,(已初始化數(shù)據(jù))數(shù)據(jù)段(未初始化數(shù)據(jù)),代碼段,一個(gè)進(jìn)程的內(nèi)存映像,文本段(代碼段) 文本區(qū)域是由程序確定的, 包括代碼(指令)和只讀數(shù)據(jù)。 該區(qū)域相當(dāng)于可執(zhí)行文件的文本段。 這個(gè)區(qū)域通常被標(biāo)記為只讀, 任何對(duì)其寫(xiě)入的操作都會(huì)導(dǎo)致段錯(cuò)誤(segmentation violation,數(shù)據(jù)段 數(shù)據(jù)區(qū)域包含了已初始化和未初始化的數(shù)據(jù)。 靜態(tài)變量?jī)?chǔ)存在這個(gè)區(qū)域中,堆棧

2、 用于函數(shù)調(diào)用,用于返回,,高,低,1) 緩沖區(qū)溢出攻擊(實(shí)例),main(){char passwd[8] = {"2e4rfe"};char yourpasswd[8] = {""};again:puts("please input passwd?");gets(yourpasswd);if (strcmp(yourpasswd, passwd)

3、= =0)goto ok;puts("passwd error");goto again;exit(-2);ok:puts("correct!");// do work you wantreturn 0;},程序的設(shè)計(jì)功能:輸入正確的口令后做某項(xiàng)工作(否則重復(fù)要求輸入口令)演示:輸入精心計(jì)劃好的字串打亂設(shè)計(jì)期望的執(zhí)行邏輯,從而繞過(guò)某些口令,2)棧溢出攻擊(函

4、數(shù)調(diào)用),1) 首先把參數(shù)壓入棧; 2) 然后保存命令寄存器(IP)中的內(nèi)容作為返回地址(RET); 3) 第三個(gè)放入堆棧的是基址寄存器(FP); 4) 然后把當(dāng)前的棧指針(SP)拷貝到FP,作為新的基地址; 5) 最后為本地變量留出一定空間,函數(shù)調(diào)用與堆棧,,緩沖區(qū)溢出攻擊,,,,,,,緩,沖,區(qū),,,寄存器,,,EIP,,,argc,,,argv,,ESP,→,,,,,EIP’,,,,←buf,→,,ESP,→,,低

5、,,高,,,,①進(jìn)入函數(shù)后的堆棧,,②拷貝超長(zhǎng)字符,數(shù)組到緩沖區(qū)中,,③釋放局部變量,ESP指向返回地址,,④從堆棧中取出的,EIP,執(zhí)行shell code,,,,,,,,,,,EIP’,,,,,,,,,,ESP,→,,,,,EIP’,,,,,,,,,,EIP’,→,例子,int AFunc(int i,int j){int m = 3;int n = 4;    m = i;n =

6、j;    BFunc(m,n);    return 8;},int BFunc(int i,int j){ int m = 1; int n = 2; m = i; n = j; return m;},int main(){AFunc(5,6); return 0;},,,6,AFunc(5,6);push 6

7、push 5call _AFuncadd esp+8,,函數(shù)調(diào)用中棧的工作過(guò)程,5,EIP,_AFuncpush ebpmov ebp,espsub esp,48h//壓入環(huán)境變量//為局部變量分配空間,EBP,48h,EDIESIEBX,3(m=3),4(n=4),,,6,AFunc(5,6);……call _AFuncadd esp+8,,函數(shù)調(diào)用中棧的工作過(guò)程,5,EIP,_AFunc{……return

8、 0;}pop edipop esipop ebxadd esp,48h//棧校驗(yàn)pop ebpret,EBP,48h,EDIESIEBX,3(m=3),4(n=4),,,當(dāng)緩沖區(qū)溢出發(fā)生時(shí)……,int AFunc(int i,int j){int m = 3;int n = 4; char szBuf[8] = {0}; strcpy(szBuf, “This is a overflow bu

9、ffer!”);    m = i; n = j;    BFunc(m,n);    return 8;},,#include#includevoid input(){ int access(0); //access為1時(shí)表示登錄正確得到權(quán)

10、限,初始為0 char password[4]; //用于存儲(chǔ)用戶輸入的登錄密碼  cout>password;  if(strcmp(password,"1988")==0)//比較兩個(gè)串是否相等,如果相等返回值為0 {  access=1;

11、 //兩串相等,將權(quán)限變量賦值1  } if(access!=0)  //access非零,則登錄成功  cout<<"登錄成功"<<endl; else        

12、  //access為零,登錄失敗  cout<<"error";}void main(){ input();   //函數(shù)調(diào)用},example.c void function(char *s

13、tr) { char buffer[16]; strcpy(buffer,str); } void main() { char large_string[256]; int i; for(i=0;i<255;i++)  large_str

14、ing[i] = ‘A’; function(large_string); },*str,Ret(Function后的指令地址),基地址FP,buffer,棧底(內(nèi)存高端),,程序運(yùn)行結(jié)果:buffer、FP、RET、甚至Str本身等的值都變成了A,,攻擊原理: 改變RET的值; 用特殊的可執(zhí)行指令來(lái)改變 這樣就可以達(dá)到攻擊目的。 RET的位置是可以被計(jì)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論