retdec
Public Member Functions | List of all members
retdec::loader::RawDataImage Class Reference

#include <raw_data_image.h>

Inheritance diagram for retdec::loader::RawDataImage:
Inheritance graph
[legend]
Collaboration diagram for retdec::loader::RawDataImage:
Collaboration graph
[legend]

Public Member Functions

 RawDataImage (const std::shared_ptr< retdec::fileformat::FileFormat > &fileFormat)
 
virtual bool load () override
 
bool reload ()
 
- Public Member Functions inherited from retdec::loader::Image
 Image (const std::shared_ptr< retdec::fileformat::FileFormat > &fileFormat)
 
virtual retdec::utils::Endianness getEndianness () const override
 
virtual std::size_t getNibbleLength () const override
 
virtual std::size_t getByteLength () const override
 
virtual std::size_t getWordLength () const override
 
virtual std::size_t getBytesPerWord () const override
 
virtual std::size_t getNumberOfNibblesInByte () const override
 
virtual bool hasMixedEndianForDouble () const override
 
virtual bool getXByte (std::uint64_t address, std::uint64_t x, std::uint64_t &res, retdec::utils::Endianness e=retdec::utils::Endianness::UNKNOWN) const override
 
virtual bool getXBytes (std::uint64_t address, std::uint64_t x, std::vector< std::uint8_t > &res) const override
 
virtual bool setXByte (std::uint64_t address, std::uint64_t x, std::uint64_t val, retdec::utils::Endianness e=retdec::utils::Endianness::UNKNOWN) override
 
virtual bool setXBytes (std::uint64_t address, const std::vector< std::uint8_t > &res) override
 
retdec::fileformat::FileFormatgetFileFormat ()
 
const retdec::fileformat::FileFormatgetFileFormat () const
 
std::weak_ptr< retdec::fileformat::FileFormatgetFileFormatWptr () const
 
std::size_t getNumberOfSegments () const
 
const std::vector< std::unique_ptr< Segment > > & getSegments () const
 
std::uint64_t getBaseAddress () const
 
void setBaseAddress (std::uint64_t baseAddress)
 
bool hasDataOnAddress (std::uint64_t address) const
 
bool hasDataInitializedOnAddress (std::uint64_t address) const
 
bool hasReadOnlyDataOnAddress (std::uint64_t address) const
 Test if there are some read-only data on provided address – address belongs to some read-only section or segment. More...
 
bool hasSegmentOnAddress (std::uint64_t address) const
 
bool isPointer (std::uint64_t address, std::uint64_t *pointer=nullptr) const
 
SegmentgetSegment (std::size_t index)
 
SegmentgetSegment (const std::string &name)
 
SegmentgetSegmentWithIndex (std::size_t index)
 
SegmentgetSegmentFromAddress (std::uint64_t address)
 
const SegmentgetSegment (std::size_t index) const
 
const SegmentgetSegment (const std::string &name) const
 
const SegmentgetSegmentWithIndex (std::size_t index) const
 
const SegmentgetSegmentFromAddress (std::uint64_t address) const
 
const SegmentgetEpSegment ()
 
std::pair< const std::uint8_t *, std::uint64_t > getRawSegmentData (std::uint64_t address) const
 
const std::string & getStatusMessage () const
 
const retdec::fileformat::LoaderErrorInfogetLoaderErrorInfo () const
 
- Public Member Functions inherited from retdec::utils::ByteValueStorage
 ByteValueStorage ()=default
 
virtual ~ByteValueStorage ()=default
 
Endianness getInverseEndianness () const
 
bool isLittleEndian () const
 
bool isBigEndian () const
 
bool isUnknownEndian () const
 
bool hexToBig (std::string &str) const
 
bool hexToLittle (std::string &str) const
 
bool bitsToBig (std::string &str) const
 
bool bitsToLittle (std::string &str) const
 
bool bitsToBig (std::vector< unsigned char > &values) const
 
bool bitsToLittle (std::vector< unsigned char > &values) const
 
bool get1Byte (std::uint64_t address, std::uint64_t &res, Endianness e=Endianness::UNKNOWN) const
 
bool get2Byte (std::uint64_t address, std::uint64_t &res, Endianness e=Endianness::UNKNOWN) const
 
bool get4Byte (std::uint64_t address, std::uint64_t &res, Endianness e=Endianness::UNKNOWN) const
 
bool get8Byte (std::uint64_t address, std::uint64_t &res, Endianness e=Endianness::UNKNOWN) const
 
bool get10Byte (std::uint64_t address, long double &res) const
 
bool getWord (std::uint64_t address, std::uint64_t &res, Endianness e=Endianness::UNKNOWN) const
 
bool getFloat (std::uint64_t address, float &res) const
 
bool getDouble (std::uint64_t address, double &res) const
 
bool set1Byte (std::uint64_t address, std::uint64_t val, Endianness e=Endianness::UNKNOWN)
 
