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

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


<<:  0 day 安全笔记 第二章 基本知识 下

>>:  error CS0246: 找不到类型或命名空间名称 'NewsPaper'

网速单位的陷阱:bps

聊了这麽多上网的服务,或许大家最在意的还是上网的速度吧! 但你知道 ISP 们平常所说的网路速度和你...

【在厨房想30天的演算法】Day 23 资讯安全与演算法 : 前言

Aloha!又是我少女人妻 Uerica!今天老公特地带我出门去餐厅吃饭,享受我们的两人时光,在老公...

App Inventor 学习笔记 2 : 密码的张眼与闭眼

现在的密码都会有贴心的 张眼模式, 让我们可以看到所输入的密码是否正确, AI2的PasswordT...

[Day 02] 环境建置(一) - 安装VS Code、NodeJS

Day 02 和 Day 03 我们会来将环境建置完毕,环境安装完成後就可以开始使用SASS了! 我...

react 大冒险-setTimeout setInterval in react -day 24

今天来说明如何在 react 内执行 setTimeout 跟 setInterval 复习概念,在...