readelf 工具源码分析

 64字节

typedef struct {unsigned char	e_ident[16];		/* ELF "magic number" */unsigned char	e_type[2];		/* Identifies object file type */unsigned char	e_machine[2];		/* Specifies required architecture */unsigned char	e_version[4];		/* Identifies object file version */unsigned char	e_entry[8];		/* Entry point virtual address */unsigned char	e_phoff[8];		/* Program header table file offset */unsigned char	e_shoff[8];		/* Section header table file offset */unsigned char	e_flags[4];		/* Processor-specific flags */unsigned char	e_ehsize[2];		/* ELF header size in bytes */unsigned char	e_phentsize[2];		/* Program header table entry size */unsigned char	e_phnum[2];		/* Program header table entry count */unsigned char	e_shentsize[2];		/* Section header table entry size */unsigned char	e_shnum[2];		/* Section header table entry count */unsigned char	e_shstrndx[2];		/* Section header string table index */
} Elf64_External_Ehdr;

例子

小段,从0x0024开始倒序向前Elf64_External_Ehdr 对应上图值至Type,Type之上是e_ident值

处理函数get_file_header[字节读取不分析了]

参考文章:

从零解析ELF目标文件(附源码) - 知乎

https://github.com/torvalds/linux/blob/master/include/uapi/linux/elf.h

https://www.cnblogs.com/lwyeric/p/13582112.html#program-header 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/265680.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHP代码审计之基础 方法 思路 流程

工具 Fotify|代码审计静态扫描工具,商业化静态代码扫描工具,误报率相对较低。 seay|源代码审计工具 PHPStorm|是PHP编程语言开发的集成环境。 chrome & burp & HackerBar 插件 & xdebug插件 Xcheck |Xcheck是一个由腾讯公司CSIG质量部代…

[ABAP] Selection Screen 按钮管理

1. 隐藏执行按钮 initialization.data btab type table of sy-ucomm.append ONLI to btab.call function RS_SET_SELSCREEN_STATUSexportingp_status sy-pfkeytablesp_exclude btab.2.添加按钮(Tool Bar) tables: sscrfields.selection-screen begin of line.selection-scre…

Freertos外部中断

外部中断 外部中断,从名字上看就是由于外部变化而在单片机内产生的中断。 单片机通过GPIO口接收外部数据,STM32F103的所有GPIO口都可以设置为外部中断模式。 外部中断和前一章节NVIC的区别 前面介绍过NVIC控制芯片的所有中断,外部中断也不…

Axios

import axiox from axiox getHandle(){ //axios.get 发起get请求 //参数一 表示请求地址 //参数二 表示配置信息 //params 表示传递到服务器端的数据,以url参数的形式拼接在请求地址后面 // {page:1,per:3} // 比如:https://api.cat-shop.penkuoer.com/api/vl…

linux搭建nacos集群

准备 检查是否安装jdk [roothao /usr/local/software/elk/logstash]# java -version java version "1.8.0_341" Java(TM) SE Runtime Environment (build 1.8.0_341-b10) Java HotSpot(TM) 64-Bit Server VM (build 25.341-b10, mixed mode)配置nacos 去github下载…

java--正则表达式用于查找信息、用于搜索替换、分割内容

1.案例:使用正则表达式查找一段文本中的内容 需求:请把下面文本中的电话,邮箱,座机号码,热线都爬取出来。 2.正则表达式用于搜索替换、分割内容,需要结合String提供的如下方法完成

java定位系统源码,UWB技术的无线定位系统源码

UWB技术是一种传输速率高,发射功率较低,穿透能力较强并且是基于极窄脉冲的无线技术。UWB最优的应用环境是室内或者相对密闭的空间,有着厘米级的定位精度,不仅可以非常精准地进行位置跟踪,还可以快速地进行数据传输。 智…

npm run build时提示vue/types/jsx.d.ts中的错误

解决方法一: 可能是因为vue版本过高引起的 我直接将package.json中vue以及vue-template-compiler的版本的前面^去掉,安装指定的版本 注意:vue和vue-template-compiler需要版本一致 参考链接:链接 解决方法二: 如果如…

Unity_ET-TimerComponent

Unity_ET-TimerComponent 源码&#xff1a; namespace ETModel {public struct Timer{public long Id { get; set; }public long Time { get; set; }public TaskCompletionSource<bool> tcs;}[ObjectSystem]public class TimerComponentUpdateSystem : UpdateSystem<…

Facebook广告投放常见错误

在进行Facebook广告投放时&#xff0c;很容易犯一些常见的错误。这些错误可能导致广告投资的浪费&#xff0c;影响广告效果并降低回报。本文小编讲一些常见的Facebook广告投放错误&#xff0c;以及如何避免它们。 1、不明确目标受众 广告的成功与否很大程度上取决于你选择的目…

6-9 求一元函数定积分

一元函数f(x)在区间[a,b]上定积分∫ab​f(x)dx的几何意义是被积函数与横坐标轴以及直线xa和直线xb围成的曲边形的面积。依据几何意义求定积分的方法是将这个区域按x轴方向等分成若干个细小的条状区域&#xff0c;每个小区域近似于一个梯形(如图所示)&#xff0c;计算出所有小梯…

mycat部署和配置读写分离(二)

说明&#xff1a; MyCAT 是使用 JAVA 语言进行编写开发&#xff0c;使用前需要先安装 JAVA 运行环境(JRE),由于 MyCAT 中使用了 JDK7 中的一些特性&#xff0c;所以要求必须在 JDK7 以上的版本上运行。 1. jdk1.8安装 详见jdk环境安装 2. Mysql安装 详见mysql8.0.11源码安装…