android 代码混淆
1 proguard.cfg,这就是混淆所需的proguard脚本啊。
其代码如下:
view plain
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-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 com.android.vending.licensing.ILicensingService
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclasseswithmembernames class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembernames class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
从脚本中可以看到,混淆中保留了继承自Activity、Service、Application、BroadcastReceiver、ContentProvider等基本组件。
并保留了所有的Native变量名及类名,所有类中部分以设定了固定参数格式的构造函数,枚举等等。(详细信息请参考<proguard_path>/examples中的例子及注释。)
2 在工程的"default.properties"中添加这样一句话“proguard.config=proguard.cfg”
打包签名后的.apk就是混淆的,其实我们只要做一步就可以了就是在"default.properties"中添加这样一句话“proguard.config=proguard.cfg”就可以了。
出现错误:
[INFO] Warning: there were 294 unresolved references to classes or interfaces.
[INFO] You may need to specify additional library jars (using '-library
jars').
[INFO] Warning: there were 3 unresolved references to program class members.
You should consider explicitly keeping the mentioned class members
(using '-keep' or '-keepclassmembers').
[INFO] Your input classes appear to be inconsistent.
[INFO] You may need to recompile them and try again.
[INFO] Alternatively, you may have to specify the option
[INFO] '-dontskipnonpubliclibraryclassmembers'.
[INFO] java.io.IOException: Please correct the above warnings first.
[INFO] at proguard.Initializer.execute(Initializer.java:321)
[INFO] at proguard.ProGuard.initialize(ProGuard.java:211)
[INFO] at proguard.ProGuard.execute(ProGuard.java:86)
[INFO] at proguard.ProGuard.main(ProGuard.java:492)
解决方法如下:解决方法找到了,在proguard.cfg文件中加入-ignorewarnings就可以跳过这个错误了。
本文出自 “清源教育” 博客,转载请注明此处,谢谢!
分享到:
相关推荐
安卓打包混淆的proguard,其中本文档保存的是基础部分,其他混淆规则需要自己添加
解决android中混淆代码签名导出报错的proguard.cfg 第三方jar包,可类似 -libraryjars libs/android-support-v4.jar 添加在文件中
Android反编译文件proguard.cfg,将此文件复制到项目中然后在project.properties文件中添加proguard.config=proguard.cfg即可实现代码混编。此方法很好的防止了APK被反编译。
修改Proguard混淆规则,自定义字符集,使用详情https://blog.csdn.net/u011106915/article/details/84636592
Android 2_3 代码混淆proguard技术介绍 - Zy的技术心
基于springboot搭建一个简单案例,利用proguard插件实现代码混淆,增加源代码的阅读和理解的难度, 并不能百分百保证代码安全。常用的应用场景是项目需要部署到客户机器上,一定程度上防止代码泄露。 ProGuard 是一个...
在 \安卓模拟器文件夹内\tools\lib\将proguard.cfg 放至内即可
其中包括第三方jar混淆报错及解决办法,以及普通的代码混淆办法,相信能给你帮助
最好用的JAVA代码混淆工具proguard-7.0.0.zip,稳定、可靠。 最新的JAVA代码混淆工具proguard-7.0.0.zip,先进、速度快。 经实测可以放心使用,无病毒,无木马!
Android Java代码混淆工具:ProGuard简介及使用.docx
使用 Proguard 混淆 Java 源代码 Proguard 是一款功能强大且广泛使用的 Java bytecode 混淆工具,它可以保护 Java 代码免受反编译和逆向工程的攻击。下面将一步步指导如何使用 Proguard 混淆 Java 源代码。 1. ...
新写的proguard代码混淆的文档 大家可以看看
"Android代码混淆及签名" Android 代码混淆是指对 Android 应用程序的源代码进行混淆处理,以防止别人反...通过配置 proguard.cfg 文件和签名打包 APK,可以保护 Android 应用程序的源代码和intellectual property。
java 源码加密 混淆,proguard 配置文件,很详细,经测试可以用
java混淆工具,防止反编译,启动项在bin\proguardgui.bat ,可以在代码打包的时候使用,进行代码混淆
Java Jar包混淆器proguard.v3.8 双击proguardgui.jar运行