![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
![]()
в структуре IMAGE_SECTION_HEADER есть такое поле: PointerToRawData, в котором находится RVA начала секции. Но если файл загружается не PE-загрузчиком, а загружается с диска, то при обращении по этому адресу будет или access violantation или же мы не туда обратимся. Нужно RVA преобразовать в файловое смещение.
как это можно сделать? |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
![]()
Задача по сути такая. Найти адрес начала и конца (для каждой секции), чтобы можно было произвести чтение/запись оттуда. Кстати, можете подсказать, сколько всего в файле секций? 16? или же их количество не ограничено и может быть вручную установлено при линковке?
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
![]()
В PE-файле есть разные RVA. Например, в IMAGE_SECTION_HEADER есть поле PointerToRawData. Это пу сути RVA на начало секции. Но нельзя им просто так пользоваться: к базовуму адресу прибавить RVA и перейти на начало. Это нельзя потому что при стандартное загрузке PE-файла в память, адреса будут немножко другими чем при загрузке PE-загрузчиком.
Задача: загрузить PE-файл как это делает PE-загрузчик. Если вам не трудно, поясните, пожалуйста поподробней этот адлгоритм, а то по тому что я нагуглил http://www.rsdn.ru/article/baseserv/peloader.xml разобраться до конца у меня, к сожалению, не получилось. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 30.10.2009
Сообщений: 114
|
![]()
>есть такое поле: PointerToRawData, в котором находится RVA начала секции.
Это не RVA, а как раз таки смещение относительно начала файла. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Критические секции | coNsept | Общие вопросы C/C++ | 7 | 09.09.2011 00:54 |
Секции PE файлов | fragment | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 11.05.2010 11:50 |
Критические секции | Altera | Общие вопросы Delphi | 2 | 25.12.2009 10:45 |
Секции | russian-stalker | Общие вопросы Delphi | 5 | 06.09.2008 20:25 |
Dib-секции | nightstalker | Win Api | 3 | 30.01.2007 20:22 |