Login
网站首页 > 文章中心 > 其它

代码混淆

作者:小编 更新时间:2023-07-25 07:21:08 浏览量:168人看过

MD,我也遇到这个问题了,你的解决没有?

我也遇到段伍此问题了,试了一下,我的app文件夹下不是proguard-rules.txt文件,是proguard-rules.pro,所以在纯运build.gradle里面做燃梁把txt改成pro,竟然就可以了。也不知道是不是新版本的问题

代码混淆-图1

1,在build.grandle添加,其中规则写在proguard-rules.pro中,也可以自定义一个文件,将其代替,比如eclipse常用的proguard-project.txtbuildTypes{release{signingConfigsigningConfigs.releaseminifyEnabledtrueproguardFilesgetDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'}}2,在proguard-rules.pro中加入以下代码,基本可以涵盖所有-optimizationpasses5#指定代码的压缩级别-dontusemixedcaseclassnames#是否使用大小写凳梁混合-dontpreverify#混淆时是否做预校验-verbose#混淆时是否记录日枣派运志-optimizations!code/simplification/arithmetic,!field/*,!class/merging/*#混淆时所采羡纯用的算法-keeppublicclass*extendsandroid.app.Activity#保持哪些类不被混淆-keeppublicclass*extendsandroid.app.Application#保持哪些类不被混淆-keeppublicclass*extendsandroid.app.Service#保持哪些类不被混淆-keeppublicclass*extendsandroid.content.BroadcastReceiver#保持哪些类不被混淆-keeppublicclass*extendsandroid.content.ContentProvider#保持哪些类不被混淆-keeppublicclass*extendsandroid.app.backup.BackupAgentHelper#保持哪些类不被混淆-keeppublicclass*extendsandroid.preference.Preference#保持哪些类不被混淆-keepclasseswithmembernamesclass*{#保持native方法不被混淆native;}-keepclasseswithmembersclass*{#保持自定义控件类不被混淆public(android.content.Context,android.util.AttributeSet);}-keepclasseswithmembersclass*{#保持自定义控件类不被混淆public(android.content.Context,android.util.AttributeSet,int);}-keepclassmembersclass*extendsandroid.app.Activity{#保持自定义控件类不被混淆publicvoid*(android.view.View);}-keepclassmembersenum*{#保持枚举enum类不被混淆publicstatic**[]values();publicstatic**valueOf(java.lang.String);}-keepclass*implementsandroid.os.Parcelable{#保持Parcelable不被混淆publicstaticfinalandroid.os.Parcelable$Creator*;}

混淆可以混淆的一切东西

比如有一可以通过代码字面意思和正常逻辑来理解的代码块

public void GetInfo()

{

}

public void SetSex()

程序的正常逻辑通过代码可皮激以看出来 先获取信息 再设置性别

那么这个代码的程序员可能为了不让别人理解程序的逻信握陪辑讲这两个方滑蠢法名称互换 或者换一个根本搭不着边的名字 比如 public void disnxjiud() 类似

这样一来外人就无法理解了 这样就实现了代码混淆

代码混淆-图2

所谓的代码混淆猛没,使用是没有的任何区别的,只不过混淆之后的代码,经过了压缩处理,加入了一些扰码的因素,使是枝者纳看起来比较复杂嫌脊,但是对于使用是没有任何区别的。

js反混淆需要借助第三方工具:

1、在本站搜索js混淆还原

结果在下面显示

混淆后你的函数就变成了一些混乱的词组成的名字了

这样即使别人反编译了你的程序,他可能也看不懂你的代码

比如你睁祥原来有一个函数叫myMethod混淆后此早纯可能就变成a了森咐,这样谁也不知道这个函数是什么用意啊

JS源代码混淆包括:

代码混淆-图3

1.变量名的替换为随机字符串

2.函数名的替换为随亏凯机字符串

3.代码压缩,移除空格,换行等无用字符

4.添加垃圾代码,使反编译更难

5.代码加密,使代码更难读懂

注意销李唤:这些方法都可以使代码更难被别人破解,但并不能完全扰老防止代码被破解。

以上就是土嘎嘎小编大虾米为大家整理的代码混淆相关主题介绍,如果您觉得小编更新的文章对您有所帮助,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章