首页 文章

代码被视为可移植可执行文件格式的初始化数据,以及初始化和单元化数据之间究竟有什么区别?

提问于
浏览
-1

代码被视为可移植可执行(PE)格式的初始化数据,以及初始化和单一化数据之间究竟有什么区别?

根据以前的经验,我将初始化数据视为字符串或整数,但可执行代码是否也被称为PE上下文中的初始化数据?

此外,初始化和单一化数据之间究竟有什么区别?

文件说:

节数据节的初始化数据由简单的字节块组成 . 但是,对于包含全零的节,不需要包含节数据 . ...

1 回答

  • 1

    每个进程基本上由进程可访问的4个地址空间部分组成,其中一个是.Data部分,它分为:

    1) Initialized Read Only Data :它包含由程序初始化的数据元素,它们仅在执行过程中被读取 .

    2) Initialized Read Write Data :它包含由程序初始化的数据元素,并将在流程执行过程中进行修改 .

    3) Uninitalized Data :这包含元素未由程序初始化,并在进程执行前设置为0 . 这些也可以修改并称为BSS(块起始符号) . 这些元素的优点是,系统不会在进程开始执行之前由OS初始化为0 .

    代码被视为可移植可执行(PE)格式的初始化数据

    任何程序的代码都可以在.Text部分找到,它包含要执行的实际指令,在许多操作系统上,它被设置为只读,类似于初始化的只读数据 .

    初始化和单一化数据之间究竟有什么区别?

    因此它们之间的区别在于它们的值,初始化数据具有在进程开始之前由程序设置的唯一值,并且可以是读写或只读数据,另一方面,未初始化的数据值由OS设置为0 ,你可以看看here .

    Amrane Abdelkader .

相关问题