Сейчас на форуме: vsv1, _MBK_ (+3 невидимых)

 eXeL@B —› Вопросы новичков —› Какие поля PE-заголовка можно затерать после загрузки файла?
Посл.ответ Сообщение

Ранг: 51.7 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 22 ноября 2007 21:42
· Личное сообщение · #1

Какие поля PE-заголовка можно затерать после загрузки файла?
Что не потеряли функциональность функции типо - LoadResource...



Ранг: 31.5 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 24 ноября 2007 15:02
· Личное сообщение · #2

Ну не совсем понятен вопрос. Если я правильно понимаю тебе нада после загрузки файла удалить его заголовок - или некоторые поля. Наскока я знаю заголовок нужен только при загрузке файла, и после загрузки ОС к нему не обращается. Даже в некоторой литературе указано что приложения могут работать без загрузки заголовка в память (см. статью Загрузчик PE-файлов на RSDN), так что рискну предположить что после загрузки с заголовком можно делать все что угодно




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 24 ноября 2007 15:24
· Личное сообщение · #3

smex
есть стандартные API-функции, в которые передаётся хэндл модуля, а не имя файла на диске (заголовок затёрт только в памяти, а не на диске), GlOFF упомянул о такой ф-ции - LoadResource, которая должна иметь доступ как минимум к данным секций и ресурсов
IMAGE_NT_HEADERS, IMAGE_SECTION_HEADER, IMAGE_DATA_DIRECTORY - все эти структуры могут содержать данные, которые могут понадобиться той или иной вызываемой ф-ции. GlOFF, посмотри, к каким областям идёт обращение во время исполнения проги, проанализировав лог ты сможешь сделать вывод, какие поля используются, а какие нет.
к тому же можно предположить, что может потребоваться, например для загрузки ресурсов щтатным загрузчиком и т.п.
если пишешь протектор - может быть имеет смысл написать свой обработчик ресурсов, т.е. обработку CreateDialogParam/DialogBoxParam полностью взять на себя - тогда ты сможешь хранить ресурсы где тебе удобно, и не привязываться к секции ресурсов.

-----
EnJoy!





Ранг: 240.5 (наставник)
Активность: 0.190
Статус: Участник
Author of ACKiller

Создано: 24 ноября 2007 16:20
· Личное сообщение · #4

Из MZ-хидера - нужно оставить только сигнатуру и указатель на PE-header.

Из PE-Header'a:
нельзя трогать сигнатуру,
SizeOfOptionalHeader - имхо тоже лучше не трогать
AddressOfEntryPoint - можно, если затираем не из тлс
ImageBase - имхо лучше не трогать
SizeOfImage - можно и нужно для антидампа =)

Все остальное, в т.ч. кол-во секций имхо можно.

Про директории сказать ничего не могу.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 24 ноября 2007 16:55
· Личное сообщение · #5

SizeOfOptionalHeader трогать точно нельзя, т.к. с его помощью выясняется адрес структуры секций.

-----
EnJoy!




Ранг: 31.5 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 24 ноября 2007 23:06 · Поправил: smex
· Личное сообщение · #6

Jupiter
ты почитай, человек спрашивает уже после загрузки что можно делать с заголовком. Про диск я ни слова не писал, весь мой пост описывал про загруженный в память заголовок.

PS: хотя может он не так выразился или я не понял чего он хотел но в своем посте он спрашивал про загруженный в память заголовок




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 24 ноября 2007 23:25
· Личное сообщение · #7

smex
естественно, речь идёт о заголовке в памяти.

-----
EnJoy!




Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 24 ноября 2007 23:37
· Личное сообщение · #8

GlOFF
а нах тебе затирать? банальныя paste pe header from disk обломит все твои старания..



Ранг: 51.7 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 25 ноября 2007 20:28
· Личное сообщение · #9

sniperZ Это точно. Мне просто интересно, что можно затереть.


 eXeL@B —› Вопросы новичков —› Какие поля PE-заголовка можно затерать после загрузки файла?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати