Detecter virus/vers dans la base de registre

Soyez le premier à donner votre avis sur cette source.

Snippet vu 11 580 fois - Téléchargée 35 fois

Contenu du snippet

Voici mon premier code en vbs, il recherche les differentes valeurs/clef accédé/écrite dans la base de registre par un programme malveillant.il est loin d'étre parfait.Mes connaissance en vbs sont fraiches de quelques jours alors n'hésitez pas à étre critique que je puisse optimiser ma facon de programmer en vbs.

Source / Exemple :


On Error Resume Next 
Dim virname, virval, virstr, i, j, val, flag 

flag = False 
virname = "Sobig"                                          
virval = Array("System MScvb", "System Tray", "WindowsMGM") 
virstr = Array("mscvb32.exe","msccn32.exe","winmgm32.exe")  
Set WshSHell = WScript.CreateObject("WScript.Shell") 
Set Msg = Wscript.CreateObject("Wscript.Shell")            

key = "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\"

Function RegExpTest(motif,chaine) 
  Dim regEx, retVal            
  Set regEx = New RegExp         
  regEx.Pattern = motif         
  regEx.IgnoreCase = True      
  retVal = regEx.Test(chaine)  
  If retVal Then
    RegExpTest = 1
  Else
    RegExpTest = 0
  End If
End Function

For Each i in virval            
  val = WshShell.RegRead(key & i)            
  For Each j in virstr             
    If RegExpTest(j, val) Then      
      Msg.Popup virname & " detecté !",,"Alerte",16 
      flag = True
    End If
  Next 
  val = ""
Next 

If Flag = False Then
  Msg.Popup virname & " non présent",,"Notification",64 
End If

Conclusion :


Je remerci Mr Guido van Rossum, inventeur du langage python qui m'a donner le reflexe d'indanter mon code :)

A voir également

Ajouter un commentaire

Commentaires

Messages postés
146
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
21 juillet 2013
3
Bonjour,

Est-ce que quelqu'un pour m'expliquer consicement sont fonctionnement, s'il vous plaît ?

Merçi d'avance.
Messages postés
16
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
8 décembre 2007

moi qui vient de débuté en VBS....je trouve sa pas mal !
mais (juste un tit' remarque si y'a pas de virus y marque : Sobig non présent)
...
on pas juste modifier un truc pour que y'ai plus le "Sobig" ???
Messages postés
123
Date d'inscription
mercredi 27 août 2003
Statut
Membre
Dernière intervention
12 août 2008
1
interessant..., une remarque au lieu de
Function RegExpTest(motif,chaine)
Dim regEx, retVal
Set regEx = New RegExp
regEx.Pattern = motif
regEx.IgnoreCase = True
retVal = regEx.Test(chaine)
If retVal Then
RegExpTest = 1
Else
RegExpTest = 0
End If
End Function
tu pe faire aussi:
Function RegExpTest(motif,chaine)
if len(chaine)>= len(motif) then
retval = instr(1,chaine,motif)
else
retval=instr(1,motif,chaine)
end if
If retVal <>0 Then
RegExpTest = 1
Else
RegExpTest = 0
End If
End Function
Messages postés
2
Date d'inscription
dimanche 15 juin 2003
Statut
Membre
Dernière intervention
16 juin 2003

oui tu as raison Ktb c'est trés simpliste c'est pour cela que je l'ai mis dans code niv 1 et puis il est vrai qu'il est trés limité il ne recherche que le vers Sobig seulement il le fait bien(enfin je pense d'aprés les echos que j'en ai).J'aurais du ajouter des inputbox au lieu d'affecter des variables dans le code: mieux ,j'aurais pu directement ouvrir un fichier en lecture contenant les paramétre du ver(clé de registre occupé,valeur et contenu de la valeur) mais j'ai fait un peu ca en dilettante et à la volé pour quelqu'un qui avait été infecté par sobig et ces contacts.J'ai pu par la méme en apprendre un peu plus sur le VBscript.
Si vous pouviez me dire comment optimiser ce code ou corriger ma facon de coder en VBscript d'avance merci :)
Messages postés
2
Date d'inscription
dimanche 15 juin 2003
Statut
Membre
Dernière intervention
16 juin 2003

oui tu as raison Ktb c'est trés simpliste c'est pour cela que je l'ai mis dans code niv 1 et puis il est vrai qu'il est trés limité il ne recherche que le vers Sobig seulement il le fait bien(enfin je pense d'aprés les echos que j'en ai).J'aurais du ajouter des inputbox au lieu d'affecter des variables dans le code: mieux ,j'aurais pu directement ouvrir un fichier en lecture contenant les paramétre du ver(clé de registre occupé,valeur et contenu de la valeur) mais j'ai fait un peu ca en dilettante et à la volé pour quelqu'un qui avait été infecté par sobig et ces contacts.J'ai pu par la méme en apprendre un peu plus sur le VBscript.
Si vous pouviez me dire comment optimiser ce code ou corriger ma facon de coder en VBscript d'avance merci :)
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.