Structure

  •  Programme header
  • Section
  • Symbol table

Programme header

  • An executable or shared object file's program header table is an array of structures.
  • each describing a segment or other information the system needs to prepare the program for execution.
  • An object file segment contains one or more sections.
  • Program headers are meaningful only for executable and shared object files.
  • A file specifies its own program header size with the ELF header's e_phentsize and e_phnum members.
  • typedef struct {

    • Elf32_Word p_type;//tells what kind of segment this array element describes or how to interpret the array element's information.
    • Elf32_Off p_offset;//gives the offset from the beginning of the file at which the first byte of the segment resides.
    • Elf32_Addr p_vaddr;//gives the virtual address at which the first byte of the segment resides in memory.
    • Elf32_Addr p_paddr; //On systems for which physical addressing is relevant, this member is reserved for the segment's physical address.
    • Elf32_Word p_filesz; //This member gives the number of bytes in the file image of the segment; it may be zero.
    • Elf32_Word p_memsz; //This member gives the number of bytes in the memory image of the segment; it may be zero.
    • Elf32_Word p_flags; //This member gives flags relevant to the segment.
    • Elf32_Word p_align; //This member gives the value to which the segments are aligned in memory and in the file.
  • } Elf32_Phdr;
  • p_type

      • Name             Value             meaning
      • PT_NULL        0                          The array element is unused
      • PT_LOAD        1                           The array element specifies a loadable segment
      • PT_DYNAMIC      2                           The array element specifies dynamic linking information
      • PT_INTERP       3                           The array element specifies the location and size of a null- terminated path name to invoke as an interpreter
      • PT_NOTE       4                      The array element specifies the location and size of auxiliary information
      • PT_SHLIB         5                             This segment type is reserved, has unspecified semantics
      • PT_PHDR         6                             specifies the location and size of the program header table itself
      • PT_LOPROC         0x70000000         reserved for processor-specific semantics
      • PT_HIPROC       0x7fffffff

SYM File的更多相关文章

  1. Android dump .so 文件crash log

    众所周知,在android系统上,有时候我们遇到so文件的crash仅仅能打log,可是非常多时候并不知道crash在什么地方,幸运的是crash后,一般能够产生一个.dmp文件. 我们能够依据这个文 ...

  2. vxworks固件分析

    前言 vxworks 的固件分析流程 1.用binwalk查看固件基本信息并解压固件 2.获取固件相关信息, cpu架构,大小端 3.确定固件的加载地址 4.用IDA加载固件,并修复符号表 5. 分析 ...

  3. Schematic - "DesignEntry 30 ERROR Instance referencing symbol is out of date"

    Schematic - "DesignEntry 30 ERROR Instance referencing symbol is out of date"     Descript ...

  4. objcopy使用

    objcopy - copy and translate object files:用于二进制文件的拷贝和翻译(转化) objcopy的man文件如下所示: objcopy [-F bfdname|- ...

  5. make file教程(转)

    最近在学习Linux下的C编程,买了一本叫<Linux环境下的C编程指南>读到makefile就越看越迷糊,可能是我的理解能不行. 于是google到了以下这篇文章.通俗易懂.然后把它贴出 ...

  6. Keil AGDI Header File

    #ifndef __AGDI__INCED___ #define __AGDI__INCED___ //---Revision History: --------------------------- ...

  7. windbg Symbol file path

    SOS是一个调试器扩展,用于调试.NET应用程序.它提供了一组非常丰富的命令,这些命令使开发人员可以对CLR进行深入分析,并且有助于找出应用程序中各种复杂错误的原因.   由于SOS能够提供CLR内部 ...

  8. WARNING: Can not get binary dependencies for file...

    环境: window7 64bit python 3.5 pyinstaller 3.2 用pyinstaller 将python文件打包成exe文件的过程中,出现了如下的错误 C:\Users\ca ...

  9. ERROR: Symbol file could not be found 寒江孤钓<<windows 内核安全编程>> 学习笔记

    手动下载了Symbols,设置好了Symbols File Path,串口连接上了以后,出现ERROR: Symbol file could not be found, 并且会一直不停的出现windb ...

随机推荐

  1. vue2.0 + element-ui 通过vue-cli 脚手架搭建的有关网络安全的项目源代码

    这次是我进入公司的练手项目,是第一次系统学习vue,做出来的demo是比较低端的,而且不太好看,见谅见谅. 源代码下载路径:https://github.com/Pandora-ps/vue-elem ...

  2. Go Lang

    IDE: https://www.jetbrains.com/products.html?fromMenu#type=ide Study: http://www.runoob.com/go/go-en ...

  3. Day04_网络爬虫图片收获

    #所需模块 requests .Beautifulsoup.urllib 1. response = requests.get('www.baidu.com')  #获取网站响应 2.html = r ...

  4. 如何才能在python的路上走得更远

    刚开始了新的课程,现在又没有什么心情学习了,不知点解就是提不起兴趣去学习,为什么呢?学习python如何才能提起劲,有什么方法可以提上劲学习?

  5. 【leetcode】476. Number Complement

    problem 476. Number Complement solution1: class Solution { public: int findComplement(int num) { //正 ...

  6. 前端---js02

    主要内容 1.数组 2.字符串 3.Date日期对象 4.内置对象 5.定时器 6.DOM 7.伪数组 内置对象: 1 数组(列表) Array (1) 数组的创建 <script>//字 ...

  7. PHP之魔术方法

      PHP中的魔术方法: PHP的魔术方法主要是在特定的条件下执行相应的魔术方法.这和很多框架中的钩子函数有些类似,不同的是,钩子函数是在生命周期的某个周期内自动执行,而魔术方法是在触发某种条件下自动 ...

  8. PTA9

    这个作业属于哪个课程 C语言程序设计2 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-class2-2018/ ...

  9. 谈一谈java中的Canves机制

    0--写在前面: 很多初学java的童鞋,常常很苦恼,一天天的都跟命令行较劲,好像很无聊的样子,如果能跳出命令行做出界面甚至一个画图界面,那将是一件很兴奋的事情:也可以让编程变的有趣:有脑洞的同学还可 ...

  10. Git学习之第一次使用PR

    发起PR的流程 1.Fork想要pr的项目,在自己的仓库里建立一个相同的项目. 2.Clone我们Fork的项目,在本地建立一个项目,方便修改. 3.将修改后的本地项目上传到github上. 4.向原 ...