记:ELF文件解析初定义 |
您所在的位置:网站首页 › 伊利集团招聘信息网 › 记:ELF文件解析初定义 |
0x00 概论
因为TI的DSP输出文件与传统的ELF文件不符,所以本人就顺道研究了一下现在的ELF的文件格式。 会将其陆续完成在文章中。 承接上文,上文书说到,对于Section相关段的解析说明,本文将讲述symbol段相关的说明。 阅读本文之前,您需要掌握的技能有: 技能名称技能熟练度技能教程链接C语言了解暂无 0x10 Symbol Table介绍与说明一个标准的Symbol table应该是下面这样的: 从上面也能看出来,一个标准的symbol需要7个数据项,而这七个数据项具体的作用如下: 定义数据长度解释value(value)8symbol的标识size(size)8symbol的长度name(name)8名称info(Bind|Type)1这个参数是对于额外的操作参数others(Vis)1可见度与针对性target_internal1内部目标Ndx4所在的Section Index这里的参数大多还是很直白的,但是其中的Type则会由以下几大标识: 定义参数解释NOTYPE0未定义的非标准OBJECT1数据对象标识FUNC2代码对象标识SECTION3section的定义位置FILE4文件区的名称COMMON5一个没有初始化的公用空间TLS6线程数据空间RELC8复杂重定位参数SRELC9信号附加的复杂重定位参数LOOS10操作系统的参数-lowGNU_IFUNC10间接代码符号定义HIOS12操作系统的参数-highLOPROC13处理器的参数-lowHIPROC15处理器的参数-high以上就是单个的Symbol Table的定义了。 0x20 Symbol 解析从上文的数据照片可以看出,列出的参数列表中: 以Num为1的参数项为例:此参数就代表一个位置在08000000的,长度为0的。非标准的参数,参数在文件本地,为默认可见性的参数标签,名字是”$d.realdata“而且是在Section 1内的数据。 而从这些标识可以看出,如果获得了一个elf文件,一定程度上是可以进行反编译出源码的可能的。毕竟使用symbol表几乎可以遍历出一个软件系统中大致的文件结构与数据分布的区块。每个区块内的代码都可以进行参数的反编译,从而进行数据的整合。 而且symbol中也有很多与当前的代码框架有关的参数,从symbol中可以大致推断一个系统使用的大概代码架构与系统的启动流程划分。从而更完美的hook。 0x30 后记本系列粗略的讲述了关于elf的简易的文件结构。但是其实一个典型的elf文件最有用的就是这些了。所以暂时告一段落,日后有时间会完成一个简单的按照地址整理导出hex的软件。毕竟虽然各个IDE都有对应自身的软件但是GNU-until竟然不支持……其实这也是我需要对elf的文件进行研究的初衷。 本文关键词symbol table elf 更多本文首发自 记:ELF文件解析初定义——Symbol Table段相关讲解,更多文章可进入我的博客详查。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |