Ошибка проецирования Win32k.sys

Тема в разделе "WASM.WIN32", создана пользователем Clerk, 14 май 2008.

  1. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Доброго времени суток. Возникла проблема.
    Надо спроецировать в процесс модуль win32k.sys. Секция создаётся(SEC_IMAGE), но спроецировать через ZwMapViewOfSection не удаётся, возвращается STATUS_CONFLICTING_ADDRESSES, при любом значении BaseAddress, даже если по выбору системы(NULL). Возможно это изза того, что OptionalHeader.ImageBase = 0BF800000h, указывает за пределы пользовательского диапазона адресов. Как быть ?
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    вручную.
     
  3. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Нехочется вручную, ниужеле никак нельзя ?
     
  4. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    вот мой код, вин32к не пробовал, но остальные дрова мапятся дублем ОК
    Код (Text):
    1.     InitializeObjectAttributes( &oa, &uname, OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE, NULL, NULL );
    2.  
    3.     status = ZwOpenFile(
    4.         &file_handle,
    5.         GENERIC_READ,
    6.         &oa,
    7.         &io_status,
    8.         FILE_SHARE_READ,
    9.         FILE_NON_DIRECTORY_FILE );
    10.  
    11.     if( NT_SUCCESS( status ) )
    12.     {
    13.         status = ZwCreateSection(
    14.             &section_handle,
    15.             SECTION_ALL_ACCESS,
    16.             NULL,
    17.             NULL,
    18.             PAGE_READWRITE,
    19.             SEC_IMAGE,
    20.             file_handle );
    21.  
    22.         if( NT_SUCCESS( status ) )
    23.         {
    24.             status = ZwMapViewOfSection(
    25.                 section_handle,
    26.                 NtCurrentProcess( ),
    27.                 &view_address,
    28.                 0,
    29.                 0,
    30.                 NULL,
    31.                 &view_size,
    32.                 ViewShare,
    33.                 0,
    34.                 PAGE_READWRITE );
     
  5. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    z0mailbox
    дык r3 имеется ввиду.
     
  6. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    Clerk
    А если сделать копию, и поменять у неё ImageBase?
     
  7. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    z0mailbox
    Остальные мэппируются нормально, в которых ImageBase находится в пользовательском диапазоне адресов.
    asd
    Копию не надо делать, это лишний файл на диске, ну если можно каким нибуть способом в свопе.
    Спроецировать через перечисление секций не проблема, я хотел сделать проще.
     
  8. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    ща не поленился проверил из ядра - отлично смапился win32k.sys на адрес 0х00170000 :)
    винда 2003 32-битная
    незнаю даже что и предположить-посоветовать, походи дебагером
     
  9. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Из режима ядра просто, а вот их юзермода проблемно..