如何在 linux 机器中使用来自 apk 文件的 x64-86 elf 文件?

逆向工程 安卓 小精灵
2021-06-21 20:49:40

我正在构建一个 jar 文件,该文件使用 jni 加载从 Android apk 文件中提取的 x86-64 elf。但是当我运行我的应用程序时,它会抛出这个异常:

引起:java.lang.UnsatisfiedLinkError: /lib/x86_64-linux-gnu/libc.so: version `LIBC' not found (required by /tmp/jna-1195364489/jna8496397495292865633.tmp)

所以看起来我机器上的 libc.so 版本与此类 elf 文件不兼容。我知道 Android 应用程序使用仿生而不是 glibc。如何将这些仿生 *.so 文件安装到我的 Ubuntu linux 中,以便它可以与此类 jar 应用程序一起使用?

1个回答

Android 使用仿生libc 实现,而不是大多数 Linux 发行版中更常见的 glibc。

这意味着大多数 android 文件不兼容,即使处理器架构相同也无法在 Linux 上运行。

理论上应该可以为标准 Linux 编译 Bionic 并且我认为有一个项目,但我现在找不到它......此外该程序可能依赖于 Android 特定的环境细节并且可能不会运行良好在 Linux 上。

我建议您使用 Android 模拟器或静态重新生成文件。