返回目录:电脑怎么了
今天小编给各位分享specific的知识,文中也会对其通过最近做了项目写的混淆加密代码,保留下来,下次备用和手机app加密自己做有混淆,有必要做app加密保护吗?等多篇文章进行知识讲解,如果文章内容对您有帮助,别忘了关注本站,现在进入正文!
内容导航:
一、最近做了项目写的混淆加密代码,保留下来,下次备用
# To enable ProGuard in your project, edit project.properties
# to define the proguard.config property as described in that file.
#
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in ${sdk.dir}/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the ProGuard
# include property in project.properties.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# Add any project specific keep options here:
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
-optimizationpasses 7
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
#屏蔽警告,脚本中把这行注释去掉
-ignorewarnings
-dontwarn //dontwarn去掉警告
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-dontwarn android.support.**
#混淆时应用侵入式重载
-overloadaggressively
#确定统一的混淆类的成员名称来增加混淆
-useuniqueclassmembernames
#重用映射增加混淆
#-applymapping com.envee.patientClient.activity.CheckNetActivity
# 组件并没有混淆,因为系统需要通过清单(AndroidManifest.xml)文件来查找和运行应用程序。
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
#保留R文件
-keep class **.R$* {*;}
#如果系统中用到了注解映射机制,则需要保留
-keepattributes *Annotation*
#所有的native方法不能去混淆
-keepclasseswithmembernames class * {
native <methods>;
}
#某些构造方法不能去混淆
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
# 枚举类不能去混淆.
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
#aidl文件不被混淆
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
#### 上面是所有混淆基本模板 ######
#### 下面是项目自定义混淆 ######
#第三方jar包不能混淆
-libraryjars libs/alipay.jar
-libraryjars libs/android-support-v13.jar
-libraryjars libs/baidumapapi_v2_2_0.jar
-libraryjars libs/httpmime-4.1.3.jar
-libraryjars libs/jpinyin-1.0.jar
-libraryjars libs/locSDK_3.1.jar
-libraryjars libs/ShareSDK-Core-2.1.2.jar
-libraryjars libs/ShareSDK-QZone-2.1.2.jar
-libraryjars libs/ShareSDK-SinaWeibo-2.1.2.jar
-libraryjars libs/SocialSDK_QQZone_1.jar
-libraryjars libs/SocialSDK_QQZone_2.jar
-libraryjars libs/SocialSDK_tencentWB_1.jar
-libraryjars libs/SocialSDK_tencentWB_2.jar
-libraryjars libs/SocialSDK_WeiXin.jar
-libraryjars libs/umeng_sdk.jar
-libraryjars libs/umeng_social_sdk.jar
-libraryjars libs/UPPayAssistEx.jar
-libraryjars libs/UPPayPluginEx.jar
-libraryjars libs/zxing-core-2.2.jar
-keep class android.support.v4.**{*;}
#保留数据库工具类
-keep class com.kklink.yuexia.db.**{*;}
-keep class com.kklink.database.**{*;}
#保留第三方代码
-keep class com.alipay.android.app.lib.**{*;}
-keep class com.google.zxing.client.android.**{*;}
#保留model实体
-keep class com.kklink.yuexia.model.**{*;}
一、手机app加密自己做有混淆,有必要做app加密保护吗?
我们做APP开发的一般都会遇到如何保护应用APK代码的问题。Java APK语言是基于jvm上面,反编译APK源代码很很容易。包括所有的class文件、src文件和jsp文件等等。到目前为止,对于APK的保护,混淆技术是最为基本的保护方法。JAVA混淆工具也非常多,包括商业的、免费的、开放源代码的,大多是对Class文件进行混淆处理,也有少量工具首先对源代码进行处理,然后再对Class进行处理,这样加大了混淆处理的力度。
目前主要的混淆技术按照混淆目标主要可分为分别为:符号混淆、数据混淆、控制混淆、控制流重组、预防性混淆。对此,小编集中对其进行简单的分析。
一、符号混淆
Class文件中有许多与程序执行本身无关的信息,例如变量名称、方法名称,并带有一定的含义,例如某个方法名为getKeyLength(),那么这个方法很可能就是用来返回Key的长度。符号混淆就是打乱这些信息,将其变成无任何意义的表示,例如:对于所有的方法从method_001开始编号;将所有的变量从vairant_001开始编号。符号混淆可对APK反编译带来一定的困难,从而达到保护APP安全的作用。
对于私有函数、局部变量,可改变它们的符号,也不影响程序的运行。但是一些接口名称、公有函数、成员变量,若有其它外部模块需要引用这些符号,往往需要保留这些名称,否则外部模块找不到这些名称的方法和变量。
二、Android 开发怎样做代码加密或混淆
android代码的混淆和加密:通常来说Proguard对一般用途来说足够了,但是也需要注意一些程序风格,增强proguard的效果。
1、 特定类的public函数不做实际的事情,只做简单处理后调用private函数。proguard对会对一些特定类的public函数不做混淆,以便被AndroidManifest.xml和各种layout引用。
2、会被AndroidMinifest.xml和layout引用的类放在浅层的包中,需要隐藏的类放在较深处,以便proguard混淆包名带来好处。如果一个包中有需要不混淆的内容,则整个包名都不会被混淆。
3、将函数根据功能分细切短也会有些益处。当然如果隐藏代码的要求比较高,还是用native好了。
望采纳!!
三、js代码加密 混淆真的有用吗
js混淆并不属于恶意代码,其初衷是为了防止别人偷代码。想想自己辛苦写了一个极好的例子,因为没有防范好,过不久就被别人偷用,照搬,这种心情是非常不好的。关于specific的问题,通过《Android 开发怎样做代码加密或混淆》、《js代码加密 混淆真的有用吗》等文章的解答希望已经帮助到您了!如您想了解更多关于specific的相关信息,请到本站进行查找!