原创 CSAPP深入理解操作系統 課程實驗 bomb 反向編譯 彙編(3)

第四關:  首先也是棧開闢: 然後由第三關以及前面對sscanf函數的分析可知,這裏應該也是要輸入兩個數。參數1從-0xc(%ebp)加載,參數2從-0x10(%ebp)處加載。0x804a23e應該裏面的內容也是sscanf的輸入格式

原创 CSAPP 深入理解計算機系統 Buflab實驗,緩衝區溢出攻擊實驗(1)

由於實驗太長所以還是採用分開 其實感覺之前做過那個bomb實驗以後,這個實驗相對來說還是很容易的,主要是要搞懂緩衝區溢出原理,以及堆棧的過程,函數調用的實現過程,做完這個實驗如果認認真真的做完,對於堆棧的過程,還有緩存溢出攻擊的原理就會

原创 CSAPP課程實驗 bomb實驗 拆炸彈實驗 (2)

關卡1-3 phase1-3 正式進入關卡1,phase_1 首先是關卡1的彙編代碼爲: 可以看到前3句是非常熟悉的棧開闢代碼,下面一起來看一下基本的棧調用過程的彙編代碼:在gcc下是AT&T格式的,源操作數,目的操作數 Push  

原创 spy 26 When the first input is a message identifier, the second input must be a string.錯誤

這個是想用spy畫出來不同顏色的。出現的錯誤,這個錯誤也是我用了很久才解決的,網上沒有具體的很好的解決辦法。 這裏我是這樣解決的,就是考慮到可能是由於我的matlab版本太低了,因爲從本科通信專業開始就一直用matlab編程所以都用的ma

原创 Missing variable or function matlab錯誤

??? Error: File: D:\matlab\work\huitu.m Line: 6 Column: 7 Missing variable or function. 這個錯誤如果沒有找對解決辦法還是會很浪費時間的,這個錯誤其實

原创 線程與進程

首先,應用程序是一個存儲在計算機系統的硬盤等存儲空間中的靜態文件,而處於可執行狀態中的應用程序稱爲進程,進程是應用程序的一個執行過程。從操作系統角度看,進程是操作系統分配內存,cpu時間片等資源的基本單位,爲正在運行的程序提供運行環境。

原创 從彙編的底層代碼實現角度深入理解形參和實參

形參是在函數定義時給出的參數,實參是主調函數中調用某一個函數時給出的。 形參和實參的作用是實現主調函數與被調函數之間的數據傳遞,也就是我們通常所說的傳參。 形參實際是實參在被調函數中的一份拷貝,調用時壓入棧中,分配內存,當調用函數結束,內

原创 C++中Static作用和使用方法

轉載地址:http://blog.csdn.net/artechtor/article/details/2312766 面試的時候經常會遇到static的問題,特意發現上面那篇博客總結的很好,只是原作者寫的很多地方不夠總結,有很多重複的地

原创 從彙編和高級語言的角度理解傳值方式,傳值,傳引用,傳指針的本質機制與區別。白話通俗易懂。

函數的傳參與返回值的方式有傳值和傳遞引用,c語言中就是傳值,而c++擴展傳引用。 而傳值分爲傳遞值(實參的值,此時形參是實參在內存中的一份拷貝,形參在使用時分配內存,結束時釋放,實參和形參在內存中的地址不同,因此對形參的改變不會改變實參

原创 CSAPP課程實驗 bomb實驗 拆炸彈實驗(1)

由於內容較長,所以打算分成幾個部分來寫。 實驗準備知識: 實驗三是CSAPP課程中的bomb炸彈實驗。一個非常有意思的實驗。實驗主要提供了2個文件,一個bomb二進制可執行文件,一個bomb.c C源文件。實驗主要設置6個關卡phase

原创 CSAPP課程與實驗

這個學期一直很忙,還沒有入學,就預先收到了導師對CSAPP課程助教的邀請,去網上了解了一下CSAPP課程,感覺非常有用的一門課,可惜當年我們讀大學的時候沒有開。今年這個學期我們學校也是第一次課程改革,將大二的計算機組成這門課換成了CSAP

原创 又重新開通了csdn博客

記得09年剛入大學時,註冊了一個csdn賬號,後來csdn密碼泄露,後來那個博客就沒有再使用了。一直以來也沒有寫博客的習慣,到論壇逛博客也都是隻看不發言,平時每天都是爭分多秒的過的,感覺自己每次邊學習邊記錄的習慣,比較高效,畢竟博客還要特

原创 引用與數組,引用與類,引用與返回值,引用與多態,const引用,引用類型

引用(reference) 1 &不是取地址,只是引用的標示符號。 2 引用必須被初始化,因爲引用是被引用對象的別名,那就要先要有被引用對象,比如一個人有一個綽號,那麼引用相當於這個綽號,那麼必須有一個綽號對應的人這個對象。一旦定義這個別

原创 底層理解函數調用實現過程 棧結構 棧過程

首先寄存器使用慣例: eip :指令地址寄存器,保存程序計數器的值,當前執行的指令的下一條指令的地址值,16位中爲ip,32位爲eip。eip不可以直接賦值,一般都是cpu自動加1來更新,指令call和ret以及jmp可以改變eip的值

原创 CSAPP 深入理解計算機系統課程實驗 bomb實驗 反向編譯 彙編(4)

隱藏關卡。Secretphase 這個隱藏關卡還是很難發現的,自己帶的班上的學生中,僅有3個學生髮現並解除了炸彈。中間也出現了一些小小問題,在給他們驗收的時候也有意識的去引導他們發現一些小問題,並討論解決。 首先是隱藏關卡的發現,其實在彙