begin process at 2010 03 21 22:35:53
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

VBScript

 > DETECTER VIRUS/VERS DANS LA BASE DE REGISTRE

DETECTER VIRUS/VERS DANS LA BASE DE REGISTRE


 Information sur la source

Note :
8,67 / 10 - par 3 personnes
8,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :VBScript Niveau :Débutant Date de création :15/06/2003 Date de mise à jour :15/06/2003 20:20:10 Vu :8 494

Auteur : alexD

Ecrire un message privé
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

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

  • 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
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 :)


 Sources de la même categorie

SURVEILLER UN SERVICE ET FORCER SON REDEMARRAGE par fabkiller
CORRIGER RÉCURSIVEMENT LA CIBLE DES RACCOURCIS D'UN RÉPERTOI... par sammounier
Source avec Zip COMMENT RENOMMER UN OU PUSIEURS NOM DE GROUPES ACTIVE DIRECT... par drassef14
Source avec Zip RECHERCHER TOUS LES FICHIERS DONT L'EXTENSION EST *.VBS ET L... par hackoo
Source avec Zip DÉPLACER ET PARAMÉTRER LA BARRE DES TACHES / LE MENU DÉMARRE... par MS1969

Commentaires et avis

Commentaire de Ktb le 15/06/2003 21:19:24

Mouais bof, un peu simpliste tout de même pour "DETECTER VIRUS/VERS DANS LA BASE DE REGISTRE", on peut s'attendre à plus puissant ! Plutôt "recherche d'une valeur dans le registre" comme titre, et encore recherche très limiutée !
@+ KtB

Commentaire de Sirocooo le 16/06/2003 09:45:43

et ktb, au lieu de le couler, tu devrais l'encourager. il dit qu'il débute en vbs. Toi aussi un jour tu étais débutant non ?

Commentaire de alexD le 16/06/2003 18:26:40

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 :)

Commentaire de alexD le 16/06/2003 18:26:47

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 :)

Commentaire de hakim0 le 21/11/2004 23:56:02

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

Commentaire de odd 54 le 09/08/2007 15:41:19

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" ???

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales