我們先來看一個原始碼
#include <stdio.h>
#include <string.h>


main () {

              char A[12];
              char B[256];
        

              fgets(B, sizeof(B)+sizeof(A), stdin);

              if (!strcmp(A, "LOVE\n"))
                   printf("YOU WIN.\n\n");
              else
                   printf("Sorry. try it next time\n\n");
}

看完這一個範例程式原始碼,我們可以很容易的了解到一個非常簡單的Buffer Overflow例子
在這段原始碼中,我門知道堆疊(stack)記憶空間中的A跟B是兩塊連續的記憶空間,且B再A之
前,所以只要寫滿B的空間,自然而然就會寫到A的空間,所以只要寫到A空間的時候,輸入"LOVE"
字串,就可以讓判別式成立顯示"YOU WIN"
這是個比較簡單的例子
請高手別見笑
打的好累....有錯的地方記得跟我講喔~
arrow
arrow
    全站熱搜

    teamaple 發表在 痞客邦 留言(0) 人氣()