|
libintrovirt v0.57.4
IntroVirt introspection library
|
Base class for function calls. More...
#include <FunctionCall.hh>

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 |
Base class for function calls.
|
virtualdefault |
| 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.
| key | The name of the value to retrieve |
| 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.
| key | The name of the value to retrieve |
This is the const version.
| 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.
| key | The name of the value to store |
| value | The data to store |
| 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.
| key | The name of the value to store |
| value | The data to store |
|
pure virtual |
Get the function name.
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.
|
pure virtual |
Handle the return event.
Perform processing to handle the return of the function call
| event | The return event |
Implemented in introvirt::windows::WindowsFunctionCall.
| bool introvirt::FunctionCall::hook_return | ( | ) | const |
Check if the user is requesting that the return be intercepted.
| void introvirt::FunctionCall::hook_return | ( | bool | val | ) |
Configure if the return should be intercepted.
| val | If set to true, intercept the return |
|
pure virtual |
Check if the given event is a return event for this function call.
| event |
Implemented in introvirt::windows::WindowsFunctionCall.
|
pure virtual |
Get the function as Json.
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.
|
pure virtual |
Get the name of the library this call is for.
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.
|
pure virtual |
Get the return address for this function call.
Implemented in introvirt::windows::WindowsFunctionCall.
|
pure virtual |
Set the return address for this function call.
| value | The new return address to use |
Implemented in introvirt::windows::WindowsFunctionCall.
|
pure virtual |
Check if the call has returned.
Implemented in introvirt::windows::WindowsFunctionCall.
|
pure virtual |
Write out a textual representation of the function for display.
| 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.