无法在eclipse中保护代码免受逆向工程

Posted

技术标签:

【中文标题】无法在eclipse中保护代码免受逆向工程【英文标题】:Unable to protect the code from reverse engineering in eclipse 【发布时间】:2019-03-19 12:02:28 【问题描述】:

我正在处理 Eclipse 中的旧 android 项目。为此,我试图在进行逆向工程时保护代码(我知道 100% 的混淆是不可能的,但试图为源代码提供一些保护)。为此,我已经这样实现了

project.properties

proguard.config=$sdk.dir/tools/proguard/proguard-project.txt

proguard-project.txt

-dontwarn org.simpleframework.xml.stream.**
-dontwarn roboguice.**
-ignorewarnings
-dontshrink
-dontoptimize

使用此工具后,我正在导出签名的 APK 文件,但我可以使用这些在线工具(tool1、tool2)从 apk 文件中提取源代码。任何人都可以考虑通过在 Eclipse 中使用 Proguard 来保护代码

【问题讨论】:

使用 allotri 进行代码混淆。 【参考方案1】:

删除

-dontshrink
-dontoptimize

您希望缩小和优化代码!

-dontwarn org.simpleframework.xml.stream.**
-dontwarn roboguice.**
-ignorewarnings

之后,apk 很可能无法在设备或模拟器上运行,因此您需要一些额外的规则才能运行。

这取决于您的代码和您使用的库,您必须弄清楚这一点。我发现了这篇关于它的好文章,你可以忽略提到 android studio 的内容,只需在你的 proguard-project.txt 中使用 proguard 规则 https://guides.codepath.com/android/Configuring-ProGuard

继续测试发布的 apk 并搜索每个库或崩溃,以便在您的应用中实现最大程度的混淆!

【讨论】:

【参考方案2】:

100% 混淆是不可能的,但我们可以提供一些保护,如下所示

Eclipse

打开 build.gradle

它将在eclipse中的以下位置

并提到

buildTypes 
    release 
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    

正如提到的here,它将在android内部

Android Studio

打开 build.graddle(应用级别而非项目级别)

在eclipse中提到minifyEnabled true

【讨论】:

以上是关于无法在eclipse中保护代码免受逆向工程的主要内容,如果未能解决你的问题,请参考以下文章

保护 Android 应用免受逆向工程

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

如何保护 Android 代码免受逆向工程? [复制]

Android 保护清单和布局免受逆向工程

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

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