Внутренности ядра для загрузки драйвера

Тема в разделе "WASM.WIN32", создана пользователем netex, 23 июл 2006.

  1. netex

    netex New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2005
    Сообщения:
    114
    Адрес:
    Russia
    Есть задача: изменить штатный алгоритм загрузки драйверов. (Ту часть где происходит маппирование файл с драйвером. С целью коррекции виртуальных адресов) Нужно найти функцию которая производит загрузку драйвера и для начала посмотреть как она работает с памятью.( затем ее можно будет пропатчить)
    Подскажите в какую сторону копать. (Никак не могу найти эту функцию, StartService и ZwLoadDriver уже смотрел)
     
  2. ECk

    ECk Member

    Публикаций:
    0
    Регистрация:
    9 апр 2004
    Сообщения:
    454
    Адрес:
    Russia
    MiLoadSystemImage MiCheckSystemImage
    в сорцах винды посмотри (2к)
    Там они полностью есть и мало чем отличаются от ХР-2к3.
    И преинтереснейшая вещь есть - если в драйвере выравнивание 0х1000 (INVALID_ALIGNMENT_VALUE с точки зрения ядра) - размеры секций (физические и виртуальные) не проверяются (иначе проверяются и если физ!=вирт, возвращается значение BAD_IMAGE)
     
  3. netex

    netex New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2005
    Сообщения:
    114
    Адрес:
    Russia
    Всмысле дизассемб. ядро
    Или есть исходники с комментариями? :)
     
  4. Son of God

    Son of God New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2005
    Сообщения:
    125
    Есть исходники. Ищи.
     
  5. netex

    netex New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2005
    Сообщения:
    114
    Адрес:
    Russia
    Откуда экспортируются MiLoadSystemImage MiCheckSystemImage?
    Никак не могу найти.
     
  6. Son of God

    Son of God New Member

    Публикаций:
    0
    Регистрация:
    11 сен 2005
    Сообщения:
    125
    Судя по названию, ниоткуда. MiXxx значит Memory Internal.
     
  7. netex

    netex New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2005
    Сообщения:
    114
    Адрес:
    Russia
    Они сидят в ntoskrnl. Пока попробую разобраться как они работают.
    Впринципе зная смещения в файле ntoskrn и зная куда загружен ntoskrnl можно делать прямой jump на них.