* ELF文件格式定义
*/
#ifndef __ELF2BIN_H__
#define __ELF2BIN_H__
#define Elf32_Addr unsigned int
#define Elf32_Half unsigned short
#define Elf32_Off unsigned int
#define Elf32_SWord unsigned int
#define Elf32_Word unsigned int
#define EI_NIDENT 16
#define EI_MAG0 0 /* 文件标识,为0x7f */
#define EI_MAG1 1 /* 文件标识,为'E' */
#define EI_MAG2 2 /* 文件标识,为'L' */
#define EI_MAG3 3 /* 文件标识,为'F' */
#define EI_CLASS 4 /* 文件类 */
#define EI_DATA 5 /* 数据编码 */
#define EI_VERSION 6 /* 文件版本 */
#define EI_PAD 7 /* 补齐字节开始处 */
#define EI_CLASS_NONE 0 /* 非法类别 */
#define EI_CLASS_32 1 /* 32位目标 */
#define EI_CLASS_64 2 /* 64位目标 */
#define EI_DATA_NONE 0 /* 非法数据编码 */
#define EI_DATA_2LSB 1 /* 高位在前 */
#define EI_DATA_2MSB 2 /* 低位在前 */
#define EI_TYPE_NONE 0 /* 未知目标文件格式 */
#define EI_TYPE_REL 1 /* 可重定位文件 */
#define EI_TYPE_EXEC 2 /* 可执行文件 */
#define EI_TYPE_DYN 3 /* 共享目标文件 */
#define EI_TYPE_CORE 4 /* Core 文件(转储格式) */
#define EI_TYPE_LOPROC 0xff00 /* 特定处理器文件 */
#define EI_TYPE_HIPROC 0xffff /* 特定处理器文件 */
#define EM_NONE 0 /* 未指定 */
#define EM_M32 1 /* AT&T WE 32100 */
#define EM_SPARC 2 /* SPARC */
#define EM_386 3 /* 386 */
#define EM_68K 4 /* Motolora 68000 */
#define EM_88K 5 /* Motolora 88000 */
#define EM_860 6 /* Intel 80860 */
#define EM_MIPS 7 /* MIPS RS3000 */
#define EM_ARM 40 /* ARM */
#define EV_NONE 0 /* 非法版本 */
#define EV_CURRENT 1 /* 当前版本 */
/* ELF Header数据结构 */
typedef struct _elf32_elf_header
{
unsigned char e_ident[EI_NIDENT]; /* 目标文件标识 */
Elf32_Half e_type; /* 目标