ELF文件格式分析



可重定位文件

十六进制形式显示内容

显示各个段、符号表相关信息

查看各个段信息

elf文件头信息

段表

符号表信息

查看堆栈

具体分析

1.ELF文件头信息(小字节优先,均十六进制)

第一行:

7f45 4c46 (DEL E L F)  0101 (32位对象 小端法)  0100(文件头版本) 0000 0000 0000 0000

第二行:

0001(重定位文件) 0003(intel80386处理器)  0000 0001(当前版本)
0000 0000(没有入口点)
0000 0000(程序表头偏移地址,没有程序头表)

第三行:

0000 0214(段表偏移地址)
0000 0000 (未知处理器特定标识符)
0034(ELF文件头大小) 由此可知section headers table中每个header的大小是52字节;
0000(程序表头大小,重定位文件没有程序头表)
0000(程序入口个数,重定位文件没有程序头表)
0028(段表头大小为64字节)

第四行:

000d(段表头入口个数有13个)
000a(段名串表索引)由此可知.shstrtab段(符号表)的信息在段表的索引号是10;

由elf头知,段表从0x0000 0214开始,每个节区大小0x0028,共有0x000d个节区,第0x000a为段名串表的索引号;

第一节区:为空

第二节区:

第三节区:

第四节区:

五:

六:

七:

八:

九:

十:

十一:(索引号为a)

十二:

十三:

分析

第二节区:

001f 0000 :此节区段名在段名串表中的偏移是0000 001f
0034 0000 :段的起始位置是0000 0034
002e 0000 :段大小是0000 002e

第十一节区:

找到起始位置000001b4,大小0000005f的段名串表

由2e6c 6574可知,偏移为0000001f的第二节区名,对应ASCII码为.text,可知第二节区为.text段的信息:段起始位置0x0000 0034;段的大小0x0000 002e

.text段



对应的ASCII码翻译出来对应着MAIN函数的机器代码
(以此类推,不再赘述!)
对应代码:
#include <stdio.h>
main()
{
printf("elf");
}

20135337——linux实践三:ELF文件格式分析(32位系统)的更多相关文章

  1. Linux实践:ELF文件格式分析

    标签(空格分隔): 20135321余佳源 一.基础知识 ELF全称Executable and Linkable Format,可执行连接格式,ELF格式的文件用于存储Linux程序.ELF文件(目 ...

  2. linux第三次实践:ELF文件格式分析

    linux第三次实践:ELF文件格式分析 标签(空格分隔): 20135328陈都 一.概述 1.ELF全称Executable and Linkable Format,可执行连接格式,ELF格式的文 ...

  3. Linux及安全实践四——ELF文件格式分析

    Linux及安全实践四——ELF文件格式分析 一.ELF文件格式概述 1. ELF:是一种对象文件的格式,用于定义不同类型的对象文件中都放了什么东西.以及都以什么样的格式去放这些东西. 二.分析一个E ...

  4. linux实践之ELF文件分析

    linux实践之ELF文件分析 下面开始elf文件的分析. 我们首先编写一个简单的C代码. 编译链接生成可执行文件. 首先,查看scn15elf.o文件的详细信息. 以16进制形式查看scn15elf ...

  5. 20135337——Linux实践三:ELF文件格式(64位系统,简单分析)

    ELF文件格式简单分析 (具体分析见上一篇ELF文件格式32位系统) ELF-header 第一行: 457f 464c :魔数: 0201 :64位系统,小端法 01 :文件头版本 剩余默认0: 第 ...

  6. Linux课题实践四——ELF文件格式分析

    2.4   ELF文件格式分析 20135318 刘浩晨 ELF全称Executable and Linkable Format,可执行连接格式,ELF格式的文件用于存储Linux程序.ELF文件(目 ...

  7. 20135218 实践四 ELF文件格式分析

    一 :概述 ELF全称Executable and Linkable Format,可执行连接格式,ELF格式的文件用于存储Linux程序.ELF文件(目标文件)格式主要三种: (1)可重定向文件:文 ...

  8. 20135337——Linux实践三:程序破解

    程序破解 查看 运行 反汇编,查看汇编码 对反汇编代码进行分析: 在main函数的汇编代码中可以看出程序在调用"scanf"函数请求输入之后,对 [esp+0x1c] 和 [esp ...

  9. 实践2.4 ELF文件格式分析

    实践2.4 ELF文件格式分析 1.ELF文件头 查看/usr/include/elf.h文件: #define EI_NIDENT (16) typedef struct { unsigned ch ...

随机推荐

  1. 获取href连接并跳转

    获取href连接: <!DOCTYPE html> <html> <head> <script src="/jquery/jquery-1.11.1 ...

  2. BSOJ 3899 -- 【CQOI2014】 数三角形

    Description 给定一个n*m的网格,请计算三个点都在格点上的三角形共有多少个.下图为4*4的网格上的一个三角形.  注意三角形的三点不能共线. Input 输入一行,包含两个空格分隔的正整数 ...

  3. nginx与location语法详解

    Location语法优先级排列 匹配符 匹配规则 优先级 = 精确匹配 ^~ 以某个字符串开头 ~ 区分大小写的正则匹配 ~* 不区分大小写的正则匹配 !~ 区分大小写不匹配的正则 !~* 不区分大小 ...

  4. swift class的虚函数表、扩展、@objc修饰、虚函数的派发方式研究

    swift class的虚函数表.扩展.@objc修饰的研究 工具: swiftc -emit-sil BaseClass.swift | xcrun swift-demangle > Clas ...

  5. [零基础学python]为什么要开设本栏目

    这个栏目的名称叫做"零基础学Python". 如今网上已经有不少学习python的课程.当中也不乏精品.按理说,不缺少我这个基础类型的课程了.可是,我注意到一个问题.无论是课程还是 ...

  6. UVA11853-Paintball(对偶图)

    Problem UVA11853-Paintball Accept:229  Submit:1830 Time Limit: 3000 mSec Problem Description You are ...

  7. 树莓派3b安装Apache2+PHP+MySQL+phpyadmin

    树莓派型号:3B+ 系统环境:2017-04-10-raspbian-jessie 先更新一下源 BASIC sudo apt-get update 安装Apache2 BASIC sudo apt- ...

  8. navicate使用小技巧

    以下效果是按住alt+按住鼠标左键,往左往右移动,即可

  9. Drool实战系列(一)之入门程序

    Drools官网地址为:https://www.drools.org/ maven环境 入门程序例子如下: 项目结构截图: 一.导入pom文件 <project xmlns="http ...

  10. AI 概率论

    概率论 不确定性 量化 频率 频率派 贝叶斯派 1.随机变量(random variable) 随机取不同值的变量,取值可以离散或者连续. 2.概率分布(probability distributio ...