Создается процесс в CREATE_SUSPENDED , я хочу записать по определенному адресу данного процесса данные через (Virtualprotect)NtWriteVirtualMemory , но действие обламывается так как тип памяти по этому адрессу там может быть MAP или PRIVATE - не всегда IMAGE, возможно ли в данном случае как-то решить эту проблему или нет, то есть каким-то образом изменить тип памяти на нужный для возможности использовать VirtualAllocEx/WriteProcessMemory и т.д. ?
karabas_barabas Можно сохранить данные, освободить регион, выделить с необходимыми атрибутами и типом и записать в него сохранённые данные. Но для проекций такое очень опасно, так как память разделяемая часто.
Clerk беру все риски на себя что имеется ввиду VirtualFree или ZwUnmapviewOfSection ? пробую делать ZwUnmapviewOfSection возвращает 0xC0000019 NT_STATUS_NOT_MAPPED_VIEW "Attempt to access invalid address."
karabas_barabas Память приватная, а не проекция. Такой атрибуты можно изменять из R на R/W через NtProtectVirtualMemory. NtUnmapViewOfSection. Разумеется вначале нужно определить тип памяти и атрибуты её.