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

Discussion in 'WASM.WIN32' started by Clerk, May 14, 2008.

  1. Clerk

    Clerk Забанен

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

    n0name New Member

    Blog Posts:
    0
    Joined:
    Jun 5, 2004
    Messages:
    4,336
    Location:
    Russia
    вручную.
     
  3. Clerk

    Clerk Забанен

    Blog Posts:
    0
    Joined:
    Jan 4, 2008
    Messages:
    6,689
    Location:
    РБ, Могилёв
    Нехочется вручную, ниужеле никак нельзя ?
     
  4. z0mailbox

    z0mailbox z0

    Blog Posts:
    0
    Joined:
    Feb 3, 2005
    Messages:
    635
    Location:
    Russia СПБ
    вот мой код, вин32к не пробовал, но остальные дрова мапятся дублем ОК
    Code (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

    Blog Posts:
    0
    Joined:
    Jun 5, 2004
    Messages:
    4,336
    Location:
    Russia
    z0mailbox
    дык r3 имеется ввиду.
     
  6. asd

    asd New Member

    Blog Posts:
    0
    Joined:
    Mar 12, 2005
    Messages:
    952
    Location:
    Russia
    Clerk
    А если сделать копию, и поменять у неё ImageBase?
     
  7. Clerk

    Clerk Забанен

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

    z0mailbox z0

    Blog Posts:
    0
    Joined:
    Feb 3, 2005
    Messages:
    635
    Location:
    Russia СПБ
    ща не поленился проверил из ядра - отлично смапился win32k.sys на адрес 0х00170000 :)
    винда 2003 32-битная
    незнаю даже что и предположить-посоветовать, походи дебагером
     
  9. Clerk

    Clerk Забанен

    Blog Posts:
    0
    Joined:
    Jan 4, 2008
    Messages:
    6,689
    Location:
    РБ, Могилёв
    Из режима ядра просто, а вот их юзермода проблемно..