【发布时间】:2019-01-01 09:42:53
【问题描述】:
我有一个 Windows 可执行文件 .exe。我查看了文件,发现Data Directory. 在其中是Thread Local Storage 的目录条目。该条目指定了这一点:
RVA (Relative Virtual Address) of the data: 10000
Size of the data: 24
我在可执行文件中找到了节表,它包含一个名为.tls(线程本地存储)的节头。该标头指定了这一点:
Pointer to the raw data: A400
Size of the raw data: 512
可执行文件的这两部分有什么区别?他们似乎都在谈论线程本地存储,但他们指向不同的地方并指定不同的大小。
这只是一个例子。这是另一个示例:Data Directory 中是 Import Directory,Section Table 中是 Section Header,名为 .idata(导入数据)。它们包含看似矛盾的价值观。
还有其他例子。
Data Directory中的条目和the Section Table中的entries有什么区别?
【问题讨论】:
-
这完全不同。每个众所周知的数据目录都有严格的格式。部分可以是任意的,具有任意名称。每个 Data Directory 都属于某个部分。全部
标签: windows executable portable-executable