J'ai remarqué que GoogleToolbarNotifier.exe ne peut pas être supprimé à partir de l'Explorateur de processus. Il renvoie "Accès refusé". Il s'exécute en tant qu'utilisateur, il exécute la priorité "Normal" et il s'exécute à partir de Program Files.Empêche le processus utilisateur d'être tué avec "End Process" à partir de l'Explorateur de processus
Comment ont-ils fait?
Je pense qu'il pourrait y avoir un moyen de modifier l'ACL, ou marquer le processus comme «critique», mais je n'arrive pas à trouver quelque chose.
Mise à jour:
J'ai trouvé la réponse avec un bon peu de creuser. K. @ Alex a eu raison de cette autorisation de PROCESS_TERMINATE a été retiré du processus, mais je voulais fournir la réponse dans le code:
static const bool ProtectProcess()
{
HANDLE hProcess = GetCurrentProcess();
EXPLICIT_ACCESS denyAccess = {0};
DWORD dwAccessPermissions = GENERIC_WRITE|PROCESS_ALL_ACCESS|WRITE_DAC|DELETE|WRITE_OWNER|READ_CONTROL;
BuildExplicitAccessWithName(&denyAccess, _T("CURRENT_USER"), dwAccessPermissions, DENY_ACCESS, NO_INHERITANCE);
PACL pTempDacl = NULL;
DWORD dwErr = 0;
dwErr = SetEntriesInAcl(1, &denyAccess, NULL, &pTempDacl);
// check dwErr...
dwErr = SetSecurityInfo(hProcess, SE_KERNEL_OBJECT, DACL_SECURITY_INFORMATION, NULL, NULL, pTempDacl, NULL);
// check dwErr...
LocalFree(pTempDacl);
CloseHandle(hProcess);
return dwErr == ERROR_SUCCESS;
}
Est-ce qu'il s'exécute avec des permissions d'administrateur et PE n'est pas? – Sushisource
PE s'exécute avec des autorisations admin (élevées). Le processus est un utilisateur normal non administrateur. – Blazes
cela fonctionne très bien, merci. Vous devez le publier comme une réponse et l'accepter –