iT邦幫忙

0

0 day 安全筆記 第二章 基本知識 上

OS:XP SP3
編譯器: DEV C++ 4.9.9.2

工具:
OD (ollydbg)
CFF Explorer

實驗目的:了解程式如何儲存資料

#include <stdio.h>
#include <stdlib.h>
void func(void);

//全域變數 
int g1=0;
int g2=1;



int main()
{
    //區域變數 
    int a=2;
    int b=3;
    
    func();
    
    
    system("pause");
    return 0;
    
}


void func(void)
{    
     //區域變數 
     int x=7;
     int y=8;
     
     
}

img

img

1.代碼區(.text):這個區域存儲著被裝入執行的二進制機器代碼,處理器會到這個區域取指並執行。

2.數據區(.data):用於存儲全局變量等。

3.數據段(.rdata):,資源數據段,程序用到什麼資源數據都在這裡(包括自己打包的,還有開發工具打包的)

4.堆區(heap):進程可以在堆區動態地請求一定大小的內存,並在用完之後歸還給堆區。動態分配和回收是堆區的特點。

5.棧區(stack):用於動態地存儲函數之間的調用關係,以保證被調用函數在返回時恢復到母函數中繼續執行。

加上 imageBase: 00400000

img

(1)全域變數 (00400000+2000) (.data段)

(2)主函數的區域變數

(3)函數的區域變數

img

00400000+3000(數據段 資源區) (.rdata段)

system("pause") //這行用了 pause 字串 

img

如有問題或錯誤歡迎指教,謝謝。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言