gpt4 book ai didi

android - 有没有办法将 ProGuard 与 MonoDroid 一起使用?

转载 作者:太空宇宙 更新时间:2023-11-03 13:02:46 24 4
gpt4 key购买 nike

我们的开发团队刚刚(大部分)在 Visual Studio 中使用 MonoDroid 完成了一个 Android 应用程序。因为它与银行业务有关,所以我们想尝试对其进行混淆,以增加一些安全性以防止任何人试图反编译它。最初,我认为我可以只使用 ProGuard,但似乎没有我可以在 Visual Studio 中编辑的 project.properties 文件。任何人都可以在这个主题上提供一些光荣的帮助,并告诉我是否可以将 ProGuard 与 Mono 一起使用,而我的新手只是模糊了我的视野?

(另一位开发人员尝试使用 Dotfuscator - 因为我们无法立即找到使用 ProGuard 的方法 - 但它失败并出现许多错误;Mono 运行时似乎给它带来了问题。)

最佳答案

Android 工具链的 Mono 目前不支持运行混淆器。

然而,除了一个广泛的异常(exception),proguard 支持的缺乏在很大程度上是没有实际意义的。 Proguard 仅在 Java 字节码上运行。 Mono for Android architecture在进程中运行 Mono 运行时; .NET CIL 没有“编译”成 Java 字节码,CIL 是由 Mono JIT 编译的。唯一运行的 Java 代码是 Android Callable Wrappers ,它允许 Java/Android 调用托管代码。

因此,proguard 将在 Mono for Android 应用程序中唯一保护的是生成的 Android Callable Wrappers,它主要由一堆 native 方法声明组成。在 Android Callable Wrappers 中不会有任何要反编译的业务逻辑。

相反,CIL 程序集未压缩地存储在 .apk 文件中。程序集又可以反编译以获得所有业务逻辑。这里的解决方案是在将程序集嵌入到 .apk 之前对其进行混淆处理。有reports可以使用 Xenocode 的 Postbuild 2010,尽管我不知道如何连接它的任何细节。

上述异常与 build proces 中包含的任何自定义 Java 代码有关通过 AndroidJavaSourceAndroidJavaLibrary 构建操作,这将用于包含 AdMob 库等内容。对于这种情况,我们应该在构建过程中添加 proguard 支持,但我不知道何时会添加 proguard 支持。

关于android - 有没有办法将 ProGuard 与 MonoDroid 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8764511/

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