linux環境下執行結果
/* demonstration of buffer overflow */
#include #include /* implementation of library function gets() */
char *gets(char *dest)
*p = '\0';
return dest;
}/* read input line and write it back */
void echo()
void call_echo()
/*void smash()
*/int main()
此**用於檢測陣列元素的儲存。
gets //gets從標準輸入裝置讀字串函式,其可以無限讀取,不會判斷上限,以回車結束讀取,所以程式設計師應該確保buffer的空間足夠大,以便在執行讀操作時不發生溢位。gets解釋
puts //puts()函式用來向標準輸出裝置(螢幕)輸出字串並換行,具體為:把字串輸出到標準輸出裝置,將』\0』轉換為回車換行。其呼叫方式為,puts(s);其中s為字串字元(字串陣列名或字串指標)。puts解釋
exit(0); //exit()是c語言中的乙個終止函式。exit() 結束當前程序/當前程式/,在整個程式中,只要呼叫 exit ,就結束。exit解釋
當輸入字串長度小於4時,資料儲存在陣列定義的儲存空間。當輸入字串長度超過4時,字串中超過的字元會自動存入棧中,輸出時為出棧。
使用 objdump -s a.out 可檢視相應**的彙編**。
Linux下Apache Python環境搭建
一.環境說明 1.系統環境 centos release 5.4 final 2.軟體版本 apache 2.2.3 python 2.6.6 mod python 3.3.1 二.安裝apache 安裝過程略。2.如果使用系統自帶的apache,則需要檢視系統是否安裝httpd devel包。操作...
Linux環境下FTP環境搭建
目錄 一 安裝 ftp 服務 二 檢視當前 ftp 服務狀態 三 通過 service 的方式來 啟動 檢視 停止和重啟 ftp服務 四 通過指令碼的方式來 啟動 檢視 停止和重啟 ftp服務 root localhost data rpm q vsftpd 檢查ftp服務是否安裝,如果沒有安裝則安...
linux下列印呼叫棧
include include include include stacktrace.h 列印呼叫棧的最大深度 define dump stack depth max 16 列印呼叫棧函式 void dump trace char stack strings null int stack depth...