void FileInputReader::addData(const char* filename) { std::ifstream ifs; ifs.open(filename, std::ios::in | std::ios::binary); if (!ifs.is_open()) { return; } if (isELFFile(ifs)) { parseElf(filename); } else { // single input section, again... _sections.push_back(new DataSection()); std::string secname = "binary: "; secname += filename; section(0)->name(secname); ifs.seekg(0, std::ios::beg); do { char c[1]; ifs.read(c, 1); if (!ifs.fail()) section(0)->addByte(static_cast<uint8_t>(c[0])); } while (!ifs.eof()); } }
bool ElfReader::parseFromFile(const char *fileName) { if (reader.fromFile(fileName)) { return parseElf(); } return false; }
//----------------Elf Reader -------------------------- bool ElfReader::parseFromMem(u1 *mem, u4 len) { if (reader.fromMem(mem, len)) { return parseElf(); } return false; }