Utility Functions
Memory and Module Utilities
is_valid(std::uintptr_t addr)
Checks if an address is within valid physical memory ranges.
Parameters:
addr
: Address to check
Returns: bool
Example:
std::uintptr_t addr = 0x1000;
if (Styx::is_valid(addr)) {
std::cout << "Address is valid" << std::endl;
}
init_ranges()
Initializes the physical memory ranges.
Returns: bool
Example:
if (Styx::init_ranges()) {
std::cout << "Physical memory ranges initialized" << std::endl;
}
get_file_header(void* base_addr)
Gets the file header of a module.
Parameters:
base_addr
: Base address of the module
Returns: PIMAGE_FILE_HEADER
Example:
void* module_base = (void*)0x7FFE0000;
PIMAGE_FILE_HEADER file_header = Styx::get_file_header(module_base);
std::cout << "Number of sections: " << file_header->NumberOfSections << std::endl;
These functions provide utilities for checking memory validity, initializing memory ranges, and accessing module file headers. The is_valid
function is particularly useful for ensuring that memory operations are performed on valid addresses, while init_ranges
sets up the necessary information for memory range checks. The get_file_header
function allows for direct access to a module's file header, which can be useful for analyzing loaded modules or performing advanced memory operations.
Last updated