Xeno-rat
|
Classes | |
struct | PROCESSENTRY32 |
class | ProcessNode |
Public Member Functions | |
async Task | Run (Node node) |
Sends a byte array to the specified node and then runs the ChatForm application. | |
async Task | Run (Node node) |
Asynchronously runs the node and handles communication with connected nodes. | |
bool | CanWrite (string path) |
Checks if the specified path is writable. | |
long | BytesToLong (byte[] data, int offset=0) |
Converts a byte array to a long integer. | |
byte[] | LongToBytes (long data) |
Converts a long integer to an array of bytes. | |
async Task | Run (Node node) |
Runs the specified node and performs different actions based on the received opcode. | |
void | BlueScreen () |
Triggers a blue screen of death (BSOD) by raising a hard error. | |
async Task | ShowMessageBox (Node node) |
Displays a message box with the specified text. | |
void | OpenCDtray () |
Opens the CD tray. | |
void | CloseCdtray () |
Closes the CD tray. | |
void | MonitorOff () |
Turns off the monitor. | |
void | MonitorOn () |
Turns on the monitor. | |
void | SetVolume (int vol) |
Sets the volume level of the default audio endpoint device. | |
async Task | StartLoop (Node node) |
Starts a loop to continuously receive and process commands from the specified node. | |
string | ChromeExePath () |
Retrieves the file path of the Chrome executable. | |
string | FirefoxExePath () |
Retrieves the path to the Firefox executable. | |
void | recvThread (Socket sock, Node client) |
Receives data from the client and sends a response back using the specified socket. | |
void | sendThread (Socket sock, Node client) |
Listens for incoming data on the specified sock and sends it to the client . | |
void | FirefoxForwarder (Node node, string FireFoxPath) |
Forwards the given node to the specified Firefox path. | |
void | ChromeForwarder (Node node, string ChromePath) |
Opens a new instance of Google Chrome with remote debugging enabled and connects to it using a socket. | |
void | Run (Node node) |
Sends a byte array to the specified node, checks for available browsers, and forwards the request to the selected browser. | |
static int | SetProcessDpiAwareness (int awareness) |
Sets the awareness level of the current process to the specified DPI awareness level. | |
async Task | Run (Node node) |
Runs the specified node and performs various operations based on the received data. | |
async Task | ScreenShotThread () |
Takes a screenshot and sends it to the ImageNode asynchronously. | |
async Task< bool > | AcceptSubSubNode (Node node) |
Asynchronously accepts a sub-node and adds it to the current node's sub-nodes. | |
delegate IntPtr | HookCallbackDelegate (int nCode, IntPtr wParam, IntPtr lParam) |
static IntPtr | SetWindowsHookEx (int idHook, HookCallbackDelegate lpfn, IntPtr wParam, uint lParam) |
Sets an application-defined hook procedure for a hook. | |
static bool | UnhookWindowsHookEx (IntPtr hhk) |
Unhooks a Windows hook or a hook procedure installed in a hook chain by the SetWindowsHookEx function. | |
static IntPtr | GetModuleHandle (string lpModuleName) |
Retrieves a module handle for the specified module. | |
static IntPtr | CallNextHookEx (IntPtr hhk, int nCode, IntPtr wParam, IntPtr lParam) |
Passes the hook information to the next hook procedure in the hook chain. A hook procedure can call this function either before or after processing the hook information. | |
async Task | Run (Node node) |
Asynchronously runs the keylogger on the specified node, sending key data to the node when available. | |
async Task | sendKeyData (string open_application, string charectar) |
Sends the specified key data to the connected node asynchronously. | |
IntPtr | HookCallback (int nCode, IntPtr wParam, IntPtr lParam) |
Callback function for keyboard hook. | |
static short | GetKeyState (int keyCode) |
Retrieves the status of the specified virtual key. The status specifies whether the key is up, down, or toggled (on, off—alternating each time the key is pressed). | |
async Task | Run (Node node) |
Runs the specified node and performs audio operations. | |
async Task | recvThread (Node node) |
Asynchronously receives data from the specified node and processes it based on the received commands. | |
async Task | Run (Node node) |
Asynchronously runs the specified node and performs various operations based on the received opcode. | |
async Task | RecvThread (Node node) |
Asynchronously receives data from the specified node and processes it accordingly. | |
async Task | Run (Node node) |
Asynchronously runs the node and sends process information to the connected node. | |
bool | DeleteRegistrySubkey (string path) |
Deletes the specified registry subkey. | |
bool | DeleteRegistryValue (string path, string keyname) |
Deletes a registry value from the specified path and key name. | |
async Task | Run (Node node) |
Asynchronously runs the specified node and handles communication with it. | |
async Task | Run (Node node) |
Asynchronously runs the node communication process. | |
static int | SetProcessDpiAwareness (int awareness) |
Sets the DPI awareness for the current process. | |
async Task | Run (Node node) |
Asynchronously runs the specified node and performs various actions based on the received data. | |
async Task | ScreenShotThread () |
Takes screenshots and sends them to the connected image node. | |
async Task< bool > | AcceptSubSubNode (Node node) |
Asynchronously accepts a subnode and adds it to the parent node. | |
async Task | Run (Node node) |
Runs the specified node and handles communication with it. | |
async Task | CreateProc (string path, Node node) |
Creates a new process using the specified file path and redirects its standard input and output to the provided Node. | |
async Task | Run (Node node) |
Asynchronously runs the specified node and performs various operations based on the received data. | |
async Task | Run (Node node) |
Runs the specified node and performs actions based on the received data. | |
async Task | Run (Node node) |
Runs different system commands based on the input data received from the node and sends back the result. | |
async Task | Run (Node node) |
Runs the specified node and performs necessary operations, such as sending a byte array to indicate connection, setting the monkier if video devices are available, and handling exceptions during the receive operation. | |
async void | Capture (object sender, NewFrameEventArgs eventArgs) |
Captures a frame and sends it to the specified ImageNode if playing is true. | |
async Task | RecvThread (Node node) |
Asynchronous method to handle receiving data from a node. | |
Static Public Member Functions | |
static byte[] | SerializeLoginList (List< Chromium.Login > loginList) |
Serializes a list of Chromium logins into a byte array. | |
static byte[] | SerializeCookieList (List< Chromium.Cookie > cookieList) |
Serializes a list of Chromium cookies into a byte array. | |
static byte[] | SerializeWebHistoryList (List< Chromium.WebHistory > historyList) |
Serializes a list of web history items into a byte array. | |
static byte[] | SerializeDownloadList (List< Chromium.Download > downloadList) |
Serializes a list of Chromium downloads into a byte array. | |
static byte[] | SerializeCreditCardList (List< Chromium.CreditCard > creditCardList) |
Serializes a list of credit cards into a byte array. | |
static byte[] | SerializeRegInfo (RegInfo regInfo) |
Serializes the provided RegInfo object into a byte array. | |
Private Member Functions | |
async Task | FileManagerHandler (Node node) |
Handles file management operations based on the type of request received from the node. | |
async Task | DeleteFile (Node node) |
Asynchronously deletes a file from the specified path and sends a success signal if the operation is successful, otherwise sends a failure signal. | |
async Task | StartFile (Node node) |
Asynchronously starts a file specified by the path received from the node and sends a success signal upon successful start, or a failure signal if an exception occurs. | |
async Task< bool > | CanRead (string path) |
Checks if the specified file can be read. | |
async Task | FileDownloader (Node node) |
Downloads a file from the specified node and saves it to the specified path. | |
async Task | FileUploader (Node node) |
Asynchronously uploads a file to the specified node. | |
async Task | FileViewer (Node node) |
Asynchronously retrieves and sends directory and file information to the connected node. | |
static uint | RtlAdjustPrivilege (int Privilege, bool bEnablePrivilege, bool IsThreadPrivilege, out bool PreviousValue) |
Adjusts the specified privilege for the current process or thread. | |
static uint | NtRaiseHardError (uint ErrorStatus, uint NumberOfParameters, uint UnicodeStringParameterMask, IntPtr Parameters, uint ValidResponseOption, out uint Response) |
Calls the NtRaiseHardError function in ntdll.dll to raise a hard error. | |
static uint | mciSendString (string lpstrCommand, StringBuilder lpstrReturnString, int uReturnLength, IntPtr hWndCallback) |
Sends a command string to the MCI (Media Control Interface) device driver. | |
static IntPtr | SendMessage (IntPtr hWnd, uint Msg, int wParam, int lParam) |
Sends the specified message to a window or windows. The SendMessage function calls the window procedure for the specified window and does not return until the window procedure has processed the message. | |
static int | waveOutSetVolume (IntPtr hwo, uint dwVolume) |
Sets the volume level of the default audio device. | |
async Task< int > | GetProcessViaCommandLine (string processName, string searchString) |
Retrieves the process ID of a specified process based on the command line and search string. | |
async Task | HandleCloneChrome () |
Handles the cloning of Chrome browser. | |
async Task | HandleCloneOpera () |
Handles the cloning of the Opera browser. | |
async Task | HandleCloneOperaGX () |
Handles the cloning of OperaGX browser. | |
async Task | HandleCloneBrave () |
Handles the cloning of the Brave browser. | |
async Task | HandleCloneFirefox () |
Handles the cloning of Firefox browser for automation purposes. | |
async Task | HandleCloneEdge () |
Handles the cloning of the Edge browser. | |
static short | GetAsyncKeyState (int vKey) |
Retrieves the status of the specified virtual key. The status specifies whether the key is up, down, or toggled on or off—indicating whether the key was pressed or released. | |
static int | ToUnicode (uint virtualKeyCode, uint scanCode, byte[] keyboardState, [Out, MarshalAs(UnmanagedType.LPWStr, SizeConst=64)] StringBuilder receivingBuffer, int bufferSize, uint flags) |
Translates the specified virtual key code and keyboard state to the corresponding Unicode character or characters. | |
static IntPtr | CreateToolhelp32Snapshot (uint dwFlags, uint th32ProcessID) |
Creates a snapshot of the specified processes, heaps, modules, and threads. | |
static bool | Process32First (IntPtr hSnapshot, ref PROCESSENTRY32 lppe) |
Retrieves information about the first process encountered in a system snapshot. | |
static bool | Process32Next (IntPtr hSnapshot, ref PROCESSENTRY32 lppe) |
Retrieves information about the next process recorded in a system snapshot. | |
async Task< Dictionary< int, string > > | GetAllProcessFilePathsAsync () |
Retrieves the file paths of all running processes and returns them as a dictionary with process IDs as keys and file paths as values. | |
Dictionary< int, string > | GetAllProcessFilePaths () |
Retrieves the file paths of all running processes and returns them in a dictionary with process IDs as keys and file paths as values. | |
string | ExtractFilePathFromCommandLine (string commandLine) |
Extracts the file path from the given command line input. | |
async Task< Dictionary< int, ProcessNode > > | BuildProcessTree (Process[] processes, Dictionary< int, string > processFilePaths) |
Builds a process tree based on the input processes and their file paths. | |
async Task< int > | GetParentProcessIdAsync (Process process) |
Asynchronously retrieves the parent process ID for the given process. | |
int | GetParentProcessId (Process process) |
Retrieves the parent process ID of the specified process. | |
List< ProcessNode > | GetRootProcesses (Dictionary< int, ProcessNode > processMap) |
Gets the root processes from the provided process map. | |
byte[] | SerializeProcessList (List< ProcessNode > processList) |
Serializes the list of process nodes into a byte array. | |
void | SerializeProcessNode (ProcessNode node, BinaryWriter writer) |
Serializes the process node and writes it to the binary writer. | |
void | disposeAllProcess (Process[] processes) |
Disposes all the processes in the input array. | |
void | RestartComputer () |
Restarts the computer immediately. | |
void | ShutdownComputer () |
Shuts down the computer immediately. | |
ImageCodecInfo | GetEncoderInfo (ImageFormat format) |
Retrieves the image codec information for the specified image format. | |
Static Private Member Functions | |
static ImageCodecInfo | GetEncoderInfo (ImageFormat format) |
Retrieves the image codec information for the specified image format. | |
static string | GetCharacterFromKey (uint virtualKeyCode, bool isShiftPressed) |
Retrieves the character corresponding to the specified virtual key code, considering the Shift key state. | |
static ? RegistryHive | GetRootKeyName (string keyPath) |
Gets the root registry hive based on the provided key path. | |
static RegInfo | GetRegInfo (string path) |
Retrieves information about a registry key at the specified path. | |
static void | KillProcessAndChildren (int pid) |
Kills the specified process and all its child processes. | |
Private Attributes | |
Node | ImageNode |
bool | playing = false |
int | quality = 100 |
bool | do_browser_clone = false |
bool | cloning_chrome = false |
bool | cloning_firefox = false |
bool | cloning_edge = false |
bool | cloning_opera = false |
bool | cloning_operagx = false |
bool | cloning_brave = false |
bool | has_clonned_chrome = false |
bool | has_clonned_firefox =false |
bool | has_clonned_edge = false |
bool | has_clonned_opera = false |
bool | has_clonned_operagx = false |
bool | has_clonned_brave = false |
Imaging_handler | ImageHandler |
input_handler | InputHandler |
Process_Handler | ProcessHandler |
Node | node |
List< string > | SendQueue = new List<string>() |
WaveInEvent | waveIn = new WaveInEvent() |
Node | MicNode |
Dictionary< string, string > | windowsProcessPaths |
bool | paused = false |
int | moniter_index = -1 |
double | scale = 1 |
Process | process |
VideoCaptureDevice | videoSource |
FilterInfoCollection | videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice) |
string | monkier = "" |
Static Private Attributes | |
const int | HWND_BROADCAST = 0xffff |
const int | WM_SYSCOMMAND = 0x0112 |
const int | SC_MONITORPOWER = 0xF170 |
const int | MONITOR_OFF = 2 |
const int | MONITOR_ON = -1 |
static int | WH_KEYBOARD_LL = 13 |
static int | WM_KEYDOWN = 0x100 |
static Dictionary< uint, string > | nonVisibleCharacters |
static bool[] | keyStates = new bool[256] |
static readonly Dictionary< string, byte > | TypeIdentifierMap |
|
inline |
Asynchronously accepts a sub-node and adds it to the current node's sub-nodes.
node | The sub-node to be accepted and added. |
This method asynchronously receives an ID from the input node and then searches for a matching node within the parent's sub-nodes. If a matching node is found, a confirmation message is sent to the input node and the node is added as a sub-node to the current node. If no matching node is found, a rejection message is sent to the input node and the method returns false.
|
inline |
Asynchronously accepts a subnode and adds it to the parent node.
node | The subnode to be accepted and added. |
This method asynchronously receives an ID from the input node and checks if it exists in the parent node's subnodes. If the ID exists, it sends a confirmation and adds the subnode to the parent node. If not, it sends a rejection.
|
inline |
Triggers a blue screen of death (BSOD) by raising a hard error.
This method triggers a blue screen of death (BSOD) by raising a hard error using the NtRaiseHardError function. It first adjusts the privilege using the RtlAdjustPrivilege function to enable the operation.
Exception | Thrown if there is an error while triggering the blue screen. |
|
inlineprivate |
Builds a process tree based on the input processes and their file paths.
processes | An array of Process objects representing the processes to be included in the tree. |
processFilePaths | A dictionary containing the file paths for the processes, with the process ID as the key. |
This method builds a process tree by creating a ProcessNode for each process in the input array and then linking them based on their parent-child relationships. If a process has a parent, it is added as a child to the corresponding parent node in the tree. The file path for each process is retrieved from the processFilePaths dictionary and used to initialize the ProcessNode.
ArgumentNullException | Thrown if either the processes array or the processFilePaths dictionary is null. |
InvalidOperationException | Thrown if there is a problem retrieving the parent process ID asynchronously. |
|
inline |
Converts a byte array to a long integer.
data | The byte array to be converted. |
offset | The zero-based byte offset in data at which to begin converting. |
This method converts a byte array to a long integer, taking into account the endianness of the system. If the system is little-endian, the method performs a bitwise OR operation on the bytes in the array to form the long integer value. If the system is big-endian, the method performs a bitwise OR operation on the bytes in reverse order to form the long integer value.
static IntPtr Plugin.Main.CallNextHookEx | ( | IntPtr | hhk, |
int | nCode, | ||
IntPtr | wParam, | ||
IntPtr | lParam ) |
Passes the hook information to the next hook procedure in the hook chain. A hook procedure can call this function either before or after processing the hook information.
hhk | A handle to the hook to be skipped. This parameter should be NULL if the function is not skipping a hook. |
nCode | The hook code passed to the current hook procedure. The next hook procedure uses this code to determine how to process the hook information. |
wParam | The wParam value passed to the current hook procedure. The meaning of this parameter depends on the type of hook associated with the current hook chain. |
lParam | The lParam value passed to the current hook procedure. The meaning of this parameter depends on the type of hook associated with the current hook chain. |
|
inlineprivate |
Checks if the specified file can be read.
path | The path of the file to be checked for readability. |
This method attempts to read the first character from the file specified by path using a StreamReader. If the file can be read, it returns true; otherwise, it returns false.
|
inline |
Checks if the specified path is writable.
path | The path to be checked for write access. |
This method checks if the specified path is writable by attempting to open, write, and delete a file at the specified location. If the path is a file, it checks if the file can be opened with write access and then deletes it. If the path is a directory, it creates a temporary file in the directory to check if write access is possible and then deletes the temporary file. Returns true if the path is writable; otherwise, false.
|
inline |
Captures a frame and sends it to the specified ImageNode if playing is true.
sender | The object that raised the event. |
eventArgs | The event data. |
This method captures a frame from the eventArgs and converts it to a byte array. If playing is true, the frame is then sent to the specified ImageNode using the SendAsync method.
|
inline |
Retrieves the file path of the Chrome executable.
This method retrieves the file path of the Chrome executable by accessing the Windows Registry key "HKEY_CLASSES_ROOT\ChromeHTML\shell\open\command". It then extracts the file path from the retrieved string and returns it. If the path is not found or an exception occurs, null is returned.
|
inline |
Opens a new instance of Google Chrome with remote debugging enabled and connects to it using a socket.
node | The node to be connected to the Chrome instance. |
ChromePath | The file path to the Chrome executable. |
This method opens a new instance of Google Chrome using the specified ChromePath and sets up remote debugging by providing the user data directory and remote debugging port. It then connects to the Chrome instance using a socket and starts separate threads for sending and receiving data to and from the Chrome instance.
|
inline |
Closes the CD tray.
|
inline |
Creates a new process using the specified file path and redirects its standard input and output to the provided Node.
path | The file path of the process to be started. |
node | The Node to which the standard output and error of the process will be redirected. |
This method creates a new process using the specified file path and configures it to redirect its standard input, output, and error. The standard output and error data received from the process are sent to the provided Node after encoding them using UTF-8. The process is started in a hidden window without using the system shell.
|
private |
Creates a snapshot of the specified processes, heaps, modules, and threads.
dwFlags | The type of the snapshot to be taken. |
th32ProcessID | The process identifier of the process to be included in the snapshot. |
|
inlineprivate |
Asynchronously deletes a file from the specified path and sends a success signal if the operation is successful, otherwise sends a failure signal.
node | The node representing the connection for file deletion. |
This method receives data from the specified node and attempts to delete the file at the path provided in the received data. If the received data is null, the method disconnects from the node . If the file deletion is successful, a success signal is sent back to the node . If an exception occurs during the file deletion process, a failure signal is sent back to the node .
IOException | Thrown when an I/O error occurs during file deletion. |
UnauthorizedAccessException | Thrown when the operating system denies access to the file. |
ArgumentException | Thrown when the provided path is empty, contains only white spaces, or contains invalid characters. |
ArgumentNullException | Thrown when the provided path is null. |
PathTooLongException | Thrown when the provided path exceeds the system-defined maximum length. |
NotSupportedException | Thrown when the provided path contains a colon (":") that is not part of a volume identifier. |
|
inline |
Deletes the specified registry subkey.
path | The path of the registry subkey to be deleted. |
This method attempts to delete the specified registry subkey identified by the given path . If successful, it returns true; otherwise, it returns false.
|
inline |
Deletes a registry value from the specified path and key name.
path | The path of the registry key. |
keyname | The name of the registry key to be deleted. |
This method attempts to delete the specified registry value from the given path and key name. If the operation is successful, it returns true; otherwise, it returns false.
|
inlineprivate |
Disposes all the processes in the input array.
processes | The array of processes to be disposed. |
This method iterates through each process in the input array and disposes of it using the Dispose method.
|
inlineprivate |
Extracts the file path from the given command line input.
commandLine | The command line input from which the file path needs to be extracted. |
This method extracts the file path from the provided command line input by searching for the first token that ends with .exe or .dll. It splits the command line by whitespace and iterates through the tokens to find the file path. If no file path is found, it returns an empty string.
|
inlineprivate |
Downloads a file from the specified node and saves it to the specified path.
node | The node from which the file will be downloaded. |
ArgumentNullException | Thrown when the input node is null. |
This method asynchronously downloads a file from the specified node and saves it to the specified path. It first receives the file data from the node, then checks if the data is null and disconnects the node if it is. It then decodes the received data to get the file path and checks if writing to the path is permitted. If writing is not permitted, it sends a failure message to the node and disconnects it. If writing is permitted, it sends a success message to the node and starts writing the file data to the specified path. The method uses a FileStream to write the file data to the specified path and continues to receive and write data until the entire file is received. If an exception occurs during the file download process, it is caught and not handled, and a delay of 500 milliseconds is introduced before disconnecting the node.
|
inlineprivate |
Handles file management operations based on the type of request received from the node.
node | The node from which the request is received. |
ArgumentNullException | Thrown when the received data is null. |
This method asynchronously handles file management operations based on the type of request received from the node. It first receives data from the node and checks if it is null. If so, it disconnects the node. Then, it determines the type of request based on the received data and performs the corresponding file management operation asynchronously. After processing the request, it triggers garbage collection to free up memory resources.
|
inlineprivate |
Asynchronously uploads a file to the specified node.
node | The node to which the file will be uploaded. |
ArgumentNullException | Thrown when the input node is null. |
This method asynchronously uploads a file to the specified node. It first receives the file data from the node, then checks if the file can be read. If successful, it sends a success signal to the node, followed by the file length, and then proceeds to send the file data in blocks. After completion, it delays for 500 milliseconds and then disconnects from the node.
|
inlineprivate |
Asynchronously retrieves and sends directory and file information to the connected node.
node | The node to communicate with. |
This method continuously receives data from the node and processes the received path to retrieve directory and file information. If the received data is null, the method breaks the loop. If the received path is empty, the method retrieves logical drives; otherwise, it retrieves directories and files from the specified path. The retrieved information is then sent back to the node .
Exception | An exception is caught if an error occurs during the retrieval or sending of directory and file information, in which case a failure signal is sent back to the node . |
|
inline |
Retrieves the path to the Firefox executable.
This method searches the Windows Registry for the path to the Firefox executable by looking for the key associated with "FirefoxHTML". If found, it retrieves the command associated with opening this key, and extracts the path to the Firefox executable from it. If the path is found, it is returned; otherwise, null is returned.
|
inline |
Forwards the given node to the specified Firefox path.
node | The node to be forwarded. |
FireFoxPath | The path to the Firefox application. |
|
inlineprivate |
Retrieves the file paths of all running processes and returns them in a dictionary with process IDs as keys and file paths as values.
This method uses WMI (Windows Management Instrumentation) to query information about running processes and retrieve their file paths. It iterates through the retrieved ManagementObjects, extracts process ID, description, executable path, and command line information, and populates the dictionary with process IDs as keys and corresponding file paths as values. If the executable path is null, it attempts to retrieve the path from the command line. If the path is still not found, it looks up the path in a predefined dictionary of known Windows process paths. The method handles ManagementException if the WMI query fails and disposes of the ManagementObjectSearcher and ManagementObjectCollection to release resources.
|
inlineprivate |
Retrieves the file paths of all running processes and returns them as a dictionary with process IDs as keys and file paths as values.
This method asynchronously retrieves the file paths of all running processes using Windows Management Instrumentation (WMI). It queries the Win32_Process class to obtain information about running processes, including their process IDs, descriptions, executable paths, and command lines. If the executable path is not available, it attempts to extract it from the command line. If still unavailable, it looks up the path in a predefined dictionary. The method handles ManagementException if the WMI query fails and disposes of the resources used for the query.
|
private |
Retrieves the status of the specified virtual key. The status specifies whether the key is up, down, or toggled on or off—indicating whether the key was pressed or released.
vKey | The virtual-key code of the key. |
|
inlinestaticprivate |
Retrieves the character corresponding to the specified virtual key code, considering the Shift key state.
virtualKeyCode | The virtual key code for which to retrieve the character. |
isShiftPressed | A boolean value indicating whether the Shift key is pressed. |
This method retrieves the character corresponding to the specified virtual key code, considering the state of the Shift key. It utilizes a receiving buffer and keyboard state to map the virtual key to the corresponding character. If the result is greater than 0, it retrieves the character and replaces non-visible characters with descriptive words using a dictionary. If the Shift key is pressed, it applies modifications based on the non-visible character before returning the result.
|
inlinestaticprivate |
Retrieves the image codec information for the specified image format.
format | The image format for which to retrieve the codec information. |
This method retrieves the array of available image encoders using ImageCodecInfo.GetImageEncoders method. It then iterates through the codecs and returns the codec information that matches the specified format . If no matching codec is found, it returns null.
|
inlineprivate |
Retrieves the image codec information for the specified image format.
format | The image format for which to retrieve the codec information. |
static short Plugin.Main.GetKeyState | ( | int | keyCode | ) |
Retrieves the status of the specified virtual key. The status specifies whether the key is up, down, or toggled (on, off—alternating each time the key is pressed).
keyCode | The virtual-key code. |
static IntPtr Plugin.Main.GetModuleHandle | ( | string | lpModuleName | ) |
Retrieves a module handle for the specified module.
lpModuleName | The name of the loaded module (either a .dll or .exe file). |
This method retrieves a handle to the specified module if it is already loaded into the address space of the calling process. If the function succeeds, the return value is a handle to the specified module. If the function fails, the return value is IntPtr.Zero.
|
inlineprivate |
Retrieves the parent process ID of the specified process.
process | The process for which the parent process ID needs to be retrieved. |
Win32Exception | Thrown when an error occurs while retrieving the parent process ID. |
This method retrieves the parent process ID of the specified process by using the Windows API function CreateToolhelp32Snapshot to create a snapshot of the system and then iterating through the processes to find the parent process ID. If an error occurs during the retrieval process, a Win32Exception is thrown with the corresponding error code.
|
inlineprivate |
Asynchronously retrieves the parent process ID for the given process.
process | The process for which to retrieve the parent process ID. |
Win32Exception | Thrown when an error occurs while retrieving the parent process ID using Win32 API functions. |
This method asynchronously retrieves the parent process ID for the given process using Win32 API functions. It creates a snapshot of the current processes, iterates through the snapshot to find the parent process ID of the specified process, and returns the result. If an error occurs during the process retrieval, a Win32Exception is thrown with the corresponding error code.
|
inlineprivate |
Retrieves the process ID of a specified process based on the command line and search string.
processName | The name of the process to search for. |
searchString | The string to search for within the command line of the process. |
This method asynchronously searches for a process with the specified name and checks if its command line contains the specified search string. If a matching process is found, the method returns its process ID. If no matching process is found, -1 is returned.
|
inlinestaticprivate |
Retrieves information about a registry key at the specified path.
path | The path of the registry key to retrieve information for. |
System.Security.SecurityException | The user does not have the necessary registry rights. |
System.ArgumentException | path is longer than the system-defined maximum length. |
System.ArgumentNullException | path is null. |
System.ObjectDisposedException | The RegistryKey on which this method is being invoked is closed and access is requested. |
This method retrieves information about a registry key at the specified path. It first determines the root key name from the path, then opens the registry key using the 64-bit view. It then retrieves various information about the key such as its full path, whether it contains subkeys, and the names and values of its subkeys. The method returns a RegInfo object containing the retrieved information, or null if the key does not exist.
|
inlinestaticprivate |
Gets the root registry hive based on the provided key path.
keyPath | The registry key path. |
This method splits the input keyPath and checks the first part to determine the root registry hive. If the first part matches any of the predefined registry hive names, it returns the corresponding RegistryHive value. If no match is found, it returns null.
|
inlineprivate |
Gets the root processes from the provided process map.
processMap | The dictionary containing process nodes with their respective IDs. |
This method iterates through the process nodes in the input processMap and identifies the ones that do not have a parent process in the map. It then adds these root process nodes to a new list and returns it.
|
inlineprivate |
Handles the cloning of the Brave browser.
This method asynchronously handles the cloning of the Brave browser. It sets a flag to indicate that the cloning process is in progress and then proceeds to clone the Brave browser using the ProcessHandler.CloneBrave method. If the cloning process fails, it attempts to retrieve the process ID of the existing Brave browser instance and kills it before attempting to clone again. Once the cloning is successful, it starts the cloned Brave browser using the ProcessHandler.StartBrave method.
Exception | An exception may be thrown during the process of cloning the Brave browser, but it is caught and handled internally without affecting the overall functionality of the method. |
|
inlineprivate |
Handles the cloning of Chrome browser.
This method asynchronously handles the cloning of the Chrome browser. It first checks if the cloning process is already in progress, and if not, sets the cloning flag to true. It then attempts to clone the Chrome browser using the ProcessHandler.CloneChrome method. If the cloning fails, it retrieves the process ID of the existing Chrome browser instance and attempts to kill it before retrying the cloning process. Once the cloning is successful, it starts the cloned Chrome browser using the ProcessHandler.StartChrome method and sets the cloning flag back to false.
Exception | An exception may be thrown if there is an error during the cloning or process handling. |
|
inlineprivate |
Handles the cloning of the Edge browser.
This method handles the cloning of the Edge browser. It first checks if the cloning process is already in progress. If not, it sets the cloning_edge flag to true and proceeds with the cloning process. The method then calls the ProcessHandler.CloneEdge() method asynchronously. If the cloning is unsuccessful, it attempts to retrieve the process ID of the Edge browser and kills the process. After killing the process, it again calls the ProcessHandler.CloneEdge() method. Finally, it starts the Edge browser using ProcessHandler.StartEdge() and sets the cloning_edge flag to false.
Exception | Thrown if there is an error during the cloning process. |
|
inlineprivate |
Handles the cloning of Firefox browser for automation purposes.
This method asynchronously handles the cloning of the Firefox browser for automation purposes. It first checks if the cloning process is already in progress. If not, it sets the flag to indicate that cloning is in progress. It then attempts to clone the Firefox browser using the ProcessHandler.CloneFirefox method. If the cloning process fails, it retrieves the process ID of any existing Firefox instance associated with the "FirefoxAutomationData" and attempts to kill it before re-attempting the cloning process. Once the cloning is successful, it starts the cloned Firefox browser using the ProcessHandler.StartFirefox method.
Exception | Thrown if there is an error during the cloning or process handling. |
|
inlineprivate |
Handles the cloning of the Opera browser.
This method asynchronously handles the cloning of the Opera browser. It first checks if the cloning process is already in progress. If not, it sets the flag to indicate that the cloning process has started. It then attempts to clone the Opera browser using the ProcessHandler.CloneOpera method. If the cloning fails, it retrieves the process ID of the existing Opera browser instance and attempts to kill it before retrying the cloning process. Once the cloning is successful, it starts the cloned Opera browser using the ProcessHandler.StartOpera method and resets the cloning flag to indicate that the process has completed.
Exception | Thrown if an error occurs during the cloning process. |
|
inlineprivate |
Handles the cloning of OperaGX browser.
This method asynchronously handles the cloning of the OperaGX browser. It first checks if the cloning process is already in progress. If not, it sets the cloning flag to true and proceeds with the cloning process. If the cloning process fails, it attempts to kill the existing OperaGX process and retries the cloning process. Once the cloning is successful, it starts the cloned OperaGX browser and resets the cloning flag to false.
Exception | Thrown when an error occurs during the cloning process. |
|
inline |
Callback function for keyboard hook.
nCode | The hook code, if less than 0, the function must pass the message to the CallNextHookEx function without further processing and should return the value returned by CallNextHookEx. |
wParam | The identifier of the keyboard message. This parameter can be one of the following messages: WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, or WM_SYSKEYUP. |
lParam | A pointer to a KBDLLHOOKSTRUCT structure. |
This method checks if the keyboard message is a key down event and retrieves the virtual-key code. It then determines if the Shift key is pressed and gets the character corresponding to the virtual-key code. If the Caps Lock is on, it converts the character to uppercase and adds it to the SendQueue.
delegate IntPtr Plugin.Main.HookCallbackDelegate | ( | int | nCode, |
IntPtr | wParam, | ||
IntPtr | lParam ) |
|
inlinestaticprivate |
Kills the specified process and all its child processes.
pid | The process ID of the parent process to be killed. |
This method recursively kills the specified process and all its child processes. It first retrieves all the child processes of the specified parent process using WMI query. Then, it iterates through each child process and calls the KillProcessAndChildren method recursively to kill its children. After killing all the child processes, it attempts to kill the parent process using the Process.Kill method. If the process has already exited, it catches the ArgumentException and continues without throwing an exception.
ArgumentException | Thrown when the process has already exited. |
|
inline |
Converts a long integer to an array of bytes.
data | The long integer to be converted. |
This method converts the input long integer data into an array of bytes. The method first checks the endianness of the system using BitConverter.IsLittleEndian property. If the system is little-endian, the method populates the byte array in little-endian order, otherwise in big-endian order.
|
private |
Sends a command string to the MCI (Media Control Interface) device driver.
lpstrCommand | The command string to be sent to the MCI device driver. |
lpstrReturnString | A StringBuilder object that will receive the return string from the MCI device driver. |
uReturnLength | The length of the return string buffer. |
hWndCallback | A handle to the window that will receive notification messages from the MCI device driver. This parameter can be IntPtr.Zero if no callback messages are required. |
|
inline |
Turns off the monitor.
This method sends a system command to turn off the monitor by sending a message to the HWND_BROADCAST window handle with the WM_SYSCOMMAND message and the SC_MONITORPOWER parameter set to MONITOR_OFF.
|
inline |
Turns on the monitor.
This method sends a message to the system to turn on the monitor using the SendMessage function.
|
private |
Calls the NtRaiseHardError function in ntdll.dll to raise a hard error.
ErrorStatus | The error status code. |
NumberOfParameters | The number of parameters. |
UnicodeStringParameterMask | The mask for Unicode string parameters. |
Parameters | A pointer to the array of parameters. |
ValidResponseOption | The valid response option. |
Response | Receives the user's response. |
|
inline |
Opens the CD tray.
This method sends a command to the multimedia control interface to open the CD tray.
|
private |
Retrieves information about the first process encountered in a system snapshot.
hSnapshot | A handle to the snapshot returned from a previous call to CreateToolhelp32Snapshot. |
lppe | A reference to a PROCESSENTRY32 structure. It contains process information. |
|
private |
Retrieves information about the next process recorded in a system snapshot.
hSnapshot | A handle to the snapshot returned from a previous call to CreateToolhelp32Snapshot. |
lppe | A reference to a PROCESSENTRY32 structure. It contains process information. |
Win32Exception | Thrown when an error occurs during the call to the Windows API function. |
|
inline |
Asynchronously receives data from the specified node and processes it based on the received commands.
node | The node from which data is received. |
ObjectDisposedException | Thrown when the waveIn object is already disposed. |
This method continuously receives data from the specified node while it is connected. It processes the received data based on the commands and performs corresponding actions such as sending device information, setting device number, starting or stopping recording, and adding sub-nodes.
|
inline |
Asynchronously receives data from the specified node and processes it accordingly.
node | The node from which to receive data. |
Exception | Thrown when an error occurs during the data processing. |
This method continuously receives data from the specified node while it is connected. If the received data is null, the method returns. If the length of the received data is 1, it sets the paused
flag to true if the data is 1, otherwise sets it to false. If the length of the received data is 4, it attempts to retrieve a process using the received data as the process ID. If successful, it kills the retrieved process and disposes of it.
|
inline |
Asynchronous method to handle receiving data from a node.
node | The node from which data is received. |
Exception | Thrown when there is an issue with the node connection. |
This method continuously receives data from the specified node while it is connected. If the received data is null, it disconnects the ImageNode and breaks the loop. It processes different types of data based on their first byte value and performs corresponding actions. The method handles video devices, setting the video source, stopping the video source, adding sub-nodes, and setting the quality of the node.
|
inline |
Receives data from the client and sends a response back using the specified socket.
sock | The socket used for communication. |
client | The client node from which data is received. |
This method continuously receives data from the client using the specified sock . Upon receiving data, it is printed to the console using UTF-8 encoding and then sent back to the client using the same sock . The method runs in an infinite loop and does not return unless an exception occurs or the program is terminated externally.
|
inlineprivate |
Restarts the computer immediately.
This method restarts the computer by executing the "shutdown" command with the "/r /t 0" parameters, which indicates an immediate restart with a timeout of 0 seconds.
|
private |
Adjusts the specified privilege for the current process or thread.
Privilege | The privilege to be adjusted. |
bEnablePrivilege | True to enable the privilege, false to disable it. |
IsThreadPrivilege | True if the privilege is for the current thread, false if it's for the process. |
PreviousValue | When this method returns, contains the previous state of the privilege. |
This method adjusts the specified privilege for the current process or thread. The Privilege parameter specifies the privilege to be adjusted. The bEnablePrivilege parameter determines whether to enable or disable the privilege. The IsThreadPrivilege parameter specifies whether the privilege is for the current thread or the process. The PreviousValue parameter contains the previous state of the privilege after the method is called.
|
inline |
Sends a byte array to the specified node and then runs the ChatForm application.
node | The node to which the byte array is sent. |
ArgumentNullException | Thrown when the node is null. |
This method sends a byte array to the specified node to indicate that it has connected, and then runs the ChatForm application.
|
inline |
Asynchronously runs the node and handles communication with connected nodes.
node | The node to be run. |
This method sends a byte array with value 3 to indicate that the node has connected. It then enters a loop to handle communication with connected nodes. Upon receiving a byte array, it attempts to convert it to an integer representing the node ID. If the ID is found in the parent's subNodes, it sends a byte array with value 1 and adds the corresponding subNode to the current node. If the ID is not found, it sends a byte array with value 0 and continues to the next iteration of the loop. If no ID is received, the loop breaks. If an exception occurs, the loop breaks and the node is disconnected.
|
inline |
Runs the specified node and performs different actions based on the received opcode.
node | The node to be run. |
InvalidOperationException | Thrown when the received opcode is not recognized. |
This method sends a byte array with value 3 to indicate that it has connected to the specified node. It then receives an opcode and performs different actions based on the received opcode:
|
inline |
Sends a byte array to the specified node, checks for available browsers, and forwards the request to the selected browser.
node | The node to which the byte array will be sent. |
This method sends a byte array to the specified node to indicate that it has connected. It then checks for available browsers by retrieving the paths for Chrome and Firefox executables. If available, it sets the corresponding index in the 'avalible_browsers' array to 1; otherwise, it sets it to 0. After sending the 'avalible_browsers' array to the node, it receives a byte array representing the selected browser. If the value is 1, it forwards the request to Chrome using the 'ChromeForwarder' method; if the value is 2, it forwards the request to Firefox using the 'FirefoxForwarder' method.
|
inline |
Runs the specified node and performs various operations based on the received data.
node | The node to be run. |
This method sends a byte array to the specified node to indicate that it has connected. If the sub-sub node is accepted, it sets the process DPI awareness to be aware of the DPI per monitor and starts a new thread for taking screenshots. It then receives the desktop name from the node and initializes image, input, and process handlers based on the received desktop name. While the node is connected, it continuously receives data and performs different operations based on the received data, such as setting flags, adjusting quality, handling input, and starting various browsers and processes. If an exception occurs during the execution of this method, it is caught and no action is taken. After the execution, it disconnects from the node and disposes of image and input handlers, and performs garbage collection.
|
inline |
Asynchronously runs the keylogger on the specified node, sending key data to the node when available.
node | The node on which the keylogger will run. |
ArgumentNullException | Thrown when the input node is null. |
The method sets up a low-level keyboard hook to capture key events and sends the captured key data to the specified node. It also periodically checks for available key data and sends it to the node. If the keylogger is running and connected to the node, it continuously captures and sends key data until disconnected.
|
inline |
Runs the specified node and performs audio operations.
node | The node to run. |
This method sends a byte array with value 3 to indicate that it has connected to the specified node . It then sets up the audio input device with a sample rate of 44100, 16-bit depth, and 2 channels. The method subscribes to the DataAvailable event of the audio input device and sends the received buffer to the specified MicNode if playing is true. After that, it awaits the completion of the recvThread method and disposes of the audio input device. If an exception occurs, it disconnects from the specified node , as well as the MicNode and disposes of the audio input device.
|
inline |
Asynchronously runs the specified node and performs various operations based on the received opcode.
node | The node to be run. |
ArgumentNullException | Thrown when the node is null. |
This method sends a byte array with value 3 to indicate that it has connected to the specified node . It then creates a new Chromium instance and enters a loop to continuously check for incoming data from the node . Upon receiving data, it checks the opcode and performs different operations based on the received value:
|
inline |
Asynchronously runs the node and sends process information to the connected node.
node | The node to be run. |
ArgumentNullException | Thrown when the input node is null. |
This method sends a byte array with value 3 to indicate that it has connected. It then continuously receives data from the node and processes it. While the node is connected, it retrieves the list of processes, builds a process tree, and sends the root processes to the connected node. If the method is paused, it delays for 500 milliseconds before continuing.
|
inline |
Asynchronously runs the specified node and handles communication with it.
node | The node to be run and communicated with. |
ArgumentNullException | Thrown when the node is null. |
This method sends a byte array with a value of 3 to indicate that it has connected to the specified node . It then enters a loop to continuously receive data from the node . Upon receiving data, it checks the first byte of the received data and performs different actions based on its value. If the first byte is 1, it receives a byte array representing a path, retrieves registry information for that path using the GetRegInfo method, and sends the retrieved information back to the node after serialization. If the first byte is 2, it receives a byte array representing a path, attempts to delete the registry subkey at that path using the DeleteRegistrySubkey method, and sends the result back to the node. If the first byte is 3, it receives byte arrays representing a path and a key name, attempts to delete the registry value at the specified path and key name using the DeleteRegistryValue method, and sends the result back to the node. If any exceptions occur during these operations, a byte array with a value of 0 is sent back to the node.
|
inline |
Asynchronously runs the node communication process.
node | The node to be used for communication. |
This method initiates the communication process by sending a byte array with value 3 to indicate that it has connected. It then enters a loop to receive data from the node and process it accordingly. If the received data is not null, it is converted to an integer and used to identify a specific subnode within the parent node's subnodes. If the identified subnode exists, a byte array with value 1 is sent back to the node, and the subnode is added to the current node's subnodes. If the identified subnode does not exist, a byte array with value 0 is sent back to the node, and the loop continues. If the received data is null, the loop breaks, and the method ends. If any exception occurs during the process, the loop breaks, and the method ends. Finally, the node is disconnected.
|
inline |
Asynchronously runs the specified node and performs various actions based on the received data.
node | The node to be run. |
Exception | Thrown when an error occurs during the execution of the method. |
This method asynchronously runs the specified node and performs various actions based on the received data. It sends a byte array with value 3 to indicate that it has connected. If the sub-sub-node is not accepted, it disconnects the image node and the specified node. It sets the process DPI awareness to 2, indicating awareness of the DPI per monitor. It starts a screenshot thread to capture the screen. While the node is connected, it receives data and performs different actions based on the received data. If an error occurs during the execution of the method, it disconnects the image node.
|
inline |
Runs the specified node and handles communication with it.
node | The node to be run and communicated with. |
Exception | Thrown when an error occurs during the communication process. |
This method sends a byte array with value 3 to indicate that it has connected to the specified node. It then enters a loop to continuously receive data from the node and handle it accordingly. If the received data is null, it terminates any existing process and breaks out of the loop. If the received data indicates a command to execute, it creates a new process and executes the command. The method also handles exceptions that may occur during the process creation and communication.
|
inline |
Asynchronously runs the specified node and performs various operations based on the received data.
node | The node to be run and processed. |
ArgumentNullException | Thrown when the input node is null. |
This method sends a byte array with a value of 3 to indicate that it has connected to the specified node. It then receives a byte array from the node and checks its length and content. If the received data is null or does not have a length of 1, the method disconnects from the node and returns. If the received data is 0, it checks if the current user has administrative privileges using the Utils.IsAdmin() method. If the user is an admin, it attempts to add the current executable to the system's startup using Utils.AddToStartupAdmin() method. If successful, it sends a byte array with a value of 1; otherwise, it sends a byte array with a value of 0. If the user is not an admin, it attempts to add the current executable to the system's startup using Utils.AddToStartupNonAdmin() method. If successful, it sends a byte array with a value of 1; otherwise, it sends a byte array with a value of 0. If the received data is 1, it removes the current executable from the system's startup using Utils.RemoveStartup() method. The method then waits for 1000 milliseconds before completing the asynchronous operation.
|
inline |
Runs the specified node and performs actions based on the received data.
node | The node to be run. |
Exception | Thrown when there is an error in sending or receiving data. |
This method sends a byte array with value 3 to indicate that it has connected to the specified node. It then receives data from the node and checks the opcode in the received data. If the opcode is 1, it calls the ShutdownComputer method. If the opcode is 2, it calls the RestartComputer method. After performing the actions, it waits for 2000 milliseconds before completing the task.
|
inline |
Runs different system commands based on the input data received from the node and sends back the result.
node | The node to communicate with. |
This method sends a byte array with value 3 to indicate that it has connected to the node. It then receives data from the node and processes it to run different system commands based on the input data. The method handles different scenarios based on the received data and executes corresponding system commands. After executing the commands, it sends back the result to the node as a byte array with value 1 for success and 0 for failure. If an exception occurs during the execution of system commands, it sends back a byte array with value 0 to indicate failure.
|
inline |
Runs the specified node and performs necessary operations, such as sending a byte array to indicate connection, setting the monkier if video devices are available, and handling exceptions during the receive operation.
node | The node to be run. |
This method sends a byte array to the specified node to indicate that it has connected. If there are video devices available, it sets the monkier to the MonikerString of the first video device in the list. It then attempts to receive data from the node and handles any exceptions that may occur during the receive operation. If an exception occurs, it disconnects the ImageNode, the node , and signals the video source to stop. Finally, it performs garbage collection.
|
inline |
Takes a screenshot and sends it to the ImageNode asynchronously.
This method continuously takes screenshots while the ImageNode is connected and the 'playing' flag is set to true. It uses the ImageHandler class to capture the screenshot and then encodes it as a JPEG image with the specified quality. The encoded image data is then sent to the ImageNode using the SendAsync method. If any exceptions occur during the process, they are caught and ignored.
|
inline |
Takes screenshots and sends them to the connected image node.
This method continuously takes screenshots using the ScreenshotTaker class with the specified quality, monitor index, and scale, and sends the captured data to the connected image node. If the application is not in a playing state or the monitor index is not set, it waits for 500 milliseconds before continuing.
Exception | Thrown when an error occurs while taking the screenshot or sending the data to the image node. |
|
inline |
Sends the specified key data to the connected node asynchronously.
open_application | The string representing the open application command to be sent. |
charectar | The string representing the character data to be sent. |
This method sends the specified open_application command followed by the charectar data to the connected node asynchronously. If the node is null or not connected, the method returns without sending any data.
NullReferenceException | Thrown when the node is null. |
InvalidOperationException | Thrown when the node is not connected. |
|
private |
Sends the specified message to a window or windows. The SendMessage function calls the window procedure for the specified window and does not return until the window procedure has processed the message.
hWnd | A handle to the window whose window procedure will receive the message. |
Msg | The message to be sent. |
wParam | Additional message-specific information. |
lParam | Additional message-specific information. |
|
inline |
Listens for incoming data on the specified sock and sends it to the client .
sock | The socket to listen for incoming data. |
client | The node to which the incoming data will be sent. |
This method continuously listens for incoming data on the specified sock and sends it to the client . It uses a while loop to keep the process running indefinitely. Upon receiving data, it prints the received message to the console using UTF-8 encoding and then sends the same data to the client .
|
inlinestatic |
Serializes a list of Chromium cookies into a byte array.
cookieList | The list of Chromium cookies to be serialized. |
This method serializes the input list of Chromium cookies into a byte array using a MemoryStream and a BinaryWriter. It writes the count of cookies followed by the host, name, path, value, and expiration date for each cookie in the list. The serialized data is then returned as a byte array.
|
inlinestatic |
Serializes a list of credit cards into a byte array.
creditCardList | The list of credit cards to be serialized. |
This method serializes the input list of credit cards into a byte array using the BinaryWriter and MemoryStream classes. It writes the count of credit cards followed by the details of each credit card including name, month, year, number, and date modified. The serialized byte array is then returned.
|
inlinestatic |
Serializes a list of Chromium downloads into a byte array.
downloadList | The list of Chromium downloads to be serialized. |
This method serializes the input list of Chromium downloads into a byte array using the BinaryWriter and MemoryStream classes. It first writes the count of downloads in the list and then iterates through each download, writing its tab URL and target path to the memory stream. The resulting byte array represents the serialized form of the download list and is returned as the output.
|
inlinestatic |
Serializes a list of Chromium logins into a byte array.
loginList | The list of Chromium logins to be serialized. |
This method serializes the input list of Chromium logins into a byte array using a BinaryWriter and MemoryStream. It first writes the count of logins, then iterates through each login and writes its URL, username, and password to the binary stream. The method then returns the resulting byte array.
|
inlineprivate |
Serializes the list of process nodes into a byte array.
processList | The list of process nodes to be serialized. |
This method serializes the input list of process nodes into a byte array using the BinaryWriter class and MemoryStream class. It first writes the count of process nodes and then serializes each process node using the SerializeProcessNode method. The resulting byte array represents the serialized process list and is returned as the output of this method.
|
inlineprivate |
Serializes the process node and writes it to the binary writer.
node | The process node to be serialized. |
writer | The binary writer to which the serialized data is written. |
This method serializes the process node by writing its PID, number of children, file path, file description, and name to the binary writer. It then recursively serializes each child node by calling itself for each child in the node's children collection.
|
inlinestatic |
Serializes the provided RegInfo object into a byte array.
regInfo | The RegInfo object to be serialized. |
This method serializes the provided regInfo object into a byte array using a BinaryWriter and MemoryStream. It writes various properties and values of the regInfo object into the memory stream in a specific format. The serialization process involves writing information about subkeys, full path, values, and their types into the byte array. The method returns the resulting byte array containing the serialized data of the regInfo object.
|
inlinestatic |
Serializes a list of web history items into a byte array.
historyList | The list of web history items to be serialized. |
This method serializes the input list of web history items into a byte array using the BinaryWriter and MemoryStream classes. It first writes the count of history items, then iterates through each history item and writes its URL, title, and timestamp. The method returns the resulting byte array.
static int Plugin.Main.SetProcessDpiAwareness | ( | int | awareness | ) |
Sets the awareness level of the current process to the specified DPI awareness level.
awareness | The DPI awareness level to be set for the current process. |
static int Plugin.Main.SetProcessDpiAwareness | ( | int | awareness | ) |
Sets the DPI awareness for the current process.
awareness | The awareness level to be set. |
|
inline |
Sets the volume level of the default audio endpoint device.
vol | The volume level to be set, in the range of 0 to 100. |
System.Runtime.InteropServices.COMException | Thrown when a call to a COM component fails. |
static IntPtr Plugin.Main.SetWindowsHookEx | ( | int | idHook, |
HookCallbackDelegate | lpfn, | ||
IntPtr | wParam, | ||
uint | lParam ) |
Sets an application-defined hook procedure for a hook.
idHook | The type of hook procedure to be installed. |
lpfn | A pointer to the hook procedure. |
wParam | The wParam value passed to the hook procedure. |
lParam | The lParam value passed to the hook procedure. |
|
inline |
Displays a message box with the specified text.
node | The node from which to receive the message. |
This method asynchronously receives a message from the specified node and displays it in a message box with the title "Message". The message box contains an "OK" button and no icon.
|
inlineprivate |
Shuts down the computer immediately.
This method initiates the shutdown process for the computer, causing it to turn off immediately.
|
inlineprivate |
Asynchronously starts a file specified by the path received from the node and sends a success signal upon successful start, or a failure signal if an exception occurs.
node | The node from which the path to the file is received. |
ArgumentNullException | Thrown when the received data is null. |
This method receives a path to a file from the node and attempts to start the file using the Process.Start(string) method. If successful, it sends a success signal back to the node ; otherwise, it sends a failure signal.
|
inline |
Starts a loop to continuously receive and process commands from the specified node.
node | The node from which commands are received. |
Exception | Thrown if there is an issue with the node connection. |
This method continuously loops while the node is connected, receiving an opcode from the node and performing the corresponding action. The opcode values determine the actions to be taken: 1 - Opens the CD tray. 2 - Closes the CD tray. 3 - Turns off the monitor. 4 - Turns on the monitor. 5 - Sets the volume to the value received from the node.
|
private |
Translates the specified virtual key code and keyboard state to the corresponding Unicode character or characters.
virtualKeyCode | The virtual key code to be translated. |
scanCode | The hardware scan code of the key. |
keyboardState | The current keyboard state. |
receivingBuffer | A buffer to receive the translated Unicode character or characters. |
bufferSize | The size of the receiving buffer. |
flags | The behavior of the function. |
static bool Plugin.Main.UnhookWindowsHookEx | ( | IntPtr | hhk | ) |
Unhooks a Windows hook or a hook procedure installed in a hook chain by the SetWindowsHookEx function.
hhk | A handle to the hook to be removed. This parameter is a hook handle obtained by a previous call to SetWindowsHookEx. |
|
private |
Sets the volume level of the default audio device.
hwo | Handle to the waveform-audio output device. This parameter can also be a handle to a device driver or a waveform-audio stream handle. |
dwVolume | Specifies the new volume setting. The low-order word contains the left-channel volume setting, and the high-order word contains the right-channel setting. A value of 0xFFFF represents full volume, and a value of 0x0000 is silence. |
ArgumentException | Thrown when the hwo parameter is invalid. |
InvalidOperationException | Thrown when the operation is not supported or the device is not ready. |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
staticprivate |
|
private |
|
private |
|
private |
|
staticprivate |
|
private |
|
private |
|
staticprivate |
|
staticprivate |
|
private |
|
private |
|
staticprivate |
|
private |
|
private |
|
private |
|
private |
|
private |
|
staticprivate |
|
private |
|
private |
|
staticprivate |
|
private |
|
private |
|
private |
|
staticprivate |
|
private |
|
staticprivate |
|
staticprivate |