gpt4 book ai didi

python - 在 Python 中使用并从 Apk 导入 .SO native 库

转载 作者:行者123 更新时间:2023-12-01 06:38:05 30 4
gpt4 key购买 nike

如何导入和使用从 apk 文件中提取的 .SO 文件?我在 Linux 中使用了 ctypes 库,但在我尝试的每一种方式上都给了我错误。

.so 文件有 2 个版本:arm64 和armeabi。当我尝试导入 32 位的 armeabi 版本时,它给了我

wrong ELF class: ELFCLASS32

所以我尝试了arm64,不知何故我得到了

cannot open shared object file: No such file or directory

我可以向你保证这不是一个拼写错误的路径,我尝试使用相同的路径复制它。但我无法导入它,因为没有这样的文件。

代码:

import ctypes

def main():

TestLib = ctypes.CDLL('/home/manalkaff/Desktop/arm64-v8a/nativelibrary.so')

if __name__ == '__main__':

main()

这是我应该做的吗?或者还有别的办法吗?

最佳答案

您可以尝试反编译您的共享对象并将其移植到 x86。为此,您应该在 Ghidra 中加载二进制文件并提取除 JNI 初始化等实用程序之外的所有函数,如果需要,编译器将自动插入这些函数。然后使用您选择的编译器和 IDE(例如 Clion + Clang)进行重建。如果使用 Android API,请不要忘记修复一些错误并切换到 Windows API。不过,这将需要一些时间和精力,具体取决于函数的数量和二进制文件的大小(再次支持的内容除外)。

关于python - 在 Python 中使用并从 Apk 导入 .SO native 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59572891/

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