![]() |
eXeL@B —› Вопросы новичков —› Какие поля PE-заголовка можно затерать после загрузки файла? |
Посл.ответ | Сообщение |
|
Создано: 22 ноября 2007 21:42 · Личное сообщение · #1 |
|
Создано: 24 ноября 2007 15:02 · Личное сообщение · #2 Ну не совсем понятен вопрос. Если я правильно понимаю тебе нада после загрузки файла удалить его заголовок - или некоторые поля. Наскока я знаю заголовок нужен только при загрузке файла, и после загрузки ОС к нему не обращается. Даже в некоторой литературе указано что приложения могут работать без загрузки заголовка в память (см. статью Загрузчик PE-файлов на RSDN), так что рискну предположить что после загрузки с заголовком можно делать все что угодно ![]() |
|
Создано: 24 ноября 2007 15:24 · Личное сообщение · #3 smex есть стандартные API-функции, в которые передаётся хэндл модуля, а не имя файла на диске (заголовок затёрт только в памяти, а не на диске), GlOFF упомянул о такой ф-ции - LoadResource, которая должна иметь доступ как минимум к данным секций и ресурсов IMAGE_NT_HEADERS, IMAGE_SECTION_HEADER, IMAGE_DATA_DIRECTORY - все эти структуры могут содержать данные, которые могут понадобиться той или иной вызываемой ф-ции. GlOFF, посмотри, к каким областям идёт обращение во время исполнения проги, проанализировав лог ты сможешь сделать вывод, какие поля используются, а какие нет. к тому же можно предположить, что может потребоваться, например для загрузки ресурсов щтатным загрузчиком и т.п. если пишешь протектор - может быть имеет смысл написать свой обработчик ресурсов, т.е. обработку CreateDialogParam/DialogBoxParam полностью взять на себя - тогда ты сможешь хранить ресурсы где тебе удобно, и не привязываться к секции ресурсов. ----- EnJoy! ![]() |
|
Создано: 24 ноября 2007 16:20 · Личное сообщение · #4 Из MZ-хидера - нужно оставить только сигнатуру и указатель на PE-header. Из PE-Header'a: нельзя трогать сигнатуру, SizeOfOptionalHeader - имхо тоже лучше не трогать AddressOfEntryPoint - можно, если затираем не из тлс ImageBase - имхо лучше не трогать SizeOfImage - можно и нужно для антидампа =) Все остальное, в т.ч. кол-во секций имхо можно. Про директории сказать ничего не могу. ![]() |
|
Создано: 24 ноября 2007 16:55 · Личное сообщение · #5 |
|
Создано: 24 ноября 2007 23:06 · Поправил: smex · Личное сообщение · #6 Jupiter ты почитай, человек спрашивает уже после загрузки что можно делать с заголовком. Про диск я ни слова не писал, весь мой пост описывал про загруженный в память заголовок. PS: хотя может он не так выразился или я не понял чего он хотел но в своем посте он спрашивал про загруженный в память заголовок ![]() |
|
Создано: 24 ноября 2007 23:25 · Личное сообщение · #7 |
|
Создано: 24 ноября 2007 23:37 · Личное сообщение · #8 |
|
Создано: 25 ноября 2007 20:28 · Личное сообщение · #9 |
![]() |
eXeL@B —› Вопросы новичков —› Какие поля PE-заголовка можно затерать после загрузки файла? |