原创 緩衝區溢出攻擊與防護

轉載請註明出處: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