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

如有问题或错误欢迎指教,谢谢。


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章