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

Vos Contributions VBScript Discussion :

[VBS]Empêcher l'écriture et l'infection des VIRUS sur les clés USB


Sujet :

Vos Contributions VBScript

  1. #1
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 836
    Points : 9 217
    Points
    9 217
    Par défaut [VBS]Empêcher l'écriture et l'infection des VIRUS sur les clés USB
    L'idée de ce Script:
    Après avoir lu cet Article:"Create Fake Dummy File on USB Flash Drive to Enable Write Protect and Prevent Modification"
    J'ai eu cette idée de créer ce Truc en Vbscript.
    Donc j'explique ce que ce script peut faire :
    Vous portez votre flash USB qui contient beaucoup d'outils portables avec vous tous le temps mais,vous avez peur d'une chose, qui est un virus informatique comme JambanMu ou MaxTrox ou Sality qui peut infecter des clés USB ainsi que les fichiers exécutables là-dedans.
    Le Script crée un faux fichier "bloc" pour remplir l'espace libre restant sur le flash USB.
    le virus ne pourra pas se copier ou infecter n'importe quels fichiers exécutables.

    Ce code est utilisé pour créer un faux fichier sur le flash USB pour Permettre la protection en écriture.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    '----------------DummyFileCreator.vbs---------------
    '© Hackoo ©
    Dim WshShell,FSO,Drv,Dtype,Dfree,DfreeMB,Dtot
    Dim Dname,Dpct,Dused,Dserial,Dinfo
    Set WshShell=WScript.CreateObject("WScript.Shell")
    Set FSO=CreateObject("Scripting.FileSystemObject")
    For each Drv in FSO.Drives
     If Drv.DriveType=0 Then Dtype="Unknown "
     If Drv.DriveType=1 Then Dtype="Removable"
     If Drv.DriveType=2 Then Dtype="Fixed "
     If Drv.DriveType=3 Then Dtype="Network "
     If Drv.DriveType=4 Then Dtype="CD-ROM "
     If Drv.DriveType=5 Then Dtype="RAM Disk "
     If Drv.IsReady Then
     If Drv.DriveType=1 Then
     Dfree=Drv.FreeSpace
     DfreeMB=FormatNumber(Drv.FreeSpace/(1024^2),0)&" MB"
     Label=Drv.DriveLetter
     end if
    end if
    Next
    MsgBox "Espace Libre dans Le Flash Disk "&Label&":\"&" est Environ de " &DfreeMB,64,"Espace Libre"
    WshShell.run "cmd /c fsutil file createnew "&Label&":\IamDummy " &Dfree&"",0,True
    WshShell.Run "cmd /C attrib +h +s "&Label&":\IamDummy",0,TRUE
    Et Ce Code est utilisé pour supprimer le faux fichier et permettre l'écriture sur votre Flash

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    '----------------NoDummyFile.vbs---------------
    '© Hackoo ©
    Dim WshShell,FSO,Drv,Dtype,Dfree,DfreeMB,Dtot
    Dim Dname,Dpct,Dused,Dserial,Dinfo,filespec
    Set WshShell=WScript.CreateObject("WScript.Shell")
    Set FSO=CreateObject("Scripting.FileSystemObject")
    filespec="IamDummy"
    For each Drv in FSO.Drives
     If Drv.DriveType=0 Then Dtype="Unknown "
     If Drv.DriveType=1 Then Dtype="Removable"
     If Drv.DriveType=2 Then Dtype="Fixed "
     If Drv.DriveType=3 Then Dtype="Network "
     If Drv.DriveType=4 Then Dtype="CD-ROM "
     If Drv.DriveType=5 Then Dtype="RAM Disk "
     If Drv.IsReady Then
     If Drv.DriveType=1 Then
     Dfree=Drv.FreeSpace
     DfreeMB=FormatNumber(Drv.FreeSpace/(1024^2),0)&" MB"
     Label=Drv.DriveLetter
     end if
    end if
    Next
    If (fso.FileExists(Label&":\IamDummy")) Then
    Set MyFile = fso.GetFile(Label&":\IamDummy")
    MyFile.Delete
    End If
    MsgBox "Espace Libre dans Le Flash Disk "&Label&":\"&" est Environ de " &DfreeMB,64,"Espace Libre"

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    merci pour cette nouvelle contribution ...

    justement je ne connaissait pas fsutil : "l'utilitaire du système de fichier"

    j'ai pas encore tout testé dans ton script .. mais une chose manque, tu n'as pas traité le cas ou il n'y aurait pas de lecteur flash connecté au PC...

  3. #3
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 806
    Points
    5 806
    Par défaut
    Salut,
    J'ai testé le code sur une vieille clé USB de 256 Mo sur laquelle l'espace libre est de 55,5 Mo.
    Le code est une merveille, à mon sens... sauf qu'après suppression du fichier créé ([IamDummy), l'espace disponible n'est que de 52 Mo.
    Mais une défragmentation remet les choses en place.
    Est-il possible de remédier à cela par le code ?

    Encore merci pour cette contribution.
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  4. #4
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 836
    Points : 9 217
    Points
    9 217
    Par défaut Mise à jour : Ajout de la Fonction checkUSB
    Citation Envoyé par bbil Voir le message
    j'ai pas encore tout testé dans ton script .. mais une chose manque, tu n'as pas traité le cas ou il n'y aurait pas de lecteur flash connecté au PC...
    Voila j'ai ajouté une nouvelle fonction pour vérifier si un lecteur Flash est connecté ou non !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    '----------------DummyFileCreator.vbs---------------
    '© Hackoo ©
    checkUSB
    DummyFileCreator
    '---------------DummyFileCreator----------------------
    Sub DummyFileCreator
    Dim WshShell,FSO,Drv,Dtype,Dfree,DfreeMB,Dtot
    Dim Dname,Dpct,Dused,Dserial,Dinfo
    Set WshShell=WScript.CreateObject("WScript.Shell")
    Set FSO=CreateObject("Scripting.FileSystemObject")
    For each Drv in FSO.Drives
     'If Drv.DriveType=0 Then Dtype="Unknown "
     'If Drv.DriveType=1 Then Dtype="Removable"
     'If Drv.DriveType=2 Then Dtype="Fixed "
     'If Drv.DriveType=3 Then Dtype="Network "
     'If Drv.DriveType=4 Then Dtype="CD-ROM "
     'If Drv.DriveType=5 Then Dtype="RAM Disk "
     If Drv.DriveType=1 Then ' Disk Amovible Flash Disk
     If Drv.IsReady Then ' Si le Flash Disk est prêt
     Dfree=Drv.FreeSpace
     DfreeMB=FormatNumber(Drv.FreeSpace/(1024^2),0)&" Mo"
     'EspaceLibre = Drv.FreeSpace
     GB=round(Dfree/1073741824,2) & " Go"
     Label=Drv.DriveLetter
     'checkUSB
     'wscript.sleep 1000
     MsgBox "Espace Libre dans Le Flash Disk "&Label&":\"&" est Environ de " &GB& " soit environ "&DfreeMB,64,"Espace Libre" 
     WshShell.run "cmd /c fsutil file createnew "&Label&":\IamDummy " &Dfree&"",0,True
     WshShell.Run "cmd /C attrib +h +s "&Label&":\IamDummy",0,TRUE
    end if
    end if
    Next
    end Sub
    '-----------------checkUSB-----------------------
    Sub checkUSB
    strComputer = "."
    On Error Resume Next
    Set WshShell = CreateObject("Wscript.Shell")
    beep = chr(007)
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colItems = objWMIService.ExecQuery("Select * from Win32_DiskDrive WHERE InterfaceType='USB'",,48)
    intCount = 0
    For Each drive In colItems
        If drive.mediaType <> "" Then
            intCount = intCount + 1
        End If
    Next
    If intCount > 0 Then
        MsgBox "Votre Flash Disk est bien Connecté !",64,"Flash Drive Check !"
    else
    	WshShell.Run "cmd /c @echo " & beep, 0
    	wscript.sleep 1000
    	MsgBox "Votre Flash n'est pas Connecté ",64,"Flash Drive Check !"
    End If
    End Sub
    et pour le fichier NoDummyFile.vbs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    '----------------NoDummyFile.vbs---------------
    '© Hackoo ©
    checkUSB
    NoDummyFile
    '----------------------------------------------------
    sub NoDummyFile
    Dim WshShell,FSO,Drv,Dtype,Dfree,DfreeMB,Dtot
    Dim Dname,Dpct,Dused,Dserial,Dinfo,filespec
    Set WshShell=WScript.CreateObject("WScript.Shell")
    Set FSO=CreateObject("Scripting.FileSystemObject")
    filespec="IamDummy"
    For each Drv in FSO.Drives
     'If Drv.DriveType=0 Then Dtype="Unknown "
     'If Drv.DriveType=1 Then Dtype="Removable"
     'If Drv.DriveType=2 Then Dtype="Fixed "
     'If Drv.DriveType=3 Then Dtype="Network "
     'If Drv.DriveType=4 Then Dtype="CD-ROM "
     'If Drv.DriveType=5 Then Dtype="RAM Disk "
     If Drv.IsReady Then
     If Drv.DriveType=1 Then
     Dfree=Drv.FreeSpace
     DfreeMB=FormatNumber(Drv.FreeSpace/(1024^2),0)&" MB"
     Label=Drv.DriveLetter
     If (fso.FileExists(Label&":\IamDummy")) Then
    Set MyFile = fso.GetFile(Label&":\IamDummy")
    MyFile.Delete
    End If
    MsgBox "Espace Libre dans Le Flash Disk "&Label&":\"&" est Environ de " &DfreeMB,64,"Espace Libre"
     end if
    end if
    Next
    end Sub 
    '-----------------checkUSB-----------------------
    Sub checkUSB
    strComputer = "."
    On Error Resume Next
    Set WshShell = CreateObject("Wscript.Shell")
    beep = chr(007)
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colItems = objWMIService.ExecQuery("Select * from Win32_DiskDrive WHERE InterfaceType='USB'",,48)
    intCount = 0
    For Each drive In colItems
        If drive.mediaType <> "" Then
            intCount = intCount + 1
        End If
    Next
    If intCount > 0 Then
        MsgBox "Votre Flash Disk est bien Connecté !",64,"Flash Drive Check !"
    else
    	WshShell.Run "cmd /c @echo " & beep, 0
    	wscript.sleep 1000
    	MsgBox "Votre Flash n'est pas Connecté ",64,"Flash Drive Check !"
    End If
    End Sub

  5. #5
    Membre du Club
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Janvier 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2014
    Messages : 36
    Points : 54
    Points
    54
    Par défaut 2 Fichier s'en 1
    Très utile merci (et déso pour deterré ce post) je me suis permis d'assemblé les 2 fichiers

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    '----------------DummyFileCreator.vbs---------------
    '© Hackoo ©
    checkUSB
    '---------------DummyFileCreator----------------------
    Sub DummyFileCreator
    Dim WshShell,FSO,Drv,Dtype,Dfree,DfreeMB,Dtot
    Dim Dname,Dpct,Dused,Dserial,Dinfo
    Set WshShell=WScript.CreateObject("WScript.Shell")
    Set FSO=CreateObject("Scripting.FileSystemObject")
    For each Drv in FSO.Drives
     'If Drv.DriveType=0 Then Dtype="Unknown "
     'If Drv.DriveType=1 Then Dtype="Removable"
     'If Drv.DriveType=2 Then Dtype="Fixed "
     'If Drv.DriveType=3 Then Dtype="Network "
     'If Drv.DriveType=4 Then Dtype="CD-ROM "
     'If Drv.DriveType=5 Then Dtype="RAM Disk "
     If Drv.DriveType=1 Then ' Disk Amovible Flash Disk
     If Drv.IsReady Then ' Si le Flash Disk est prêt
     Dfree=Drv.FreeSpace
     DfreeMB=FormatNumber(Drv.FreeSpace/(1024^2),0)&" Mo"
     'EspaceLibre = Drv.FreeSpace
     GB=round(Dfree/1073741824,2) & " Go"
     Label=Drv.DriveLetter
     'checkUSB
     'wscript.sleep 1000
     MsgBox "Espace Libre dans Le Flash Disk "&Label&":\"&" est Environ de " &GB& " soit environ "&DfreeMB,64,"Espace Libre" 
     WshShell.run "cmd /c fsutil file createnew "&Label&":\IamDummy " &Dfree&"",0,True
     WshShell.Run "cmd /C attrib +h +s "&Label&":\IamDummy",0,TRUE
    end if
    end if
    Next
    end Sub
    '-----------------checkUSB-----------------------
    Sub checkUSB
    strComputer = "."
    On Error Resume Next
    Set WshShell = CreateObject("Wscript.Shell")
    beep = chr(007)
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colItems = objWMIService.ExecQuery("Select * from Win32_DiskDrive WHERE InterfaceType='USB'",,48)
    intCount = 0
    For Each drive In colItems
        If drive.mediaType <> "" Then
            intCount = intCount + 1
        End If
    Next
    If intCount > 0 Then
        MsgBox "Votre Flash Disk est bien Connecté !",64,"Flash Drive Check !"
     if MsgBox ("Voulez vous créé le DummyFile ou l'enlever ?" & vbCr & vbCr & "Oui = Créé" & vbCr & "Non = NoDummyFile" ,vbYesNo+Vbinformation,"DummyFileCreator OR NoDummyFile ? !") = Vbyes then
        DummyFileCreator
     else
        NoDummyFile
    end if
    Else
    	WshShell.Run "cmd /c @echo " & beep, 0
    	wscript.sleep 1000
    	MsgBox "Votre Flash n'est pas Connecté ",64,"Flash Drive Check !"
    End If
    End Sub
     
     
     
    sub NoDummyFile
    Dim WshShell,FSO,Drv,Dtype,Dfree,DfreeMB,Dtot
    Dim Dname,Dpct,Dused,Dserial,Dinfo,filespec
    Set WshShell=WScript.CreateObject("WScript.Shell")
    Set FSO=CreateObject("Scripting.FileSystemObject")
    filespec="IamDummy"
    For each Drv in FSO.Drives
     'If Drv.DriveType=0 Then Dtype="Unknown "
     'If Drv.DriveType=1 Then Dtype="Removable"
     'If Drv.DriveType=2 Then Dtype="Fixed "
     'If Drv.DriveType=3 Then Dtype="Network "
     'If Drv.DriveType=4 Then Dtype="CD-ROM "
     'If Drv.DriveType=5 Then Dtype="RAM Disk "
     If Drv.IsReady Then
     If Drv.DriveType=1 Then
     Dfree=Drv.FreeSpace
     DfreeMB=FormatNumber(Drv.FreeSpace/(1024^2),0)&" MB"
     Label=Drv.DriveLetter
     If (fso.FileExists(Label&":\IamDummy")) Then
    Set MyFile = fso.GetFile(Label&":\IamDummy")
    MyFile.Delete
    End If
    MsgBox "Espace Libre dans Le Flash Disk "&Label&":\"&" est Environ de " &DfreeMB,64,"Espace Libre"
     end if
    end if
    Next
    end Sub

Discussions similaires

  1. Réponses: 24
    Dernier message: 10/10/2022, 14h55
  2. Paginate avec des conditions sur les clés etrangères.
    Par CeDRiC08 dans le forum Ruby on Rails
    Réponses: 3
    Dernier message: 03/07/2007, 10h49
  3. des exos sur les boocles
    Par zeyd dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 27/11/2005, 19h03
  4. [VB6][impression]Comment faire des effets sur les polices ?
    Par le.dod dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 08/11/2002, 11h31
  5. recherches des cours ou des explications sur les algorithmes
    Par Marcus2211 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/05/2002, 23h18

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