error: only position independent executables (PIE) are supported.

在android原生程序的动态调试,的时候

运行 adb shell ./android_server 出现下面的错误
error: only position independent executables (PIE) are supported.
经过google 发现:大家的回答俩种情况

1. 你的Android是5.0以上的吧,或者IDA pro是6.6及以下的,Android5.0以上的编译选项默认开启了pie,在5.0以下编译的原生应用不能运行,要么你Android刷机降版本,要么用IDA pro6.7 6.8的android_server。还有一个办法:http://forum.xda-developers.com/google-nexus-5/development/fix-bypassing-pie-security-check-t2797731

2. linker通过检测可执行程序elf header中的e_type字段判断是否PIC,只需要将android_server的elf header字段中的e_type改为ET_DYN(3)即可。具体办法:

1. 使用hexedit或其他二(十六)进制编辑工具打开android_server
2. 将第17个字节处的02改成03,保存退出 push到手机,即可运行。

经过测试第二种方法可行,

但是在debug的时候,却提示

[6] Accepting connection from 127.0.0.1...
Failed to find r_debug in /system/bin/linker
error: only position independent executables (PIE) are supported.

我觉得,可能还是那个问题,现在去下载,ida 6.8 每天测试一下

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值