plt文件格式c++读取_ELF文件格式解析

原创: S3cana 合天智汇

原创投稿活动:https://mp.weixin.qq.com/s/Nw2VDyvCpPt_GG5YKTQuUQ

ELF文件格式的相关知识是Linux下进行pwn以及reverse的基础,是二进制可执行文件的一种形式,下面我们通过一个ELF文件的生成,并结合其ELF文件结构分析一下一个二进制文件在系统中执行时与权限相关的一些ELF结构知识点。文章内容较为浅显,大佬可略过,文章有不足之处,也恳请批评指正。

ELF文件的生成


一个main.c的文件,在linux系统上,经过gcc编译后可以生成一个可以执行的文件,以hello.c为例

#includeint main(){printf("Hello World ");return 0;}

一个ELF的生成,最开始是在系统中编写的一个源文件,依次会经过预处理,编译,汇编,链接过程后,会生成一个ELF格式的可以执行的文件。我们往往通过gcc hello.c -o hello即可生成一个文件名为hello的可执行文件,该程序会输出Hello World。

2ec15d0baee0d7e20d00d3d9d44db2e2.png

在如上中,我们通过gcc 一条命令将hello.c编译成能够执行的二进制文件,但在这一条命令中,同时包含了预处理,编译,汇编,链接的过程。下面分别来看这几个过程

预处理

主要是处理头文件,预编译主要是处理那些源代码中的以"#"开始的预编译指令,会删除注释

gcc -E hello.c -o hello.i
614fc15c2b37b251077855d7925525c4.png

编译

编译,经过编译后,可以生成.s的汇编文件

gcc -S hello.i -o hello.s
399c56d5ccd13a27b7ae4758451cb20b.png

汇编

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值