gpt4 book ai didi

android - 使用 ndk 在 android 中保护 native 方法和 api-key

转载 作者:搜寻专家 更新时间:2023-11-01 08:20:57 24 4
gpt4 key购买 nike

我正在使用 ndk 和 android studio 来保护我的 api-key,它现在可以工作了。我也在尝试使用肮脏的代码来加强反汇编...。但我仍然可以反编译并查看 Java 类中的 native 方法。预构建的 .so(共享对象)文件在 apk 中可用,将再次使用!

问题:

  1. 发布 apk 后,所有黑客都可以看到 .so 文件,他们可以使用 .mk 文件中的自定义设置和程序特定的 native 方法,例如我的类,仅用于提取 api-key。他们在不知道实现的情况下调用我与 api-key 相关的函数。我在这里消除了什么吗?

    1. 这种方式是否需要混淆器?

最佳答案

没错,没有办法阻止.so被恶意代理重用。因此,您的 native API 不应向 Java 端泄露 secret 信息。您可以在 native 方法中执行一些验证,以检查调用 Java 是否确实属于合法的 APK。

另一方面,不要低估原生代码的另一个漏洞:你的.so可以被相关工具反汇编,任何保护都可能被撕掉。存在对 native 代码进行逆向工程的混淆和弹性方法,但它们的收入曲线比 ProGuard 陡峭得多。

不过,至少不要在 C++ 代码中以纯文本形式保留 api key 是值得的。试试自己跑

strings libnative.so

(此处 libnative.so 是从您的 APK 中提取的 .so 文件)您可能会发现等待从您的库中窃取的重要信息,无需复杂的逆向工程。

就 ProGuard 而言,它不会为您使用的 native 方法添加保护。您甚至不能混淆 native 方法的类名和方法名。 (嗯,这是可能的,但非常棘手,并且没有可以帮助进行此类设置的工具)。

关于android - 使用 ndk 在 android 中保护 native 方法和 api-key,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51209695/

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