Доброго времени суток. Возникла проблема. Надо спроецировать в процесс модуль win32k.sys. Секция создаётся(SEC_IMAGE), но спроецировать через ZwMapViewOfSection не удаётся, возвращается STATUS_CONFLICTING_ADDRESSES, при любом значении BaseAddress, даже если по выбору системы(NULL). Возможно это изза того, что OptionalHeader.ImageBase = 0BF800000h, указывает за пределы пользовательского диапазона адресов. Как быть ?
вот мой код, вин32к не пробовал, но остальные дрова мапятся дублем ОК Code (Text): InitializeObjectAttributes( &oa, &uname, OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE, NULL, NULL ); status = ZwOpenFile( &file_handle, GENERIC_READ, &oa, &io_status, FILE_SHARE_READ, FILE_NON_DIRECTORY_FILE ); if( NT_SUCCESS( status ) ) { status = ZwCreateSection( §ion_handle, SECTION_ALL_ACCESS, NULL, NULL, PAGE_READWRITE, SEC_IMAGE, file_handle ); if( NT_SUCCESS( status ) ) { status = ZwMapViewOfSection( section_handle, NtCurrentProcess( ), &view_address, 0, 0, NULL, &view_size, ViewShare, 0, PAGE_READWRITE );
z0mailbox Остальные мэппируются нормально, в которых ImageBase находится в пользовательском диапазоне адресов. asd Копию не надо делать, это лишний файл на диске, ну если можно каким нибуть способом в свопе. Спроецировать через перечисление секций не проблема, я хотел сделать проще.
ща не поленился проверил из ядра - отлично смапился win32k.sys на адрес 0х00170000 винда 2003 32-битная незнаю даже что и предположить-посоветовать, походи дебагером