Hogyan írjunk egy trójai (példa)

Hogyan írjunk egy trójai (példa)

Egy programot, szükségünk van a Visual C ++ változatát magasabb ötödik, és jobb C ++,
része a Visual Studio .NET csomagban. Hozzon létre egy üres munkaterületet vagy oldat (VS
.NET) és két új üres Win32 projekt
Kérelmet, a szerver és a kliens. Azonnal változtatni az aktív konfigurációs
Engedje el mindkét projektek. Ehhez válassza ki a megfelelő elemet
Építsd menüben. Alkotó? Ok, majd bemászott a projekt beállításait
(Jobb klikk a projekt nevét, és válassza beállítás), a
Linker, és add meg az Object bár / könyvtár modul könyvtár
vinsoka wsock32.lib. Enélkül a program nem fog működni. Megjegyezzük, hogy ezek
intézkedéseket kell tartani a két projekt - és a szerver, és
az ügyfél, mivel mindkettő az a hálózati funkciók és
illetve, szükség van egy hálózati könyvtár. Most adjuk hozzá a
Project Server új cpp fájl, és kezdődik.

BEGIN kodit
A legelején a program van, hogy tartalmazza a header fájlokat
(Fejléc), amely leírja a funkciókat általunk használt. nélkül Heather
A program ad egy felhő a hibákat és nem fog működni. ebben
esetben már csak egy Heder - leírja a hálózat feladatait a
könyvtár, adtunk egy kicsit korábban.
#include

Segítségével ezek, rendkívül fontos, hogy a sorban a program mérete, mi
Vágjuk ki az összes felesleges ki a PE header mi eheshnika és hagyja
fordítóprogram, hogy már BelépésiPont, a belépési pont. Ha ez nem
igen, a fordító helyett íráshoz funkció arra a pontra,
belépés írni a saját, óriási, és a program mérete növekszik 2-28
kilo. A észrevehető különbség? smile De most, ha megpróbálja futtatni
programot debug módban, akkor valószínűleg nem fog működni.

#pragma megjegyzést (linker, / Merge: .rdata = .text)
# Pragma üzenetére (linker / FILEALIGN: 512 /SECTION:.text, EWRX
/ IGNORE: 4078)
# Pragma üzenetére (linker / ENTRY: WinMain)

Itt érkezünk el a legfontosabb a programban - a belépési pont függvény
ahol a vezérlés átadódik az indítás után. Ő négy
paraméter, amelyek közül egyik sem, nem kell, így a neve
paraméterek nem írok, és írok csak a típusukat.

int WinAPI WinMain (HINSTANCE, HINSTANCE.LPSTFUnt)

Majd a segítségével a regisztrációs funkciókat írunk
SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run Ön svezheskopirovanny
fájl, hogy be volt töltve a rendszer minden indításkor. Trójai betöltődik és
kész kerek védelmi (mosoly támadás).

Végül eljutottunk a legfontosabb része a kód, amely nélkül
Trojan - ez nem egy trójai. Az oldal felelős az adatcserét az áldozat
mosolyog. Mint azt bizonyára már tudják, a cikkek Horrific'a, az
Felhasználási winsoc funkciók ^ a először azt kell inicializálni.
A kizárólag a számukra egyedül csinálni a következő kód:

if (bind (listetJ5ock, (LPSOCKADDR) addr_Sock, sizegf (struct sockaddr)))
vissza 0;

Egy sor, hogy végre kezdeni hallgatni a port, azaz nyitni
vegyületek. Hogy pontosak legyünk, az egyetlen kapcsolat. Az első
paraméter átadjuk változó socket, hogy a nyílt és a második
- a kapcsolatok száma lehetővé, már több mint egy nem szükséges. Mint
C bind'OM, ha hiba letiltja a trójai.
ha (hallgatni (listet_Sock, 1)) return 0;

1) Várj konnekta

2) Kezeljük a csapat

3) Ha a hiba bezár meglévő összeköttetések

4) Vissza kp.1

Command fogja fogadni a húr, az első karakter, amely
-sőt, funkcióválasztó, a második - az elválasztó, bármely, és a többi -
Ez az érv, amit át a funkcióit a trójai. Itt egy példa
parancsot a kliens által küldött: Hi. Trójai először megteszi az első
két karakter, és ellenőrizze, ha van egy hozzárendelt funkció m szimbólum
(Y számunkra ez egy figyelmeztető üzenet). Aztán tart egy másik 126 karakter és rengeteg
a funkciót. Ahhoz, hogy egy trójai a ciklusban érkezik az recv funkciója
megszerzett adatok után kétszer csatlakozóaljzat hack Zokni, az első
puffer 2 bájt, 126. A második esetben, ha az adatok nem kap
irányított, CommandLoop befejezte a szünet parancs, a foglalat zárva lesz, és
a szerver megvárja a kapcsolatot újra. Írunk több trójai funkciók:
Ha az első karakter m, majd végre a függvény MessageBox (0, buf, feltört
egy válasz mosoly, 0), ahol buf - ez a második puffer.

Ha az első karakter, akkor buf vonal fut végig cmd.exe c
paraméter / s, ez a funkció indításakor a következő paraméterekkel
ShellExecuteA (NULL, Oren, cmd.exe, buf_command, NULL, SW_H1DE),
ahol buf_command - ez a mi pufferben hozzáadott első sorban / s. egy
SW_HIDE azt jelzi, hogy az áldozat nem tekinthető kialakulóban
konzolt. És az utolsó, legnehezebb funkció, amely elvégzi letöltés
fájlt a féreg. Ez végre, amikor az első karakter -
ez f. Először is, ez megnyitja a fájlt csak olvasható funkció
QpateFile. A azután, ha a fájl létezik a gyűrűt küld 4096
byte. Ha a küldött bájtok kevesebb, akkor a végén
fájlt, és a ciklus megszakad. A jel az ügyfél, hogy a fájl véget ért,
bontja.

A szerepe az ügyfél lehet bármilyen programot, amely képes
csomag méret adott nekünk az áldozat. Ahhoz, hogy a szerver skonnektitsya
és végre a parancsot típusa: Levél (zokni, m Nello, 128,0). de csak
abban az esetben, írtam egy kliens fut a parancssorból, és
ötlet, hogy könnyen át minden platformon. Küldés Troyan csapat
végzett client.exe csapat [az ip az áldozat] [függvény] [érv]
például: ügyfél 127.0.0.1 m Hello.