libintrovirt v0.57.4
IntroVirt introspection library
Loading...
Searching...
No Matches
introvirt::windows::nt::NtProtectVirtualMemory Class Referenceabstract

Handler class for the NtProtectVirtualMemory system call. More...

#include <NtProtectVirtualMemory.hh>

Inheritance diagram for introvirt::windows::nt::NtProtectVirtualMemory:
Collaboration diagram for introvirt::windows::nt::NtProtectVirtualMemory:

Public Member Functions

virtual uint64_t ProcessHandle () const =0
 Getter for ProcessHandle.
 
virtual guest_ptr< void > BaseAddressPtr () const =0
 Getter for BaseAddressPtr.
 
virtual guest_ptr< void > NumberOfBytesToProtectPtr () const =0
 Getter for NumberOfBytesToProtectPtr.
 
virtual PAGE_PROTECTION NewAccessProtection () const =0
 Getter for NewAccessProtection.
 
virtual guest_ptr< void > OldAccessProtectionPtr () const =0
 Getter for OldAccessProtectionPtr.
 
virtual void ProcessHandle (uint64_t ProcessHandle)=0
 Setter for ProcessHandle.
 
virtual void BaseAddressPtr (const guest_ptr< void > &pBaseAddress)=0
 Setter for BaseAddressPtr.
 
virtual void NumberOfBytesToProtectPtr (const guest_ptr< void > &pNumberOfBytesToProtect)=0
 Setter for NumberOfBytesToProtectPtr.
 
virtual void NewAccessProtection (PAGE_PROTECTION NewAccessProtection)=0
 Setter for NewAccessProtection.
 
virtual void OldAccessProtectionPtr (const guest_ptr< void > &pOldAccessProtection)=0
 Setter for OldAccessProtectionPtr.
 
virtual size_t BaseAddress () const =0
 
virtual void BaseAddress (size_t BaseAddress)=0
 
virtual uint32_t NumberOfBytesToProtect () const =0
 
virtual void NumberOfBytesToProtect (uint32_t NumberOfBytesToProtect)=0
 
virtual PAGE_PROTECTION OldAccessProtection () const =0
 
virtual void OldAccessProtection (PAGE_PROTECTION OldAccessProtection)=0
 
- Public Member Functions inherited from introvirt::windows::nt::NtSystemCall
virtual NTSTATUS result () const =0
 Get the result code.
 
virtual void result (NTSTATUS_CODE code)=0
 Set the result code.
 
- Public Member Functions inherited from introvirt::windows::WindowsSystemCall
virtual SystemCallIndex index () const =0
 Get the system call number.
 
- Public Member Functions inherited from introvirt::SystemCall
virtual const std::string & name () const =0
 Get the name of the system call.
 
virtual void write (std::ostream &os=std::cout) const =0
 Write a human-readable description of this system call.
 
virtual Json::Value json () const =0
 
virtual bool will_return () const =0
 
virtual void data (const std::string &key, const std::shared_ptr< void > &value)=0
 Store arbitrary data with the SystemCall.
 
virtual void data (const std::string &key, std::shared_ptr< void > &&value)=0
 Store arbitrary data with the SystemCall.
 
virtual std::shared_ptr< void > data (const std::string &key)=0
 Retrieve arbitrary data stored with the SystemCall.
 
virtual std::shared_ptr< const void > data (const std::string &key) const =0
 Retrieve arbitrary data stored with the SystemCall.
 
virtual bool supported () const =0
 Check if this system call is supported by a more specific handler.
 
virtual void handle_return_event (Event &event)=0
 Handle a system call return event.
 
virtual ~SystemCall ()=default
 Destroy the instance.
 

Static Public Member Functions

static NTSTATUS inject (uint64_t ProcessHandle, size_t &BaseAddress, uint32_t &NumberOfBytesToProtect, PAGE_PROTECTION NewAccessProtection, PAGE_PROTECTION &OldAccessProtection)
 

Detailed Description

Handler class for the NtProtectVirtualMemory system call.

Member Function Documentation

◆ BaseAddress() [1/2]

virtual size_t introvirt::windows::nt::NtProtectVirtualMemory::BaseAddress ( ) const
pure virtual

◆ BaseAddress() [2/2]

virtual void introvirt::windows::nt::NtProtectVirtualMemory::BaseAddress ( size_t  BaseAddress)
pure virtual

◆ BaseAddressPtr() [1/2]

