13 #ifndef RETDEC_PELIB_BOUNDIMPORTDIRECTORY_H
14 #define RETDEC_PELIB_BOUNDIMPORTDIRECTORY_H
29 std::vector<PELIB_IMAGE_BOUND_DIRECTORY>
m_vIbd;
31 int read(
InputBuffer& inpBuffer,
unsigned char* data,
unsigned int dwSize);
39 int addBoundImport(
const std::string& strModuleName, std::uint32_t dwTds, std::uint16_t dwOmn, std::uint16_t wWfr);
45 int read(
unsigned char* pcBuffer,
unsigned int uiSize);
47 void rebuild(std::vector<std::uint8_t>& vBuffer,
bool fMakeValid =
true)
const;
53 unsigned int size()
const;
55 int write(
const std::string& strFilename, std::uint32_t dwOffset,
bool fMakeValid =
true)
const;
73 void setModuleName(std::uint32_t dwBidnr,
const std::string& strModuleName);
75 std::uint32_t
getTimeDateStamp(std::uint32_t dwBidnr, std::uint32_t forwardedModule)
const;
76 std::uint16_t
getOffsetModuleName(std::uint32_t dwBidnr, std::uint32_t forwardedModule)
const;
78 std::string
getModuleName(std::uint32_t dwBidnr, std::uint32_t forwardedModule)
const;
80 void setTimeDateStamp(std::uint32_t dwBidnr, std::uint32_t forwardedModule, std::uint32_t dwTds);
81 void setOffsetModuleName(std::uint32_t dwBidnr, std::uint32_t forwardedModule, std::uint16_t wOmn);
83 void setModuleName(std::uint32_t dwBidnr, std::uint32_t forwardedModule,
const std::string& strModuleName);
86 void addForwardedModule(std::uint32_t dwBidnr,
const std::string& name, std::uint32_t timeStamp = 0, std::uint16_t offsetModuleName = 0, std::uint16_t forwardedModules = 0);
Class that handles the BoundImport directory.
Definition: BoundImportDirectory.h:27
unsigned int totalModules() const
Definition: BoundImportDirectory.cpp:191
std::string getModuleName(std::uint32_t dwBidnr) const
Retrieves the ModuleName value of a bound import.
Definition: BoundImportDirectory.cpp:419
void setNumberOfModuleForwarderRefs(std::uint32_t dwBidnr, std::uint16_t wMfr)
Updates the NumberOfModuleForwarderRefs value of a bound import.
Definition: BoundImportDirectory.cpp:449
std::uint32_t getTimeDateStamp(std::uint32_t dwBidnr) const
Retrieves the TimeDateStamp value of a bound import.
Definition: BoundImportDirectory.cpp:389
void setOffsetModuleName(std::uint32_t dwBidnr, std::uint16_t wOmn)
Updates the OffsetModuleName value of a bound import.
Definition: BoundImportDirectory.cpp:439
void removeForwardedModule(std::uint32_t dwBidnr, std::uint16_t forwardedModule)
Definition: BoundImportDirectory.cpp:526
std::uint16_t getNumberOfModuleForwarderRefs(std::uint32_t dwBidnr) const
Retrieves the NumberOfModuleForwarderRefs value of a bound import.
Definition: BoundImportDirectory.cpp:409
std::uint16_t getOffsetModuleName(std::uint32_t dwBidnr) const
Retrieves the OffsetModuleName value of a bound import.
Definition: BoundImportDirectory.cpp:399
void rebuild(std::vector< std::uint8_t > &vBuffer, bool fMakeValid=true) const
Rebuilds the BoundImport directory.
Definition: BoundImportDirectory.cpp:209
unsigned int calcNumberOfModules() const
Returns the number of files in the BoundImport directory.
Definition: BoundImportDirectory.cpp:75
void setTimeDateStamp(std::uint32_t dwBidnr, std::uint32_t dwTds)
Updates the TimeDateStamp value of a bound import.
Definition: BoundImportDirectory.cpp:429
void setModuleName(std::uint32_t dwBidnr, const std::string &strModuleName)
Updates the ModuleName value of a bound import.
Definition: BoundImportDirectory.cpp:459
int addBoundImport(const std::string &strModuleName, std::uint32_t dwTds, std::uint16_t dwOmn, std::uint16_t wWfr)
Adds another bound import.
Definition: BoundImportDirectory.cpp:29
unsigned int size() const
Returns the size of the BoundImport directory.
Definition: BoundImportDirectory.cpp:319
int write(const std::string &strFilename, std::uint32_t dwOffset, bool fMakeValid=true) const
Writes the current bound import directory to a file.
Definition: BoundImportDirectory.cpp:352
virtual ~BoundImportDirectory()=default
int getModuleIndex(const std::string &strModuleName) const
Identifies a module through it's name.
Definition: BoundImportDirectory.cpp:56
void clear()
Empties the BoundImport directory.
Definition: BoundImportDirectory.cpp:294
std::vector< PELIB_IMAGE_BOUND_DIRECTORY > m_vIbd
Stores the individual BoundImport fields.
Definition: BoundImportDirectory.h:29
void addForwardedModule(std::uint32_t dwBidnr, const std::string &name, std::uint32_t timeStamp=0, std::uint16_t offsetModuleName=0, std::uint16_t forwardedModules=0)
Definition: BoundImportDirectory.cpp:509
void removeBoundImport(const std::string &strModuleName)
Removes a bound import.
Definition: BoundImportDirectory.cpp:303
std::uint16_t calcNumberOfModuleForwarderRefs(std::uint32_t dwBidnr) const
Definition: BoundImportDirectory.cpp:504
int read(InputBuffer &inpBuffer, unsigned char *data, unsigned int dwSize)
Definition: BoundImportDirectory.cpp:87
Definition: ImageLoader.h:138
Definition: BoundImportDirectory.h:21