Необходимо открыть PE файл. Ищу наиболее удобный для работы способ. Пробовал такую связку CreateFile, CreateFileMapping с флагом SEC_IMAGE, MapViewOfFile После изменения аттрибутов доступа к страницам памяти в которую спроецирован файл на PAGE_READWRITE я записываю и читаю данные из файла через его проекцию. Но потом после вызова UnmapViewOfFile и CloseHandle изменения не сохраняются на диск... Похоже дело из за флага SEC_IMAGE. Как поступить? З.Ы. можно конечно вручную настроить образ, выполнив работу аналогичную CreateFileMapping... но зачем делать то что уже сделано.
Можно воспользоваться функцией Код (Text): BOOL WINAPI FlushViewOfFile( __in LPCVOID lpBaseAddress, __in SIZE_T dwNumberOfBytesToFlush ); Если вторым параметром передать 0, то весь образ скинется на диск. Зы. Думаю это с SEC_COMMIT будет работать.
twgt, не пашет уже пробовал. Изменения упорно не хотят применяться к файлу, хотя в памяти эти значения меняются без проблем. Похоже что дело все-таки в флаге. А SEC_COMMIT флаг в купе с SEC_IMAGE НЕ пашет... GetLastError=87
Я вроде и не предлогал эти флаги совмещать У файла не стоит аттрибут "только на чтение"?! Показывай код от CreateFile до UnmapViewOfFile.
Не стал морочить себе голову, файл открываю без флага SEC_IMAGE, Все RVA конверчу в RAW и все норм пашет и образ сохраняется.