![]() |
eXeL@B —› Вопросы новичков —› Вопрос по работе с РЕ файлами в делфи |
Посл.ответ | Сообщение |
|
Создано: 31 декабря 2008 17:35 · Личное сообщение · #1 |
|
Создано: 31 декабря 2008 21:09 · Личное сообщение · #2 |
|
Создано: 01 января 2009 02:50 · Личное сообщение · #3 |
|
Создано: 01 января 2009 02:54 · Личное сообщение · #4 |
|
Создано: 01 января 2009 03:14 · Поправил: coderess · Личное сообщение · #5 Ошибка была: не тот пример привел, вот он верный: Code:
После вызова MapViewOfFile в EAX возвращается (в mPtr присваевается) значение спроецированного файла в памяти, ниже дамп в памяти: Code:
Как видно из дампа, в начале идет MZ-сигнатура и по адресу 00A20100(в памяти) находится PE-сигнатура (50 45 00 00), если мы вызовем: Code:
т.е. увеличим на 1, значение в памяти, после выполнения этой команды мы получим в памяти NZP, вместо MZP, если необходимо изменить поля PE-файла, то стоит воспользоваться, PE-структурой в которой описаны все необходимые смещения к необходимым нам опциям в PE-файле, допустим проверяем сигнатуры в спроецированном PE-файле, следующим образом: Code:
И конечно же в конце работы с проецированным файлом не забываем освободить рессурсы Code:
Как то так оно все работает =) Добавлено: Не сказал о самом главном - после изменений они сбрасываются на диск, т.е. при изменени файла в памяти, изменения произойдут и на диске(в спроецированном файле) ----- Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes ![]() |
|
Создано: 01 января 2009 22:26 · Поправил: SVIN95 · Личное сообщение · #6 |
![]() |
eXeL@B —› Вопросы новичков —› Вопрос по работе с РЕ файлами в делфи |
Эта тема закрыта. Ответы больше не принимаются. |