Информация об изменениях

Сообщение Re: PsSetLoadImageNotifyRoutine:Create всегда 15 от 24.03.2017 20:50

Изменено 24.03.2017 21:18 -prus-

Re: PsSetLoadImageNotifyRoutine:Create всегда 15
Здравствуйте, pva, Вы писали:

pva>Привет,


pva>регистрирую колбек
pva>    PsSetLoadImageNotifyRoutine(ModuleImageLoadedNotify);
pva>
pva>void ModuleImageLoadedNotify(PUNICODE_STRING FullImageName, HANDLE ProcessId, PIMAGE_INFO ImageInfo, BOOLEAN Create) {
pva>    moduleDebugPrint((__FUNCTION__"(name: %wZ, base: 0x%p, size: 0x%08x, create: %d)\n",
pva>        FullImageName, ImageInfo->ImageBase, ImageInfo->ImageSize, Create));
pva>}

pva>Win7 x64 (UPD). Create всегда прилетает 15 что на загрузке что на выгрузке. ЧЯДТ?

Регистрируя этот колбек вы сможете только мониторить загрузку (мапинг) пользовательского модуля или драйвера. Выгрузку вы увидите.

Called by the operating system to notify the driver when a driver image or a user image (for example, a DLL or EXE) is mapped into virtual memory


И там в документации у MS походе опечатка как раз в описании последнего параметра для SetLoadImageNotifyRoutine. Там для параметра Create написано:

Create [in]
Indicates whether the process was created (TRUE) or deleted (FALSE).


Походу там копипаст из SetCreateProcessNotifyRoutine.

Ну а по поводу 15 — BOOLEAN в wdk объявляна так:
typedef UCHAR BOOLEAN;


Нужно дизасмить ядро и там смотреть, почему именно 15.
Re: PsSetLoadImageNotifyRoutine:Create всегда 15
Здравствуйте, pva, Вы писали:

pva>Привет,


pva>регистрирую колбек
pva>    PsSetLoadImageNotifyRoutine(ModuleImageLoadedNotify);
pva>
pva>void ModuleImageLoadedNotify(PUNICODE_STRING FullImageName, HANDLE ProcessId, PIMAGE_INFO ImageInfo, BOOLEAN Create) {
pva>    moduleDebugPrint((__FUNCTION__"(name: %wZ, base: 0x%p, size: 0x%08x, create: %d)\n",
pva>        FullImageName, ImageInfo->ImageBase, ImageInfo->ImageSize, Create));
pva>}

pva>Win7 x64 (UPD). Create всегда прилетает 15 что на загрузке что на выгрузке. ЧЯДТ?

Регистрируя этот колбек вы сможете только мониторить загрузку (мапинг) пользовательского модуля или драйвера. Выгрузку вы не увидите.

Called by the operating system to notify the driver when a driver image or a user image (for example, a DLL or EXE) is mapped into virtual memory


И там в документации у MS походе опечатка как раз в описании последнего параметра для SetLoadImageNotifyRoutine. Там для параметра Create написано:

Create [in]
Indicates whether the process was created (TRUE) or deleted (FALSE).


Походу там копипаст из SetCreateProcessNotifyRoutine.

Ну а по поводу 15 — BOOLEAN в wdk объявляна так:
typedef UCHAR BOOLEAN;


Нужно дизасмить ядро и там смотреть, почему именно 15.