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

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

这一节我们先掌握如何读取头部信息和程序表头,我们先看ELF文件的大致结构: ? ELF文件格式最重要的就是所谓的段,特别是其中的代码段和数据段。对应上图就是.text,.data两个段。...接下来的两个字节也就是e_type对应ELF文件的类型,用于表明它是可执行文件,亦或是动态链接库,还是重定向文件也就是编译后还没有被链接的二进制文件。...= "/content/drive/My Drive/elf32/hello_world.o" ET_REL = 1 #.o类型 ET_EXEC = 2 #可执行 ET_DYN = 3 #动态链接...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.5K20

【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 默认值 ; 动态库并不能独立执行 , 需要由外部加载执行 ;

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

重学计算机组成原理(七)- 程序无法同时在Linux和Windows下运行?

ELF(Execuatable and Linkable File Format)的文件格式,中文名字叫可执行与可链接文件格式 这里面不仅存放了编译成的汇编指令,还保留了很多别的数据。...第二部分,我们通过装载器(Loader)把可执行文件装载(Load)到内存中 CPU从内存中读取指令和数据,来开始真正执行程序 [bz6uwgudne.png]2 ELF格式和链接:理解链接过程程序最终是通过装载器变成指令和数据的...ELF有一个基本的文件头(File Header),用来表示这个文件的基本属性,比如是否是可执行文件,对应的CPU、操作系统等等。...我们今天讲的是Linux下的ELF文件格式,而Windows的可执行文件格式是一种叫作PE(Portable Executable Format)的文件格式。...Linux下的装载器只能解析ELF格式而不能解析PE格式。 如果我们有一个可以能够解析PE格式的装载器,我们就有可能在Linux下运行Windows程序了。这样的程序真的存在吗?

1.3K60

二进制程序分析指南

分析恶意软件的第一步是收集二进制程序在主机上执行的行为事件,研究人员根据这些行为大体形成一个思路来描述恶意软件的功能。...无文件病毒:在内存中执行的病毒,并不使用文件作为载体。 APT:高级可持续攻击。 静态分析 静态恶意软件分析是指在不运行PE/ELF文件的情况下对其进行分析。...首先通过分析PE/ELF头结构,其中提供了操作系统加载和执行文件的有价值的信息(例如支持的系统版本、内存布局、动态链接库、静态链接库、导出和导入表、资源和线程数据等等)。...目前该程序定义了以下类型: MSDOS可执行文件MS-DOS PE可执行文件Windows ELF可执行文件Linux MACH可执行文件Mac OS 文本文件 二进制文件 静态分析方法—PE结构工具...静态分析方法—ELF结构处理命令ldd ldd的作用是打印可执行档依赖的共享库文件。

1.9K10

比较全面的恶意软件分析资料与项目

,并定位和提取嵌入的可执行文件 Spidermonkey - Mozilla 的 JavaScript 引擎,用来调试可疑 JS 代码 文件提取 从硬盘和内存镜像中提取文件 bulk_extractor..., Perl, PHP, Python, Ruby 的代码生成 LIEF - LIEF 提供了一个跨平台的解析、修改、抽象 ELFPE、MachO 格式的库 ltrace - Linux 可执行文件的动态分析...mac-a-mal - 用于恶意软件搜索的自动化框架 objdump - GNU 工具集的一部分,面向 Linux 二进制程序的静态分析 OllyDbg - Windows 可执行程序汇编级调试器 PANDA...strace - Linux 可执行文件的动态分析 Triton - 一个动态二进制分析框架 Udis86 - x86 和 x86_64 的反汇编库和工具 Vivisect - 恶意软件分析的 Python...(包括 PEELF) Honeynet Project - 蜜罐工具、论文和其他资源 Kernel Mode - 一个致力于恶意软件分析和内核开发的活跃社区 Malicious Software

4.4K20

一个极简安全软件——火绒安全

其内核优势如下: 先进的通用扫描技术 具备高效率、高检出、强抗干扰能力 凭借火绒虚拟化技术,火绒反病毒引擎对几乎所有待扫描PE样本均应用通用脱壳和动态行为扫描,用较少的记录,长期、有效地检出家族性样本。...凭借火绒虚拟沙盒接近真实CPU的执行效率和高仿真度的虚拟操作系统环境,使火绒反病毒引擎拥有了极强的抗干扰能力。...丰富的文件格式支持 为每种格式专设模块分析,既扫遍还扫透 火绒反病毒引擎支持对任意文件类型的扫描。...但对于不同的文件格式,另有专门的分析模块进行分析和解码(Decomposition)的操作 1) 可执行类型PE、NE、LE、MZ、COM、DEX、ELF、Mach-O、……; 2) 脚本类型HTML...火绒自研虚拟沙盒 能从行为层面拦截病毒和恶意程序 火绒虚拟沙盒可以跟踪和记录运行在其中程序的行为,火绒反病毒引擎通过行为记录,可以通过启发式分析算法对程序行为的恶意性进行评估,从而检出病毒行为和恶意程序行为

