libintrovirt v0.57.4
IntroVirt introspection library
Loading...
Searching...
No Matches
introvirt::FunctionCall Class Referenceabstract

Base class for function calls. More...

#include <FunctionCall.hh>

Inheritance diagram for introvirt::FunctionCall:

Public Member Functions

virtual guest_ptr< void > return_address () const =0
 Get the return address for this function call.
 
virtual void return_address (const guest_ptr< void > &value)=0
 Set the return address for this function call.
 
bool hook_return () const
 Check if the user is requesting that the return be intercepted.
 
void hook_return (bool val)
 Configure if the return should be intercepted.
 
virtual bool is_return_event (Event &event) const =0
 Check if the given event is a return event for this function call.
 
virtual void handle_return (Event &event)=0
 Handle the return event.
 
virtual bool returned () const =0
 Check if the call has returned.
 
virtual const std::string & library_name () const =0
 Get the name of the library this call is for.
 
virtual const std::string & function_name () const =0
 Get the function name.
 
virtual void write (std::ostream &os=std::cout) const =0
 Write out a textual representation of the function for display.
 
virtual Json::Value json () const =0
 Get the function as Json.
 
void data (const std::string &key, const std::shared_ptr< void > &value)
 Store arbitrary data with the FunctionCall.
 
void data (const std::string &key, std::shared_ptr< void > &&value)
 Store arbitrary data with the FunctionCall.
 
std::shared_ptr< void > data (const std::string &key)
 Retrieve arbitrary data stored with the FunctionCall.
 
std::shared_ptr< const void > data (const std::string &key) const
 Retrieve arbitrary data stored with the FunctionCall.
 
virtual ~FunctionCall ()=default
 

Detailed Description

Base class for function calls.

Constructor & Destructor Documentation

◆ ~FunctionCall()

virtual introvirt::FunctionCall::~FunctionCall ( )
virtualdefault

Member Function Documentation

◆ data() [1/4]

std::shared_ptr< void > introvirt::FunctionCall::data ( const std::string &  key)

Retrieve arbitrary data stored with the FunctionCall.

This can be used to retrieve arbitrary stored data.

Parameters
keyThe name of the value to retrieve
Returns
The data that was stored, or nullptr if the key was not found.

◆ data() [2/4]

std::shared_ptr< const void > introvirt::FunctionCall::data ( const std::string &  key) const

Retrieve arbitrary data stored with the FunctionCall.

This can be used to retrieve arbitrary stored data.

Parameters
keyThe name of the value to retrieve
Returns
The data that was stored, or nullptr if the key was not found.

This is the const version.

◆ data() [3/4]

void introvirt::FunctionCall::data ( const std::string &  key,
const std::shared_ptr< void > &  value 
)

Store arbitrary data with the FunctionCall.

This can be useful for storing data when handling the function call, and retreiving it when the call returns.

Parameters
keyThe name of the value to store
valueThe data to store

◆ data() [4/4]

void introvirt::FunctionCall::data ( const std::string &  key,
std::shared_ptr< void > &&  value 
)

Store arbitrary data with the FunctionCall.

This can be useful for storing data when handling the function call, and retreiving it when the call returns.

Parameters
keyThe name of the value to store
valueThe data to store

◆ function_name()

virtual const std::string & introvirt::FunctionCall::function_name ( ) const
pure virtual

Get the function name.

Returns
const std::string&

