gpt4 book ai didi

alignment - 什么是 "alignment",以及如何从一种对齐方式转换为另一种对齐方式?

转载 作者:行者123 更新时间:2023-12-04 23:09:40 32 4
gpt4 key购买 nike

以下是从节对齐转换为文件对齐的步骤:

  • 找到数据的 RVA
  • 从 RVA 导出引用的数据所属的部分。这是微不足道的,因为部分不重叠。文件头
  • 中提供了各个部分的起始地址。
  • 找出RVA和section的起始地址的差值就可以找到数据偏移量,即该数据在一个section内的偏移量。
  • 从文件头中,对于同一节,找到文件中同一节的位置。
  • 将数据偏移量添加到文件中节的位置,以找到文件中数据的地址。

  • 但我就是不明白,有人可以详细说明一下吗?

    最佳答案

    对齐是一个四舍五入的值。节数据大小被四舍五入以提高效率,因为操作系统无论如何都会以块的形式移动内容。

    文件对齐通常是 512 字节,适合大多数文件系统的块大小。

    Section Alignment 通常为 4096 字节,适合内存页的大小。

    因此,如果您有一个包含 的部分(如“.text”)的 PE 文件513 字节数据:

  • 栏目 .text将四舍五入为 1024 文件上的字节数。
  • 栏目 .text将四舍五入为 4096 内存中的字节。

  • 请注意文件和内存中可能存在的空闲空间量。

    我不确定您为什么要“从一种对齐方式转换为另一种对齐方式”。你得到的食谱让练习的目标成为一个谜。如果您的目标是操作 PE 文件,那么您只需要考虑文件对齐。 Windows 加载程序将在将其放入内存时处理部分对齐内容,因此您通常根本不需要考虑这一点。

    您可以阅读更多关于 PE here .

    关于alignment - 什么是 "alignment",以及如何从一种对齐方式转换为另一种对齐方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3756994/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com