2.6K20

Linux 内核 vs Windows 内核

ELF ELF 的意思是可执行文件链接格式,它是 Linux 操作系统中可执行文件的存储格式,你可以从下图看到它的结构: ?...ELF 文件格式 ELF 把文件分成了一个个分段,每一个段都有自己的作用,具体每个段的作用这里我就不详细说明了,感兴趣的同学可以去看《程序员的自我修养——链接、装载和库》这本书。...Windows 的可执行文件的格式与 Linux 也不同,所以这两个系统的可执行文件是不可以在对方上运行的。...Windows 的可执行文件格式PE,称为可移植执行文件,扩展名通常是.exe、.dll、.sys等。 PE 的结构你可以从下图中看到,它与 ELF 结构有一点相似。 ?...这两个操作系统的可执行文件格式也不一样, Linux 可执行文件格式叫作 ELF,Windows 可执行文件格式叫作 PE

16.3K30

解析Gamaredon APT:利用非PE部分的高级威胁攻击及防范建议

Gamaredon APT以其高度定向的攻击和先进的技术能力而闻名,而且他们经常利用非PE部分(Portable Executable,可移植可执行文件)来进行攻击。...Gamaredon APT的攻击方法通常包括社交工程、定向钓鱼邮件和恶意软件传播等。 近年来,Gamaredon APT已经开始利用非PE部分针对目标进行攻击。...非PE部分是指不是传统的Windows可执行文件格式(如.exe、.dll等)的部分。通过利用非PE部分,Gamaredon APT能够更好地规避传统的安全防护机制,从而增加攻击的成功率。...他们可以将恶意代码嵌入到文档或电子表格中的脚本或宏中,当文件被打开时,恶意代码将会被执行。这种技术利用了用户对文档的信任,很容易诱使用户执行恶意脚本,从而导致系统被感染。...应对Gamaredon APT攻击的建议针对Gamaredon APT利用非PE部分的攻击,以下是一些应对建议:更新安全防护软件:及时更新安全防护软件,以获取最新的恶意软件识别规则和补丁。

15410

十六.PE文件逆向基础知识(PE解析、PE编辑工具和PE修改)

这篇文章将介绍基础知识,详细讲解PE文件格式,熟悉各种PE编辑查看工具,针对目标EXE程序新增对话框等,这也为后续PE病毒和恶意代码的攻防打下扎实基础。...EXE文件格式: DOS:MZ格式 WIndows 3.0:NE(New Executable)、16位Windows可执行文件格式 为什么要重点学习这种文件格式呢?...PE文件是可移植、可执行、跨Win32平台的文件格式 所有Win32执行体(exe、dll、kernel mode drivers) 知道PE文件本质后,能更好进行恶意样本分析、APT攻击分析、勒索病毒分析...、系统安全工程师,那么精通PE文件是非常必要的 可执行程序是具有不同的形态的,比如用户眼中的QQ如下图所示。...PE文件格式恶意软件的关系 何为文件感染或控制权获取? 使目标PE文件具备或启动病毒功能(或目标程序) 不破坏目标PE文件原有功能和外在形态(如图标)等 … 病毒代码如何与目标PE文件融为一体呢?

5.2K52

计算机和操作系统基础知识

