Detecter virus/vers dans la base de registre

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