首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

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

ELF文件格式最重要的就是所谓的段,特别是其中的代码段和数据段。对应上图就是.text,.data两个段。...接下来的两个字节也就是e_type对应ELF文件的类型,用于表明它是可执行文件,亦或是动态链接库,还是重定向文件也就是编译后还没有被链接的二进制文件。...import struct elf32_path = "/content/drive/My Drive/elf32/hello_world.o" ET_REL = 1 #.o类型 ET_EXEC = 2 #可执行...PT_NOTE = 4 # PT_SHLIB = 5 #保留,不应该是该值 PT_PHDR = 6 #该程序头专门用于描述程序头表 PF_X = 1 #可执行 PF_W = 2 #可写 PF_R =...p_flags描述程序表头记录所描述数据的属性,如果取值PF_X表示描述的数据是可执行的代码,PF_W表示所描述数据是可修改的数据,PF_R表示所描述数据具有可读性质。

3.4K20

什么是文件格式

java 字节流汇总: java 字节流入门(读文件) 有了之前 4 篇对文件的操作工具之后,终于到了文件格式的介绍部分!本文介绍文件格式的定义,并实现一个自己的文件格式。...这个文件格式十分简单,只用来说明原理。...有了文件格式,你就可以将数据写成这种格式的文件,并且将数据从这种格式的文件中读出来。文件格式的本质就是一种协议。...下面介绍一个自己的文件格式: 实现自己的文件格式! 这个文件格式的功能为:写 int 数据;读取所有数据。...总结 是不是很开心,今天我们对文件格式有了一个初步了解,并且实现了一个自己的文件格式。你也可以自己设计文件格式

2.1K10

ELF文件格式解析

参考资料 ELF文件格式解析 《Android软件安全权威指南》8.4-原生程序文件格式 Android平台感染ELF文件实现模块注入 elf文件类型六 Dynamic Section(动态section...) 简单粗暴的so加解密实现   上边的资料对ELF文件格式的分析非常详细,这边主要记录一下自己感觉比较重要和掌握的不是很清楚的部分,增加一些自己的理解,也方便后续查阅。...所以综上所述,整个SO文件的大小= e_shoff + e_shnum * sizeof(e_shentsize) + 1 有兴趣可以参考这篇文章来了解更多:ELF文件格式解析,下面很多部分都借鉴了这篇文章的内容...替代在可执行文件中的符号搜索,动态连接器从它自己的共享object开始。假如一个共享的object提供引用参考失败,那么动态连接器再照常的搜索可执行文件和其他的共享object。...这种段类型仅对与可执行文件有意义(尽管也可能在共享目标文件上发生)。在一个文件中不能出现一次以上。如果存在这种类型的段,它必须在所有可加载段项目的前面。

2.3K40

文件格式猜测

0×01 实验内容 1.了解010Editor.exe的使用方法 2.了解文件格式的查看 3.判断文件的格式 0×02 实验原理 有些文件格式被设计用于存储特殊的数据, 例如: 图像文件中的JPEG...文件格式仅用于存储静态的图像,而GIF既可以存储静态图像,也可以存储简单动画; Quicktime 格式则可以存储多种不同的媒体类型。...0×03 实验笔记 我觉得这个实验分为两个阶段 1.第一阶段是直接给你文件格式,通过010编辑器去分析查找文件是什么格式。...说白了就是一阶段直接给你文件格式了,你知道文件是啥格式;第二阶段是没有给你文件格式,你需要自己通过010编辑器去分析查找这个文件的格式。 在第二阶段中,通过010编辑器分析查找1-4文件内容。...74 ASCLL字符串: P.o.w.e.r.P.o.i. n.t. .D.o.c.u.m. e.n.t 在ASCLL字符串内容中可以发现是PPT的英文全称,所以显而易见这个1-4文件是PPT文件格式

12430

ELF文件格式简介

1 简介   可执行与可链接格式 (Executable and Linkable Format,ELF),常被称为 ELF格式,是一种用于可执行文件、目标代码、共享库和核心转储(core dump)的标准文件格式...比如编译的中间产物.o文件; 可执行文件:一个可执行文件; 共享目标文件:共享库。文件保存着代码和合适的数据,用来被下连接编辑器和动态链接器链接。比如linux下的.so文件。...2 ELF文件格式   在编译过程中ELF文件格式在链接和程序的运行阶段的格式不同。...e_type:文件的标识字段标识文件的类型; ET_NONE(0):未知的文件格式; ET_REL(1):可重定位文件,比如目标文件; ET_EXEC(2):可执行文件; ET_DYN(3):共享目标文件...且当前段仅仅对于可执行文件有实际意义,一个可执行文件中不能出现两个当前段,如果一个文件中包含当前段。

1.8K30

MySQL Server可执行注释

前言 可执行注释 结语 ---- 前言 MySQL Server当前支持如下3种注释风格: 以'#'开头的单行注释 以'-- '开头的单行注释 C语言风格的单行/多行注释 如下SQL脚本给出了3种注释风格的示例...* 这是一个 多行注释 示例 */ select 1 from dual; select 2 from dual; # 单行注释用例1 select 3 from dual; -- 单行注释用例2 可执行注释...MySQL-specific code */ 通过比较如下两个带注释的SQL语句的执行结果可以比较直观地看出可执行注释语句的行为: # 普通注释,'+1' 被忽略 mysql> select 1 /*...+1 */; +---+ | 1 | +---+ | 1 | +---+ # 可执行注释,'+1' 被当成语句的一部分 mysql> select 1 /*!...不难看出,带version_number的可执行注释,是为了解决不同的MySQL版本之间的兼容问题。

1.1K50
领券