Implemented in introvirt::windows::advapi32::CryptAcquireContextA, introvirt::windows::advapi32::CryptAcquireContextW, introvirt::windows::advapi32::CryptCreateHash, introvirt::windows::advapi32::CryptDecrypt, introvirt::windows::advapi32::CryptEncrypt, introvirt::windows::advapi32::CryptExportKey, introvirt::windows::advapi32::CryptGenKey, introvirt::windows::advapi32::CryptGenRandom, introvirt::windows::advapi32::CryptGetKeyParam, introvirt::windows::advapi32::CryptHashData, introvirt::windows::advapi32::CryptSetKeyParam, introvirt::windows::crypt32::CryptDecodeMessage, introvirt::windows::crypt32::CryptDecodeObjectEx, introvirt::windows::crypt32::CryptDecryptMessage, introvirt::windows::crypt32::CryptEncryptMessage, introvirt::windows::crypt32::CryptHashMessage, introvirt::windows::crypt32::CryptProtectData, introvirt::windows::crypt32::CryptProtectMemory, introvirt::windows::crypt32::CryptUnprotectData, introvirt::windows::crypt32::CryptUnprotectMemory, introvirt::windows::kernel32::CreateProcessA, introvirt::windows::kernel32::CreateProcessW, introvirt::windows::ncrypt::Ssl3GenerateKeyMaterial, introvirt::windows::secur32::DecryptMessage, introvirt::windows::secur32::EncryptMessage, introvirt::windows::ws2_32::accept, introvirt::windows::ws2_32::bind, introvirt::windows::ws2_32::closesocket, introvirt::windows::ws2_32::connect, introvirt::windows::ws2_32::ConnectEx, introvirt::windows::ws2_32::gethostbyname, introvirt::windows::ws2_32::getsockname, introvirt::windows::ws2_32::ioctlsocket, introvirt::windows::ws2_32::listen, introvirt::windows::ws2_32::recv, introvirt::windows::ws2_32::recvfrom, introvirt::windows::ws2_32::select, introvirt::windows::ws2_32::send, introvirt::windows::ws2_32::sendto, introvirt::windows::ws2_32::setsockopt, introvirt::windows::ws2_32::shutdown, introvirt::windows::ws2_32::socket, introvirt::windows::ws2_32::TransmitFile, introvirt::windows::ws2_32::WSAAccept, introvirt::windows::ws2_32::WSAConnect, introvirt::windows::ws2_32::WSARecv, introvirt::windows::ws2_32::WSARecvFrom, introvirt::windows::ws2_32::WSASend, introvirt::windows::ws2_32::WSASendTo, introvirt::windows::ws2_32::WSASocketA, introvirt::windows::ws2_32::WSASocketW, and introvirt::windows::ws2_32::WSAStartup.

◆ handle_return()

virtual void introvirt::FunctionCall::handle_return ( Event event)
pure virtual

Handle the return event.

Perform processing to handle the return of the function call

Parameters
eventThe return event

Implemented in introvirt::windows::WindowsFunctionCall.

◆ hook_return() [1/2]

bool introvirt::FunctionCall::hook_return ( ) const

Check if the user is requesting that the return be intercepted.

Returns
true
false

◆ hook_return() [2/2]

void introvirt::FunctionCall::hook_return ( bool  val)

Configure if the return should be intercepted.

Parameters
valIf set to true, intercept the return

◆ is_return_event()

virtual bool introvirt::FunctionCall::is_return_event ( Event event) const
pure virtual

Check if the given event is a return event for this function call.

Parameters
event
Returns
true
false

Implemented in introvirt::windows::WindowsFunctionCall.

◆ json()

virtual Json::Value introvirt::FunctionCall::json ( ) const
pure virtual

Get the function as Json.

Returns
Json::Value

Implemented in introvirt::windows::advapi32::CryptAcquireContextA, introvirt::windows::advapi32::CryptAcquireContextW, introvirt::windows::advapi32::CryptCreateHash, introvirt::windows::advapi32::CryptDecrypt, introvirt::windows::advapi32::CryptEncrypt, introvirt::windows::advapi32::CryptExportKey, introvirt::windows::advapi32::CryptGenKey, introvirt::windows::advapi32::CryptGenRandom, introvirt::windows::advapi32::CryptGetKeyParam, introvirt::windows::advapi32::CryptHashData, introvirt::windows::advapi32::CryptSetKeyParam, introvirt::windows::crypt32::CryptDecodeMessage, introvirt::windows::crypt32::CryptDecodeObjectEx, introvirt::windows::crypt32::CryptDecryptMessage, introvirt::windows::crypt32::CryptEncryptMessage, introvirt::windows::crypt32::CryptHashMessage, introvirt::windows::crypt32::CryptProtectData, introvirt::windows::crypt32::CryptProtectMemory, introvirt::windows::crypt32::CryptUnprotectData, introvirt::windows::crypt32::CryptUnprotectMemory, introvirt::windows::kernel32::CreateProcessA, introvirt::windows::kernel32::CreateProcessW, introvirt::windows::ncrypt::Ssl3GenerateKeyMaterial, introvirt::windows::secur32::DecryptMessage, introvirt::windows::secur32::EncryptMessage, introvirt::windows::ws2_32::accept, introvirt::windows::ws2_32::bind, introvirt::windows::ws2_32::closesocket, introvirt::windows::ws2_32::connect, introvirt::windows::ws2_32::ConnectEx, introvirt::windows::ws2_32::gethostbyname, introvirt::windows::ws2_32::getsockname, introvirt::windows::ws2_32::ioctlsocket, introvirt::windows::ws2_32::listen, introvirt::windows::ws2_32::recv, introvirt::windows::ws2_32::recvfrom, introvirt::windows::ws2_32::select, introvirt::windows::ws2_32::send, introvirt::windows::ws2_32::sendto, introvirt::windows::ws2_32::setsockopt, introvirt::windows::ws2_32::shutdown, introvirt::windows::ws2_32::socket, introvirt::windows::ws2_32::TransmitFile, introvirt::windows::ws2_32::WSAAccept, introvirt::windows::ws2_32::WSAConnect, introvirt::windows::ws2_32::WSARecv, introvirt::windows::ws2_32::WSARecvFrom, introvirt::windows::ws2_32::WSASend, introvirt::windows::ws2_32::WSASendTo, introvirt::windows::ws2_32::WSASocketA, introvirt::windows::ws2_32::WSASocketW, and introvirt::windows::ws2_32::WSAStartup.

◆ library_name()

virtual const std::string & introvirt::FunctionCall::library_name ( ) const
pure virtual

Get the name of the library this call is for.

Returns
const std::string&

Implemented in introvirt::windows::advapi32::CryptAcquireContextA, introvirt::windows::advapi32::CryptAcquireContextW, introvirt::windows::advapi32::CryptCreateHash, introvirt::windows::advapi32::CryptDecrypt, introvirt::windows::advapi32::CryptEncrypt, introvirt::windows::advapi32::CryptExportKey, introvirt::windows::advapi32::CryptGenKey, introvirt::windows::advapi32::CryptGenRandom, introvirt::windows::advapi32::CryptGetKeyParam, introvirt::windows::advapi32::CryptHashData, introvirt::windows::advapi32::CryptSetKeyParam, introvirt::windows::crypt32::CryptDecodeMessage, introvirt::windows::crypt32::CryptDecodeObjectEx, introvirt::windows::crypt32::CryptDecryptMessage, introvirt::windows::crypt32::CryptEncryptMessage, introvirt::windows::crypt32::CryptHashMessage, introvirt::windows::crypt32::CryptProtectData, introvirt::windows::crypt32::CryptProtectMemory, introvirt::windows::crypt32::CryptUnprotectData, introvirt::windows::crypt32::CryptUnprotectMemory, introvirt::windows::kernel32::CreateProcessA, introvirt::windows::kernel32::CreateProcessW, introvirt::windows::ncrypt::Ssl3GenerateKeyMaterial, introvirt::windows::secur32::DecryptMessage, introvirt::windows::secur32::EncryptMessage, introvirt::windows::ws2_32::accept, introvirt::windows::ws2_32::bind, introvirt::windows::ws2_32::closesocket, introvirt::windows::ws2_32::connect, introvirt::windows::ws2_32::ConnectEx, introvirt::windows::ws2_32::gethostbyname, introvirt::windows::ws2_32::getsockname, introvirt::windows::ws2_32::ioctlsocket, introvirt::windows::ws2_32::listen, introvirt::windows::ws2_32::recv, introvirt::windows::ws2_32::recvfrom, introvirt::windows::ws2_32::select, introvirt::windows::ws2_32::send, introvirt::windows::ws2_32::sendto, introvirt::windows::ws2_32::setsockopt, introvirt::windows::ws2_32::shutdown, introvirt::windows::ws2_32::socket, introvirt::windows::ws2_32::TransmitFile, introvirt::windows::ws2_32::WSAAccept, introvirt::windows::ws2_32::WSAConnect, introvirt::windows::ws2_32::WSARecv, introvirt::windows::ws2_32::WSARecvFrom, introvirt::windows::ws2_32::WSASend, introvirt::windows::ws2_32::WSASendTo, introvirt::windows::ws2_32::WSASocketA, introvirt::windows::ws2_32::WSASocketW, and introvirt::windows::ws2_32::WSAStartup.

◆ return_address() [1/2]

virtual guest_ptr< void > introvirt::FunctionCall::return_address ( ) const
pure virtual

Get the return address for this function call.

Returns
guest_ptr

Implemented in introvirt::windows::WindowsFunctionCall.

◆ return_address() [2/2]

virtual void introvirt::FunctionCall::return_address ( const guest_ptr< void > &  value)
pure virtual

Set the return address for this function call.

Parameters
valueThe new return address to use

Implemented in introvirt::windows::WindowsFunctionCall.

◆ returned()

virtual bool introvirt::FunctionCall::returned ( ) const
pure virtual

Check if the call has returned.

Returns
true if the call has returned
false if the call has not returnerd

Implemented in introvirt::windows::WindowsFunctionCall.

◆ write()

virtual void introvirt::FunctionCall::write ( std::ostream &  os = std::cout) const
pure virtual

Write out a textual representation of the function for display.

Parameters
os

Implemented in introvirt::windows::advapi32::CryptAcquireContextA, introvirt::windows::advapi32::CryptAcquireContextW, introvirt::windows::advapi32::CryptCreateHash, introvirt::windows::advapi32::CryptDecrypt, introvirt::windows::advapi32::CryptEncrypt, introvirt::windows::advapi32::CryptExportKey, introvirt::windows::advapi32::CryptGenKey, introvirt::windows::advapi32::CryptGenRandom, introvirt::windows::advapi32::CryptGetKeyParam, introvirt::windows::advapi32::CryptHashData, introvirt::windows::advapi32::CryptSetKeyParam, introvirt::windows::crypt32::CryptDecodeMessage, introvirt::windows::crypt32::CryptDecodeObjectEx, introvirt::windows::crypt32::CryptDecryptMessage, introvirt::windows::crypt32::CryptEncryptMessage, introvirt::windows::crypt32::CryptHashMessage, introvirt::windows::crypt32::CryptProtectData, introvirt::windows::crypt32::CryptProtectMemory, introvirt::windows::crypt32::CryptUnprotectData, introvirt::windows::crypt32::CryptUnprotectMemory, introvirt::windows::kernel32::CreateProcessA, introvirt::windows::kernel32::CreateProcessW, introvirt::windows::ncrypt::Ssl3GenerateKeyMaterial, introvirt::windows::secur32::DecryptMessage, introvirt::windows::secur32::EncryptMessage, introvirt::windows::ws2_32::accept, introvirt::windows::ws2_32::bind, introvirt::windows::ws2_32::closesocket, introvirt::windows::ws2_32::connect, introvirt::windows::ws2_32::ConnectEx, introvirt::windows::ws2_32::gethostbyname, introvirt::windows::ws2_32::getsockname, introvirt::windows::ws2_32::ioctlsocket, introvirt::windows::ws2_32::listen, introvirt::windows::ws2_32::recv, introvirt::windows::ws2_32::recvfrom, introvirt::windows::ws2_32::select, introvirt::windows::ws2_32::send, introvirt::windows::ws2_32::sendto, introvirt::windows::ws2_32::setsockopt, introvirt::windows::ws2_32::shutdown, introvirt::windows::ws2_32::socket, introvirt::windows::ws2_32::TransmitFile, introvirt::windows::ws2_32::WSAAccept, introvirt::windows::ws2_32::WSAConnect, introvirt::windows::ws2_32::WSARecv, introvirt::windows::ws2_32::WSARecvFrom, introvirt::windows::ws2_32::WSASend, introvirt::windows::ws2_32::WSASendTo, introvirt::windows::ws2_32::WSASocketA, introvirt::windows::ws2_32::WSASocketW, and introvirt::windows::ws2_32::WSAStartup.


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