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

Langage Delphi Discussion :

Aide Sur AntiKill Process


Sujet :

Langage Delphi

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 12
    Points : 7
    Points
    7
    Par défaut Aide Sur AntiKill Process
    Bonjour

    Je cherche a un moyen d'empecher de killer (Tuer) un Process

    quand la personne veut killer avec TaskManager ou une autre application sa lui affiche un messages windows "Accées Refuser" j'ai trouver sa en c++ mais j'ai pas pu convetire le code en delphi Enfin bref.

    Merci de votre aide

    salut !

  2. #2
    Expert confirmé

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Points : 4 170
    Points
    4 170
    Par défaut
    Le code est long ? Si c'est pas trop long, poste le ici, quelqu'un pourra peut-être faire la traduction.

  3. #3
    Futur Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    OK oui

    Bon voila le code En C++ Builder

    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    DWORD SetPermissions(int  pid )
    {
    DWORD dwErr;
    HANDLE hpWriteDAC = OpenProcess( WRITE_DAC, FALSE, pid );
    dwErr =GetLastError();
     
     SID world = { SID_REVISION, 1, SECURITY_WORLD_SID_AUTHORITY, 0 };
     
    EXPLICIT_ACCESS ea =
    {
    PROCESS_TERMINATE,
    DENY_ACCESS,
    NO_INHERITANCE,
    {
    0, NO_MULTIPLE_TRUSTEE,
    TRUSTEE_IS_SID,
    TRUSTEE_IS_USER,
    reinterpret_cast<char*>( &world )
    }
    };
    ACL* pdacl = 0;
    dwErr = SetEntriesInAcl( 1, &ea, 0, &pdacl );
     
    dwErr = SetSecurityInfo( hpWriteDAC, SE_KERNEL_OBJECT,
    DACL_SECURITY_INFORMATION,
    0, 0, pdacl, 0 );
    LocalFree( pdacl );
    return dwErr;
    }

  4. #4
    Expert confirmé

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Points : 4 170
    Points
    4 170
    Par défaut
    Je ne sais pas comment traduire l'encodage du SID, en revanche ça fonctionne en donnant un nom pour définir l'utilisateur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    function SetPermissions(pid : integer) : cardinal;
    var
      hpWriteDAC : THandle;
      pdacl : PACL;
      ea : EXPLICIT_ACCESS;
      dwErr : DWORD;
      users : string;
    begin
      hpWriteDAC := OpenProcess(WRITE_DAC, false, pid);
     
      // word
      users := 'Tout le monde';
      ea.grfAccessPermissions := PROCESS_TERMINATE;
      ea.grfAccessMode := DENY_ACCESS;
      ea.grfInheritance := NO_INHERITANCE;
      ea.Trustee.pMultipleTrustee := nil;
      ea.Trustee.MultipleTrusteeOperation := NO_MULTIPLE_TRUSTEE;
      ea.Trustee.TrusteeForm := TRUSTEE_IS_NAME;
      ea.Trustee.TrusteeType := TRUSTEE_IS_WELL_KNOWN_GROUP;
      ea.Trustee.ptstrName := PWideChar(@users[1]);
     
      pdacl := nil;
      dwErr := SetEntriesInAcl(1, @ea, nil, pdacl);
      if dwErr<>0
      then RaiseLastOSError;
     
      dwErr := SetSecurityInfo(hpWriteDAC, SE_KERNEL_OBJECT, DACL_SECURITY_INFORMATION,
        nil, nil,pdacl, nil);
      if dwErr<>0
      then RaiseLastOSError;
     
      LocalFree(THAndle(pdacl));
      CloseHandle(hpWriteDAC);
    end;
    Il faut mettre Windows, AclAPI, AccCtrl dans les uses.
    Ici, j'interdis à tous les membres du groupe "Tout le monde" de tuer le process.

  5. #5
    Futur Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Salut

    Merci Franck j'ai trouver une autre Source cette fois en delphi avec MagicApiHook

    Pour le SID je dois trouver l'utilisateur en cours

    Enfin je vais tester le code Merci une deuxieme fois franck

Discussions similaires

  1. [Débutant] aide sur un envoi de texte depuis un bouton vers un autre process.
    Par dragonmouff123 dans le forum VB.NET
    Réponses: 10
    Dernier message: 01/02/2013, 15h10
  2. Aide sur Process.destroy()
    Par rampageXT dans le forum Langage
    Réponses: 4
    Dernier message: 28/05/2007, 14h38
  3. Demande d'aide sur XPDL (XML Process Definition Language)
    Par Bebert71 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 17/02/2006, 09h23
  4. [VB.NET]Aide sur les process
    Par Dnx dans le forum Windows Forms
    Réponses: 2
    Dernier message: 19/10/2005, 15h13
  5. Aide sur une fenetre
    Par Ray-j dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 29/11/2002, 08h51

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