В чем разница между записью каталога данных исполняемого файла Windows и заголовком раздела? - PullRequest
0 голосов
/ 01 января 2019

У меня есть исполняемый файл 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 и entries в the Section Table?

1 Ответ

0 голосов
/ 05 апреля 2019

exes обычно загружаются в оперативную память по адресу 0c00400000 и далее

rva adressas - это смещение после этого (например, 0x00401000, который может начинать код в оперативной памяти 0x1000)

exesтакже собраны из разделов, эти разделы при загрузке в ram обычно выровнены по 4096 (для разных страниц памяти), где в exe-файле на диске они обычно выровнены по 512 (для экономии места)

так, например, 0x00401007 адрес в оперативной памяти, будет 0x1007 в rva и 0x207 в файле ... PE формат некоторых данных дает как rvas, а некоторые как файл ofsets ... также размеры данных, содержащихся в этом разделе могут быть заданы как невыровненные(как, скажем, 177) и выровненный (например, 512), это тот же самый размер, но один выровнен, а другой нет ..

какие точные поля в pe хранят информацию, в каком формате необходимо проверить в peдетали формата (формат, который вводит в заблуждение, но после изучения показывает, что он не такой страшный)

...