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