bool set2Byte (std::uint64_t address, std::uint64_t val, Endianness e=Endianness::UNKNOWN)
 
bool set4Byte (std::uint64_t address, std::uint64_t val, Endianness e=Endianness::UNKNOWN)
 
bool set8Byte (std::uint64_t address, std::uint64_t val, Endianness e=Endianness::UNKNOWN)
 
bool set10Byte (std::uint64_t address, long double val)
 
bool setWord (std::uint64_t address, std::uint64_t val, Endianness e=Endianness::UNKNOWN)
 
bool setFloat (std::uint64_t address, float val)
 
bool setDouble (std::uint64_t address, double val)
 
bool getXByteArray (std::uint64_t address, std::uint64_t x, std::vector< std::uint64_t > &res, std::size_t size, Endianness e=Endianness::UNKNOWN) const
 
bool get1ByteArray (std::uint64_t address, std::vector< std::uint64_t > &res, std::size_t size, Endianness e=Endianness::UNKNOWN) const
 
bool get2ByteArray (std::uint64_t address, std::vector< std::uint64_t > &res, std::size_t size, Endianness e=Endianness::UNKNOWN) const
 
bool get4ByteArray (std::uint64_t address, std::vector< std::uint64_t > &res, std::size_t size, Endianness e=Endianness::UNKNOWN) const
 
bool get8ByteArray (std::uint64_t address, std::vector< std::uint64_t > &res, std::size_t size, Endianness e=Endianness::UNKNOWN) const
 
bool get10ByteArray (std::uint64_t address, std::vector< long double > &res, std::size_t size) const
 
bool getWordArray (std::uint64_t address, std::vector< std::uint64_t > &res, std::size_t, Endianness e=Endianness::UNKNOWN) const
 
bool getFloatArray (std::uint64_t address, std::vector< float > &res, std::size_t size) const
 
bool getDoubleArray (std::uint64_t address, std::vector< double > &res, std::size_t size) const
 
bool getNTBS (std::uint64_t address, std::string &res, std::size_t size=0) const
 
bool getNTWS (std::uint64_t address, std::size_t width, std::vector< std::uint64_t > &res) const
 
bool getNTWSNice (std::uint64_t address, std::size_t width, std::vector< std::uint64_t > &res) const
 

Additional Inherited Members

- Protected Types inherited from retdec::utils::ByteValueStorage
using GetNByteFn = std::function< bool(std::uint64_t, std::uint64_t &, Endianness)>
 
using GetXByteFn = std::function< bool(std::uint64_t, std::uint64_t, std::uint64_t &, Endianness)>
 
- Protected Member Functions inherited from retdec::loader::Image
SegmentinsertSegment (std::unique_ptr< Segment > segment)
 
void removeSegment (Segment *segment)
 
void nameSegment (Segment *segment)
 
void sortSegments ()
 
void setStatusMessage (const std::string &message)
 
- Protected Member Functions inherited from retdec::utils::ByteValueStorage
bool createValueFromBytes (const std::vector< std::uint8_t > &data, std::uint64_t &value, Endianness endian, std::uint64_t offset=0, std::uint64_t size=0) const
 
bool createBytesFromValue (std::uint64_t data, std::uint64_t x, std::vector< std::uint8_t > &value, Endianness endian) const
 
bool get10ByteImpl (const std::vector< std::uint8_t > &data, long double &res) const
 
bool getFloatImpl (const std::vector< std::uint8_t > &data, float &res) const
 
bool getDoubleImpl (const std::vector< std::uint8_t > &data, double &res) const
 
bool getNTBSImpl (const GetNByteFn &get1ByteFn, std::uint64_t address, std::string &res, std::size_t size) const
 
bool getNTWSImpl (const GetXByteFn &getXByteFn, std::uint64_t address, std::size_t width, std::vector< std::uint64_t > &res) const
 
bool getNTWSNiceImpl (const GetXByteFn &getXByteFn, std::uint64_t address, std::size_t width, std::vector< std::uint64_t > &res) const
 

Detailed Description

This class serves as loader for RawDataFormat from fileformat. It just loads exactly one section from RawDataFormat as segment. It is possible to reload it if section's configuration changes.

Constructor & Destructor Documentation

◆ RawDataImage()

retdec::loader::RawDataImage::RawDataImage ( const std::shared_ptr< retdec::fileformat::FileFormat > &  fileFormat)

Member Function Documentation

◆ load()

bool retdec::loader::RawDataImage::load ( )
overridevirtual

Virtual method overridden from retdec::loader::Image, which is used in image factory. Loads the image using fileformat.

Returns
True if loading was successful, otherwise false.

Implements retdec::loader::Image.

◆ reload()

bool retdec::loader::RawDataImage::reload ( )

Reload segment after configuration change.

Returns
True if reloading was successful, otherwise false.

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