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

Windows Discussion :

bloquer le fonctionnement d'une application


Sujet :

Windows

  1. #1
    Membre averti
    Avatar de witch
    Inscrit en
    Mai 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2007
    Messages : 346
    Points : 335
    Points
    335
    Par défaut bloquer le fonctionnement d'une application
    salut
    j'essaie de trouver une solution pour bloquer le fonctionnement de (l'application) msn messenger, vue que ça utilise plusieurs serveurs avec à chaque connexion des ip differents que permettent de se connecter sans aucun probleme, j'ai pensé à creer un programme qui permet de le blquer tous simplement, l'idée est là mais comment faire ça ?et avec quel langages de programmation?
    j'ai Winxp sp2 et je developpe sur vb.net
    merci pour votre attention

  2. #2
    Membre averti
    Avatar de witch
    Inscrit en
    Mai 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2007
    Messages : 346
    Points : 335
    Points
    335
    Par défaut
    je sais pas il ya toujours pas de réponse pour ce sujet, est ce que c'est exageré ou qu'il ya pas de solution, enfin mais au moins des reponses negatives

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Bonjour
    On peut bloquer une application en ajoutant des clefs dans la base de registre :
    - par son nom, avec des wildcards autorisés (ce qui permet de bloquer quel que soit le chemin)
    - par son checksum (il faut une clef par version)
    L'utilisateur obtient le message joint.
    Mais c'est contournable. Perso, mon administrateur a essayé de bloquer Mozilla Firefox par la clef "*Firefox.exe" mais je contourne en le renommant "Firefox_.exe". Par contre GoogleEarth j'ai pas insisté...
    Si l'utilisateur n'a pas les droits admin sur le poste, il pourra moins facilement contourner l'interdiction...
    La clef est dans HKLM/SOFTWARE/Policies/Microsoft/Windows/Safer/CodeIdentifiers/0/Paths/{3dfd276b-9d92-469d-814c-2ee6e50ca7df}/ItemData et la valeur est *firefox.exe - voir le fichier joint.
    On peut aussi définir des clefs par signature (checksum du fichier je suppose...) dans la rubrique Hashes (voir key2.jpg)
    Mais je sais trouver ces clefs dans la base, pas exactement comment les définir...
    A+
    Images attachées Images attachées    

  4. #4
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Au fait, c'est pas le bon forum - ici c'est développement...

  5. #5
    Membre averti
    Avatar de witch
    Inscrit en
    Mai 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2007
    Messages : 346
    Points : 335
    Points
    335
    Par défaut
    salut
    euh dsl pour la reponse too late, j'étais oqp par les examens
    bon j'avoue que je sais pas trop sur ces trucs base de registre wildcard , checksum merci pour cette solution
    mais est ce que je peux dire que c la seule solution pour bolquer une application ?

  6. #6
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 793
    Points : 3 063
    Points
    3 063
    Par défaut
    Bien sûr que non. Il y a autant de solutions que ton imagination est fertile.

    Une bête solution : tu écris un programme qui tourne en tâche de fond et qui vérifie quelles sont les applications qui sont actives. Si c'est MSN, tu "kill" le process.

    Ci-desssous une procédure que j'ai écrite pour killer un process. C'est du VB6.

    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
    ' ----------------------------------------------------------------------------------------------
    '
    ' Kill all running instances of an application.
    '
    ' For instance : Call KillProcess("MSACCESS.EXE")
    '
    ' ----------------------------------------------------------------------------------------------
    
    Public Sub KillProcess(ByVal sProcessName As String)
    
    Dim sComputer As String
    Dim objWMIService, colProcessList, objProcess As Object
    
       On Error Resume Next
    
       sComputer = "."
    
        Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & sComputer & "\root\cimv2")
    
       Set colProcessList = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = '" & sProcessName & "'")
    
        For Each objProcess In colProcessList
          Call objProcess.Terminate
          DoEvents
       Next
       
       DoEvents
    
       Set objProcess = Nothing
       Set colProcessList = Nothing
       Set objWMIService = Nothing
    
       On Error GoTo 0
    
    End Sub

  7. #7
    Membre averti
    Avatar de witch
    Inscrit en
    Mai 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2007
    Messages : 346
    Points : 335
    Points
    335
    Par défaut
    salut
    j'ai jamais fais du vb6 :s
    mais j'arrive quand même à saisir sauf que pour la requete ...pas compris
    mais avant le parametre de la fonction GetObject "winmgmts:{impersonationLevel=impersonate}!\\" & sComputer & "\root\cimv2"
    si je le comprends je comprendrais la requete

  8. #8
    Membre averti
    Avatar de witch
    Inscrit en
    Mai 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2007
    Messages : 346
    Points : 335
    Points
    335
    Par défaut
    j'ai cherché sur msdn et j'ai trouvé que ça étais aussi simple avec un ptit code
    j'ai mis ce code dans la methode main du projet windows service
    Dim i As Integer = 0
    Do While i = 0
    Dim processus As Process
    Dim listprocess As Process()
    listprocess = Process.GetProcessesByName("msnmsgr")
    Try
    For Each processus In listprocess
    processus.Kill()
    Next
    Catch ex As Exception
    For Each processus In listprocess
    processus.Close()
    Next

    End Try

    Loop
    voilà j'ai crée son setup et je l'ai installé j'ai copié le raccourci dans le fichier demarrage du windows ça marche ...sauf que pour ce ptit code ça demande 13 Mo pour la RAM ...ça ralenti mon ordi et puis ça me plait pas ...c une occasion pour que je demande pour les exeperts en vb.net ou en .net en générale des idées pour que le programme soit plus rapide et que ça ralenti pas le pc
    merci pour votre attention

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 76
    Points : 52
    Points
    52
    Par défaut
    C'est pas un peu l'artillerie lourde de carrément le "killer", pourquoi pas un SIGQUIT ?
    En C en tout cas s'aurait été faisable assez simplement.
    (avec kill(pid, SIGQUIT); )

  10. #10
    Membre averti
    Avatar de witch
    Inscrit en
    Mai 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2007
    Messages : 346
    Points : 335
    Points
    335
    Par défaut
    salut pianopariss
    je fais pas de c mais je pense que faire un ptit script shell sous windows fera l'affaire, la je cherche à apprendre à coder sur ça je pense que c plus propre
    bon c ..je dirais c mieux que vb parce ce que c c'est plus rapide en execution, enfin c ce qu'on me dit
    a+

  11. #11
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 753
    Points : 10 704
    Points
    10 704
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par pianopariss
    C'est pas un peu l'artillerie lourde de carrément le "killer", pourquoi pas un SIGQUIT ?
    En C en tout cas s'aurait été faisable assez simplement.
    (avec kill(pid, SIGQUIT); )
    Parce que ça marche pas comme ça sous Windows

    Y'a de très bons outils déjà développés.
    http://www.microsoft.com/technet/sys...ds/PsKill.mspx

  12. #12
    Membre averti
    Avatar de witch
    Inscrit en
    Mai 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2007
    Messages : 346
    Points : 335
    Points
    335
    Par défaut
    salut Aurelien
    enfait ce Pskill était developpé par quel langage? mon attention c'était de developper un outil comme ce genre, est ce que c possible avec un script vbscript ou jscript ? est ce qu'on peut réalisé un exe avec ces script ?
    bon merci pour le lien

  13. #13
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 753
    Points : 10 704
    Points
    10 704
    Billets dans le blog
    3
    Par défaut
    C'est du C, de très bas niveau vu qu'il attaque l'API native. Mais ça en fait un outil très puissant qui sait entre autre tuer des process qui se protègent d'un TerminateProcess.

  14. #14
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Euh...
    Comment peut-on se protéger d'un TerminateProcess() ?
    Du même utilisateur, s'entend ? (je sais qu'on peut interdire à un autre utilisateur de terminer le processus, et cela doit même être déjà fait par défaut).

  15. #15
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 753
    Points : 10 704
    Points
    10 704
    Billets dans le blog
    3
    Par défaut
    Avec de l'API hooking. Exemple:
    http://www.internals.com/utilities/w...tickyApp32.zip

    Attention! En testant sur mon ordi du boulot qui semble équipé de la protection NX, j'ai eu droit a un plantage en boucle de explorer, taskmgr, ...
    Donc, avant de lancer cet utilitaire (écris en VB! Bon, avec une dll en C ), lancez une console avec pskill pret a etre utilisé dedans.

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 76
    Points : 52
    Points
    52
    Par défaut
    Ah oui, j'oubliais qu'on était sous Windows...

    Comme tu l'as dit, pour se 'proteger' d'un kill, un hook avec un driver (crée avec le WinDDK) fonctionne.
    Mais je me demandais si cette protection est complète ou est-elle contournable ?

  17. #17
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 753
    Points : 10 704
    Points
    10 704
    Billets dans le blog
    3
    Par défaut
    C'est de l'API hooking en user land, sans aucun driver. Il y a plusieurs techniques de hooking, ce site les explique très bien d'ailleurs. Mais faut être prudent avec ce genre de trucs, la preuve, ça fait planter mon Windows... Si c'est kernel32 qui est patché, c'est assez difficile à contourner... Je suppose que pskill passe par l'API Native, donc il est pas concerné.

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 76
    Points : 52
    Points
    52
    Par défaut
    Ah oauis, ok merci

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/12/2014, 12h27
  2. Comment bloquer l'utilisation d'une application ?
    Par luc2verga dans le forum Windows Forms
    Réponses: 4
    Dernier message: 10/02/2011, 08h47
  3. Réponses: 1
    Dernier message: 11/10/2006, 09h49
  4. Faire fonctionner une application monoposte en réseau
    Par obon dans le forum Bases de données
    Réponses: 3
    Dernier message: 30/04/2006, 10h26
  5. Réponses: 2
    Dernier message: 20/06/2005, 11h46

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