ELF文件格式简单分析

(具体分析见上一篇ELF文件格式32位系统)

ELF-header

第一行:
457f 464c :魔数;
0201 :64位系统,小端法
01 :文件头版本
剩余默认0; 第二行:
0001 :重定位文件
003e :x86-64处理器体系结构
0000 0001 :当前版本
0000 0000 0000 0000 :没有入口点 第三行:
0000 0000 0000 0000 :没有程序头表
0000 0000 0000 0308 :段表偏移地址 第四行:
0000 0000 :处理器特定标志
0040 :elf文件头大小
0000 :重定位文件没有程序头表
0000 :重定位文件没有程序头表
0040 :段头大小64字节,section header table中每个header的大小
000d :段表入口有13个,段表有13段
000a :段表字符串在段表中的索引号,.shstrab段的段表索引号10

Elf文件头的数据结构存储在位偏移0x0000 0000 0000 0000~~~0x0000 0000 0000 0039,共40h字节,即64字节;

段表存储在0x0000 0000 0000 0308~~~0x0000 0000 0000 0648,共40h*13=340h字节



查看符号表的数据结构

12个符号

Section

.text位偏移+段长度=.data的段偏移   0x003c+0x0040=0x007c
0x0061+0x02a0=0x0301;
0x0308+0x0340=0x648;
.shstrtab section与.symtab section之间存储的是段表;
注意:Address是section在内存中的虚拟地址,.o文件不需要执行,这里都是0;
Off是section与文件头之间的偏移;
Size是文件里面section占用的大小;
.text section是可执行指令的集合
位偏移0x0000 0040,size=0x0000 003c(即60字节)

.data section是初始化后数据的集合
位偏移0x0000 007c,size=0
.symtab section存放所有section中定义的符号名字
.strtab section位偏移0x0000 0208,size=0x0000 001b

最新文章

  1. poj 1270(toposort)
  2. Ifvisible.js – 判断网页中的用户是闲置还是活动状态
  3. 东大OJ-双塔问题
  4. mac下多个php版本快速切换的方法是怎么样
  5. nginx 配置.json文件直接访问
  6. 64位Win2008_VS2012使用ODP.NET遭遇问题和解决办法
  7. float浮动之后高度自适应失效解决方案
  8. ASP.NET-FineUI开发实践-14
  9. PHP IDE 框架 服务器 相关
  10. Oracle 局域网布置数据库服务器,客户端连接提示TNS:无监听器的解决实现
  11. 使用SHA1、SHA2双证书进行微软数字签名
  12. 《快学Scala》——数组、映射和元组
  13. tree的遍历--广度优先遍历
  14. SEED实验——Environment Variable and Set-UID Program实验报告
  15. jsp篇 之 指令元素和动作元素
  16. 配置SecureCRT密钥连接Linux
  17. //{{AFX_MSG、//{{AFX_VIRTUAL、//{{AFX_MSG_MAP、//{{AFX_DATA_INIT
  18. DSP 程序的执行时间
  19. ASP入门(三)-VBScript变量、运算符
  20. maven(1)------使用myeclipse构建maven项目

热门文章

  1. 17秋 软件工程 团队第五次作业 Alpha Scrum12
  2. git命令行解决冲突文件步骤
  3. File类_常见的方法(获取目录中指定规则的内容)_listFiles
  4. sum-root-to-leaf-numbers (前序遍历)
  5. redis php扩展及基本命令
  6. nginx反向代理与Real-IP和X-Forwarded-For.txt
  7. 查看mysql执行的线程,并杀掉他
  8. String.valueOf()方法注意
  9. 1029 最大公约数和最小公倍数问题(gcd) luogu洛谷
  10. patch函数的解释2