HyperDbg Debugger
|
Exported functions from libhyperdbg interface. More...
#include "pch.h"
Functions | |
BOOLEAN | hyperdbg_u_detect_vmx_support () |
Detects the support of VMX. | |
VOID | hyperdbg_u_read_vendor_string (CHAR *vendor_string) |
Read the vendor string of the CPU. | |
INT | hyperdbg_u_load_vmm () |
Load the VMM. | |
INT | hyperdbg_u_unload_vmm () |
Unload the VMM. | |
INT | hyperdbg_u_install_vmm_driver () |
Install the VMM driver. | |
INT | hyperdbg_u_uninstall_vmm_driver () |
Uninstall the VMM driver. | |
INT | hyperdbg_u_stop_vmm_driver () |
Stop the VMM driver. | |
INT | hyperdbg_u_interpreter (CHAR *command) |
Interprets the command. | |
VOID | hyperdbg_u_show_signature () |
Show the signature of the debugger. | |
VOID | hyperdbg_u_set_text_message_callback (PVOID handler) |
Set the function callback that will be called if any message needs to be shown (by passing message as a parameter) | |
PVOID | hyperdbg_u_set_text_message_callback_using_shared_buffer (PVOID handler) |
Set the function callback that will be called if any message needs to be shown (using shared buffer method) | |
VOID | hyperdbg_u_unset_text_message_callback () |
Unset the function callback that will be called if any message needs to be shown. | |
INT | hyperdbg_u_script_read_file_and_execute_commandline (INT argc, CHAR *argv[]) |
Parsing the command line options for scripts. | |
BOOLEAN | hyperdbg_u_continue_previous_command () |
Some of commands like stepping commands (i, p, t) and etc. need to be repeated when the user press enter, this function shows whether we should continue the previous command or not. | |
BOOLEAN | hyperdbg_u_check_multiline_command (CHAR *current_command, BOOLEAN reset) |
Check if the command is a multiline command or not. | |
VOID | hyperdbg_u_connect_local_debugger () |
Connect to the local debugger. | |
BOOLEAN | hyperdbg_u_connect_remote_debugger (const CHAR *ip, const CHAR *port) |
Connect to the remote debugger. | |
VOID | hyperdbg_u_continue_debuggee () |
Continue the debuggee (equal to the 'g' command) | |
VOID | hyperdbg_u_pause_debuggee () |
Pause the debuggee (equal to the 'pause' command or CTRL+C) | |
VOID | hyperdbg_u_set_breakpoint (UINT64 address, UINT32 pid, UINT32 tid, UINT32 core_numer) |
Set a breakpoint. | |
BOOLEAN | hyperdbg_u_set_custom_driver_path (CHAR *driver_file_path, CHAR *driver_name) |
Set custom driver path. | |
VOID | hyperdbg_u_use_default_driver_path () |
Use the default driver path. | |
BOOLEAN | hyperdbg_u_read_memory (UINT64 target_address, DEBUGGER_READ_MEMORY_TYPE memory_type, DEBUGGER_READ_READING_TYPE reading_Type, UINT32 pid, UINT32 size, BOOLEAN get_address_mode, DEBUGGER_READ_MEMORY_ADDRESS_MODE *address_mode, BYTE *target_buffer_to_store, UINT32 *return_length) |
Read memory and disassembler. | |
VOID | hyperdbg_u_show_memory_or_disassemble (DEBUGGER_SHOW_MEMORY_STYLE style, UINT64 address, DEBUGGER_READ_MEMORY_TYPE memory_type, DEBUGGER_READ_READING_TYPE reading_type, UINT32 pid, UINT32 size, PDEBUGGER_DT_COMMAND_OPTIONS dt_details) |
Show memory or disassembler. | |
BOOLEAN | hyperdbg_u_read_all_registers (GUEST_REGS *guest_registers, GUEST_EXTRA_REGISTERS *extra_registers) |
Read all registers. | |
BOOLEAN | hyperdbg_u_read_target_register (REGS_ENUM register_id, UINT64 *target_register) |
Read target register. | |
BOOLEAN | hyperdbg_u_write_target_register (REGS_ENUM register_id, UINT64 value) |
Write target register. | |
BOOLEAN | hyperdbg_u_show_all_registers () |
Show all registers. | |
BOOLEAN | hyperdbg_u_show_target_register (REGS_ENUM register_id) |
Show target register. | |
BOOLEAN | hyperdbg_u_write_memory (PVOID destination_address, DEBUGGER_EDIT_MEMORY_TYPE memory_type, UINT32 process_id, PVOID source_address, UINT32 number_of_bytes) |
Write memory. | |
UINT64 | hyperdbg_u_get_kernel_base () |
Get the kernel base. | |
BOOLEAN | hyperdbg_u_connect_remote_debugger_using_com_port (const CHAR *port_name, DWORD baudrate) |
Connect to the remote debugger using COM port. | |
BOOLEAN | hyperdbg_u_connect_remote_debugger_using_named_pipe (const CHAR *named_pipe) |
Connect to the remote debugger using named pipe. | |
BOOLEAN | HyperDbgDebugCurrentDeviceUsingComPort (const CHAR *PortName, DWORD Baudrate) |
Connect to a remote serial device (Debuggee) | |
BOOLEAN | hyperdbg_u_connect_current_debugger_using_com_port (const CHAR *port_name, DWORD baudrate) |
Connect to the current debugger using COM port. | |
BOOLEAN | hyperdbg_u_start_process (const WCHAR *path) |
Start a new process. | |
BOOLEAN | hyperdbg_u_start_process_with_args (const WCHAR *path, const WCHAR *arguments) |
Start a new process. | |
Variables | |
TCHAR | g_DriverLocation [MAX_PATH] |
Holds the location driver to install it. | |
TCHAR | g_DriverName [MAX_PATH] |
Holds the name of the driver to install it. | |
BOOLEAN | g_UseCustomDriverLocation |
Whether the user wants to use a custom driver location or not. | |
Exported functions from libhyperdbg interface.
Check if the command is a multiline command or not.
current_command | The current command |
reset | If it's true, it will reset the multiline command |
BOOLEAN hyperdbg_u_connect_current_debugger_using_com_port | ( | const CHAR * | port_name, |
DWORD | baudrate ) |
Connect to the current debugger using COM port.
port_name | The port name |
baudrate | The baudrate |
VOID hyperdbg_u_connect_local_debugger | ( | ) |
Connect to the remote debugger.
ip | The IP address of the remote debugger |
port | The port of the remote debugger |
BOOLEAN hyperdbg_u_connect_remote_debugger_using_com_port | ( | const CHAR * | port_name, |
DWORD | baudrate ) |
Connect to the remote debugger using COM port.
port_name | The port name |
baudrate | The baudrate |
Connect to the remote debugger using named pipe.
named_pipe | The named pipe |
VOID hyperdbg_u_continue_debuggee | ( | ) |
BOOLEAN hyperdbg_u_continue_previous_command | ( | ) |
Some of commands like stepping commands (i, p, t) and etc. need to be repeated when the user press enter, this function shows whether we should continue the previous command or not.
BOOLEAN hyperdbg_u_detect_vmx_support | ( | ) |
Detects the support of VMX.
UINT64 hyperdbg_u_get_kernel_base | ( | ) |
Get the kernel base.
INT hyperdbg_u_install_vmm_driver | ( | ) |
Install the VMM driver.
Interprets the command.
INT hyperdbg_u_load_vmm | ( | ) |
Load the VMM.
VOID hyperdbg_u_pause_debuggee | ( | ) |
Pause the debuggee (equal to the 'pause' command or CTRL+C)
BOOLEAN hyperdbg_u_read_all_registers | ( | GUEST_REGS * | guest_registers, |
GUEST_EXTRA_REGISTERS * | extra_registers ) |
Read all registers.
guest_registers | The buffer to store the registers |
extra_registers | The buffer to store the extra registers |
BOOLEAN hyperdbg_u_read_memory | ( | UINT64 | target_address, |
DEBUGGER_READ_MEMORY_TYPE | memory_type, | ||
DEBUGGER_READ_READING_TYPE | reading_Type, | ||
UINT32 | pid, | ||
UINT32 | size, | ||
BOOLEAN | get_address_mode, | ||
DEBUGGER_READ_MEMORY_ADDRESS_MODE * | address_mode, | ||
BYTE * | target_buffer_to_store, | ||
UINT32 * | return_length ) |
Read memory and disassembler.
target_address | location of where to read the memory |
memory_type | type of memory (phyical or virtual) |
reading_Type | read from kernel or vmx-root |
pid | The target process id |
size | size of memory to read |
get_address_mode | check for address mode |
address_mode | Address mode (32 or 64) |
target_buffer_to_store | The buffer to store the read memory |
return_length | The length of the read memory |
Read target register.
register_id | The target register |
target_register | The buffer to store the register |
Read the vendor string of the CPU.
vendor_string | The buffer to store the vendor string |
Parsing the command line options for scripts.
argc | |
argv |
Set a breakpoint.
address | The address of the breakpoint |
pid | The process ID of the breakpoint |
tid | The thread ID of the breakpoint |
core_numer | The core number of the breakpoint |
Set custom driver path.
driver_file_path | The path of the driver |
driver_name | The name of the driver |
VOID hyperdbg_u_set_text_message_callback | ( | PVOID | handler | ) |
Set the function callback that will be called if any message needs to be shown (by passing message as a parameter)
handler | Function that handles the messages |
PVOID hyperdbg_u_set_text_message_callback_using_shared_buffer | ( | PVOID | handler | ) |
Set the function callback that will be called if any message needs to be shown (using shared buffer method)
handler | Function that handles the messages |
BOOLEAN hyperdbg_u_show_all_registers | ( | ) |
Show all registers.
VOID hyperdbg_u_show_memory_or_disassemble | ( | DEBUGGER_SHOW_MEMORY_STYLE | style, |
UINT64 | address, | ||
DEBUGGER_READ_MEMORY_TYPE | memory_type, | ||
DEBUGGER_READ_READING_TYPE | reading_type, | ||
UINT32 | pid, | ||
UINT32 | size, | ||
PDEBUGGER_DT_COMMAND_OPTIONS | dt_details ) |
Show memory or disassembler.
style | style of show memory (as byte, dwrod, qword) |
address | location of where to read the memory |
memory_type | type of memory (phyical or virtual) |
reading_type | read from kernel or vmx-root |
pid | The target process id |
size | size of memory to read |
dt_details | Options for dt structure show details |
VOID hyperdbg_u_show_signature | ( | ) |
Show the signature of the debugger.
Show target register.
register_id | The target register |
Start a new process.
path | The path of the process |
Start a new process.
path | The path of the process |
arguments | The arguments of the process |
INT hyperdbg_u_stop_vmm_driver | ( | ) |
Stop the VMM driver.
INT hyperdbg_u_uninstall_vmm_driver | ( | ) |
Uninstall the VMM driver.
INT hyperdbg_u_unload_vmm | ( | ) |
Unload the VMM.
VOID hyperdbg_u_unset_text_message_callback | ( | ) |
Unset the function callback that will be called if any message needs to be shown.
VOID hyperdbg_u_use_default_driver_path | ( | ) |
Use the default driver path.
BOOLEAN hyperdbg_u_write_memory | ( | PVOID | destination_address, |
DEBUGGER_EDIT_MEMORY_TYPE | memory_type, | ||
UINT32 | process_id, | ||
PVOID | source_address, | ||
UINT32 | number_of_bytes ) |
Write memory.
destination_address | The destination address |
memory_type | The type of memory (physical or virtual) |
process_id | The target process id (if it's virtual memory) |
source_address | The source address |
number_of_bytes | The number of bytes to write |
Write target register.
register_id | The target register |
value | The value to write |
Connect to a remote serial device (Debuggee)
PortName | |
Baudrate |
|
extern |
Holds the location driver to install it.
|
extern |
Holds the name of the driver to install it.
|
extern |
Whether the user wants to use a custom driver location or not.