LIEF: Library to Instrument Executable Formats Version 1.0.0
Loading...
Searching...
No Matches
LIEF::DumpStream Class Reference

This stream interface provides facilities to parse a dumped binary. More...

#include <DumpStream.hpp>

Inheritance diagram for LIEF::DumpStream:
Collaboration diagram for LIEF::DumpStream:

Public Member Functions

 DumpStream ()=delete
 DumpStream (uintptr_t base_address, BinaryStream &ref)
 DumpStream (uintptr_t base_address, std::unique_ptr< BinaryStream > owned)
 DumpStream (const DumpStream &)=delete
DumpStreamoperator= (const DumpStream &)=delete
 DumpStream (DumpStream &&) noexcept=default
DumpStreamoperator= (DumpStream &&) noexcept=default
uintptr_t base_address () const
Binarybinary ()
uint64_t size () const override
bool bind_binary (Binary &bin) override
std::vector< uint8_t > content () const
result< const void * > read_at (uint64_t, uint64_t, uint64_t=0) const override
ok_error_t peek_in (void *dst, uint64_t offset, uint64_t size, uint64_t virtual_address=0) const override
 ~DumpStream () override=default
Public Member Functions inherited from LIEF::BinaryStream
 BinaryStream (STREAM_TYPE type)
virtual ~BinaryStream ()=default
STREAM_TYPE type () const
bool is_memory_stream () const
bool is_dump_stream () const
bool is_memory_view () const
result< uint64_t > read_uleb128 (size_t *size=nullptr) const
result< uint64_t > read_sleb128 (size_t *size=nullptr) const
result< int64_t > read_dwarf_encoded (uint8_t encoding) const
result< std::string > read_string (size_t maxsize=~static_cast< size_t >(0)) const
result< std::string > peek_string (size_t maxsize=~static_cast< size_t >(0)) const
result< std::string > peek_string_at (size_t offset, size_t maxsize=~static_cast< size_t >(0)) const
result< std::u16string > read_u16string () const
result< std::u16string > peek_u16string () const
result< std::string > read_mutf8 (size_t maxsize=~static_cast< size_t >(0)) const
result< std::u16string > read_u16string (size_t length) const
result< std::u16string > peek_u16string (size_t length) const
result< std::u16string > peek_u16string_at (size_t offset, size_t length) const
virtual ok_error_t peek_data (std::vector< uint8_t > &container, uint64_t offset, uint64_t size, uint64_t virtual_address=0)
virtual ok_error_t read_data (std::vector< uint8_t > &container, uint64_t size)
ok_error_t read_data (std::vector< uint8_t > &container)
template<class T>
ok_error_t read_objects (std::vector< T > &container, uint64_t count)
template<class T>
ok_error_t peek_objects (std::vector< T > &container, uint64_t count)
template<class T>
ok_error_t peek_objects_at (uint64_t offset, std::vector< T > &container, uint64_t count)
void setpos (size_t pos) const
const BinaryStreamincrement_pos (size_t value) const
void decrement_pos (size_t value) const
size_t pos () const
bool is_valid () const
 operator bool () const
template<class T>
const T * read_array (size_t size) const
template<class T, size_t N>
ok_error_t peek_array (std::array< T, N > &dst) const
template<class T, size_t N>
ok_error_t read_array (std::array< T, N > &dst) const
template<class T>
result< T > peek () const
template<class T>
result< T > peek (size_t offset) const
template<class T>
const T * peek_array (size_t size) const
template<class T>
const T * peek_array (size_t offset, size_t size) const
template<class T>
result< T > read () const
template<typename T>
bool can_read () const
template<typename T>
bool can_read (size_t offset) const
bool can_read (int64_t offset, int64_t size) const
size_t align (size_t align_on) const
void set_endian_swap (bool swap)
bool should_swap () const
virtual const uint8_t * p () const
virtual uint8_t * start ()
virtual uint8_t * p ()
virtual uint8_t * end ()
virtual const uint8_t * start () const
virtual const uint8_t * end () const
template<class T>
const T * cast () const
template<class T>
T * cast ()

Static Public Member Functions

static bool classof (const BinaryStream &stream)
Static Public Member Functions inherited from LIEF::BinaryStream
template<class T>
static bool is_all_zero (const T &buffer)

Additional Inherited Members

Public Types inherited from LIEF::BinaryStream
enum class  STREAM_TYPE {
  UNKNOWN = 0 , VECTOR , MEMORY , SPAN ,
  FILE , DUMP , ELF_DATA_HANDLER
}

Detailed Description

This stream interface provides facilities to parse a dumped binary.

A dump is a contiguous capture of a process memory that starts at a given base address. This stream owns (or weakly references) another BinaryStream that holds the raw dump and translates file offsets into dump offsets according to this base address and the binary layout.

Constructor & Destructor Documentation

◆ DumpStream() [1/5]

LIEF::DumpStream::DumpStream ( )
delete

◆ DumpStream() [2/5]

LIEF::DumpStream::DumpStream ( uintptr_t base_address,
BinaryStream & ref )
inline

◆ DumpStream() [3/5]

LIEF::DumpStream::DumpStream ( uintptr_t base_address,
std::unique_ptr< BinaryStream > owned )
inline

◆ DumpStream() [4/5]

LIEF::DumpStream::DumpStream ( const DumpStream & )
delete

References DumpStream().

◆ DumpStream() [5/5]

LIEF::DumpStream::DumpStream ( DumpStream && )
defaultnoexcept

References DumpStream().

◆ ~DumpStream()

LIEF::DumpStream::~DumpStream ( )
overridedefault

Member Function Documentation

◆ base_address()

uintptr_t LIEF::DumpStream::base_address ( ) const
inline

References base_address().

Referenced by base_address(), DumpStream(), and DumpStream().

◆ binary()

Binary * LIEF::DumpStream::binary ( )
inline

References LIEF_LIFETIMEBOUND.

◆ bind_binary()

bool LIEF::DumpStream::bind_binary ( Binary & bin)
inlineoverridevirtual

Reimplemented from LIEF::BinaryStream.

◆ classof()

bool LIEF::DumpStream::classof ( const BinaryStream & stream)
inlinestatic

◆ content()

std::vector< uint8_t > LIEF::DumpStream::content ( ) const

◆ operator=() [1/2]

DumpStream & LIEF::DumpStream::operator= ( const DumpStream & )
delete

References DumpStream().

◆ operator=() [2/2]

DumpStream & LIEF::DumpStream::operator= ( DumpStream && )
defaultnoexcept

References DumpStream().

◆ peek_in()

ok_error_t LIEF::DumpStream::peek_in ( void * dst,
uint64_t offset,
uint64_t size,
uint64_t virtual_address = 0 ) const
overridevirtual

Reimplemented from LIEF::BinaryStream.

References size().

◆ read_at()

result< const void * > LIEF::DumpStream::read_at ( uint64_t ,
uint64_t ,
uint64_t = 0 ) const
inlineoverridevirtual

Implements LIEF::BinaryStream.

References make_error_code(), and not_supported.

◆ size()

uint64_t LIEF::DumpStream::size ( ) const
inlineoverridevirtual

Implements LIEF::BinaryStream.

Referenced by peek_in().


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