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 :

fonctionnement de spybot sd


Sujet :

Windows

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 95
    Points : 35
    Points
    35
    Par défaut fonctionnement de spybot sd
    bonjour,

    je voudrais faire un truc tel que:
    comme spybot sd, un plus de spybot, qui permet d'autoriser ou refuser les clés dans la base de registre dans run.

    je ne sais du tout pas comment il fais, et c'est un logiciel propriétaire.

    donc si vous avez des idées de comment il a été fais.
    moi je voudrais faire la même chose, mais avec toutes les clés dans la base de registre, bien sure c'est une grande liste, mais tous les autorisé, et en faire une sauvegarde des clés ajouté et supprimer dans un fichier texte qui indiqueras les changements.

    donc si vous avez des idées, fonctions, je suis preneur.


    merci

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Tu veux parler, plus précisément, du TeaTimer de Spybot S&D, qui surveille le registre ?

    J'ignore s'il est vraiment sophistiqué. S'il se contente de faire un polling, ça ne marchera pas à l'échelle du registre entier...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 95
    Points : 35
    Points
    35
    Par défaut
    oui exactement teatimer.

    dis moi juste la fonction qu'il faut utiliser, après je vais essayer de me débrouiller.

    merci

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 519
    Points
    41 519
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 95
    Points : 35
    Points
    35
    Par défaut
    j'y comprend rien au principe de la fonction, jusqu'à son utilisation.

    peut tu m'expliquer sa fonction, qu'est ce qu'il fais, puis après je vais essayer de faire le code source.

    ps: l'exemple sur le site ne fonctionne pas.


    merci

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 519
    Points
    41 519
    Par défaut
    En quoi ne marche-t-il pas exactement ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 95
    Points : 35
    Points
    35
    Par défaut
    ah c'est bon failler mettre main en int et non en void, et au lieu de return, mettre return 0.
    ça compile

    Et maintenant j'obtiens toujours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Usage: notify [HKLM|HKU|HKCU|HKCR|HCC] [<subkey>]
    et se referme sans rien d'autre.

    pourrais tu m'expliquer ce que le programme les fonctions fais, en quelques phrases stp parce que je ne comprends pas trop ce que font les fonctions.


    merci

  8. #8
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Il faut:
    1. Passer deux paramètres au programme: L'un étant la clé racine, l'autre le chemin de clé
    2. Faire un changement dans la clé correspondante pour débloquer le programme.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 95
    Points : 35
    Points
    35
    Par défaut
    j'ai fais ça

    Code console : Sélectionner tout - Visualiser dans une fenêtre à part
    c:\main HKLM software

    et maintenant qu'est ce qu'il a fait ?

  10. #10
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Normalement, il surveille et il attend.
    Si tu fais un changement dans HKLM\software, le programme devrait être débloqué et se terminer, tout simplement.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 95
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par Médinoc
    Normalement, il surveille et il attend.
    Si tu fais un changement dans HKLM\software, le programme devrait être débloqué et se terminer, tout simplement.
    c'est vrai, mais moi je voudrais savoir comment faire pour que les clés ne sont pas ajouter et/ou supprimer sans l'autorisation du programme.

    je voudrais juste la fonction qui bloque l'ajout ou/et la suppression de la clé.

    merci

  12. #12
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 519
    Points
    41 519
    Par défaut
    À mon avis, tu ne peux.
    Je ne pense pas que spybot fasse cela: À mon avis, le teatimer se contente d'annuler le changement si tu cliques sur refuser...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 95
    Points : 35
    Points
    35
    Par défaut
    ah dommage, donc il n'y a pas de fonction pour...

    bon si j'ai compris teatimer fais comme ça:

    disons surveille HKLM>...>Run.
    avec RegNotifyChangeKeyValue() il regarde que si une valeur est ajouter ou refuser, il se débloque.

    si une valeur est ajouté:
    si accepter par l'user, il fait rien.
    si refuser par l'user, il supprimer la valeur qui viens d'être entré.

    si une valeur est supprimer:
    si accepter par l'user, il fait rien.
    si refuser par l'user, il garde en mémoire la valeur qui viens d'être supprimer, puis la rajoute.


    Est comme ça ?
    si oui j'essayerais de le faire sinon y a t il un moyen plus rapide avec des fonctions, ...


    Et :
    Citation Envoyé par Médinoc
    À mon avis, le teatimer se contente d'annuler le changement si tu cliques sur refuser...
    j'ai pas bien compris si tu peut l'expliquer.

  14. #14
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Oui, je pense que c'est comme ça, et que c'est bien ce que fait le TeaTimer de Spybot S&D.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 95
    Points : 35
    Points
    35
    Par défaut
    OK, avant de me lancer dans sa programmation, peut tu m'éclaircir ce point:

    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     if (WaitForSingleObject(hEvent, INFINITE) == WAIT_FAILED)
       {
          _tprintf(TEXT("Error in WaitForSingleObject (%d).\n"), GetLastError());
          return 0;
     else _tprintf(TEXT("\nChange has occurred.\n"));
       }
    après comment savoir qu'est ce qui a été modifier pour que le programme se débloque.


    merci

  16. #16
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 519
    Points
    41 519
    Par défaut
    1. Très simple, ce code est mal recopié: L'accolade fermante devrait être entre le return 0 et le else.
    2. Pas de moyen simple à ma connaissance pour le registre. Il faut avoir lu toute la clé avant (RegOpenKeyEx(), RegEnumKey() etc.) et lire la clé après modif pour comparer.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 95
    Points : 35
    Points
    35
    Par défaut
    1. Oui j'ai pas fais attention. Je vois c'est comme ça:
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     if (WaitForSingleObject(hEvent, INFINITE) == WAIT_FAILED)
       {
          _tprintf(TEXT("Error in WaitForSingleObject (%d).\n"), GetLastError());
          return 0;
    }
     else _tprintf(TEXT("\nChange has occurred.\n"));

    2. Ca risque de faire ramer grave et consommer à max le CPU.
    donc voilà.


    alors maintenant que j'ai rectifier tu peut m'expliquer ce qu'il fais précisément dans WaitForSingleObject(hEvent, INFINITE) == WAIT_FAILED.

    Après je pense que je vais faire une boucle, un fichier, une lecture registre, énumération...

    genre comme ça:
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    while(1) //toujours valide pour sa recherche
    {
    // lecture registre, énumère les clés, valeurs... = lecture New
     
    if(nouvelle lecture != ancienne lecture)
    {
    // comparer les 2 lectures.
    // écrire dans le fichier les modifications avec détails.
    }
     
    // lecture New = lecture Anc
    }

    tu me dis si c'est bien ça, ou si je dévire.


    merci

  18. #18
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 519
    Points
    41 519
    Par défaut
    WaitForSingleObject() est la fonction d'attente de Windows.
    Ici, on lui dit d'attendre la notification de changement. Donc, le programme est bloqué sur cette fonction tant que la clé n'a pas été modifiée (ou que le timeout n'est pas fini, mais dans le cas présent il est infini).
    Avec un timeout infini, la fonction ne peut retourner que deux valeurs différentes: WAIT_OBJECT_0 ou WAIT_FAILED. Donc, on fait le test: Si elle a retourné WAIT_FAILED, on affiche "ERREUR" et on quitte...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 95
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par Médinoc
    Ici, on lui dit d'attendre la notification de changement. Donc, le programme est bloqué sur cette fonction tant que la clé n'a pas été modifiée (ou que le timeout n'est pas fini, mais dans le cas présent il est infini).
    Non, il reste quelque 30 sec (à peu près), après il me met "change has occured."et je quitte.

    je pense qu'il y a un changement lui même dans la base de registre, ou sinon c'est dans le code source.

    donc il ne reste pas toujours dedans pour sa surveillance.

  20. #20
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Évidemment, HKLM\software est une clé immense, il peut donc y avoir un changement à tout moment dans une de ses innombrables sous-clés...

    Par contre, si tu surveilles quelque chose de plus petit, du genre HKLM\Software\Microsoft\Windows\CurrentVersion\Run...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/06/2003, 16h51
  2. Réponses: 5
    Dernier message: 14/05/2003, 14h51
  3. [Turbo Pascal] TP7 fonctionne en QWERTY
    Par callahan dans le forum Turbo Pascal
    Réponses: 9
    Dernier message: 08/02/2003, 21h49
  4. Prb de fonctionnement dans SaveDialog avecInitialDir
    Par boyerf dans le forum Composants VCL
    Réponses: 4
    Dernier message: 12/12/2002, 21h46
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10

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