Есть задача: изменить штатный алгоритм загрузки драйверов. (Ту часть где происходит маппирование файл с драйвером. С целью коррекции виртуальных адресов) Нужно найти функцию которая производит загрузку драйвера и для начала посмотреть как она работает с памятью.( затем ее можно будет пропатчить) Подскажите в какую сторону копать. (Никак не могу найти эту функцию, StartService и ZwLoadDriver уже смотрел)
MiLoadSystemImage MiCheckSystemImage в сорцах винды посмотри (2к) Там они полностью есть и мало чем отличаются от ХР-2к3. И преинтереснейшая вещь есть - если в драйвере выравнивание 0х1000 (INVALID_ALIGNMENT_VALUE с точки зрения ядра) - размеры секций (физические и виртуальные) не проверяются (иначе проверяются и если физ!=вирт, возвращается значение BAD_IMAGE)
Они сидят в ntoskrnl. Пока попробую разобраться как они работают. Впринципе зная смещения в файле ntoskrn и зная куда загружен ntoskrnl можно делать прямой jump на них.