了解了elf文件格式之后,最好的方式就是手动写一个自动解析elf文件的工具,目的在于进一步熟悉elf文件格式,然后进行思考后大致思路如下:
0x0.设计界面
对于界面设计,采用了QT的设计师,快速构建满足需求的界面
0x1.解析文件头
从文件中读取二进制数据保存再全局buf中,首先需要判断魔数,为elf文件则继续解析,再根据结构进行读取
/* The ELF file header. This appears at the start of every ELF file. */
#define EI_NIDENT (16)
typedef struct
{
unsigned char e_ident[EI_NIDENT]; /* Magic number and other info */
Elf32_Half e_type; /* Object file type */
Elf32_Half e_machine; /* Architecture */
Elf32_Word e_version; /* Object file version */
Elf32_Addr e_entry; /* Entry point virtual address */
Elf32_Off e_phoff; /* Program header table file offset */
Elf32_Off e_shoff; /* Section header table file offset */
Elf32_Word e_flags; /* Processor-specific flags */
Elf32_Half e_ehsize; /* ELF header size in bytes */
Elf32_Half e_phentsize; /* Program header table entry s