TInt PEFile::ReadExportDirectory() // // Read in just the export directory // { if (iExportDataDir==0) return KErrNotFound; TInt r=ReadSectionHeaders(); if (r!=KErrNone) return r; iSectionData[KConstSection]=ReadSectionData(iSectionHeader[KConstSection]); iExpDirectoryOffset=iSectionHeader[KConstSection]->VirtualAddress; iExpDirectory=(PIMAGE_EXPORT_DIRECTORY)(iSectionData[KConstSection]+iExportDataDir-iExpDirectoryOffset); return KErrNone; }
bool ElfReader::Read(const char* name, int fd, off64_t file_offset, off64_t file_size) { CHECK(!did_read_); CHECK(!did_load_); name_ = name; fd_ = fd; file_offset_ = file_offset; file_size_ = file_size; if (ReadElfHeader() && VerifyElfHeader() && ReadProgramHeaders() && ReadSectionHeaders() && ReadDynamicSection()) { did_read_ = true; } return did_read_; }