Apk 保护免受逆向工程 - 使用包名称? [复制]

Posted

技术标签:

【中文标题】Apk 保护免受逆向工程 - 使用包名称? [复制]【英文标题】:Apk protection from reverse engineering - using the package name? [duplicate] 【发布时间】:2018-01-24 21:31:27 【问题描述】:

大家好,我刚刚构建了一个应用程序,我希望通过防止重新打包应用程序来保护它免受逆向工程的影响。 我做了proguard解决方案,但应用程序仍然被apktool反编译,我在Play商店看到了一个应用程序,我试图反/重新编译它,我注意到当我更改该应用程序的包名称时它崩溃了。 所以我想知道你是否知道他是怎么做到的

【问题讨论】:

在你的 gradle 中尝试 minifyEnabled=true @XH6user 我认为minifyEnabled 选项会缩小代码而不是混淆代码。 【参考方案1】:

将其发布为答案,因为它太长了无法发表评论。您无法 100% 混淆您的代码。你可以让它变得更难,但并非不可能。 Proguard 完成了这项工作,但这并不是完全的混淆。您可以使用 ProGuard 的商业版 DexGuard,通过增加难度使安全性更加严格。代码将被转换为 .smali 文件,但人们仍然可以查找和编辑您的代码。

如果 Proguard 不能满足您的要求,您可以用 C/C++ 编写您的重要代码。这是因为逆向工程 C/C++ 比 Java 字节码更难。

您还可以研究将代码的重要部分保存在服务器上的选项。这只会让代码远离用户的设备。

【讨论】:

以上是关于Apk 保护免受逆向工程 - 使用包名称? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

保护字符串常量免受逆向工程

保护字符串常量免受逆向工程

签名以保护 JAR 免受逆向工程

在 Android 中使用 R8 和 Proguard 时如何保护数据模型类免受逆向工程的影响?

如何防止对 Android APK 文件进行逆向工程以保护代码?

保护 Android 应用免受逆向工程