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

Android Studio代码混淆插件

最近有人在公众号的后台留言说让我讲讲Android代码混淆,我最近也正在想这个问题,怎样才能把混淆讲清楚和明白,不过这回不愁了,正好有人来投稿。而且还是插件化的,非常方便,不妨大家可以试着用一下。...之前给公司的App添加代码混淆,在代码的混淆过程也遇到了不少的问题,再加上最近学习了一下Android Studio插件的开发,所以就开发一个代码混淆插件方便项目的代码混淆。...截图 第三方库列表清单 目前插件的后台已集成了如下图的第三方开源库的代码混淆以及基本的代码混淆,还在努力地添加中,也欢迎大家通过new issue提交列表中没有的第三方开源库混淆代码。...(你认为微不足道的事情,也许可以帮到别人的大忙~) 使用 下载AndroidProGuard插件并安装重启。...最后 我知道项目的代码混淆一般通常混淆一次就可以了,很多人认为这个插件的意义不太,但是我可以告诉你我也是这么想的,可是我也无办法阻止我的行动~哈哈~~ 项目GitHub地址:https://github.com

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

    从零开发基于ASM字节码的Java代码混淆插件XHood

    ,决定自研混淆插件,自主可控,能够贴合实际情况进行定制化,达到框架升级后使用零感知,零影响。...名称混淆指的是把类名,方法名,参数名,变量名等定义的名称进行规则码替换,以混淆方法名为例 混淆方法定义 自定义ClassVisitor重写visit方法 过滤枚举类的方法 过滤main方法,过滤...方法 visitMethodInsn修混淆方法定义中的方法 visitInvokeDynamicInsn修改接口的实现方法和父类的重写方法(混淆范围内且混淆方法定义中的方法) 结构混淆 结构混淆指的是修改类名...,包名时对实体class文件和文件夹的重命名,以混淆类名为例 混淆类定义 自定义ClassVisitor重写visit方法 过滤非混淆范围内的class 重写visitSource,visitField...,visitFrame,visitInvokeDynamicInsn等方法 混淆类重命名 定义ClassWriter获取class文件byte数组重新写入文件 注解混淆 注解的混淆比较特殊,

    17610

    一个开源的自动代码混淆插件

    混淆效果 最轻度混淆前后效果对比,已经大大降低了可读性 ? ? 正文 插件介绍 插件基于 JavaScript 混淆引擎 javascript-obfuscator@0.28.0 。...当前支持项目构建完成后自动混淆项目代码,后面会加入主动混淆目标文件的功能。...每个参数都有中文说明,都是皮皮熬着夜一句一句翻译的,鼠标移到参数名上就可以看到说明,或者直接看文档也是可以的~ 插件支持 Cocos Creator 2.x.x 版本,因为1.x.x 我没测试过。...2.插件默认为禁用状态,编辑器界面下点击 [ 扩展 --> 代码混淆工具 --> 构建后自动混淆 ] 启用自动混淆并设置参数 ?...插件配置文件保存路径为 ${你的项目路径}/local/ccc-obfuscated-code.json ?

    3.1K20

    WebPack插件实现:打包之后自动混淆加密JS文件

    在WebPack中调用JShaman,实现对编译打包生成的JS文件混淆加密一、插件实现1、插件JShamanObfuscatorPlugin.js,代码:class JShamanObfuscatorPlugin...,免费使用时无需配置//参数详细说明请参见JShaman官网,设为"true"启用功能、设为"false"不启用const config = {//压缩代码compact: "true",//混淆全局变量名和函数名...= "free"){//混淆加密参数json_options.json.config = config;console.log(config);}console.log("正在向JShaman.com提交混淆加密请求...obfuscatedCode.length,};} catch (error) {console.error(error);// 在这里可以决定如何处理错误,比如跳过当前文件或抛出异常}}});// 调用callback以通知Webpack插件处理完成...:而如果未使用此插件,生成的bundle.js代码如下:

    41820

    【Android Gradle 插件】Android Library 依赖库混淆配置 ( ProductFlavor#consumerProguardFiles 配置 | 依赖库混淆配置 )

    文章目录 一、ProductFlavor#consumerProguardFiles 配置 二、依赖库混淆配置 Android Plugin DSL Reference 参考文档 : 文档主页 : https...com.android.build.gradle.api.AndroidSourceSet.html AndroidSourceDirectorySet ( build.gradle#android#sourceSets#aidl/assets/java...二、依赖库混淆配置 ---- Android 的 Application 主工程 经常需要 引用 Library 依赖库工程 , Library 依赖库工程 的源码 一般也需要进行混淆 , 在 Library...工程中有 2 种方式配置混淆文件 , 方式一 : 在 android#buildTypes#release#proguardFiles 中配置混淆文件 ; 方式二 : 在 android#defaultConfig...#consumerProguardFiles 中配置混淆文件 ; android#defaultConfig#consumerProguardFiles 中配置的混淆文件会传递给 引用该依赖库 的工程

    48810

    js混淆与反混淆

    JS混淆和反混淆常见思路 在了解了js代码的执行过程后,我们来看如何对js进行混淆。...代码混淆 这里我们抛砖引玉,讲一些比较常见的混淆方式,实际上混淆的办法非常的多。...题目的本质是给了一个称为“3FA”的chrome扩展,这个插件是用于防止网络钓鱼的。...插件中的js是混淆过的,需要装上这个扩展才能使用站点的功能,站点的功能是上传HTML后会有一个Bot访问到这个页面,并且发回来访问的截图。...需要通过对这个混淆的js进行调试,发现这个js中有发送消息的函数,逆出来其中的逻辑之后,制作一个用于恶意的HTML页面,Bot(相当于一个也安装了3FA插件的真人)访问后,Bot的flag就会显示在页面上

    11.5K41

    Android 代码混淆 混淆方案

    ); java.lang.Object writeReplace(); java.lang.Object readResolve(); } #Fragment不需要在AndroidManifest.xml...”可以分为两部分,一部分是Java 代码的优化与混淆,依靠 proguard混淆器来实现;另一部分是资源压缩,将移除项目及依赖的库中未被使用的资源(资源压缩严格意义上跟混淆没啥关系,但一般我们都会放一起用...混淆。把类名、属性名、方法名替换为简短且无意义的名称; 预校验。添加预校验信息。这个预校验是作用在Java平台上的,Android平台上不需要这项功能,去掉之后还可以加快混淆速度。...public void test(java.lang.String); } } 不混淆某个类的内部类 -keep class com.biaobiao.example.Test$* {...static ** valueOf(java.lang.String); } # 保留Parcelable序列化类不被混淆 -keep class * implements android.os.Parcelable

    2.6K30

    修改混淆过的JAVA字节码文件

    这俩天遇到了这样的问题,反编译JAR包之后,出现了没法再javac的问题(修改java文件再编译回去的想法泡汤),原因大概是因为JAR的发行商对其作了很多的加密混淆处理,和签名处理。  ...下面开始—> 工具 jd-jui 《JD-GUI》是一款反编译软件,JD分为JD-GUI、JD-Eclipse两种运行方式,JD-GUI是以单独的程序的方式运行,JD-Eclipse则是以一个Eclipse插件的方式运行...IDEA插件:jclasslib Bytecode viewer jclasslib bytecode viewer 是一个可以可视化已编译Java类文件和所包含的字节码的工具。...github 地址:https://github.com/ingokegel/jclasslib   这个插件是用来查看class字节码文件域的,只有找到对应的常量池、方法域、接口等的具体索引位置,才能使用强制的读写进制流的方式去修改...dirtyjoe 官网下载地址:http://dirty-joe.com/ 功能和上面你的插件一样,这个功能更强大一点,如果想修改更细节的东西,推荐使用。

    1.1K20

    iOS代码混淆(Python混淆脚本)

    前言 最近一直在看Python,也很喜欢Python的灵活性;今天主要想说的是iOS的代码混淆,为什么想做代码混淆?...混淆工具 网上搜了一下,开源免费的混淆都在转载念茜大姐大的sh脚本的混淆方法,或者在念茜的脚本基础上二次开发,大家去看过就知道念茜的这篇博客是在14年写的,那时我刚做iOS没多久?...我这里主要是通过Python写的混淆工具,具体功能有方法混淆、属性混淆、类名混淆、添加垃圾代码、自动创建垃圾类、删除注释、修改资源文件Hash值、加密字符串、翻新资源名、模拟人工混淆混淆文件名、混淆文件目录...、混淆词库、混淆日志、映射列表、敏感词过滤、图片压缩、爬虫服务、修改项目名,具体的如下: 代码混淆-3.jpg 软件界面 ZFJObsLib混淆工具全面支持OC项目工程、swift项目和u3d项目!!!...' + '*' * 30) personinfo.isMissing = False 混淆日志 混淆的部分日志,混淆的时候回通过import logging自动生成混淆日志《ZFJ混淆日志.log》,

    3.5K90

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

    文章目录 一、Proguard 默认混淆结果 二、-keepclassmembers 混淆效果 二、-keepclasseswithmembernames 混淆效果 更多 ProGuard 混淆配置参考..., Thread , 其余 Java 文件都被混淆 ; 二、-keepclassmembers 混淆效果 ---- -keepclassmembers 作用只是保证类成员 ( 成员变量 , 成员方法...) 不被混淆 , 类名还是会被混淆的 ; # 指定 kim.hsl.handler.Handler 类成员不被混淆 -keepclassmembers public class kim.hsl.handler.Handler...在编译后的结果中 , 类名与成员名称都被混淆了 , 因为没有配置不被混淆的成员 ; 使用 -keepclassmembers 指定保留 Handler 中的 public void *(*) 样式的方法不被混淆...*(*); } 下面是在一个被混淆的类中 , 找到了没有被混淆的 kim.hsl.handler.Handler 的成员方法 ; 二、-keepclasseswithmembernames 混淆效果

    4.5K00

    哥斯拉Godzilla | 基于tomcat webshell的有效通杀混淆方式&通用的java代码混淆

    PS:对实现原理不感兴趣的同学可跳到结尾看混淆的效果实现,实现过程的代码均在下方贴出 2 思路来源 1. tomcat混淆 本文中的tomcat混淆大部分思路来源自2022年补天白帽大会yzddMr6师傅的议题...input = new java.io.BufferedReader(new java.io.InputStreamReader(p.getInputStream())); String line...加密器的生成木马逻辑代码修改 也就是将第2点提到的功能应用到Godzilla中JAVA_RSA加密器的生成木马逻辑中(代码逻辑比较简陋粗糙) //修改后的JAVA_RSA加密器的Generate类的代码如下...= null) { String suffix = (String)selectedValue; //temp_suffix用于调用指定插件方法 temp_suffix =...无论是tomcat混淆或者是代码层的混淆,都只能增加蓝队的解密/还原代码的成本。tomcat混淆更偏向于代码不可读,代码层混淆更偏向于代码的可读性差。

    70310

    Android代码混淆混淆规则

    请尊重他人的劳动成果,转载请注明出处:《Android代码混淆技巧》 因为Android是使用Java开发的,所以开发者可以使用ProGuard对代码进行混淆。...ProGuard是一个免费的Java类文件收缩,优化,混淆和预校验器。它可以检测并删除未使用的类,字段,方法和属性。它可以优化字节码,并删除未使用的指令。...最后,预校验的Java6或针对Java MicroEdition的所述处理后的码。 下面就和大家分享一下对使用了第三方库的项目进行混淆的经验。...ProGuard默认会对第三方库也进行混淆的,而第三方库有的已经混淆过了,有的使用了Java反射技术,所以我们在进行代码混淆的时候要排除这些第三方库。...); java.lang.Object writeReplace(); java.lang.Object readResolve(); } -dontwarn com.google.gson

    1.5K20

    Gradle Java 插件

    Java 插件是构建 JVM 项目的基础,它为项目增加了很多能力,例如编译,测试,打包,发布等等。 很多插件都是基于 Java 插件实现的,例如 Android 插件。...用法 使用 id 应用插件 plugins { id 'java' } Source sets 源集 Java 插件引入了源集的概念,它在逻辑上表示一组用于编译执行的源文件,这些源文件可能包括源代码文件和资源文件...插件的默认目录结构如下所示, 无论这些文件夹中有没有内容, Java 插件都会编译里面的内容, 并处理没有的内容。...一些扩展插件可能会为给定源集附加编译任务到这里 生命周期任务 Java 插件将它的一些任务附加到基础插件(Java插件自动应用)定义的生命周期任务上。...增加的属性 Java 插件为项目增加了很多新的属性,可以在脚本中直接使用这些属性。

    1.3K20
    领券