gpt4 book ai didi

security - 在 Jelly Bean 上运行 native ARM 可执行文件

转载 作者:行者123 更新时间:2023-12-03 23:55:20 25 4
gpt4 key购买 nike

我正在寻找在 Android 4.1 (Jelly Bean) 上运行原生 ARM 可执行文件的方法。例如,编译经典的 C 程序

// hello.c
#include <stdio.h>
int main() {
printf("Hello world");
}

到 ARMv7a 可执行文件,比如 hello使用 Android NDK,然后在 Android shell 中运行它。我尝试过网络上建议的方法,例如将可执行文件推送到 /data/local经过
adb push hello /data/local

更改权限以允许其执行
adb shell chmod 755 /data/local/hello

然后在 shell 中使用它们调用它们
adb shell /data/local/hello

最后一步失败并出现错误:
/data/local/hello: not found

但显然文件在那里。我怀疑问题在于 Jelly Bean 的 shell 不再允许执行外星二进制文件。任何人都可以确认这一点并给我一个解决方案吗?

最佳答案

如果要在 Android 中运行 native ARM 二进制文件,则必须使用 进行编译-静态 .

您用于构建的 libc(如果使用标准 ARM 工具链而不是 Android NDK)与 Android 的 libc(仿生)不同,因此当您的二进制文件打算动态链接到目标上的 libc 时,它不会因为 libc 不存在于目标。

-静态您可以选择在构建时从 libc 链接您需要的内容,而不必担心动态链接内容。

关于security - 在 Jelly Bean 上运行 native ARM 可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12523992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com