在更广泛的意义上, 指令可以是任何可执行程序的元素的表述,如:字节码 指令分为特殊指令和普通指令,只有操作系统才能运行特殊指令(也称 特权指令),应用程序只能运行普通指令。...,而 定义 API 的一系列互相关联的标准的总称 「最后一个 X 表明了其对 Unix API 的传承」 11、两种格式: (1)可移植可执行(Portable Executable),也就是 PE 格式...,是一种用 于可执行文件、目标文件和动态链接库的文件格式,主要使用在 Windows 操作系统上 PE文件格式主要用于EXE文件、DLL文件、.sys(驱动程序)和其他文件 类型 (2)可执行和可链接格式...(Executable and Linkable Format),也就是  ELF 格式,是一种用于可执行文件、目标文件、共享库和核心转储的标准文 件格式 不同操作系统上应用程序和库的格式 应用程序格式...库 Windows PE格式(Portable Executable) DLL(Dynamic Link Library),动态链接库 Linux/Unix ELF格式(Executable and

65310

隐藏在证书文件中的PowerShell(一)

使用Certutil工具,可将 .cer文件转换生成 .crt文件,以下就是 .crt的一个示例: 对工具 Certutil 的利用 Certutil是一个Windows下的多功能程序,可用来执行各种证书和服务操作...自从Casey Smith在Twitter上发推演示了Certutil 的 base64解码编码之后,一些红队人员和网络犯罪份子就开始利用这种编码技术来生成各种可绕过入侵检测和杀毒软件恶意文件。...一些Windows 下的可执行程序(PE文件)都能用Certutil工具来轻松完成编码,编码之后的格式,很多入侵检测和杀毒软件都无法识别。...以下是Windows可执行程序编码成 .crt文件的示例: 从上图可以看到,这种base64编码数据的第一个字母是T。...,不仅能检测出包含PE文件的证书文件,还能检测出其它不包含特定证书数据的恶意证书文件。

1.4K30

十七.Windows PE病毒概念、分类及感染方式详解

EXE文件格式: DOS:MZ格式 WIndows 3.0:NE(New Executable)、16位Windows可执行文件格式 为什么要重点学习这种文件格式呢?...PE文件是可移植、可执行、跨Win32平台的文件格式 所有Win32执行体(exe、dll、kernel mode drivers) 知道PE文件本质后,能更好进行恶意样本分析、APT攻击分析、勒索病毒分析...PE文件格式恶意软件的关系 何为文件感染或控制权获取? 使目标PE文件具备或启动病毒功能(或目标程序) 不破坏目标PE文件原有功能和外在形态(如图标)等 病毒代码如何与目标PE文件融为一体呢?...在其他可执行文件嵌入少量触发代码 修改引入函数节启动DLL病毒文件(添加相应结构,初始化代码触发) 在特定PE文件代码段插入触发代码等(只需定位可执行程序并运行) DLL劫持:替换已有DLL文件 很多应用程序或操作系统执行时...参考文献: [1] 武大《软件安全》课程 [2] 小伙伴们PPT及视频 [3] MOOC《软件安全之恶意代码机理与防护》 [4] PE文件学习系列一为什么是PE - Egojit

4.2K11

Linux下,使用nm命令输出可执行文件的符号表

可执行文件的符号表(symbol table)记录了某个可执行文件中的函数名、全局变量、宏定义等符号信息,这些信息对于我们调试十分重要。...nm命令属于GNU binutils的功能,能够输出可执行文件的符号表。它的用法是这样的: 用法:nm [选项] [文件] 列举 [文件] 中的符号 (默认为 a.out)。...-x86-64 elf32-i386 elf32-iamcu elf32-x86-64 pei-i386 pei-x86-64 elf64-l1om elf64-k1om elf64-little elf64...-big elf32-little elf32-big pe-x86-64 pe-bigobj-x86-64 pe-i386 plugin srec symbolsrec verilog tekhex...对于不记录符号大小的目标文件格式,此选项不起作用,除非使用了--size sort,在这种情况下,将显示计算的大小 -s, --print-armap 当列出库中成员的符号时,同时列出索引。

2.3K30

SCA技术进阶系列(三):浅谈二进制SCA在数字供应链安全体系中的应用

ELF格式和PE格式是Linux和Windows操作系统上使用最广泛的二进制格式。...PE格式(Portable Executable):应用于Windows操作系统,包括可执行文件“EXE、SCR”、动态链接库“DLL、OCX、CPL、DRV”、驱动“SYS、VXD”、对象文件“OBJ...”;ELF格式(Executable and Linkable Format):应用于Unix、Linux系统,包括可执行文件、动态链接库“so”、可重定位文件“o”、内核模块“ko”;Mach-O格式...;汇编: 使用汇编器as将汇编代码汇编成二进制的.o文件 (又称目标文件);链接:最后使用链接器ld将目标文件和目标文件中用到的一些库文件进行链接生成Linux下elf格式的可执行文件a.out,这个可执行文件才可以在...当运行可执行文件时,OS会fork一个进程,execve把可执行文件加载到进程的用户态内存,然后从内核返回,再跳转到ELF文件的入口地址_start,调用main()函数,进入代码段。

51730

二进制基础

做 pwn 或者 reverse 的一些基础 程序的编译与链接 编译:由 C 语言代码生成汇编代码 汇编:由汇编代码生成机器码 链接:将多个机器码的目标文件链接成一个可执行文件 Linux 下的可执行文件格式...ELF 可执行文件:.out 动态链接库:.so 静态链接库:.a Windows 下的可执行文件格式 PE 可执行文件:.exe 动态链接库:.dll 静态链接库:.lib ELF 文件结构 节视图...软件是由 GUN 开发的 (ls, cd 等) 3. arch 提供软件源 4....磁盘上的可执行文件要先到内存,才能被 CPU 执行 从程序变为虚拟内存中 int glb; char* str = "Hello world"; int sum(int x, int y) {...)(不占用磁盘空间但是占用内存空间) Data: str (保存只读、不可写、不可执行的数据) Text: main、sum、"Hello world!"

33940
领券