代码被视为可移植可执行(PE)格式的初始化数据,以及初始化和单一化数据之间究竟有什么区别?
根据以前的经验,我将初始化数据视为字符串或整数,但可执行代码是否也被称为PE上下文中的初始化数据?
此外,初始化和单一化数据之间究竟有什么区别?
文件说:
节数据节的初始化数据由简单的字节块组成 . 但是,对于包含全零的节,不需要包含节数据 . ...
每个进程基本上由进程可访问的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 .
1 回答
每个进程基本上由进程可访问的4个地址空间部分组成,其中一个是.Data部分,它分为:
1) Initialized Read Only Data :它包含由程序初始化的数据元素,它们仅在执行过程中被读取 .
2) Initialized Read Write Data :它包含由程序初始化的数据元素,并将在流程执行过程中进行修改 .
3) Uninitalized Data :这包含元素未由程序初始化,并在进程执行前设置为0 . 这些也可以修改并称为BSS(块起始符号) . 这些元素的优点是,系统不会在进程开始执行之前由OS初始化为0 .
任何程序的代码都可以在.Text部分找到,它包含要执行的实际指令,在许多操作系统上,它被设置为只读,类似于初始化的只读数据 .
因此它们之间的区别在于它们的值,初始化数据具有在进程开始之前由程序设置的唯一值,并且可以是读写或只读数据,另一方面,未初始化的数据值由OS设置为0 ,你可以看看here .
Amrane Abdelkader .