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. CodeBlocks无法调试的解决方法

    闲话: 万万没想到我也会写这个东西.一开始软件工程课的时候老师要求我们写博客园,一直都是被动地在写博客.刚刚在重温C语言的时候发现的各种各样问题觉得还是写下来比较好,一旦以后自己又忘了呢……(摊手 顺 ...

  2. 微软连续12年成为Gartner分析和BI平台魔力象限的领导者

    小悦还沉浸在新春开工大吉的工作中,微软Power BI就又迎来了一个好消息!据Gartner刚新鲜出炉的<  2019年Gartner的分析和商业智能平台魔力象限报告>,微软迄今已连续12 ...

  3. (转)es6中object.create()和object.assign()

    今天学习javascript面向对象,在学习Obejct方法时了解到create方法,偶像想起之前使用的assign方法,顺带查找一番,感觉这篇博客讲解详细,遂转载. 先简单提一下装饰器函数,许多面向 ...

  4. 清除cookie

    function clearCookie(){ if(document.cookie.length < 2048){ return; } //cookie大于2kb,清除cookie var c ...

  5. c++中的两种getline用法

    参考 https://blog.csdn.net/Big_laoshu/article/details/79345351

  6. 商品规格,自定义SKU类型

    <html> <head> <script type="text/javascript" src="http://xoxco.com/exa ...

  7. linux下磁盘管理(du、df)命令使用

    DF :disk free 磁盘可用量 DU: disk usage 磁盘使用 df:列出文件系统的整体磁盘使用量: df参数: -a:列出所有的文件系统,包括系统特有的/proc等文件系统 -k:以 ...

  8. Android KitKat Immersive Mode使用

    写了一个方法,在onCreate和onResume中调用即可,4.4以上可用. private void openImmersiveMode() { if (android.os.Build.VERS ...

  9. Unity中有限状态机的用法教程

    Unity开发VR之Vuforia 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- ...

  10. 关于QQ屏蔽某些文件上传一些有意思的事

    起因是因为某鱼事件... 资源倒是找了,可是因为TX的屏蔽文件上传.文件通过几次改名之后也没能上传成功(想想也没那么简单). 然后某神就写了上面那串代码实现上传.具体思想是:绕过文件摘要算法(hash ...