首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android 代码混淆 混淆方案

Android混淆最佳实践 1....WebView中JavaScript调用的方法 Layout布局使用的View构造函数、android:onClick等。 检查混淆结果 混淆过的包必须进行检查,避免因混淆引入的bug。...(很多老的混淆文件里会加,现在已经没必要) proguard-android.txt已经存在一些默认混淆规则,没必要在 proguard-rules.pro 重复添加 混淆简介 Android中的“混淆...在Android项目中我们可以选择将“优化”和“预校验”关闭,对应命令是-dontoptimize、-dontpreverify(当然,默认的 proguard-android.txt文件已包含这两条混淆命令...安全攻防战,反编译与混淆技术完全解析(下) Android混淆从入门到精通 Android代码混淆之ProGuard 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/

2.3K30

android混淆

为了防止自己的劳动成果被别人窃取,混淆代码能有效防止被反编译,下面来总结以下混淆代码的步骤: 1....将你不需要混淆的部分申明进来,因为有些类经过混淆会导致程序编译不通过,如下: -keep public class * extends android.app.Fragment   -keep public....** -keep public class com.android.vending.licensing.ILicensingService --以上都是API里边的类,最好都要避免混淆 有些很特殊的...,一般model最好避免混淆(model无关紧要,不混淆也没多大关系)如: -keep class com.bank.pingan.model.** { *; } 下面在贴上关于Umeng分享统计的避免混淆的申明...,最后需要做的就是在project.properties文件中加上你的混淆文件申明了,如下:    proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt

1.3K90
您找到你想要的搜索结果了吗?
是的
没有找到

android 混淆规则作用,Android代码混淆详解

一、混淆的意义 混淆代码并不是让代码无法被反编译,而是将代码中的类、方法、变量等信息进行重命名,把它们改成一些毫无意义的名字,同时也可以移除未被使用的类、方法、变量等。...二、混淆的规则和配置 凡是需要在AndroidManifest.xml中去注册的所有类的类名以及从父类重写的方法名都自动不会被混淆。...(4)proguard-android.txt和proguard-rules.pro proguard-android.txt:代表系统默认的混淆规则配置文件,该文件在/tools/proguard下,...proguard-rules.pro:代码表当前Project的混淆配置文件,在app module下,可以通过修改该文件来添加适用当前项目的混淆规则。...mapping.txt : 列出了原始的类、方法和名称与混淆代码间的映射。 seeds.txt : 列出了没有混淆的类和方法。 usage.txt : 列出congapk中删除的代码。

1.6K30

android代码混淆

为了避免风险,你可以只是混淆部分关键的代码,但是这样你的混淆的效果也会有所降低。 常见的不能混淆的androidCode Android 程序 ,下面这样代码混淆的时候要注意保留。...Android系统组件,系统组件有固定的方法被系统调用。 被Android Resource 文件引用到的。名字已经固定,也不能混淆,比如自定义的View 。...其他Anroid 官方建议 不混淆的,如 android.app.backup.BackupAgentHelper android.preference.Preference com.android.vending.licensing.ILicensingService...自定义View Android Parcelable Android R 文件 Android Parcelable 枚举 各个开发人员必须检查自己的code 是否用到反射 ,和其他不能混淆的地方...com.asqw.android.Listener{ public protected ;  【所有方法不进行混淆】 } -keep public class com.asqw.android

1.5K80

Android代码混淆混淆规则

请尊重他人的劳动成果,转载请注明出处:《Android代码混淆技巧》 因为Android是使用Java开发的,所以开发者可以使用ProGuard对代码进行混淆。...Eclipse+ADT时需要加入-libraryjars libs/…,如果你是使用Android Studio开发的项目则不需要加入libs包中的jar包,这是因为,通过Android Studio进行混淆代码时...################common############### -keep class com.jph.android.entity.** { *; } #实体类不参与混淆 -keep class...com.jph.android.view.** { *; } #自定义控件不参与混淆 ################baidu map############### -libraryjars libs...开发之反编译与防止反编译》 《Android代码混淆指南》 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/139053.html原文链接:https://javaforall.cn

1.4K20

Android 安全】DEX 加密 ( ProGuard 混淆 | -keepclassmembers 混淆效果 | -keepclasseswithmembernames 混淆效果 )

文章目录 一、Proguard 默认混淆结果 二、-keepclassmembers 混淆效果 二、-keepclasseswithmembernames 混淆效果 更多 ProGuard 混淆配置参考...: https://www.guardsquare.com/en/products/proguard/manual/usage 一、Proguard 默认混淆结果 ---- ProGuard 的默认混淆结果...) 不被混淆 , 类名还是会被混淆的 ; # 指定 kim.hsl.handler.Handler 类成员不被混淆 -keepclassmembers public class kim.hsl.handler.Handler...在编译后的结果中 , 类名与成员名称都被混淆了 , 因为没有配置不被混淆的成员 ; 使用 -keepclassmembers 指定保留 Handler 中的 public void *(*) 样式的方法不被混淆...*(*); } 下面是在一个被混淆的类中 , 找到了没有被混淆的 kim.hsl.handler.Handler 的成员方法 ; 二、-keepclasseswithmembernames 混淆效果

4.3K00

Android-Proguard(混淆)

大家看到了,有两个混淆文件,proguard-android.txt和proguard-rules.pro,proguard-rules.pro是我们需要自己编写的混淆文件,proguard-android.txt...除了proguard之外,还有一个DexGuard,是专门用来优化混淆Android应用的。它包括资源混淆,字符串加密,类加密和dex文件分割等。...等这些Java规则, #如下:保持Android底层组件和类不要混淆   -keep public class * extends android.app.Activity   -keep public...自定义的View默认也不会被混淆;所以像网上贴的很多排除自定义View,或四大组件被混淆的规则在Android Studio中是无需加入的; 4,与服务端交互时,使用GSON、fastjson等框架解析服务端数据时...JS调用也需要保证写的接口方法不混淆,原因和第一条一样; 7,Parcelable的子类和Creator静态成员变量不混淆,否则会产生Android.os.BadParcelableException异常

1.3K40

Android 代码混淆机制

Android 代码混淆机制 由于Android项目是基于java语言的,而java属于高层抽象语言,易于反编译,其编译后的程序包包含了大量的源代码变量、函数名、数据结构等信息,根据其编译打包后的APK...如果大家想避免自己的成果被别人夺取,然后重新修改策划而额外增加的工作量,那就尽量得自己的Android项目加上混淆吧。...具体方法 比较常用的方法有以下两种: 一、通过eclipse混淆代码 启用代码混淆 找到Android项目目录下的project.properties文件,如果需要对项目进行全局混码,只需要进行一步操作...(android.content.Context, android.util.AttributeSet); #保持自定义控件类不被混淆,指定格式的构造方法不去混淆 } -keepclasseswithmembers...class * extends android.app.Activity { public void *(android.view.View); #保持指定规则的方法不被混淆Android

1.2K20

Android 混淆那些事儿

混淆代码的反编译操作非常简单,网上有很多教程, 也可以通过使用Android Studio自带的apk分析工具(Build—-Analyze APK)直接看到未混淆Apk的源代码和原始的资源文件。...Android Studio 默认的混淆方案及字段解读 开启混淆 参见google官方文档压缩代码和资源 要通过Proguard启动代码压缩,在build.gradle文件内相应的构建类型中添加minifyEnabled...在proguard-android.txt-2.3.3文件中也写有说明,gradle 2.2之后自带混淆文件: Starting with version 2.2 of the Android plugin....** -dontwarn android.support.** # 保留四大组件,自定义的Application等这些类不被混淆 -keep public class * extends android.app.Activity...请参见ProGuard官方问题解答; 参考文献: 1、Android 项目的代码混淆Android proguard 使用说明 2、google 混淆官方文档 3、混淆官方网址 4、Android混淆快速配置之

3.1K50

Android 混淆问题排查

2、考虑到关闭混淆正常,开启混淆异常,那么就定位到时混淆的问题 3、既然是混淆问题那就查看混淆配置文件proguard-rules.pro,基本的配置都已经防混淆了 4、接下来的思路就是通过反编译来查看...我们的BaseApplication继承的application被混淆了 那么在’proguard-rules.pro’中加入一句-keep class android.app.**{*;} 运行后报错如下...结论 综上,我们可以分析出来是我们的android包下面的文件都被混淆了,于是我们把-keep class android.content.**{*;}和-keep class android.app....**{*;}合二为一-keep class android.**{*;} 不过按照道理来讲这个不应该被混淆,系统会做处理,猜测可能是某个配置导致系统的一些配置失效,至于该工程为啥这么奇葩待后续分析。...所以以后遇到混淆的问题就按照提示一步一步排查,一定要反编译文件来分析问题,不然无法定位原因。 还有第一次混淆后建议反编译查看一下包里面的代码,有没有需要混淆的核心代码被keep掉了。

2.2K20

android 混淆不起作用,Android代码混淆的写法总结

对于这种情况,我们可以对项目代码进行混淆,随机生成难理解的类名,方法名,让代码难以阅读,加大功能被盗取的难度。混淆可以起到压缩Apk,混淆文件,预检,优化的作用。 1....getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } 混淆内容在proguard-android.txt文件中写...-keep public class * extends android.preference.Preference 保持 native 方法不被混淆 -keepclasseswithmembernames...static ** valueOf(java.lang.String); } 保持 Parcelable 不被混淆 -keep class * implements android.os.Parcelable...{ public static final android.os.Parcelable$Creator *; } 保持第三方包不混淆,比如这里用到微信、支付宝支付第三方 #支付宝混淆 -keep

2.7K30

Android 代码混淆规则

Proguard介绍 Android SDK自带了混淆工具Proguard。它位于SDK根目录\tools\proguard下面。...Proguard作用 Android中的“混淆”可以分为两部分,一部分是 Java 代码的优化与混淆,依靠 proguard 混淆器来实现;另一部分是资源压缩,将移除项目及依赖的库中未被使用的资源(资源压缩严格意义上跟混淆没啥关系...-dontskipnonpubliclibraryclassmembers:是否混淆非公共的库的类的成员 -dontpreverify:混淆时是否做预校验(Android不需要预校验,去掉可以加快混淆速度...); public (android.content.Context, android.util.AttributeSet, int); } 5.6 保留指定格式的构造方法不被混淆...# 混淆时是否做预校验(Android不需要预校验,去掉可以加快混淆速度) -verbose # 混淆时是否记录日志

2.4K10
领券