Android Proguard apk防止破解
来源:互联网 发布:猎流软件怎么样 编辑:程序博客网 时间:2024/06/04 19:07
Android源码很容易被工具反编译出来,因此,对源码做混淆是一种非常常用的保护源码的方式,不仅如此,proguard还会对源码做一些优化。下面小编将教大家如何在Eclipse中配置proguard混淆,并且如何查看混淆前后的对应关系。
工具/原料
- Eclipse
- dex2jar
- jd-jui
方法/步骤
在Eclipse中新建proguard_demo的Android工程,里面只有MainActivity.java和Person.java。因为MainActivity是启动类,是不能被混淆的。我将演示下如何将Person混淆掉。
首先打开“project.properties”文件,然后在文件中添加一行:proguard.config=./proguard-project.txt。文件中之前就有一行,不过是被注释掉了。这句话的意思是:使用当前目录下的proguard-project.txt作为混淆配置文件。
-dontpreverify
-repackageclasses ''
-allowaccessmodification
-optimizations !code/simplification/arithmetic
-keepattributes *Annotation*
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.view.View {
public <init>(android.content.Context);
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
public void set*(...);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * implements android.os.Parcelable {
static android.os.Parcelable$Creator CREATOR;
}
-keepclassmembers class **.R$* {
public static <fields>;
}
打开“proguard-project.txt”文件,在文件末尾添加:
然后运行,可以看到界面上有一个文本框,上面写着“hello,world”。然后用dex2jar反编译生成的apk,可以看到有MainActivity和Person类。- 也就是说直接运行的方式是不能应用proguard的。正确的方式是使用Eclipse的导出功能。在工程上右键->"Export..."->“Export Android Application”,导出apk包。可以使用Eclipse默认的keystore,具体的使用方法请参考小编前面一个文档http://jingyan.baidu.com/article/3a2f7c2e61395d26afd61193.html。
用dex2jar反编译导出的proguard_demo.apk,然后用jd-jui打开。可以看到Person被混淆掉了。
查看Eclipse在工程的根目录下面生成了一个progurad的文件夹。打开这个文件夹可以看到4个文件。其中有一个是“mapping.txt”,这里面列出了混淆前后的对应关系。可以看到我们的Person被混淆成了bJ,里面的成员变量name被混淆成了a。在MainActivity中也能看出来。同时,proguard还把方法调用优化成了直接引用成员变量。
另:jd-gui-0.3.5.windows工具;
本人亲测,后续会对含有其它架包的混合 进行说明;未完待续........
- Android Proguard apk防止破解
- APK反破解之一:Android Java混淆(ProGuard)
- APK反破解之一:Android Java混淆(ProGuard)
- APK反破解之一:Android Java混淆(ProGuard)
- APK反破解之一:Android Java混淆(ProGuard)
- APK反破解之一:Android Java混淆(ProGuard)
- ProGuard混淆编译--防止apk被反编译
- ProGuard混淆编译--防止apk被反编译
- Android APK 签名比对,防止软件被破解使用
- Android APK 签名比对,防止软件被破解使用
- android proguard混淆apk问题
- Android apk如何加固防止被破解(防止逆向编译)
- Android apk如何加固防止被破解(防止逆向编译)
- Android apk如何加固防止被破解(防止逆向编译)
- 如何使用 proguard.jar代码混淆,防止apk被反编译
- Android 混淆器 ProGuard (一定程度防止反编译)
- Android项目代码(ProGuard)防止反编译
- Proguard android代码混淆 防止反编译
- iOS 核心面试题
- windows安装PyQt5
- 非对称加密原理解析
- C++面试(六)
- docker 在Oracle Linux7 安装与配置
- Android Proguard apk防止破解
- 从框架到完整项目搭建,实战项目《约个球》(8)- 将项目迁移到android studio,使用gradle搭建android项目(中)
- 富媒体推送
- Google C++编程风格指南(四)之类的相关规范
- POJ 1986Distance Queries(LCA)
- openwrt编译curl及错误解决方案
- 【莫比乌斯反演】【数论】[ZBOJ 2693]jzptab
- 安装rails-for-ruby环境并运行rails项目全过程
- oc的基础知识