原创 緩衝區溢出攻擊與防護
轉載請註明出處:http://blog.csdn.net/wangxiaolong_china 緩衝區溢出的攻擊大致分爲以下幾類: 1. 棧溢出(stack smashing) 未檢查輸入緩衝區長度,導致數組越界,覆蓋棧中局
原创 進程地址空間分佈
轉載請註明出處:http://blog.csdn.net/wangxiaolong_china 對於一個進程,其空間分佈如下圖所示: C程序一般分爲: 1.程序段:程序段爲程序代碼在內存中的映射.一個程序可以在內存中多有個副本.
原创 Linux下基本棧溢出攻擊
轉載請註明出處:http://blog.csdn.net/wangxiaolong_china 1.1 Linux棧溢出保護機制 基本的棧溢出攻擊,是最早產生的一種緩衝區溢出攻擊方法,它是所有其他緩衝區溢出攻擊的基礎。但是,由
原创 函數調用棧分析
轉載請註明出處:http://blog.csdn.net/wangxiaolong_china 關於堆棧空間利用最核心的一點就是:函數調用棧。而要深入理解函數調用棧,最重要的兩點就是:棧的結構變化,ebp寄存器的作用。 首先要認識到
原创 ret2reg緩衝區溢出攻擊
轉載請註明出處:http://blog.csdn.net/wangxiaolong_china 被溢出程序源碼如下: root@linux:~/pentest# cat vulnerable.c #include <stdio.h
原创 詳解大端模式和小端模式
詳解大端模式和小端模式 一、大端模式和小端模式的起源 關於大端小端名詞的由來,有一個有趣的故事,來自於Jonathan Swift的《格利佛遊記》:Lilliput和Blefuscu這兩個強國在過去的36個月中一直在苦戰。
原创 c++容器類
什麼是容器 首先,我們必須理解一下什麼是容器,在C++ 中容器被定義爲:在數據存儲上,有一種對象類型,它可以持有其它對象或指向其它對像的指針,這種對象類型就叫做容器。很簡單,容器就是保存其它對象的對象,當然這是一個樸素的理解,這種“對
原创 Local Stack Overflow(Basic Module)
Local Stack Overflow (Basic Module) Gotfault Security Community
原创 C++流和文件流操作
在程序設計中,數據輸入/輸出(I/O)操作是必不可少的,C++語言的數據輸入/輸出操作是通過I/O流庫來實現的。C++中把數據之間的傳輸操作稱爲流,流既可以表示數據從內存傳送到某個載體或設備中,即輸出流,也可以表示數據從某個載體或設備傳送
原创 C++程序checklist
轉載請註明出處:http://blog.csdn.net/wangxiaolong_china 檢查範圍 檢查項 檢查原因 典型事例 命名規範 有意義的變量或常量命名符合習慣嗎? 提高可讀性 比如程序中約
原创 C++ STL
一、STL簡介 STL(Standard Template Library,標準模板庫)是惠普實驗室開發的一系列軟件的統稱。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普實驗室工作時所開
原创 linux C 遍歷目錄及其子目錄
linux C 遍歷目錄及其子目錄 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <dirent.h> #include <sys/stat
原创 C++ string函數
string類的構造函數: string(const char *s); //用c字符串s初始化 string(int n,char c); //用n個字符c初始化 此外,string類還支持默認構造函數和複製構造函數,如s
原创 linux下微秒級定時器
Linux下的微秒級定時器: usleep,nanosleep, select, pselect 測試代碼如下: #include<stdio.h> #include<stdlib.h> #include<time.h> #include
原创 c++中getopt和getopt_long的使用方法
getopt(分析命令行參數) 相關函數 表頭文件 #include<unistd.h> 定義函數 int getopt(int argc,char * const argv[ ],const char * optstr