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

C# Discussion :

Antivirus et coïncidence amusante


Sujet :

C#

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 612
    Points : 1 050
    Points
    1 050
    Par défaut Antivirus et coïncidence amusante
    Salut
    -----

    Je ne résiste pas à l'envie de partager cette expérience involontaire et amusante (du moins une fois qu'on a compris la raison).

    Je travaillais sur un soft sur ma machine (clean). J'ai une licence Avast et mon anti-virus est à jour.

    Un moment donné, je compile mon code avec F5, et là j'obtiens un message d'alerte virus "Evo-Gen" sur mon propre exécutable. Ahuri, j'arrête tout, me demande d'où vient ce virus et je scanne tout ma machine: aucun virus.
    Perplexe, je me demande les opérations que j'ai réalisées en dernier lieu, et il s'agissait d'un "bête" messageBox dans lequel j'avais entré une longue chaîne au hasard (en tapant n'importe quoi au clavier) pour l'unique raison que j'avais besoin de connaître la largeur maximale que peut prendre le MessageBox.

    Cette ligne est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                MessageBox.Show("sdqfqsdf qsdfmlkj kl klkljm lkmj ljk sdqfqsd q fqsdqsf  lkmklmj lmkj lmkj lk jmlkj mlkj mlk jmlk jmlk jmlk ", "test", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
    Comme vous voyez, une ligne de n'importe quoi.

    Je place donc un commentaire devant la ligne, je recompile.... plus de virus.

    Je reprends la même chaîne et je l'assigne à une variable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var t = "sdqfqsdf qsdfmlkj kl klkljm lkmj ljk sdqfqsd q fqsdqsf  lkmklmj lmkj lmkj lk jmlkj mlkj mlk jmlk jmlk jmlk ";
    Je recompile: de nouveau un virus détecté.

    Si j'efface la fin ou le début de la chaîne, plus aucun virus détecté.
    J'en déduis que ma séquence tapée parfaitement au hasard est en fait la signature d'un virus détectée par Avast.

    Vous ne trouvez pas ça amusant?

    A+
    Claude

  2. #2
    Membre expert
    Avatar de MarieKisSlaJoue
    Homme Profil pro
    Ingénieur Cloud
    Inscrit en
    Mai 2012
    Messages
    1 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Roumanie

    Informations professionnelles :
    Activité : Ingénieur Cloud
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 145
    Points : 3 653
    Points
    3 653
    Billets dans le blog
    20
    Par défaut
    Ne sachant pas comment un antivirus détecte les signatures des programmes et des virus. non je ne trouve pas ça amusant désolé
    Mais si il suffit d'avoir une chaine de caractère comme la tienne dans une variable pour affolé un antivirus, je vais l’essayer sur le mien
    Ce post à été écrit par un panda
    Apollo 11 - AGC revue de code
    -- qwerty keybord

  3. #3
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    J'ai eu ce même type de problème il y a plus de 15 ans sur un programme Delphi. Nous n'avons pas identifié les instructions ou les constantes qui généraient le problème, mais il a suffi de déclarer dans le source une chaîne de caractère inutile pour le faire disparaitre!
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 150
    Points : 25 066
    Points
    25 066
    Par défaut
    en même temps on met rarement ce genre de message à l'utilisateur
    et pour du debug on peut facilement faire plus court et plus explicite
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 612
    Points : 1 050
    Points
    1 050
    Par défaut
    Salut
    -----

    J'ai eu ce même type de problème il y a plus de 15 ans sur un programme Delphi. Nous n'avons pas identifié les instructions ou les constantes qui généraient le problème, mais il a suffi de déclarer dans le source une chaîne de caractère inutile pour le faire disparaitre!
    Mon problème semble être du même type:

    En fait, je viens de faire plusieurs tests sur ce phénomène. Ce n'est pas lié au contenu de la chaîne mais à une notion de taille. Laquelle, je l'ignore puisque, manifestement, un code exécutable généré par VS a une taille multiple de 0x200 et donc avec mes petits essais "courts", n'a pas varié.

    - Si je remplace la chaîne par une autre de taille identique -> virus
    - Si je duplique la chaîne -> plus de virus
    - Si j'utilise la chaîne dans un autre source -> pas de virus
    - Si j'ajoute du code avant ou après la chaîne -> plus de virus
    - Si je supprime du code -> plus de virus

    Il y a donc une taille "critique" qui déclenche la détection du virus. J'en déduis que l'antivirus procède de façon "simpliste" pour détecter certains virus, probablement via des probabilités, et que, si on n'a pas de chance, on peut être détecté comme virus alors que ça n'en est pas.

    Après une visite sur le forum d'Avast, il semble que les cas de faux positifs ne sont pas rares du tout.

    A+
    Claude

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut
    Sans grande connaissance sur le sujet, je dirais que tu es tombé sur une collision de hash de ton exécutable avec un virus connus... pas de chance, mais ca peut arriver !

    Ce n'est pas le message Box ou la chaine qui est incriminé... mais le hash généré de ton exécutable... en déplaçant ton message box dans le code, ou bien en en mettant 2 d'affilé tu ne devrais pu constater le problème: ce qui prouve que ça ne vient pas du hasard de ta frappe sur le message box, mais bien de l'écriture de tout le programme

    Tu aurai sans doute préféré gagner à l'euromillions, ba la c'est un peu tout comme

    Merci pour l’anecdote ca change !

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 612
    Points : 1 050
    Points
    1 050
    Par défaut
    Salut
    -----

    Sans grande connaissance sur le sujet, je dirais que tu es tombé sur une collision de hash de ton exécutable avec un virus connus... pas de chance, mais ca peut arriver !
    Oui, c'est ce que je me suis dit lors de mes derniers essais, lorsque j'ai constaté qu'en ajoutant quelque chose je n'avais plus le problème.
    Le problème du hash, c'est qu'en principe il dépend du contenu. Or, si je remplace ma chaîne litigieuse par une autre complètement différente qui fait exactement la même longueur, ou même si j'écris deux chaînes dont le nombre total de caractères vaut le nombre initial, j'ai de nouveau une détection de virus.

    Tu aurai sans doute préféré gagner à l'euromillions,
    Je pense que oui

    Merci pour l’anecdote ca change
    Pas de quoi. J'ai pensé que ça divertirait certains et pourrait en intéresser d'autres.

    A+
    Claude

Discussions similaires

  1. [sondage terminé] Quel est le meilleur Antivirus , firewall, etc ?
    Par Jean-Philippe Dubé dans le forum Sécurité
    Réponses: 277
    Dernier message: 22/04/2009, 23h53
  2. Serveur PDC : antivirus
    Par TuxP dans le forum Sécurité
    Réponses: 4
    Dernier message: 22/12/2004, 12h05
  3. [C#] Antivirus
    Par lamiae18 dans le forum ASP.NET
    Réponses: 10
    Dernier message: 20/09/2004, 20h18
  4. [Kylix] Antivirus Shell/Kylix
    Par beemoon dans le forum EDI
    Réponses: 6
    Dernier message: 19/07/2004, 13h32
  5. Antivirus pour Linux?
    Par barucca dans le forum Sécurité
    Réponses: 13
    Dernier message: 16/04/2004, 19h45

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