TE4L Posted April 16, 2008 Report 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
Vhaerun Posted April 16, 2008 Report Posted April 16, 2008 Care e functionalitatea serverului ? Eu nu o vad . Quote
TE4L Posted April 16, 2008 Author Report 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
Vhaerun Posted April 16, 2008 Report Posted April 16, 2008 eu zic ca ai facut un tutorial despre socketuri , in care nu vorbesti despre socketuri Quote
TE4L Posted April 16, 2008 Author Report 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
go_sword Posted April 17, 2008 Report Posted April 17, 2008 foloseste cu program-ul visual c# , se vede in prima poza.. Quote
TE4L Posted April 17, 2008 Author Report Posted April 17, 2008 Eu personal folosesc Visual Studio 2008. Ti-l sugerez. Poti sa downloadezi varianta free(express). Quote