#ifndef PROGRAM_H #define PROGRAM_H #include #include #include #include #include class ProgramLoader { public: ProgramLoader(char *file); ~ProgramLoader(); size_t get_nsec(); // Returns number of loadable sections std::uint32_t get_address(size_t sec); // Get target address for given section QVector get_data(size_t sec); // Returns bytes of given section private: int fd; Elf *elf; GElf_Ehdr hdr; // elf file header size_t n_secs; // number of sections in elf program header Elf32_Phdr *phdrs; // program section headers QVector map; // external index to phdrs index }; #endif // PROGRAM_H