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

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

#include <NtDuplicateObject.hh>

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

Public Member Functions

virtual uint64_t SourceProcessHandle () const =0
 Getter for SourceProcessHandle.
 
virtual uint64_t SourceHandle () const =0
 Getter for SourceHandle.
 
virtual uint64_t TargetProcessHandle () const =0
 Getter for TargetProcessHandle.
 
virtual guest_ptr< void > TargetHandlePtr () const =0
 Getter for TargetHandlePtr.
 
virtual ACCESS_MASK DesiredAccess () const =0
 Getter for DesiredAccess.
 
virtual HANDLE_ATTRIBUTES HandleAttributes () const =0
 Getter for HandleAttributes.
 
virtual DuplicateObjectOptions Options () const =0
 Getter for Options.
 
virtual void SourceProcessHandle (uint64_t SourceProcessHandle)=0
 Setter for SourceProcessHandle.
 
virtual void SourceHandle (uint64_t SourceHandle)=0
 Setter for SourceHandle.
 
virtual void TargetProcessHandle (uint64_t TargetProcessHandle)=0
 Setter for TargetProcessHandle.
 
virtual void TargetHandlePtr (const guest_ptr< void > &pTargetHandle)=0
 Setter for TargetHandlePtr.
 
virtual void DesiredAccess (ACCESS_MASK DesiredAccess)=0
 Setter for DesiredAccess.
 
virtual void HandleAttributes (HANDLE_ATTRIBUTES HandleAttributes)=0
 Setter for HandleAttributes.
 
virtual void Options (DuplicateObjectOptions Options)=0
 Setter for Options.
 
virtual uint64_t TargetHandle () const =0
 
virtual void TargetHandle (uint64_t TargetHandle)=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 SourceProcessHandle, uint64_t SourceHandle, uint64_t TargetProcessHandle, uint64_t *TargetHandle, ACCESS_MASK DesiredAccess, HANDLE_ATTRIBUTES HandleAttributes, DuplicateObjectOptions Options)
 

Detailed Description

Handler class for the NtDuplicateObject system call.

Member Function Documentation

◆ DesiredAccess() [1/2]

virtual ACCESS_MASK introvirt::windows::nt::NtDuplicateObject::DesiredAccess ( ) const
pure virtual

Getter for DesiredAccess.

Returns
The value of the DesiredAccess parameter

◆ DesiredAccess() [2/2]

virtual void introvirt::windows::nt::NtDuplicateObject::DesiredAccess ( ACCESS_MASK  DesiredAccess)
pure virtual

Setter for DesiredAccess.

Parameters
DesiredAccessThe value to set for the DesiredAccess parameter

◆ HandleAttributes() [1/2]

virtual HANDLE_ATTRIBUTES introvirt::windows::nt::NtDuplicateObject::HandleAttributes ( ) const
pure virtual

Getter for HandleAttributes.

Returns
The value of the HandleAttributes parameter

◆ HandleAttributes() [2/2]

virtual void introvirt::windows::nt::NtDuplicateObject::HandleAttributes ( HANDLE_ATTRIBUTES  HandleAttributes)
pure virtual

Setter for HandleAttributes.

Parameters
HandleAttributesThe value to set for the HandleAttributes parameter

◆ inject()

static NTSTATUS introvirt::windows::nt::NtDuplicateObject::inject ( uint64_t  SourceProcessHandle,
uint64_t  SourceHandle,
uint64_t  TargetProcessHandle,
uint64_t *  TargetHandle,
ACCESS_MASK  DesiredAccess,
HANDLE_ATTRIBUTES  HandleAttributes,
DuplicateObjectOptions  Options 
)
static

◆ Options() [1/2]

virtual DuplicateObjectOptions introvirt::windows::nt::NtDuplicateObject::Options ( ) const
pure virtual

Getter for Options.

Returns
The value of the Options parameter

◆ Options() [2/2]

virtual void introvirt::windows::nt::NtDuplicateObject::Options ( DuplicateObjectOptions  Options)
pure virtual

Setter for Options.

Parameters
OptionsThe value to set for the Options parameter

◆ SourceHandle() [1/2]

virtual uint64_t introvirt::windows::nt::NtDuplicateObject::SourceHandle ( ) const
pure virtual

Getter for SourceHandle.

Returns
The value of the SourceHandle parameter

◆ SourceHandle() [2/2]

virtual void introvirt::windows::nt::NtDuplicateObject::SourceHandle ( uint64_t  SourceHandle)
pure virtual

Setter for SourceHandle.

Parameters
SourceHandleThe value to set for the SourceHandle parameter

◆ SourceProcessHandle() [1/2]

virtual uint64_t introvirt::windows::nt::NtDuplicateObject::SourceProcessHandle ( ) const
pure virtual

Getter for SourceProcessHandle.

Returns
The value of the SourceProcessHandle parameter

◆ SourceProcessHandle() [2/2]

virtual void introvirt::windows::nt::NtDuplicateObject::SourceProcessHandle ( uint64_t  SourceProcessHandle)
pure virtual

Setter for SourceProcessHandle.

Parameters
SourceProcessHandleThe value to set for the SourceProcessHandle parameter

◆ TargetHandle() [1/2]

virtual uint64_t introvirt::windows::nt::NtDuplicateObject::TargetHandle ( ) const
pure virtual

◆ TargetHandle() [2/2]

virtual void introvirt::windows::nt::NtDuplicateObject::TargetHandle ( uint64_t  TargetHandle)
pure virtual

◆ TargetHandlePtr() [1/2]

virtual guest_ptr< void > introvirt::windows::nt::NtDuplicateObject::TargetHandlePtr ( ) const
pure virtual

Getter for TargetHandlePtr.

Returns
The address pointed to by the the TargetHandlePtr parameter

◆ TargetHandlePtr() [2/2]

virtual void introvirt::windows::nt::NtDuplicateObject::TargetHandlePtr ( const guest_ptr< void > &  pTargetHandle)
pure virtual

Setter for TargetHandlePtr.

Parameters
pTargetHandleThe address to set for the TargetHandlePtr parameter

◆ TargetProcessHandle() [1/2]

virtual uint64_t introvirt::windows::nt::NtDuplicateObject::TargetProcessHandle ( ) const
pure virtual

Getter for TargetProcessHandle.

Returns
The value of the TargetProcessHandle parameter

◆ TargetProcessHandle() [2/2]

virtual void introvirt::windows::nt::NtDuplicateObject::TargetProcessHandle ( uint64_t  TargetProcessHandle)
pure virtual

Setter for TargetProcessHandle.

Parameters
TargetProcessHandleThe value to set for the TargetProcessHandle parameter

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