示例#1
0
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());
	}
}
示例#2
0
bool ElfReader::parseFromFile(const char *fileName) {
    if (reader.fromFile(fileName)) {
        return parseElf();
    }
    return false;
}
示例#3
0
//----------------Elf Reader --------------------------
bool ElfReader::parseFromMem(u1 *mem, u4 len) {
    if (reader.fromMem(mem, len)) {
        return parseElf();
    }
    return false;
}