【BUG】ELF文件执行时出现段错误Segmentation fault,解决:使用010编辑器修改ELF文件不可执行段权限

省流版

问题:段错误,.eh_frame不可执行。


需求:改执行权限。

工具:010 Editer,我的版本:12.0.1 Windows 10

工具下载:010编辑器官网下载页

第一步 查看段的执行权限

readelf --segments getshell查看段的执行权限。
readelf查看权限如下:

可以看到.eh_frame所在的段04是只读的。

第二步:使用010 Editer修改执行权限

打开010 Editer,通过Templates-Template Repository安装ELF.bt模板,然后拖入需要改的文件,编辑器将会自动解析。

将段[4]改成RWE

后面还有个section header,可以将.eh_frame节也修改成可执行(不是必需的)。

这样就不会出现段错误了。

详细解释版

问题:段错误,.eh_frame不可执行

需求:修改执行权限。

工具:010 Editer,我的版本:12.0.1 Windows 10

工具下载链接:010编辑器官网下载页

第一步:查看段的执行权限

使用readelf --segments命令查看段的执行权限。以下是一个示例输出:

readelf --segments getshell

输出示例(图片替换为文本描述):

[Segments] Section to Segment mapping: Segment Sections... 04 .eh_frame 04 .eh_frame 00001000 00001000 000001f0 00000000 WAI 0 0 4

从上述输出中,我们可以看到.eh_frame所在的段04是只读的(WAI)。

第二步:使用010 Editer修改执行权限

  1. 打开010 Editer,通过Templates > Template Repository安装ELF.bt模板。
  2. 将需要修改的文件拖入010 Editer,编辑器将自动解析文件。
  3. 定位到段04,并将其权限修改为RWE(读、写、执行):
[Segments] 04 .eh_frame 00001000 00001000 000001f0 00000000 RWE 0 0 4

注意:在某些情况下,可能还需要修改.eh_frame节的执行权限,但这通常不是必需的。

完成上述步骤后,.eh_frame段将具有执行权限,从而解决段错误问题。

注意:修改二进制文件的执行权限可能会对系统的安全性产生影响。在执行此类操作之前,请确保了解潜在的风险,并在必要时进行备份。

本账号所有文章均为原创,欢迎转载,请注明文章出处:https://blog.csdn.net/qq_46106285/article/details/124972056。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shandianchengzi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值