IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Autorisations pour "killer" certains processus


Sujet :

MFC

  1. #1
    Membre expérimenté Avatar de DeusXL
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 300
    Par défaut Autorisations pour "killer" certains processus
    Voilà j'aurais besoin de killer quelques processus système tel svchost.exe ou alg.exe ...
    taskmgr le fait très bien tout seul mais je voudrais le faire dans un prog utilisant OpenProcess et TerminateProcess. Le code marche très bien sauf pour quelques processus, qui refusent l'accès à mon prog. Comment obtenir cet accès ?
    J'ai déjà vu d'autres prog que taskmgr le faire sans problème alors je me demande si il n'y a pas un moyen.
    Pour info je suis sous WinXP et OpenProcess me retourne :
    ERROR_ACCESS_DENIED
    5

    Ce qui est -il me semble- assez clair

  2. #2
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 101
    Par défaut
    Salut

    Je pense que certains processus sont protégs pas des threads ou alors touts simplement parce qu'ils éssentiel au fonctionnement du system d'exploitation.

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 30
    Par défaut
    il faut avoir le privilege debug_privilege.
    voici un exemple pour avoir ce privilege (API WINDOWS)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if(osver.dwPlatformId==VER_PLATFORM_WIN32_NT)
    	{
    		HANDLE hToken;
    		TOKEN_PRIVILEGES tkp;
    		OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,&hToken);       
    		tkp.PrivilegeCount = 1;
    		LookupPrivilegeValue((LPSTR) NULL, SE_DEBUG_NAME, &tkp.Privileges[0].Luid);
    		tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
    		AdjustTokenPrivileges(hToken,FALSE,&tkp,0,NULL,NULL);
    		CloseHandle(hToken);
    	}
    ++


Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo