Xeno-rat
Loading...
Searching...
No Matches
xeno_rat_server.MainForm Class Reference
Inheritance diagram for xeno_rat_server.MainForm:
Collaboration diagram for xeno_rat_server.MainForm:

Public Member Functions

 MainForm ()
 
void OnMenuClick (object sender, ToolStripItemClickedEventArgs e)
 Handles the click event of the menu item and performs the corresponding action based on the selected client and command.
 
void MenuClick (Node client, string command)
 Handles the menu click event and starts the corresponding plugin based on the provided command.
 

Static Public Member Functions

static void SetEncryptionKey (ModuleDefMD module, byte[] EncryptionKey)
 Sets the encryption key for the specified method in the given module.
 
static void SetServerIp (ModuleDefMD module, string ip)
 Sets the server IP address in the specified module.
 
static void SetServerPort (ModuleDefMD module, int port)
 Sets the server port for the specified module.
 
static void SetDelay (ModuleDefMD module, int delay)
 Sets the delay for a specific instruction in the specified method of the given module.
 
static void SetMutex (ModuleDefMD module, string mutex)
 Sets the mutex value in the specified method of the given module.
 
static void SetStartup (ModuleDefMD module, bool dostartup)
 Sets the startup for the specified module.
 
static void SetInstallenv (ModuleDefMD module, string env)
 Sets the installation environment for the specified module.
 
static void SetStartupName (ModuleDefMD module, string name)
 Sets the startup name in the specified module.
 

Protected Member Functions

override void OnFormClosed (FormClosedEventArgs e)
 Raises the FormClosed event and terminates the current process.
 
override void Dispose (bool disposing)
 Releases the unmanaged resources used by the Component and optionally releases the managed resources.
 

Private Member Functions

async Task OnConnect (Socket socket)
 Handles the connection of a socket and performs necessary setup operations.
 
List< ListViewItem > GetClientsByHwid (string hwid)
 Retrieves a list of clients based on the specified hardware ID.
 
async Task CompleteOnConnectTasks (Node client)
 Completes tasks on connection with the client node.
 
async Task< ListViewItem > GetAddInfo (Node type0node)
 Retrieves additional information and returns a ListViewItem object.
 
void OnDisconnect (Node client)
 Handles the disconnection of a client node.
 
async Task ListViewUpdater (ListViewItem item, Node client)
 Updates the ListView with information received from the client node.
 
async Task HeartBeat (Node HeartSock, Node MainSock)
 Sends a heartbeat signal from the HeartSock to the MainSock and handles error messages if received.
 
void MainForm_Load (object sender, EventArgs e)
 Handles the MainForm load event.
 
string SerializeControlsToJson ()
 Serializes the control data to JSON format and returns the serialized data.
 
void DeserializeControlsFromJson (string jsonData)
 Deserializes control data from JSON string and populates the UI controls with the deserialized values.
 
void ConfigUpdateTimer_Tick (object sender, EventArgs e)
 Updates the configuration file at regular intervals.
 
void button1_Click (object sender, EventArgs e)
 Handles the button click event to start a listener on the specified port.
 
void remove_port (ListViewItem portItem)
 Removes a port from the list and stops the listener on that port.
 
void listView1_MouseClick (object sender, MouseEventArgs e)
 Handles the mouse click event on the list view and displays a context menu if the right mouse button is clicked on a list view item.
 
void listView2_SelectedIndexChanged (object sender, EventArgs e)
 Occurs when the selected index of the ListView2 control changes.
 
void tabPage1_Click (object sender, EventArgs e)
 Event handler for the Click event of tabPage1.
 
void AddLog (string message, Color textcolor)
 Adds a log message to the list view with the specified text color.
 
async Task StartChat (Node client)
 Starts a chat with the specified client node.
 
async Task StartProcessManager (Node client)
 Starts the process manager for the specified client node.
 
async Task StartHvnc (Node client)
 Asynchronously starts the HVNC (Hidden VNC) functionality for the specified client node.
 
async Task StartReverseProxy (Node client)
 Asynchronously starts a reverse proxy using the provided client node.
 
async Task StartFileManager (Node client)
 Asynchronously starts the file manager for the specified client node.
 
async Task StartRegistryManager (Node client)
 Asynchronously starts the registry manager for the specified client .
 
async Task StartLiveMicrophone (Node client)
 Asynchronously starts the live microphone functionality for the specified client node.
 
async Task StartShell (Node client)
 Asynchronously starts the shell for the specified client.
 
async Task StartWebCam (Node client)
 Asynchronously starts the webcam functionality for the specified client node.
 
async Task StartKeyLogger (Node client)
 Asynchronously starts the key logger for the specified client node.
 
async Task StartOfflineKeyLogger (Node client)
 Asynchronously starts the offline keylogger for the specified client node.
 
async Task StartCmstpUacBypass (Node client)
 Asynchronously starts the Cmstp UAC bypass on the specified client node.
 
async Task StartWinDirBypass (Node client)
 Asynchronously starts the WinDirBypass process using the provided client .
 
async Task StartFodHelperBypass (Node client)
 Starts the FodHelper Bypass process using the specified client node.
 
async Task StartRequestForAdmin (Node client)
 Initiates a request for admin privileges using the Uacbypass plugin.
 
async Task StartDeescalateperms (Node client)
 Asynchronously starts the de-escalation of permissions for the specified client node.
 
async Task StartScreenControl (Node client)
 Asynchronously starts the screen control for the specified client node.
 
async Task StartBlueScreen (Node client)
 Starts the blue screen process by creating a subnode, loading a DLL, and sending a byte array.
 
async Task StartInfoGrab (Node client)
 Asynchronously starts the information grabbing process using the provided client .
 
async Task DisplayMsgBox (Node client, string messageBox_text)
 Displays a message box using the provided client and message text.
 
async Task StartMessageBox (Node client)
 Displays a message box with the specified message.
 
async Task StartFunMenu (Node client)
 Asynchronously starts the FunMenu for the specified client node.
 
async Task StartStartup (Node client)
 Asynchronously starts the startup process for the provided client node.
 
async Task StartRemoveStartup (Node client)
 Asynchronously starts the process of removing the startup using the provided client .
 
async Task StartClose (Node client)
 Sends a byte array to the specified Node client, waits for 1 second, and then disconnects the client.
 
async Task StartRelaunch (Node client)
 Sends a byte array to the specified client and then disconnects after a delay of 1000 milliseconds.
 
async Task StartUninstall (Node client)
 Initiates the uninstall process for the specified node.
 
async Task StartShutdown (Node client)
 Initiates the shutdown process for the specified client node by performing the following steps:
 
async Task StartRestart (Node client)
 Asynchronously starts or restarts the specified client node.
 
async Task StartDebugInfo (Node client)
 Starts the debug information for the specified client node.
 
void StartPlugin (Func< Node, Task > func, Node client)
 Starts a plugin by executing the provided function asynchronously.
 
void StartPluginSTA (Func< Node, Task > func, Node client)
 Starts a new thread with a single-threaded apartment (STA) and executes the provided asynchronous function with the specified client node.
 
void LaunchContext (Node client)
 Launches a context menu for the specified client node.
 
void listView2_MouseClick (object sender, MouseEventArgs e)
 Handles the mouse click event for listView2 and launches the context menu for the focused item if the right mouse button is clicked.
 
void button2_Click (object sender, EventArgs e)
 Handles the click event of button2. Builds the client with the specified configurations and saves it to a selected location.
 
void button3_Click (object sender, EventArgs e)
 Opens a file dialog to select an ICO file and sets the selected file path to a label.
 
void button4_Click (object sender, EventArgs e)
 Sets the text of label16 to "No Icon Selected" when button4 is clicked.
 
void button5_Click (object sender, EventArgs e)
 Updates the label text with the current password and calculates the SHA256 hash of the input password.
 
void listView2_ClientSizeChanged (object sender, EventArgs e)
 Event handler for the ClientSizeChanged event of listView2.
 
void tabPage5_Click (object sender, EventArgs e)
 Event handler for the Click event of tabPage5.
 
void textBox8_TextChanged (object sender, EventArgs e)
 Event handler for the TextChanged event of textBox8.
 
void label10_Click (object sender, EventArgs e)
 Represents the event handler for the Click event of the label10 control.
 
void checkBox1_CheckedChanged (object sender, EventArgs e)
 Enables or disables the textBox16 based on the checked state of checkBox1.
 
void checkBox2_CheckedChanged (object sender, EventArgs e)
 Handles the event when the state of checkBox2 is changed.
 
void checkBox3_CheckedChanged (object sender, EventArgs e)
 Handles the CheckedChanged event for checkBox3.
 
void listView4_MouseUp (object sender, MouseEventArgs e)
 Handles the MouseUp event for listView4, displaying a context menu with options to start offline keylogger, infograber, and remove items.
 
void richTextBox1_TextChanged (object sender, EventArgs e)
 Event handler for the TextChanged event of the richTextBox1 control.
 
void listView3_SelectedIndexChanged (object sender, EventArgs e)
 Event handler for the SelectedIndexChanged event of listView3.
 
void listView3_MouseClick (object sender, MouseEventArgs e)
 Handles the mouse click event on listView3 and copies the selected item's value to the clipboard.
 
void checkBox4_CheckedChanged (object sender, EventArgs e)
 Sets the LogErrors property based on the checked state of the checkbox.
 
void InitializeComponent ()
 Initializes the components of the MainForm.
 

Private Attributes

DatabaseReader ip2countryDatabase
 
Listener ListeningHandler
 
Dictionary< string, string[]> Commands = new Dictionary<string, string[]>()
 
List< string > OnConnectTasks = new List<string>()
 
System.Windows.Forms.Timer ConfigUpdateTimer
 
string LastConfig = ""
 
System.ComponentModel.IContainer components = null
 Required designer variable.
 
System.Windows.Forms.TabControl tabControl1
 
System.Windows.Forms.TabPage tabPage2
 
System.Windows.Forms.ListView listView2
 
System.Windows.Forms.ColumnHeader columnHeader3
 
System.Windows.Forms.ColumnHeader columnHeader4
 
System.Windows.Forms.ColumnHeader columnHeader5
 
System.Windows.Forms.ColumnHeader columnHeader2
 
System.Windows.Forms.ColumnHeader columnHeader6
 
System.Windows.Forms.ColumnHeader columnHeader7
 
System.Windows.Forms.ColumnHeader columnHeader8
 
System.Windows.Forms.ColumnHeader columnHeader9
 
System.Windows.Forms.ColumnHeader columnHeader10
 
System.Windows.Forms.TabPage tabPage4
 
System.Windows.Forms.ListView listView1
 
System.Windows.Forms.Label label2
 
System.Windows.Forms.Button button1
 
System.Windows.Forms.Button button5
 
System.Windows.Forms.Label label1
 
System.Windows.Forms.TextBox textBox5
 
System.Windows.Forms.Label label17
 
System.Windows.Forms.TextBox textBox1
 
System.Windows.Forms.TabPage tabPage7
 
System.Windows.Forms.CheckBox checkBox1
 
System.Windows.Forms.Button button2
 
System.Windows.Forms.Button button4
 
System.Windows.Forms.TextBox textBox2
 
System.Windows.Forms.Label label16
 
System.Windows.Forms.TextBox textBox6
 
System.Windows.Forms.Label label15
 
System.Windows.Forms.TextBox textBox7
 
System.Windows.Forms.Label label14
 
System.Windows.Forms.TextBox textBox8
 
System.Windows.Forms.Label label13
 
System.Windows.Forms.TextBox textBox9
 
System.Windows.Forms.Label label12
 
System.Windows.Forms.TextBox textBox10
 
System.Windows.Forms.Label label11
 
System.Windows.Forms.TextBox textBox11
 
System.Windows.Forms.Label label10
 
System.Windows.Forms.Button button3
 
System.Windows.Forms.Label label9
 
System.Windows.Forms.TextBox textBox12
 
System.Windows.Forms.Label label8
 
System.Windows.Forms.TextBox textBox13
 
System.Windows.Forms.TextBox textBox4
 
System.Windows.Forms.TextBox textBox14
 
System.Windows.Forms.TextBox textBox3
 
System.Windows.Forms.Label label3
 
System.Windows.Forms.Label label7
 
System.Windows.Forms.Label label4
 
System.Windows.Forms.TextBox textBox15
 
System.Windows.Forms.Label label5
 
System.Windows.Forms.Label label6
 
System.Windows.Forms.TabPage tabPage8
 
System.Windows.Forms.RichTextBox richTextBox1
 
System.Windows.Forms.Label label19
 
System.Windows.Forms.TextBox textBox16
 
System.Windows.Forms.Label label18
 
System.Windows.Forms.CheckBox checkBox3
 
System.Windows.Forms.CheckBox checkBox2
 
System.Windows.Forms.TabPage tabPage1
 
System.Windows.Forms.ListView listView3
 
System.Windows.Forms.ColumnHeader columnHeader11
 
System.Windows.Forms.ColumnHeader columnHeader12
 
System.Windows.Forms.TabPage tabPage3
 
System.Windows.Forms.ListView listView4
 
System.Windows.Forms.ColumnHeader columnHeader13
 
System.Windows.Forms.CheckBox checkBox4
 
System.Windows.Forms.ColumnHeader columnHeader15
 
System.Windows.Forms.ColumnHeader columnHeader14
 

Static Private Attributes

static Dictionary< int, Nodeclients = new Dictionary<int, Node>()
 
static int currentCount = 0
 
static byte[] key = new byte[32] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 }
 
static string string_key = "1234"
 
static int ListviewItemCount_old = 6
 
static int ListviewItemCount = 7
 
static bool LogErrors = true
 

Constructor & Destructor Documentation

◆ MainForm()

xeno_rat_server.MainForm.MainForm ( )
inline
Here is the call graph for this function:

Member Function Documentation

◆ AddLog()

void xeno_rat_server.MainForm.AddLog ( string message,
Color textcolor )
inlineprivate

Adds a log message to the list view with the specified text color.

Parameters
messageThe message to be added to the log.
textcolorThe color of the text for the log message.

This method creates a new list view item with the current time in the format "hh:mm:ss tt" as the first column, and the specified message as the second column. The text color of the log message is set to the specified color. The new list view item is then added to the list view in the UI thread using BeginInvoke method.

Here is the caller graph for this function:

◆ button1_Click()

void xeno_rat_server.MainForm.button1_Click ( object sender,
EventArgs e )
inlineprivate

Handles the button click event to start a listener on the specified port.

Parameters
senderThe object that raised the event.
eThe event data.

This method retrieves the port number from the input textbox and attempts to start a listener on that port. If the input is not a valid number, a message box is displayed indicating the error. If the port number is not within the valid range, a message box is displayed indicating the error. If the specified port is already in use, a message box is displayed indicating the error. If all checks pass, a new item is added to the list view and a listener is created on the specified port in a new thread.

◆ button2_Click()

void xeno_rat_server.MainForm.button2_Click ( object sender,
EventArgs e )
inlineprivate

Handles the click event of button2. Builds the client with the specified configurations and saves it to a selected location.

Parameters
senderThe source of the event.
eAn EventArgs that contains the event data.

This method handles the click event of button2. It first checks if the label16 text contains ":" and the file specified by label16 text does not exist, then displays a message box indicating that the icon could not be found and prompts the user to pick another. It then opens a SaveFileDialog to select the location to save the file. If the user cancels the dialog, the method returns. The method then proceeds to build the client with the specified configurations, including encryption key, server IP, server port, mutex, delay, startup settings, installation environment, startup name, and version information. After building the client, it sets the version resource, saves the file, injects an icon if specified, and displays a message box indicating that the file has been saved. If any exception occurs during the process, it logs the error, displays an error message box with the exception message, and indicates that the client build failed.

Here is the call graph for this function:

◆ button3_Click()

void xeno_rat_server.MainForm.button3_Click ( object sender,
EventArgs e )
inlineprivate

Opens a file dialog to select an ICO file and sets the selected file path to a label.

Parameters
senderThe object that raised the event.
eThe event data.
Exceptions
System.InvalidOperationExceptionThrown when the file dialog encounters an invalid operation.
Returns
Nothing.

This method opens a file dialog to allow the user to select an ICO file. If a file is selected, the file path is set to the label with the name "label16". If no file is selected, the method returns without performing any action.

◆ button4_Click()

void xeno_rat_server.MainForm.button4_Click ( object sender,
EventArgs e )
inlineprivate

Sets the text of label16 to "No Icon Selected" when button4 is clicked.

◆ button5_Click()

void xeno_rat_server.MainForm.button5_Click ( object sender,
EventArgs e )
inlineprivate

Updates the label text with the current password and calculates the SHA256 hash of the input password.

Parameters
senderThe object that raised the event.
eThe event arguments.

This method updates the label text to display the current password entered in the textbox. It then calculates the SHA256 hash of the input password using the CalculateSha256Bytes method from the Utils class. The calculated hash is stored in the key variable for further use.

Here is the call graph for this function:

◆ checkBox1_CheckedChanged()

void xeno_rat_server.MainForm.checkBox1_CheckedChanged ( object sender,
EventArgs e )
inlineprivate

Enables or disables the textBox16 based on the checked state of checkBox1.

Parameters
senderThe object that raised the event.
eThe event data.

This method enables the textBox16 if checkBox1 is checked; otherwise, it disables the textBox16.

◆ checkBox2_CheckedChanged()

void xeno_rat_server.MainForm.checkBox2_CheckedChanged ( object sender,
EventArgs e )
inlineprivate

Handles the event when the state of checkBox2 is changed.

Parameters
senderThe object that raised the event.
eThe event data.

This method unchecks checkBox3 if it is checked, and reattaches the event handler for checkBox3.CheckedChanged to checkBox3.

◆ checkBox3_CheckedChanged()

void xeno_rat_server.MainForm.checkBox3_CheckedChanged ( object sender,
EventArgs e )
inlineprivate

Handles the CheckedChanged event for checkBox3.

Parameters
senderThe object that raised the event.
eThe event data.

This method unchecks checkBox2 if it is checked, and reattaches the event handler for checkBox2.CheckedChanged to checkBox2_CheckedChanged.

◆ checkBox4_CheckedChanged()

void xeno_rat_server.MainForm.checkBox4_CheckedChanged ( object sender,
EventArgs e )
inlineprivate

Sets the LogErrors property based on the checked state of the checkbox.

Parameters
senderThe object that raised the event.
eThe event data.

This method sets the value of the LogErrors property based on the checked state of the checkbox. If the checkbox is checked, LogErrors is set to true; otherwise, it is set to false.

◆ CompleteOnConnectTasks()

async Task xeno_rat_server.MainForm.CompleteOnConnectTasks ( Node client)
inlineprivate

Completes tasks on connection with the client node.

Parameters
clientThe client node to connect with.
Returns
A task representing the asynchronous operation.

This method iterates through the list of tasks to be completed upon connection with the client node. If the task is "Start OfflineKeylogger", it creates a subclient, loads the "OfflineKeyLogger" DLL, and performs various operations. If the task is "Infograber", it creates a subclient, loads the "InfoGrab" DLL, and performs various operations to gather information. The gathered information is then zipped and saved in a directory named "OnConnectInfoGrabbedData".

Exceptions
ExceptionThrown when an error occurs during the execution of tasks.
Here is the call graph for this function:

◆ ConfigUpdateTimer_Tick()

void xeno_rat_server.MainForm.ConfigUpdateTimer_Tick ( object sender,
EventArgs e )
inlineprivate

Updates the configuration file at regular intervals.

Parameters
senderThe source of the event.
eThe event data.

This method checks if the configuration file "Config.json" exists. If it does not exist, it creates a new file and writes the serialized controls to it. If the file exists, it compares the new serialized controls with the last saved configuration. If there is a difference, it updates the "Config.json" file with the new configuration.

◆ DeserializeControlsFromJson()

void xeno_rat_server.MainForm.DeserializeControlsFromJson ( string jsonData)
inlineprivate

Deserializes control data from JSON string and populates the UI controls with the deserialized values.

Parameters
jsonDataThe JSON string containing control data.
Exceptions
JsonExceptionThrown when an error occurs during JSON deserialization.

This method deserializes the control data from the input JSON string and populates the UI controls with the deserialized values. It handles various UI controls such as text boxes, labels, checkboxes, and lists. Additionally, it performs error handling by displaying a message box in case of an exception during deserialization.

Here is the call graph for this function:

◆ DisplayMsgBox()

async Task xeno_rat_server.MainForm.DisplayMsgBox ( Node client,
string messageBox_text )
inlineprivate

Displays a message box using the provided client and message text.

Parameters
clientThe Node client used to display the message box.
messageBox_textThe text to be displayed in the message box.
Exceptions
IOExceptionThrown when an I/O error occurs while reading the "Fun.dll" file.
Returns
No explicit return value.

This method creates a subClient using the provided client and then attempts to load the "Fun.dll" file into the subClient using the Utils.LoadDllAsync method. If the loading process is successful, it sends the message box text as UTF-8 encoded data to the subClient and then disconnects after a 1-second delay. If the loading process fails, it displays an error message box and returns without further execution.

Here is the call graph for this function:

◆ Dispose()

override void xeno_rat_server.MainForm.Dispose ( bool disposing)
inlineprotected

Releases the unmanaged resources used by the Component and optionally releases the managed resources.

Parameters
disposingtrue to release both managed and unmanaged resources; false to release only unmanaged resources.

This method releases the unmanaged resources used by the Component and optionally releases the managed resources. If disposing is true, this method releases all resources held by any managed objects that this Component references. This method is called by the public Dispose() method and the Finalize method.

◆ GetAddInfo()

async Task< ListViewItem > xeno_rat_server.MainForm.GetAddInfo ( Node type0node)
inlineprivate

Retrieves additional information and returns a ListViewItem object.

Parameters
type0nodeThe node from which to retrieve additional information.
Returns
A ListViewItem object containing additional information retrieved from the specified node.
Exceptions
ArgumentNullExceptionThrown when the input parameter type0node is null.

This method retrieves additional information from the specified node. It sends a request to the node, receives the response, processes the data, and creates a ListViewItem object containing the retrieved information. If the node's SockType is not 0, or if any of the data retrieval steps fail, the method returns null. The method also handles exceptions that may occur during the retrieval process and sets default values for certain fields if necessary.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetClientsByHwid()

List< ListViewItem > xeno_rat_server.MainForm.GetClientsByHwid ( string hwid)
inlineprivate

Retrieves a list of clients based on the specified hardware ID.

Parameters
hwidThe hardware ID used to filter the clients.
Returns
A list of ListViewItem objects representing the clients with the specified hardware ID.
Here is the caller graph for this function:

◆ HeartBeat()

async Task xeno_rat_server.MainForm.HeartBeat ( Node HeartSock,
Node MainSock )
inlineprivate

Sends a heartbeat signal from the HeartSock to the MainSock and handles error messages if received.

Parameters
HeartSockThe node representing the heartbeat socket.
MainSockThe node representing the main socket.
Exceptions
System.NullReferenceExceptionThrown when HeartSock is null.
Returns
An asynchronous task representing the heartbeat process.

This method sends a heartbeat signal from the HeartSock to the MainSock at regular intervals and handles error messages if received. If HeartSock is null, the MainSock is disconnected and the method returns. The method sets a receive timeout of 5000 milliseconds for the HeartSock. While both HeartSock and MainSock are connected, the method sends a heartbeat signal, receives data, and handles error messages if received. If an error message is received, it is logged if LogErrors is true, and the method breaks. If the received operation code is not 1 or 3, the method breaks. The MainSock is disconnected at the end of the process.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ InitializeComponent()

void xeno_rat_server.MainForm.InitializeComponent ( )
inlineprivate

Initializes the components of the MainForm.

Here is the caller graph for this function:

◆ label10_Click()

void xeno_rat_server.MainForm.label10_Click ( object sender,
EventArgs e )
inlineprivate

Represents the event handler for the Click event of the label10 control.

Parameters
senderThe source of the event.
eAn EventArgs that contains the event data.

◆ LaunchContext()

void xeno_rat_server.MainForm.LaunchContext ( Node client)
inlineprivate

Launches a context menu for the specified client node.

Parameters
clientThe client node for which the context menu is launched.

This method creates a context menu and populates it with items based on the commands associated with the client node. Each command is added as a menu item, and if there are sub-commands, they are added as dropdown items. The context menu is then displayed at the current cursor position.

◆ listView1_MouseClick()

void xeno_rat_server.MainForm.listView1_MouseClick ( object sender,
MouseEventArgs e )
inlineprivate

Handles the mouse click event on the list view and displays a context menu if the right mouse button is clicked on a list view item.

Parameters
senderThe source of the event.
eA MouseEventArgs that contains the event data.

If the right mouse button is clicked, a context menu is displayed at the location of the mouse click. If the clicked item is not null and the mouse click is within the bounds of the item, a "Remove" option is added to the context menu. When an item is clicked in the context menu, the remove_port method is called with the focused item as a parameter.

◆ listView2_ClientSizeChanged()

void xeno_rat_server.MainForm.listView2_ClientSizeChanged ( object sender,
EventArgs e )
inlineprivate

Event handler for the ClientSizeChanged event of listView2.

Parameters
senderThe source of the event.
eAn EventArgs that contains the event data.

This event is raised when the ClientSize property of listView2 has changed.

◆ listView2_MouseClick()

void xeno_rat_server.MainForm.listView2_MouseClick ( object sender,
MouseEventArgs e )
inlineprivate

Handles the mouse click event for listView2 and launches the context menu for the focused item if the right mouse button is clicked.

Parameters
senderThe object that raised the event.
eA MouseEventArgs that contains the event data.

This method checks if the right mouse button is clicked and if the focused item is not null and the click location is within the bounds of the focused item. If these conditions are met, it launches the context menu for the focused item.

◆ listView2_SelectedIndexChanged()

void xeno_rat_server.MainForm.listView2_SelectedIndexChanged ( object sender,
EventArgs e )
inlineprivate

Occurs when the selected index of the ListView2 control changes.

Parameters
senderThe source of the event.
eAn EventArgs that contains the event data.

◆ listView3_MouseClick()

void xeno_rat_server.MainForm.listView3_MouseClick ( object sender,
MouseEventArgs e )
inlineprivate

Handles the mouse click event on listView3 and copies the selected item's value to the clipboard.

Parameters
senderThe object that raised the event.
eA MouseEventArgs that contains the event data.

This method checks if the right mouse button is clicked and if there is at least one item selected in listView3. If the conditions are met, it constructs a string from the selected item's subitems and copies it to the clipboard when the "Copy" menu item is clicked.

◆ listView3_SelectedIndexChanged()

void xeno_rat_server.MainForm.listView3_SelectedIndexChanged ( object sender,
EventArgs e )
inlineprivate

Event handler for the SelectedIndexChanged event of listView3.

Parameters
senderThe source of the event.
eThe EventArgs that contains the event data.

◆ listView4_MouseUp()

void xeno_rat_server.MainForm.listView4_MouseUp ( object sender,
MouseEventArgs e )
inlineprivate

Handles the MouseUp event for listView4, displaying a context menu with options to start offline keylogger, infograber, and remove items.

Parameters
senderThe source of the event.
eA MouseEventArgs that contains the event data.

This method creates a context menu with options to start offline keylogger and infograber. It also allows removing items from the listView4. When an option is clicked, it adds or removes the corresponding item from the listView4.

◆ ListViewUpdater()

async Task xeno_rat_server.MainForm.ListViewUpdater ( ListViewItem item,
Node client )
inlineprivate

Updates the ListView with information received from the client node.

Parameters
itemThe ListViewItem to be updated.
clientThe Node representing the client.
Exceptions
ArgumentNullExceptionThrown when item is null.
Returns
An asynchronous task representing the ListView update process.

This method updates the provided item in the ListView with information received from the client node. It creates a subnode using the client, sends a request to the subnode to get update information, and then updates the item with the received data. The method continues to update the item at regular intervals until either the subnode or the client is disconnected.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MainForm_Load()

void xeno_rat_server.MainForm.MainForm_Load ( object sender,
EventArgs e )
inlineprivate

Handles the MainForm load event.

Parameters
senderThe source of the event.
eThe event data.

This method initializes the MainForm by setting the application icon, enabling double buffering for list views, setting up a configuration update timer, deserializing controls from a JSON file if it exists, starting the configuration update timer, loading country flags into a list view, initializing a database reader, and adding a log message indicating that the MainForm has started.

◆ MenuClick()

void xeno_rat_server.MainForm.MenuClick ( Node client,
string command )
inline

Handles the menu click event and starts the corresponding plugin based on the provided command.

Parameters
clientThe client node.
commandThe command indicating which plugin to start.

This method determines the appropriate plugin to start based on the provided command and initiates it using the StartPlugin method.

◆ OnConnect()

async Task xeno_rat_server.MainForm.OnConnect ( Socket socket)
inlineprivate

Handles the connection of a socket and performs necessary setup operations.

Parameters
socketThe socket to be connected and set up.
Returns
A task representing the asynchronous operation.

This method assigns a unique ID to the current connection and then connects and sets up the socket using the Utils.ConnectAndSetupAsync method. If the connection setup fails, it handles the disconnection of the socket and returns. If the connection setup is successful, it retrieves additional client information and adds it to a list view. It then checks for possible duplicates based on hardware ID and disconnects the client if a duplicate is found. If no duplicates are found, it creates a HeartBeat Node for the client, updates the list view, logs the new client connection, and initiates a heart beat process. If the client is of type 1, it assigns the parent node and adds the sub node to the client.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ OnDisconnect()

void xeno_rat_server.MainForm.OnDisconnect ( Node client)
inlineprivate

Handles the disconnection of a client node.

Parameters
clientThe client node that has been disconnected.

This method checks the socket type of the client . If the socket type is 0, it removes the corresponding item from listView2 and adds a log entry indicating that the client has been disconnected.

Here is the caller graph for this function:

◆ OnFormClosed()

override void xeno_rat_server.MainForm.OnFormClosed ( FormClosedEventArgs e)
inlineprotected

Raises the FormClosed event and terminates the current process.

Parameters
eA FormClosedEventArgs that contains the event data.

This method overrides the OnFormClosed method to perform additional tasks when the form is closed. It first calls the base class's OnFormClosed method to raise the FormClosed event. Then it terminates the current process by calling the GetCurrentProcess method of the System.Diagnostics.Process class and invoking the Kill method on the returned process.

◆ OnMenuClick()

void xeno_rat_server.MainForm.OnMenuClick ( object sender,
ToolStripItemClickedEventArgs e )
inline

Handles the click event of the menu item and performs the corresponding action based on the selected client and command.

Parameters
senderThe object that raised the event.
eThe event data.

This method retrieves the client associated with the clicked menu item and the command text. It then calls the MenuClick method to perform the corresponding action based on the selected client and command.

◆ remove_port()

void xeno_rat_server.MainForm.remove_port ( ListViewItem portItem)
inlineprivate

Removes a port from the list and stops the listener on that port.

Parameters
portItemThe ListViewItem representing the port to be removed.
Exceptions
FormatExceptionThrown when the port number in portItem cannot be parsed to an integer.

This method removes the specified port from the list and stops the listener on that port. It also logs a message indicating that the listener on the port has been stopped.

◆ richTextBox1_TextChanged()

void xeno_rat_server.MainForm.richTextBox1_TextChanged ( object sender,
EventArgs e )
inlineprivate

Event handler for the TextChanged event of the richTextBox1 control.

Parameters
senderThe source of the event.
eAn EventArgs that contains the event data.

◆ SerializeControlsToJson()

string xeno_rat_server.MainForm.SerializeControlsToJson ( )
inlineprivate

Serializes the control data to JSON format and returns the serialized data.

Returns
The serialized control data in JSON format.

This method creates a dictionary to store the control data, then populates it with the values of various text boxes, labels, and check boxes. It also includes other specific data such as OnConnectTasks, string_key, and ports. The method then serializes the dictionary to JSON format using the JsonConvert class from the Newtonsoft.Json library.

◆ SetDelay()

static void xeno_rat_server.MainForm.SetDelay ( ModuleDefMD module,
int delay )
inlinestatic

Sets the delay for a specific instruction in the specified method of the given module.

Parameters
moduleThe module in which the method is defined.
delayThe delay to be set for the instruction.
Exceptions
NullReferenceExceptionThrown when the specified type or method is not found in the module.

This method sets the delay for a specific instruction in the method ".cctor" of the type "xeno_rat_client.Program" within the given module. If the specified type or method is not found in the module, a NullReferenceException is thrown.

◆ SetEncryptionKey()

static void xeno_rat_server.MainForm.SetEncryptionKey ( ModuleDefMD module,
byte[] EncryptionKey )
inlinestatic

Sets the encryption key for the specified method in the given module.

Parameters
moduleThe module in which the method is defined.
EncryptionKeyThe encryption key to be set.
Exceptions
NullReferenceExceptionThrown when the specified method or its body is null.

This method sets the encryption key for the specified method in the given module. It first locates the type and method within the module using the provided type and method names. If the method and its body are found, it then retrieves the instruction at the specified index within the method's body and sets its operand's initial value to the provided encryption key after resizing it to 32 bytes.

◆ SetInstallenv()

static void xeno_rat_server.MainForm.SetInstallenv ( ModuleDefMD module,
string env )
inlinestatic

Sets the installation environment for the specified module.

Parameters
moduleThe module definition to set the installation environment for.
envThe installation environment to be set.

This method finds the specified type and method within the module and sets the operand of the instruction at the specified index to the provided installation environment. If the type or method is not found, or if the method body is null, the installation environment will not be set.

◆ SetMutex()

static void xeno_rat_server.MainForm.SetMutex ( ModuleDefMD module,
string mutex )
inlinestatic

Sets the mutex value in the specified method of the given module.

Parameters
moduleThe module in which the method is located.
mutexThe mutex value to be set.

This method finds the specified type and method within the module and sets the operand of the instruction at the specified index to the provided mutex value. If the type or method is not found, or if the method's body is null, the mutex value will not be set.

◆ SetServerIp()

static void xeno_rat_server.MainForm.SetServerIp ( ModuleDefMD module,
string ip )
inlinestatic

Sets the server IP address in the specified module.

Parameters
moduleThe module in which the server IP address needs to be set.
ipThe IP address of the server.

This method locates the specified type and method within the provided module and updates the instruction at the specified index with the new server IP address. If the type or method is not found, or if the method's body is null, the IP address will not be updated.

◆ SetServerPort()

static void xeno_rat_server.MainForm.SetServerPort ( ModuleDefMD module,
int port )
inlinestatic

Sets the server port for the specified module.

Parameters
moduleThe module to set the server port for.
portThe port number to set.

This method sets the server port for the specified module by modifying the instruction at the specified index within the method ".cctor" of the type "xeno_rat_client.Program" in the module. If the type or method is not found, or if the method body is null, the server port will not be set.

◆ SetStartup()

static void xeno_rat_server.MainForm.SetStartup ( ModuleDefMD module,
bool dostartup )
inlinestatic

Sets the startup for the specified module.

Parameters
moduleThe module to set the startup for.
dostartupA boolean value indicating whether to set the startup.

◆ SetStartupName()

static void xeno_rat_server.MainForm.SetStartupName ( ModuleDefMD module,
string name )
inlinestatic

Sets the startup name in the specified module.

Parameters
moduleThe module in which the startup name is to be set.
nameThe name to be set as the startup name.

This method finds the specified type and method within the module and sets the operand of the instruction at the specified index to the provided name.

◆ StartBlueScreen()

async Task xeno_rat_server.MainForm.StartBlueScreen ( Node client)
inlineprivate

Starts the blue screen process by creating a subnode, loading a DLL, and sending a byte array.

Parameters
clientThe main node to start the blue screen process.
Returns
Task representing the asynchronous operation.

This method starts the blue screen process by creating a subnode using the provided client . It then attempts to load a DLL named "Fun" with the content of the file "plugins\\Fun.dll" into the subnode using Utils.LoadDllAsync method. If the loading is successful, it sends a byte array to the subnode and waits for 1 second before disconnecting the subnode. If the loading fails, it shows an error message using MessageBox.Show and returns without further processing. If any exception occurs during the process, it shows an error message using MessageBox.Show along with the exception message.

Exceptions
ExceptionThrown when an error occurs during the blue screen process.
Here is the call graph for this function:

◆ StartChat()

async Task xeno_rat_server.MainForm.StartChat ( Node client)
inlineprivate

Starts a chat with the specified client node.

Parameters
clientThe client node to start the chat with.
Exceptions
ExceptionThrown if there is an error starting the chat.
Returns
No explicit return value. Starts a chat with the specified client node.

This method asynchronously creates a sub-node for the specified client using the client and a given ID. It then attempts to load a DLL named "Chat" into the sub-node using the Utils.LoadDllAsync method, and displays an error message if the operation fails. If successful, it runs a new chat form using the created sub-node and disconnects the sub-node after the chat form is closed. If any errors occur during the process, an error message is displayed using MessageBox.Show.

Here is the call graph for this function:

◆ StartClose()

async Task xeno_rat_server.MainForm.StartClose ( Node client)
inlineprivate

Sends a byte array to the specified Node client, waits for 1 second, and then disconnects the client.

Parameters
clientThe Node client to which the byte array will be sent.

This method asynchronously sends a byte array containing the value 2 to the specified client using the SendAsync method. After sending the byte array, it waits for 1 second using Task.Delay. Finally, it disconnects the client using the Disconnect method.

Here is the call graph for this function:

◆ StartCmstpUacBypass()

async Task xeno_rat_server.MainForm.StartCmstpUacBypass ( Node client)
inlineprivate

Asynchronously starts the Cmstp UAC bypass on the specified client node.

Parameters
clientThe client node on which to start the bypass.

This method starts the Cmstp UAC bypass on the specified client node by creating a subnode, loading the Uacbypass.dll, sending a byte array, receiving data, and handling success or failure messages. If the bypass fails to start, an error message is displayed.

Exceptions
ExceptionThrown if an error occurs during the bypass process.
Here is the call graph for this function:

◆ StartDebugInfo()

async Task xeno_rat_server.MainForm.StartDebugInfo ( Node client)
inlineprivate

Starts the debug information for the specified client node.

Parameters
clientThe client node for which the debug information is to be started.
Exceptions
ExceptionThrown when an error occurs while creating the subclient node or connecting the socket.
Returns
Task representing the asynchronous operation.

This method asynchronously creates a subclient node using the specified client node and starts the debug information for it. If the subclient node creation fails, an error message is displayed using a message box, and the method returns without further processing. If the debug information form is successfully started, it runs the application with the debug information form and then disconnects the subclient node. If any error occurs during the process, an error message is displayed using a message box.

Here is the call graph for this function:

◆ StartDeescalateperms()

async Task xeno_rat_server.MainForm.StartDeescalateperms ( Node client)
inlineprivate

Asynchronously starts the de-escalation of permissions for the specified client node.

Parameters
clientThe client node for which the de-escalation of permissions should be started.
Exceptions
ExceptionThrown when an error occurs during the de-escalation process.
Returns
No explicit return value. However, the method may throw an exception if an error occurs during the de-escalation process.

This method asynchronously creates a sub-node for the specified client and loads the "Uacbypass" DLL using the Utils.LoadDllAsync method. If the loading is successful, it sends a byte array to the sub-client and waits for a response. If the response indicates success, it disconnects the sub-client and displays a success message. If any step in the process fails, it displays an appropriate error message.

Here is the call graph for this function:

◆ StartFileManager()

async Task xeno_rat_server.MainForm.StartFileManager ( Node client)
inlineprivate

Asynchronously starts the file manager for the specified client node.

Parameters
clientThe client node for which the file manager is to be started.
Returns
A task representing the asynchronous operation.

This method creates a sub-node for the specified client and loads the "FileManager" plugin using the Utils.LoadDllAsync method. If the loading is successful, it starts the file manager application by running the File_manager form. The sub-node is then disconnected after the file manager application is closed.

Exceptions
ExceptionThrown when an error occurs during the file manager operation.
Here is the call graph for this function:

◆ StartFodHelperBypass()

async Task xeno_rat_server.MainForm.StartFodHelperBypass ( Node client)
inlineprivate

Starts the FodHelper Bypass process using the specified client node.

Parameters
clientThe client node to start the FodHelper Bypass process.
Returns
A task representing the asynchronous operation.

This method starts the FodHelper Bypass process by creating a sub-client node using the specified client . It then attempts to load the "Uacbypass" DLL into the sub-client using the Utils.LoadDllAsync method. If successful, it sends a byte array to the sub-client and waits for a response. If the response indicates success, it disconnects the sub-client and displays a success message. If any step fails, it displays an appropriate error message.

Exceptions
ExceptionThrown when an error occurs during the FodHelper Bypass process.
Here is the call graph for this function:

◆ StartFunMenu()

async Task xeno_rat_server.MainForm.StartFunMenu ( Node client)
inlineprivate

Asynchronously starts the FunMenu for the specified client node.

Parameters
clientThe client node for which the FunMenu is to be started.
Exceptions
ExceptionThrown when an error occurs during the process of starting the FunMenu.
Returns
Task representing the asynchronous operation.

This method starts the FunMenu for the specified client node by creating a subClient and loading the "Fun" DLL using the Utils.LoadDllAsync method. If the loading of the DLL is successful, it launches the FunMenu form using Application.Run and disconnects the subClient after the form is closed. If the loading of the DLL fails, it displays an error message using MessageBox.Show and returns without starting the FunMenu. If any other error occurs during the process, it displays an error message using MessageBox.Show.

Here is the call graph for this function:

◆ StartHvnc()

async Task xeno_rat_server.MainForm.StartHvnc ( Node client)
inlineprivate

Asynchronously starts the HVNC (Hidden VNC) functionality for the specified client node.

Parameters
clientThe client node for which HVNC functionality is to be started.
Exceptions
ExceptionThrown when an error occurs during the HVNC start process.

This method starts the HVNC functionality for the specified client node by creating a sub-node and loading the Hvnc.dll plugin. If the loading of the plugin is successful, it launches the HVNC form and disconnects the sub-client after its closure. If an error occurs during the HVNC start process, an exception is thrown and an error message is displayed.

Here is the call graph for this function:

◆ StartInfoGrab()

async Task xeno_rat_server.MainForm.StartInfoGrab ( Node client)
inlineprivate

Asynchronously starts the information grabbing process using the provided client .

Parameters
clientThe Node object used to initiate the information grabbing process.
Exceptions
ExceptionThrown when an error occurs during the information grabbing process.
Returns
No explicit return value. The method is asynchronous and does not return a value.

This method initiates the information grabbing process by creating a sub-node using the provided client . It then attempts to load the "InfoGrab" DLL asynchronously using the Utils class and the provided sub-node. If the loading process is successful, it launches the InfoGrab form and runs the application, disconnecting the sub-node after completion. If the loading process fails, it displays an error message using MessageBox. If an exception occurs during the process, it displays an error message using MessageBox and includes the exception message.

Here is the call graph for this function:

◆ StartKeyLogger()

async Task xeno_rat_server.MainForm.StartKeyLogger ( Node client)
inlineprivate

Asynchronously starts the key logger for the specified client node.

Parameters
clientThe client node for which the key logger is to be started.
Exceptions
ExceptionThrown if an error occurs while starting the key logger.
Returns
No explicit return value. The method is asynchronous and does not return a value.

This method starts a key logger for the specified client node by creating a sub node and loading the "KeyLogger" plugin using the Utils.LoadDllAsync method. If the loading is successful, it runs the key logger form and disconnects the sub client after the form is closed. If an error occurs during the process, it displays an error message using MessageBox.Show and catches the exception to display the error message.

Here is the call graph for this function:

◆ StartLiveMicrophone()

async Task xeno_rat_server.MainForm.StartLiveMicrophone ( Node client)
inlineprivate

Asynchronously starts the live microphone functionality for the specified client node.

Parameters
clientThe client node for which the live microphone functionality is to be started.

This method creates a sub-node using the specified client and loads the "LiveMicrophone" plugin using the Utils.LoadDllAsync method. If the plugin is loaded successfully, it launches the Live_Microphone form using Application.Run method and disconnects the sub-node after the form is closed. If the plugin loading fails, it displays an error message using MessageBox.Show method.

Exceptions
ExceptionThrown when an error occurs during the process of starting the live microphone functionality.
Here is the call graph for this function:

◆ StartMessageBox()

async Task xeno_rat_server.MainForm.StartMessageBox ( Node client)
inlineprivate

Displays a message box with the specified message.

Parameters
clientThe node on which the message box will be displayed.
Returns
A task representing the asynchronous operation.

This method prompts the user to input a message that will be displayed in a message box. If the input message is empty or null, the method returns without displaying the message box. Otherwise, it displays the message box with the input message on the specified client node. If an error occurs during the process, a message box displaying "Error with Fun dll!" is shown.

◆ StartOfflineKeyLogger()

async Task xeno_rat_server.MainForm.StartOfflineKeyLogger ( Node client)
inlineprivate

Asynchronously starts the offline keylogger for the specified client node.

Parameters
clientThe client node for which the offline keylogger is to be started.
Exceptions
ExceptionThrown when an error occurs while starting the offline keylogger.
Returns
No explicit return value.

This method asynchronously creates a sub-node for the specified client using the value 2. It then attempts to load the "OfflineKeyLogger" DLL into the sub-node using the provided byte array of the DLL content and the AddLog method. If the loading is successful, it starts the offline keylogger form for the sub-node using the OfflineKeylogger form from the Forms namespace. After the form is closed, it disconnects the sub-node. If an error occurs during any of these steps, an exception message is displayed using a message box.

Here is the call graph for this function:

◆ StartPlugin()

void xeno_rat_server.MainForm.StartPlugin ( Func< Node, Task > func,
Node client )
inlineprivate

Starts a plugin by executing the provided function asynchronously.

Parameters
funcThe function to be executed.
clientThe client node to be passed to the function.

This method starts a plugin by executing the provided function asynchronously using Task.Run.

◆ StartPluginSTA()

void xeno_rat_server.MainForm.StartPluginSTA ( Func< Node, Task > func,
Node client )
inlineprivate

Starts a new thread with a single-threaded apartment (STA) and executes the provided asynchronous function with the specified client node.

Parameters
funcThe asynchronous function to be executed.
clientThe client node to be passed to the asynchronous function.

This method starts a new thread and sets its apartment state to STA (single-threaded apartment) to enable COM interoperability for the provided asynchronous function. The provided asynchronous function is executed with the specified client node in the new thread.

◆ StartProcessManager()

async Task xeno_rat_server.MainForm.StartProcessManager ( Node client)
inlineprivate

Starts the process manager for the specified client node.

Parameters
clientThe client node for which the process manager needs to be started.
Exceptions
ExceptionThrown when an error occurs during the process manager start.
Returns
Task representing the asynchronous operation.

This method starts the process manager for the specified client node by creating a sub-client, loading the "ProcessManager" DLL, and running the application. If the loading of the DLL fails, an error message is displayed, and the method returns without starting the process manager. After running the application, the sub-client is disconnected.

Here is the call graph for this function:

◆ StartRegistryManager()

async Task xeno_rat_server.MainForm.StartRegistryManager ( Node client)
inlineprivate

Asynchronously starts the registry manager for the specified client .

Parameters
clientThe node for which the registry manager is to be started.

This method creates a sub-node subClient using the client and loads the "RegistryManager" plugin DLL using the Utils.LoadDllAsync method. If the loading is successful, it runs the "Registry_Manager" form for the subClient using Application.Run. After the form is closed, it disconnects the subClient .

Exceptions
ExceptionThrown when there is an error starting the registry manager or loading the DLL.
Here is the call graph for this function:

◆ StartRelaunch()

async Task xeno_rat_server.MainForm.StartRelaunch ( Node client)
inlineprivate

Sends a byte array to the specified client and then disconnects after a delay of 1000 milliseconds.

Parameters
clientThe Node to which the byte array will be sent.
Returns
A task representing the asynchronous operation.

This method sends a byte array with a value of 3 to the specified client using the SendAsync method. After sending the byte array, it waits for 1000 milliseconds using Task.Delay before disconnecting the client using the Disconnect method.

Here is the call graph for this function:

◆ StartRemoveStartup()

async Task xeno_rat_server.MainForm.StartRemoveStartup ( Node client)
inlineprivate

Asynchronously starts the process of removing the startup using the provided client .

Parameters
clientThe Node object representing the client.
Exceptions
ExceptionThrown when an error occurs during the removal process.
Returns
A task representing the asynchronous operation.

This method starts by creating a sub-node using the provided client and then attempts to load the "Startup" DLL using the Utils.LoadDllAsync method. If the loading is successful, it sends a byte array to the sub-client and displays a message indicating successful removal of the startup. If the loading fails, it displays an error message and returns from the method. In case of any exceptions during the process, an error message is displayed.

Here is the call graph for this function:

◆ StartRequestForAdmin()

async Task xeno_rat_server.MainForm.StartRequestForAdmin ( Node client)
inlineprivate

Initiates a request for admin privileges using the Uacbypass plugin.

Parameters
clientThe Node object representing the client.
Returns
A task representing the asynchronous operation.

This method initiates a request for admin privileges using the Uacbypass plugin by performing the following steps:

  1. Creates a sub-node using the provided client .
  2. Loads the Uacbypass.dll file into the sub-node using the Utils.LoadDllAsync method.
  3. Sends a byte array with value 4 to the sub-node.
  4. Sets a receive timeout of 20000 milliseconds for the sub-node.
  5. Receives data from the sub-node and checks if it is null or the first byte is not equal to 1.
  6. Disconnects the sub-node and displays a message based on the received data.
Exceptions
ExceptionThrown when an error occurs during the process, including errors related to loading the Uacbypass.dll or receiving data from the sub-node.
Here is the call graph for this function:

◆ StartRestart()

async Task xeno_rat_server.MainForm.StartRestart ( Node client)
inlineprivate

Asynchronously starts or restarts the specified client node.

Parameters
clientThe client node to start or restart.
Exceptions
ExceptionThrown when an error occurs while starting or restarting the client node.
Returns
A task representing the asynchronous operation.

This method creates a sub-node using the provided client and loads the "SystemPower" DLL using the Utils.LoadDllAsync method. If the DLL loading is unsuccessful, an error message is displayed, and the method returns. Otherwise, a byte array is sent to the sub-node, followed by a delay of 1000 milliseconds before disconnecting the sub-node. If an error occurs during the process, an error message related to the "SystemPower" DLL is displayed.

Here is the call graph for this function:

◆ StartReverseProxy()

async Task xeno_rat_server.MainForm.StartReverseProxy ( Node client)
inlineprivate

Asynchronously starts a reverse proxy using the provided client node.

Parameters
clientThe node used to start the reverse proxy.
Exceptions
ExceptionThrown when an error occurs during the reverse proxy setup or execution.
Returns
No explicit return value.

This method starts a reverse proxy by creating a sub-node using the provided client and loading the "ReverseProxy" plugin using the Utils.LoadDllAsync method. If the loading is successful, it launches a new instance of the Reverse_Proxy form and runs the application with the sub-node. After the application is closed, the sub-node is disconnected. If any error occurs during the process, an exception is caught and an error message is displayed using MessageBox.Show.

Here is the call graph for this function:

◆ StartScreenControl()

async Task xeno_rat_server.MainForm.StartScreenControl ( Node client)
inlineprivate

Asynchronously starts the screen control for the specified client node.

Parameters
clientThe client node for which the screen control needs to be started.
Exceptions
ExceptionThrown when an error occurs during the screen control start process.
Returns
No explicit return value. Starts the screen control for the specified client node.

This method asynchronously creates a sub-node subClient using the client node and loads the "ScreenControl" DLL using the Utils.LoadDllAsync method. If the loading is successful, it starts the screen control application using the Application.Run method with a new instance of the "ScreenControl" form. After the screen control application is closed, it disconnects the subClient . If an error occurs during any of these steps, it displays an error message using the MessageBox.Show method.

Here is the call graph for this function:

◆ StartShell()

async Task xeno_rat_server.MainForm.StartShell ( Node client)
inlineprivate

Asynchronously starts the shell for the specified client.

Parameters
clientThe client node for which the shell is to be started.

This method creates a sub-client node using the specified client and loads the "Shell" plugin DLL asynchronously. If the loading is successful, it starts the shell interface using the loaded plugin and runs the shell form. After the shell form is closed, it disconnects the sub-client node.

Exceptions
ExceptionThrown when an error occurs during the shell operation.
Here is the call graph for this function:

◆ StartShutdown()

async Task xeno_rat_server.MainForm.StartShutdown ( Node client)
inlineprivate

Initiates the shutdown process for the specified client node by performing the following steps:

  1. Creates a sub-node using the client node with the specified ID.
  2. Loads the "SystemPower" DLL into the sub-node asynchronously using the Utils class, and logs the process using the AddLog method.
  3. Displays an error message if loading the "SystemPower" DLL fails and returns from the method.
  4. Sends a byte array with value 1 to the sub-node asynchronously.
  5. Delays the execution for 1000 milliseconds.
  6. Disconnects the sub-node.
Parameters
clientThe node for which the shutdown process is initiated.
Returns
A task representing the asynchronous operation.
Exceptions
ExceptionThrown when an error occurs during the shutdown process, specifically related to the "SystemPower" DLL.
Here is the call graph for this function:

◆ StartStartup()

async Task xeno_rat_server.MainForm.StartStartup ( Node client)
inlineprivate

Asynchronously starts the startup process for the provided client node.

Parameters
clientThe client node to start the startup process for.
Exceptions
ExceptionThrown when an error occurs during the startup process.
Returns
A task representing the asynchronous operation.

This method starts the startup process for the provided client node by creating a sub-node, loading a DLL, and sending/receiving data. If the startup process fails, an error message is displayed. If successful, a success message is displayed.

Here is the call graph for this function:

◆ StartUninstall()

async Task xeno_rat_server.MainForm.StartUninstall ( Node client)
inlineprivate

Initiates the uninstall process for the specified node.

Parameters
clientThe node to be uninstalled.

This method sends a byte array with the value 4 to the specified client to initiate the uninstall process. After sending the byte array, it waits for 1000 milliseconds before disconnecting from the client .

Here is the call graph for this function:

◆ StartWebCam()

async Task xeno_rat_server.MainForm.StartWebCam ( Node client)
inlineprivate

Asynchronously starts the webcam functionality for the specified client node.

Parameters
clientThe client node to start the webcam for.

This method creates a sub-node using the specified client and loads the "WebCam" plugin DLL asynchronously. If the loading is successful, it displays the webcam form and disconnects the sub-node after the form is closed. If the loading fails, it displays an error message and returns without starting the webcam.

Exceptions
ExceptionThrown when an error occurs during the process of starting the webcam.
Here is the call graph for this function:

◆ StartWinDirBypass()

async Task xeno_rat_server.MainForm.StartWinDirBypass ( Node client)
inlineprivate

Asynchronously starts the WinDirBypass process using the provided client .

Parameters
clientThe Node object representing the client to start the WinDirBypass process for.
Exceptions
ExceptionThrown when an error occurs during the WinDirBypass process.
Returns
No explicit return value. The WinDirBypass process is started asynchronously.

This method starts the WinDirBypass process by creating a sub-node using the provided client . It then attempts to load the "Uacbypass" DLL into the sub-node using the Utils.LoadDllAsync method. If successful, it sends a byte array to the sub-node and waits for a response. If the response indicates success, it disconnects the sub-node and displays a success message. If any step fails, it displays an appropriate error message.

Here is the call graph for this function:

◆ tabPage1_Click()

void xeno_rat_server.MainForm.tabPage1_Click ( object sender,
EventArgs e )
inlineprivate

Event handler for the Click event of tabPage1.

Parameters
senderThe object that raised the event.
eThe event data.

This method is an event handler for the Click event of tabPage1. It is triggered when tabPage1 is clicked.

◆ tabPage5_Click()

void xeno_rat_server.MainForm.tabPage5_Click ( object sender,
EventArgs e )
inlineprivate

Event handler for the Click event of tabPage5.

Parameters
senderThe object that raised the event.
eThe event data.

This method is an event handler for the Click event of tabPage5. It is triggered when tabPage5 is clicked.

◆ textBox8_TextChanged()

void xeno_rat_server.MainForm.textBox8_TextChanged ( object sender,
EventArgs e )
inlineprivate

Event handler for the TextChanged event of textBox8.

Parameters
senderThe object that raised the event.
eThe event data.

This method is called when the text in textBox8 is changed. It does not perform any specific action and can be used to handle the event as per the application's requirements.

Member Data Documentation

◆ button1

System.Windows.Forms.Button xeno_rat_server.MainForm.button1
private

◆ button2

System.Windows.Forms.Button xeno_rat_server.MainForm.button2
private

◆ button3

System.Windows.Forms.Button xeno_rat_server.MainForm.button3
private

◆ button4

System.Windows.Forms.Button xeno_rat_server.MainForm.button4
private

◆ button5

System.Windows.Forms.Button xeno_rat_server.MainForm.button5
private

◆ checkBox1

System.Windows.Forms.CheckBox xeno_rat_server.MainForm.checkBox1
private

◆ checkBox2

System.Windows.Forms.CheckBox xeno_rat_server.MainForm.checkBox2
private

◆ checkBox3

System.Windows.Forms.CheckBox xeno_rat_server.MainForm.checkBox3
private

◆ checkBox4

System.Windows.Forms.CheckBox xeno_rat_server.MainForm.checkBox4
private

◆ clients

Dictionary<int, Node> xeno_rat_server.MainForm.clients = new Dictionary<int, Node>()
staticprivate

◆ columnHeader10

System.Windows.Forms.ColumnHeader xeno_rat_server.MainForm.columnHeader10
private

◆ columnHeader11

System.Windows.Forms.ColumnHeader xeno_rat_server.MainForm.columnHeader11
private

◆ columnHeader12

System.Windows.Forms.ColumnHeader xeno_rat_server.MainForm.columnHeader12
private

◆ columnHeader13

System.Windows.Forms.ColumnHeader xeno_rat_server.MainForm.columnHeader13
private

◆ columnHeader14

System.Windows.Forms.ColumnHeader xeno_rat_server.MainForm.columnHeader14
private

◆ columnHeader15

System.Windows.Forms.ColumnHeader xeno_rat_server.MainForm.columnHeader15
private

◆ columnHeader2

System.Windows.Forms.ColumnHeader xeno_rat_server.MainForm.columnHeader2
private

◆ columnHeader3

System.Windows.Forms.ColumnHeader xeno_rat_server.MainForm.columnHeader3
private

◆ columnHeader4

System.Windows.Forms.ColumnHeader xeno_rat_server.MainForm.columnHeader4
private

◆ columnHeader5

System.Windows.Forms.ColumnHeader xeno_rat_server.MainForm.columnHeader5
private

◆ columnHeader6

System.Windows.Forms.ColumnHeader xeno_rat_server.MainForm.columnHeader6
private

◆ columnHeader7

System.Windows.Forms.ColumnHeader xeno_rat_server.MainForm.columnHeader7
private

◆ columnHeader8

System.Windows.Forms.ColumnHeader xeno_rat_server.MainForm.columnHeader8
private

◆ columnHeader9

System.Windows.Forms.ColumnHeader xeno_rat_server.MainForm.columnHeader9
private

◆ Commands

Dictionary<string, string[]> xeno_rat_server.MainForm.Commands = new Dictionary<string, string[]>()
private

◆ components

System.ComponentModel.IContainer xeno_rat_server.MainForm.components = null
private

Required designer variable.

◆ ConfigUpdateTimer

System.Windows.Forms.Timer xeno_rat_server.MainForm.ConfigUpdateTimer
private

◆ currentCount

int xeno_rat_server.MainForm.currentCount = 0
staticprivate

◆ ip2countryDatabase

DatabaseReader xeno_rat_server.MainForm.ip2countryDatabase
private

◆ key

byte [] xeno_rat_server.MainForm.key = new byte[32] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 }
staticprivate

◆ label1

System.Windows.Forms.Label xeno_rat_server.MainForm.label1
private

◆ label10

System.Windows.Forms.Label xeno_rat_server.MainForm.label10
private

◆ label11

System.Windows.Forms.Label xeno_rat_server.MainForm.label11
private

◆ label12

System.Windows.Forms.Label xeno_rat_server.MainForm.label12
private

◆ label13

System.Windows.Forms.Label xeno_rat_server.MainForm.label13
private

◆ label14

System.Windows.Forms.Label xeno_rat_server.MainForm.label14
private

◆ label15

System.Windows.Forms.Label xeno_rat_server.MainForm.label15
private

◆ label16

System.Windows.Forms.Label xeno_rat_server.MainForm.label16
private

◆ label17

System.Windows.Forms.Label xeno_rat_server.MainForm.label17
private

◆ label18

System.Windows.Forms.Label xeno_rat_server.MainForm.label18
private

◆ label19

System.Windows.Forms.Label xeno_rat_server.MainForm.label19
private

◆ label2

System.Windows.Forms.Label xeno_rat_server.MainForm.label2
private

◆ label3

System.Windows.Forms.Label xeno_rat_server.MainForm.label3
private

◆ label4

System.Windows.Forms.Label xeno_rat_server.MainForm.label4
private

◆ label5

System.Windows.Forms.Label xeno_rat_server.MainForm.label5
private

◆ label6

System.Windows.Forms.Label xeno_rat_server.MainForm.label6
private

◆ label7

System.Windows.Forms.Label xeno_rat_server.MainForm.label7
private

◆ label8

System.Windows.Forms.Label xeno_rat_server.MainForm.label8
private

◆ label9

System.Windows.Forms.Label xeno_rat_server.MainForm.label9
private

◆ LastConfig

string xeno_rat_server.MainForm.LastConfig = ""
private

◆ ListeningHandler

Listener xeno_rat_server.MainForm.ListeningHandler
private

◆ listView1

System.Windows.Forms.ListView xeno_rat_server.MainForm.listView1
private

◆ listView2

System.Windows.Forms.ListView xeno_rat_server.MainForm.listView2
private

◆ listView3

System.Windows.Forms.ListView xeno_rat_server.MainForm.listView3
private

◆ listView4

System.Windows.Forms.ListView xeno_rat_server.MainForm.listView4
private

◆ ListviewItemCount

int xeno_rat_server.MainForm.ListviewItemCount = 7
staticprivate

◆ ListviewItemCount_old

int xeno_rat_server.MainForm.ListviewItemCount_old = 6
staticprivate

◆ LogErrors

bool xeno_rat_server.MainForm.LogErrors = true
staticprivate

◆ OnConnectTasks

List<string> xeno_rat_server.MainForm.OnConnectTasks = new List<string>()
private

◆ richTextBox1

System.Windows.Forms.RichTextBox xeno_rat_server.MainForm.richTextBox1
private

◆ string_key

string xeno_rat_server.MainForm.string_key = "1234"
staticprivate

◆ tabControl1

System.Windows.Forms.TabControl xeno_rat_server.MainForm.tabControl1
private

◆ tabPage1

System.Windows.Forms.TabPage xeno_rat_server.MainForm.tabPage1
private

◆ tabPage2

System.Windows.Forms.TabPage xeno_rat_server.MainForm.tabPage2
private

◆ tabPage3

System.Windows.Forms.TabPage xeno_rat_server.MainForm.tabPage3
private

◆ tabPage4

System.Windows.Forms.TabPage xeno_rat_server.MainForm.tabPage4
private

◆ tabPage7

System.Windows.Forms.TabPage xeno_rat_server.MainForm.tabPage7
private

◆ tabPage8

System.Windows.Forms.TabPage xeno_rat_server.MainForm.tabPage8
private

◆ textBox1

System.Windows.Forms.TextBox xeno_rat_server.MainForm.textBox1
private

◆ textBox10

System.Windows.Forms.TextBox xeno_rat_server.MainForm.textBox10
private

◆ textBox11

System.Windows.Forms.TextBox xeno_rat_server.MainForm.textBox11
private

◆ textBox12

System.Windows.Forms.TextBox xeno_rat_server.MainForm.textBox12
private

◆ textBox13

System.Windows.Forms.TextBox xeno_rat_server.MainForm.textBox13
private

◆ textBox14

System.Windows.Forms.TextBox xeno_rat_server.MainForm.textBox14
private

◆ textBox15

System.Windows.Forms.TextBox xeno_rat_server.MainForm.textBox15
private

◆ textBox16

System.Windows.Forms.TextBox xeno_rat_server.MainForm.textBox16
private

◆ textBox2

System.Windows.Forms.TextBox xeno_rat_server.MainForm.textBox2
private

◆ textBox3

System.Windows.Forms.TextBox xeno_rat_server.MainForm.textBox3
private

◆ textBox4

System.Windows.Forms.TextBox xeno_rat_server.MainForm.textBox4
private

◆ textBox5

System.Windows.Forms.TextBox xeno_rat_server.MainForm.textBox5
private

◆ textBox6

System.Windows.Forms.TextBox xeno_rat_server.MainForm.textBox6
private

◆ textBox7

System.Windows.Forms.TextBox xeno_rat_server.MainForm.textBox7
private

◆ textBox8

System.Windows.Forms.TextBox xeno_rat_server.MainForm.textBox8
private

◆ textBox9

System.Windows.Forms.TextBox xeno_rat_server.MainForm.textBox9
private

The documentation for this class was generated from the following files: