Данный был найден на форуме rsdn.ru(нашел не я. поэтому источнику информации огромное спасибо). Путь, как утверждает автор, совершенно легальный и работает еще с W2K. Был успешно реализован на Windows 7. Итак приступим.
1. создайте в разделе \\Registry\\MACHINE\\System\\CurrentControlSet\\Control\\Session Manager\\AppCertDlls ключ с именем AppSecDll типа REG_EXPAND_SZ, куда положите, что-то типа %SystemRoot%\system32\<ваша>.dll… На самом деле их там может быть много, имейте это ввиду.
2.В этой вашей dll’ке должна быть точка входа CreateProcessNotify …
NTSTATUS CreateProcessNotify ( LPCWSTR lpApplicationName, ULONG Reason );
Reason всегда будет —
либо APPCERT_IMAGE_OK_TO_RUN = 1
либо APPCERT_CREATION_ALLOWED = 2 или APPCERT_CREATION_DENIED = 3
При вызове с APPCERT_IMAGE_OK_TO_RUN, вас как бы спрашивают “этот имедж ОК или нет”. Если вас программа устаривает то верните STATUS_SUCCESS, не устаривает верните STATUS_UNSUCCESSFUL…
При вызове с APPCERT_CREATION_ALLOWED или APPCERT_CREATION_DENIED, вас уведомляют об результатах голосования…
То есть — если APPCERT_CREATION_ALLOWED то процесс с этим именем будет образован, ну и если APPCERT_CREATION_DENIED то соответсвенно нет.
Даже если вы вернули APPCERT_IMAGE_OK_TO_RUN, а другая после вас загруженая такая же dll на этот образ вернет APPCERT_CREATION_DENIED, то будет действовать последний резьюм. Ну и наоборот.
ogo.. radui ba4utu novui post)). treba bude sprobuvatu.
Dobavutu mojna prosto byd’-iaky dll, v iakii eksportyet’s’a
NTSTATUS CreateProcessNotify ( LPCWSTR lpApplicationName, ULONG Reason );
vobwem poprobyiy i napuwy bil’we. poku we ne vstug 😦