要想实现ELF文件的入口劫持,不深入掌握其运行原理与组成结构那是不可能的。ELF的内部结构复杂,加载逻辑难以理解,因此我们需要通过切香肠的方式,将这个困难的技术点一点一滴的去攻克。

这一节我们先掌握如何读取头部信息和程序表头,我们先看ELF文件的大致结构:

ELF文件格式最重要的就是所谓的段,特别是其中的代码段和数据段。对应上图就是.text,.data两个段。每个段都对应一个段表来描述,而若干隔断会组成一个整体,它对应一个program,而后者则由program header table来指向,讲解ELF数据结构最为详细的就是网址如下,有心的朋友可以认真阅读:
https://man7.org/linux/man-pages/man5/elf.5.html

我们本次要解读ELF文件的两个部分,一个是其文件头。文件头描述了ELF文件很多重要信息,例如它运行的平台,支持的CPU类型等。使用命令行readelf -h 可以读取指定ELF文件的头部信息,如下图所示:

详解ELF可执行文件格式:读取头部信息和程序表头相关推荐

  1. 详解视频封装格式之MP4

    在我之前的一篇文章(什么是视频封装格式和编码格式)中有整理了一下常见的视频封装格式.在上一篇文章(详解视频封装格式之FLV)中重点剖析了FLV格式.在这篇文章中,我们重点剖析一下MP4这种视频封装格式 ...

  2. 【OpenCV 4开发详解】保存和读取XML和YMAL文件

    本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...

  3. 《OpenCV 4开发详解》图像的读取与显示

    本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...

  4. grep mysql_详解grep获取MySQL错误日志信息的方法

    为方便维护MySQL,写了个脚本用以提供收集错误信息的接口.这些错误信息来自与MySQL错误日志,而 通过grep mysql可以获取error-log的路径. 以下是全部相关代码: #!/usr/b ...

  5. urlencoded格式详解和JSON格式详解

    urlencoded格式详解和JSON格式详解 目录 urlencoded格式详解和JSON格式详解 一.表单格式详解 二.JSON格式详解 [json 格式口诀]: 1.1 什么是JSON 1.2 ...

  6. dig命令使用详解|使用dig命令挖掘域名解析信息

    dig命令使用详解|使用dig命令挖掘域名解析信息 Dig命令主要用来从 DNS 域名服务器查询主机地址信息 1. 查询域名的A记录 dig qq.com #查询qq.com的A记录 root@xg: ...

  7. RAW图像详解及使用Python读取raw格式图像并显示

    一.RAW图像详解 1.1 什么是raw格式图像? RAW在英文中的解释是未处理的.自然状态的,这也就是RAW文件的真谛.RAW图像就是CMOS或者CCD图像感应器将捕捉到 的光源信号转化为数字信号的 ...

  8. Log4j使用详解(log4j.XML格式)——整理

    log4j.xml配置详解(原文地址) 首先当然是得到log4j的jar档,推荐使用1.2.X版,下载地址: http://logging.apache.org/log4j/1.2/download. ...

  9. 一步步编写操作系统 46 linux的elf可执行文件格式1

    ELF文件格式依然是分为文件头和文件体两部分,只是该文件头相对稍显复杂,类似层次化结构,先用个ELF header从"全局上"给出程序文件的组织结构,概要出程序中其它头表的位置大小 ...

最新文章

  1. Sencha Touch 2 DataView / List 分页
  2. 软件工程(2019)第一次结对作业
  3. centos7 安装 killall 命令
  4. android通话记录列表apk,android打电话,发短信,获取通讯录、通话记录、短信记录...
  5. java ee13_一口气了解多线程及其Java实现
  6. Linux minilogd占用内存过高及开机启动项修改
  7. 【TensorFlow】TensorFlow从浅入深系列之十 -- 教你认识卷积神经网络的基本网路结构及其与全连接神经网络的差异
  8. 宿主不能访问本机虚拟机中的web服务器
  9. lazarus控件怎么那么少_盘点5个常被搞混的控件与规范
  10. 提高搜索引擎结果页面排名的各种技术
  11. AnimMontage(中文)——UE4官方文档翻译与理解
  12. 国内常用的5个中文期刊论文网站,5个外文文献网站
  13. 【数据库04】中级开发需要掌握哪些SQL进阶玩法
  14. whai is gradient vanishing and exploding ?
  15. 地址总线是单向还是双向_大余双向钢塑土工格栅%/*的作用泰安恒大工程材料-老友网...
  16. 文件处理命令-目录处理命令
  17. 深度学习CTPN+CRNN模型实现图片内文字的定位与识别(OCR)
  18. 命令行批量删除带某关键字的文件
  19. alternate端口什么意思_alternate是什么意思
  20. 长除法计算平方根的方法总结与代码实现(C++, Python)

热门文章

  1. 【多媒体】多媒体架构
  2. android 自动点击sdk,Android 自动化记录: OPPO 、VIVO SDK 登录自动化处理
  3. 解决 “ImportError: attempted relative import with no known parent package“ 问题
  4. python/appium实现华为应用商城app界面上下滑动打开关闭通知栏等功能
  5. 《毒液·致命守护着》
  6. Linux 性能优化全景指南
  7. kjb文件 解析_在Linux上使用lnav监控和分析Apache日志文件工具
  8. 大数据平台运维之Hbase
  9. leaflet地图原理_leaflet绘制区域(仿高德地图效果)
  10. Maven多模块打包成war+vue打包