virtual guest_ptr< void > introvirt::windows::nt::NtProtectVirtualMemory::BaseAddressPtr ( ) const
pure virtual

Getter for BaseAddressPtr.

Returns
The address pointed to by the the BaseAddressPtr parameter

◆ BaseAddressPtr() [2/2]

virtual void introvirt::windows::nt::NtProtectVirtualMemory::BaseAddressPtr ( const guest_ptr< void > &  pBaseAddress)
pure virtual

Setter for BaseAddressPtr.

Parameters
pBaseAddressThe address to set for the BaseAddressPtr parameter

◆ inject()

static NTSTATUS introvirt::windows::nt::NtProtectVirtualMemory::inject ( uint64_t  ProcessHandle,
size_t &  BaseAddress,
uint32_t &  NumberOfBytesToProtect,
PAGE_PROTECTION  NewAccessProtection,
PAGE_PROTECTION OldAccessProtection 
)
static

◆ NewAccessProtection() [1/2]

virtual PAGE_PROTECTION introvirt::windows::nt::NtProtectVirtualMemory::NewAccessProtection ( ) const
pure virtual

Getter for NewAccessProtection.

Returns
The value of the NewAccessProtection parameter

◆ NewAccessProtection() [2/2]

virtual void introvirt::windows::nt::NtProtectVirtualMemory::NewAccessProtection ( PAGE_PROTECTION  NewAccessProtection)
pure virtual

Setter for NewAccessProtection.

Parameters
NewAccessProtectionThe value to set for the NewAccessProtection parameter

◆ NumberOfBytesToProtect() [1/2]

virtual uint32_t introvirt::windows::nt::NtProtectVirtualMemory::NumberOfBytesToProtect ( ) const
pure virtual

◆ NumberOfBytesToProtect() [2/2]

virtual void introvirt::windows::nt::NtProtectVirtualMemory::NumberOfBytesToProtect ( uint32_t  NumberOfBytesToProtect)
pure virtual

◆ NumberOfBytesToProtectPtr() [1/2]

virtual guest_ptr< void > introvirt::windows::nt::NtProtectVirtualMemory::NumberOfBytesToProtectPtr ( ) const
pure virtual

Getter for NumberOfBytesToProtectPtr.

Returns
The address pointed to by the the NumberOfBytesToProtectPtr parameter

◆ NumberOfBytesToProtectPtr() [2/2]

virtual void introvirt::windows::nt::NtProtectVirtualMemory::NumberOfBytesToProtectPtr ( const guest_ptr< void > &  pNumberOfBytesToProtect)
pure virtual

Setter for NumberOfBytesToProtectPtr.

Parameters
pNumberOfBytesToProtectThe address to set for the NumberOfBytesToProtectPtr parameter

◆ OldAccessProtection() [1/2]

virtual PAGE_PROTECTION introvirt::windows::nt::NtProtectVirtualMemory::OldAccessProtection ( ) const
pure virtual

◆ OldAccessProtection() [2/2]

virtual void introvirt::windows::nt::NtProtectVirtualMemory::OldAccessProtection ( PAGE_PROTECTION  OldAccessProtection)
pure virtual

◆ OldAccessProtectionPtr() [1/2]

virtual guest_ptr< void > introvirt::windows::nt::NtProtectVirtualMemory::OldAccessProtectionPtr ( ) const
pure virtual

Getter for OldAccessProtectionPtr.

Returns
The address pointed to by the the OldAccessProtectionPtr parameter

◆ OldAccessProtectionPtr() [2/2]

virtual void introvirt::windows::nt::NtProtectVirtualMemory::OldAccessProtectionPtr ( const guest_ptr< void > &  pOldAccessProtection)
pure virtual

Setter for OldAccessProtectionPtr.

Parameters
pOldAccessProtectionThe address to set for the OldAccessProtectionPtr parameter

◆ ProcessHandle() [1/2]

virtual uint64_t introvirt::windows::nt::NtProtectVirtualMemory::ProcessHandle ( ) const
pure virtual

Getter for ProcessHandle.

Returns
The value of the ProcessHandle parameter

◆ ProcessHandle() [2/2]

virtual void introvirt::windows::nt::NtProtectVirtualMemory::ProcessHandle ( uint64_t  ProcessHandle)
pure virtual

Setter for ProcessHandle.

Parameters
ProcessHandleThe value to set for the ProcessHandle parameter

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