13 #ifndef RETDEC_PELIB_DEBUGDIRECTORY_H
14 #define RETDEC_PELIB_DEBUGDIRECTORY_H
29 void read(
ImageLoader & imageLoader, std::vector<PELIB_IMG_DEBUG_DIRECTORY> & debugInfo, std::uint32_t rva, std::uint32_t
size);
39 void rebuild(std::vector<std::uint8_t>& obBuffer)
const;
41 unsigned int size()
const;
43 int write(
const std::string& strFilename,
unsigned int uiOffset)
const;
62 std::uint32_t
getType(std::size_t uiIndex)
const;
69 std::vector<std::uint8_t>
getData(std::size_t index)
const;
80 void setType(std::size_t uiIndex, std::uint32_t dwValue);
82 void setSizeOfData(std::size_t uiIndex, std::uint32_t dwValue);
87 void setData(std::size_t index,
const std::vector<std::uint8_t>& data);
Class that handles the Debug directory.
Definition: DebugDirectory.h:22
const std::vector< std::pair< unsigned int, unsigned int > > & getOccupiedAddresses() const
Definition: DebugDirectory.cpp:379
std::uint32_t getTimeDateStamp(std::size_t uiIndex) const
Returns the TimeDateStamp value of a debug structure.
Definition: DebugDirectory.cpp:210
std::vector< std::pair< unsigned int, unsigned int > > m_occupiedAddresses
Stores RVAs which are occupied by this debug directory.
Definition: DebugDirectory.h:27
std::uint32_t getType(std::size_t uiIndex) const
Returns the Type value of a debug structure.
Definition: DebugDirectory.cpp:243
std::uint32_t getAddressOfRawData(std::size_t uiIndex) const
Returns the AddressOfRawData value of a debug structure.
Definition: DebugDirectory.cpp:265
std::uint32_t getSizeOfData(std::size_t uiIndex) const
Returns the SizeOfData value of a debug structure.
Definition: DebugDirectory.cpp:254
void read(ImageLoader &imageLoader, std::vector< PELIB_IMG_DEBUG_DIRECTORY > &debugInfo, std::uint32_t rva, std::uint32_t size)
Definition: DebugDirectory.cpp:72
std::vector< std::uint8_t > getData(std::size_t index) const
Definition: DebugDirectory.cpp:281
void setSizeOfData(std::size_t uiIndex, std::uint32_t dwValue)
Sets the SizeOfData value of a debug structure.
Definition: DebugDirectory.cpp:347
std::vector< PELIB_IMG_DEBUG_DIRECTORY > m_vDebugInfo
Stores the various DebugDirectory structures.
Definition: DebugDirectory.h:25
void setMajorVersion(std::size_t uiIndex, std::uint16_t wValue)
Sets the MajorVersion value of a debug structure.
Definition: DebugDirectory.cpp:314
void setType(std::size_t uiIndex, std::uint32_t dwValue)
Sets the Type value of a debug structure.
Definition: DebugDirectory.cpp:336
std::uint16_t getMajorVersion(std::size_t uiIndex) const
Returns the MajorVersion value of a debug structure.
Definition: DebugDirectory.cpp:221
void setCharacteristics(std::size_t uiIndex, std::uint32_t dwValue)
Sets the Characteristics value of a debug structure.
Definition: DebugDirectory.cpp:292
void removeEntry(std::size_t uiIndex)
Removes a debug structure.
Definition: DebugDirectory.cpp:188
std::uint32_t getCharacteristics(std::size_t uiIndex) const
Returns the Characteristics value of a debug structure.
Definition: DebugDirectory.cpp:199
std::uint32_t getPointerToRawData(std::size_t uiIndex) const
Returns the PointerToRawData value of a debug structure.
Definition: DebugDirectory.cpp:276
virtual ~DebugDirectory()=default
std::uint16_t getMinorVersion(std::size_t uiIndex) const
Returns the MinorVersion value of a debug structure.
Definition: DebugDirectory.cpp:232
void setTimeDateStamp(std::size_t uiIndex, std::uint32_t dwValue)
Sets the TimeDateStamp value of a debug structure.
Definition: DebugDirectory.cpp:303
int write(const std::string &strFilename, unsigned int uiOffset) const
Writes the current Debug directory back to a file.
Definition: DebugDirectory.cpp:133
void addEntry()
Adds a new debug structure.
Definition: DebugDirectory.cpp:177
unsigned int size() const
Returns the size the current Debug directory needs after rebuilding.
Definition: DebugDirectory.cpp:124
void setAddressOfRawData(std::size_t uiIndex, std::uint32_t dwValue)
Sets the AddressOfRawData value of a debug structure.
Definition: DebugDirectory.cpp:358
void setMinorVersion(std::size_t uiIndex, std::uint16_t wValue)
Sets the MinorVersion value of a debug structure.
Definition: DebugDirectory.cpp:325
void rebuild(std::vector< std::uint8_t > &obBuffer) const
Rebuilds the current Debug directory.
Definition: DebugDirectory.cpp:104
unsigned int calcNumberOfEntries() const
Returns the number of DebugDirectory image structures in the current DebugDirectory.
Definition: DebugDirectory.cpp:168
void setData(std::size_t index, const std::vector< std::uint8_t > &data)
Definition: DebugDirectory.cpp:374
void setPointerToRawData(std::size_t uiIndex, std::uint32_t dwValue)
Sets the PointerToRawData value of a debug structure.
Definition: DebugDirectory.cpp:369
Definition: ImageLoader.h:138
Definition: BoundImportDirectory.h:21