電子科技大學(xué)軟件開發(fā)環(huán)境實驗報告_第1頁
電子科技大學(xué)軟件開發(fā)環(huán)境實驗報告_第2頁
電子科技大學(xué)軟件開發(fā)環(huán)境實驗報告_第3頁
電子科技大學(xué)軟件開發(fā)環(huán)境實驗報告_第4頁
電子科技大學(xué)軟件開發(fā)環(huán)境實驗報告_第5頁
已閱讀5頁,還剩94頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

電子科技大學(xué)軟件開發(fā)環(huán)境實驗報告軟件開發(fā)環(huán)境試驗-----Huffman編分割函數(shù)的三項原則包括:與其寫注釋,不如寫函數(shù);重復(fù)就是罪惡;函數(shù)不要超過關(guān)于分割函數(shù)三原則的具體含義,請見教材和課堂教學(xué)PPT關(guān)于電話本實驗要求使用Huffman編碼算法,實現(xiàn)對文件的壓縮和解壓。因此,我們首先介指導(dǎo)書試驗原理部分較多,在這里就不做粘貼復(fù)制了。本實驗要求實現(xiàn)一個exe程序。這個程序按照huffma名,可以包含路徑信息,而compress_filename是壓縮之后的文件名,同樣可以包含路徑提示:在實現(xiàn)程序時,需要考慮如何存儲huffman樹或者編碼表或者詞頻表等等。對于每一個版本的程序,需要在實驗報告中給出函數(shù)調(diào)用關(guān)系圖、流程處理關(guān)系實驗報告的評分標準,包括以下幾個方面:):huffmanForC#sum_bit##count#voidfreToFile(intcode[],HCode*HC)}{}{}{}jmp整個多分支流程語句后的指令{}{B:執(zhí)行計數(shù)變量遞增操作jxxxxx如果仍舊滿足條件,向下..........................................}int_tmain(intargc,_TCHAR*argv[]){while(i<10){}}while(i<10){002513ABmov002513B1mov}002513B6xor設(shè)置為0,即將i設(shè)置為0;同理在地址00251395處movdwordptr[ebp-1將[ebp-14]設(shè)置為0,即將j設(shè)置為0;在地址0025139C處cmpjge002513B6如果i小于10,則繼續(xù)向下執(zhí)行,若i>=10則跳轉(zhuǎn)到002513B6處執(zhí)行(即返回語句),若繼續(xù)向下執(zhí)行,則002513A2002513A5002513A8三地址處的002513AE002513B1對i進行加一操作;在002513B4jmp0025139C跳轉(zhuǎn)回通過代碼清單10的反匯編結(jié)果,while語句的反匯編代碼規(guī)律while(){............................................................................................................}B:....................................int_tmain(intargc,_TCHAR*argv[]){{}}{}while(i<10);001913B4xor}在代碼清單11當中,在地址0019138E處將[ebp-8]設(shè)置為0,即將j設(shè)置為0,在地址00191395處,將00191395設(shè)置為0,即將i設(shè)置為0.在地址0019139C0019139F001913A2三個地址處執(zhí)行j增1的操作,在001913A5001913A8001913AB三個地址處執(zhí)行i增1的操作。在地址001913AE處執(zhí)行循環(huán)條件比較指令在接下來的001913B2jl在接下來的001913B2jlA:..........................................cmp操作數(shù)1操作數(shù)2do------while循環(huán)條件判斷語句jxxA如果符合條件的話,就跳轉(zhuǎn)到A處的循環(huán)體部分開始執(zhí)行,否則繼續(xù)向下執(zhí)行編譯器對函數(shù)調(diào)用的支持,通常情況下都會使用棧。例如使用棧傳遞傳參,保存局部數(shù)組溢出,又采取了特殊的保護措施。本實驗就需要通過觀察棧幀布局,來了解這些保護措施。本實驗的環(huán)境是VisualStudio2008。本實驗總體目的是,通過使用VisualStudio2008查看函數(shù)調(diào)用時參數(shù)、局部變):{}{}{}返回地址....原edi的值從圖2可以知道,即使沒有任何局部變量,棧上仍然有0給ebp,然后再008D13A3處將esp的值減去0C0h,{}int_tmain(intargc,_TCHAR*{}{}返回地址i....代碼清單4的實現(xiàn)步驟總體類似于代碼清單2,也是首先將ebp壓棧,ebp,有所變化的就是這次是將esp的值減去0CCh然后仍舊是壓ebx,esi,edi的值入棧,之后仍舊是將002B13ACleaedi,[ebp-0CCh]ebp-0CCh地址值賦給edi,之后將033h賦值給ecx,之后執(zhí)行st在實驗報告中,需要分別給出只有一個char類型局部變量、只{}i{}i{}i{}int_tmain(intargc,_TCHAR*{}{edi,[ebp+FFFFFF28h]}從圖4可以看出,當增加一個局部變量時,這個局部變{}int_tmain(intargc,_TCHAR*ar{}{}{}int_tmain(intargc,_TCHAR*argv[]){return0;}{}ij{}{}{i....{}{}{}果{}{}說明何種情況下,才會有__security_c在前面已經(jīng)得出的棧幀布局規(guī)律基礎(chǔ)之上,把局部數(shù)組的情況考慮進去,在實驗報告在存放局部數(shù)組的時候,與一般局部變量的存放情況不同,是單獨開辟一塊空間存放數(shù)組,且按照數(shù)組下標大小按照小下標對應(yīng)小地址,大下標對應(yīng)大地址的方式存儲,并且#include""{}{}{}_RTC_CheckStackVars函數(shù)的工作原理_RTC_StackFailure度,即數(shù)組末尾之上四字節(jié)_RTC_StackFailure

溫馨提示

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

評論

0/150

提交評論