• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

Linux下ELF格式如何解析

游~游~游 2018-09-10 浏览量:766
Linux下ELF格式如何解析?静态结构、如何装载,如何动态连接,有大佬可以解释一下么?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案


  • 一般的 ELF 文件包括三个索引表:


    1)ELF  header:在文件的开始,保存了路线图,描述了该文件的组织情况。

    2)Program  header  table:告诉系统如何创建进程映像。用来构造进程映像的目标文件必须具有程序头部表,可重定位文件不需要这个表。

    3)Section  header  table :包含了描述文件节区的信息,每个节区在表中都有一项,每一项给出诸如节区名称、节区大小这类信息。用于链接的目标文件必须包含节区头部表,其他目标文件可以有,也可以没有这个表


    分析方式:https://www.cnblogs.com/20135223heweiqin/p/5554922.html

    • 发布于 2018-09-11
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:9
  • ELF全称Executable and linkable Format可执行连接格式,ELF格式的文件用于存储Linux程序。ELF文件(目标文件)格式主要三种:
    可重定向文件:文件保存着代码和适当的数据,用来和其他的目标文件一起来创建一个可执行文件或者是一个共享目标文件。(目标文件或者静态库文件,即linux通常后缀为.a和.o的文件)
    可执行文件:文件保存着一个用来执行的程序。(例如bash,gcc等)
    共享目标文件:共享库。文件保存着代码和合适的数据,用来被下连接编辑器和动态链接器链接。(linux下后缀为.so的文件。)
    目标文件既要参与程序链接又要参与程序执行:
    一般的 ELF 文件包括三个索引表:ELF header,Program header table,Section header table。
    ELF header:在文件的开始,保存了路线图,描述了该文件的组织情况。
    Program header table:告诉系统如何创建进程映像。用来构造进程映像的目标文件必须具有程序头部表,可重定位文件不需要这个表。

    Section header table:包含了描述文件节区的信息,每个节区在表中都有一项,每一项给出诸如节区名称、节区大小这类信息。用于链接的目标文件必须包含节区头部表,其他目标文件可以有,也可以没有这个表。


    • 发布于2018-09-10
    • 举报
    • 评论 0
    • 1
    • 0

  • https://www.cnblogs.com/20135223heweiqin/p/5554922.html

    这篇博客讲的不错。

    • 发布于2018-09-10
    • 举报
    • 评论 0
    • 0
    • 0

  • 静态结构,编译完,直接链接静态库,需要用到的代码全部包含在 elf 文件中,程序运行时候,直接把elf代码区装载了运行。

    动态程序,编译完生成地址无关代码,elf 本身不含库代码。运行时候,装载代码,加载电脑上的库代码,不是 elf 自带库代码。动态就是运行时动态装载库

    • 发布于2018-09-10
    • 举报
    • 评论 0
    • 0
    • 0

  • ELF文件内容有两个平行的视角:一个是程序连接角度,另一个是程序运行角度。

    网上有很多资料参考

    • 发布于2018-09-10
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个有点复杂,一句两句说不清,请移步

    https://www.cnblogs.com/zl1991/p/6925001.html​

    • 发布于2018-09-11
    • 举报
    • 评论 0
    • 0
    • 0

  • ELF数据是有一定的格式的,就像是BMP的格式一平,只要分清哪些数据表示哪些含义就可以分析了
    • 发布于2018-09-12
    • 举报
    • 评论 0
    • 0
    • 0

  • elf里面包含的是一些链接的内容,在执行的时候,只需要装载elf区里面的代码就行
    • 发布于2018-09-16
    • 举报
    • 评论 0
    • 0
    • 0

  • EFL的数据格式是跟你的链接内容有关的,要在你elf区里面加载对应的代码段
    • 发布于2018-09-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 参考这个https://www.cnblogs.com/20135223heweiqin/p/5554922.html
    • 发布于2018-09-28
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

Linux下ELF格式如何解析