Linux系統(tǒng)下程序編譯安全選項技術(shù)的研究與實現(xiàn)
【文章頁數(shù)】:76 頁
【學位級別】:碩士
【部分圖文】:
圖2-3?Hello.s文件中的內(nèi)容??第三步:匯編過程??匯編過程是將編譯后的hello.s文件轉(zhuǎn)化生成二進制文件hello.o的過程,利??
了匯編代碼。匯編語言對于一個軟件程序是非常重要的,它為不同的高級語??言、不同的編譯器提供了可以通用的語言[5],例如:C語言編譯器和Fortran編??譯器產(chǎn)生的輸出文件用的都是一樣的匯編語言。Hello.s文件中的內(nèi)容如圖2-3??所示。??15??
圖3-1所示,我們可以清楚的看到,程序在進行整數(shù)加、減、乘運??算時,直接用CPU中的mullw、add、subf指令來進行有符號整數(shù)的運算
0(r1)??ualue?=?0?=?0x0??圖3-l未添加選項驗證結(jié)果??當再次編譯程序時,添加選項-ftrapv,利用objdump命令,我們再次查看??這個程序的反匯編,如圖3-2所示,我們可以清楚的看到,程序在進行整數(shù)??26??
圖3-3未添加選項的驗證結(jié)果??-ftrav,s“123”
小的有符號整數(shù)時,程序并沒有發(fā)生整數(shù)溢出的現(xiàn)象,程序因此可以正常運??行,輸出正常的結(jié)果123。但若所給的整數(shù)是己經(jīng)超過了?32位有符號整數(shù)的最??大值“2147483647(0x7FFFFFFF,2A32-l)”,如圖3.3所示,函數(shù)輸入的參數(shù)s是??“2147483648”時....
圖3-5加、減、乘指令的程序規(guī)模增加比例與函數(shù)個數(shù)的關(guān)系??33??
*?nftr?*??對編譯生成的文件大小用Excel對其進行統(tǒng)計分析,因ftmpv選項而引起??的含有加、減、乘指令的程序規(guī)模增加比例與函數(shù)個數(shù)的關(guān)系如表3-4與
本文編號:3975284
本文鏈接:http://www.sikaile.net/guanlilunwen/ydhl/3975284.html