最近有人在公众号的后台留言说让我讲讲Android代码混淆,我最近也正在想这个问题,怎样才能把混淆讲清楚和明白,不过这回不愁了,正好有人来投稿。而且还是插件化的,非常方便,不妨大家可以试着用一下。...之前给公司的App添加代码混淆,在代码的混淆过程也遇到了不少的问题,再加上最近学习了一下Android Studio插件的开发,所以就开发一个代码混淆插件方便项目的代码混淆。...截图 第三方库列表清单 目前插件的后台已集成了如下图的第三方开源库的代码混淆以及基本的代码混淆,还在努力地添加中,也欢迎大家通过new issue提交列表中没有的第三方开源库混淆代码。...(你认为微不足道的事情,也许可以帮到别人的大忙~) 使用 下载AndroidProGuard插件并安装重启。...最后 我知道项目的代码混淆一般通常混淆一次就可以了,很多人认为这个插件的意义不太,但是我可以告诉你我也是这么想的,可是我也无办法阻止我的行动~哈哈~~ 项目GitHub地址:https://github.com
面对此景,我们有没有办法,去混淆一些核心代码,来捍卫自己劳动成果呢?...作为臣服于 Java 的子民们,一切又都是那么的幸福,诸多开源的轮子帮你解决了这个问题,今天不妨尝试用一用 ProGuard 这款轮子。...ProGuard 是一个压缩(shrink)、优化(optimize)和混淆(obfuscate) Java 字节码文件的免费的工具。...在 Input/Output 中,Add input 选择要混淆的 JAR 包,注意一定要添加待混淆的 JAR 包依赖的所有类库,Add output 指定输出文件名(例如 a.jar);压缩(Shrinking...采用 JD-GUI 打开根据混淆输出的 JAR,效果貌似像那么回事儿。 ?
,决定自研混淆插件,自主可控,能够贴合实际情况进行定制化,达到框架升级后使用零感知,零影响。...名称混淆指的是把类名,方法名,参数名,变量名等定义的名称进行规则码替换,以混淆方法名为例 混淆方法定义 自定义ClassVisitor重写visit方法 过滤枚举类的方法 过滤main方法,过滤...方法 visitMethodInsn修混淆方法定义中的方法 visitInvokeDynamicInsn修改接口的实现方法和父类的重写方法(混淆范围内且混淆方法定义中的方法) 结构混淆 结构混淆指的是修改类名...,包名时对实体class文件和文件夹的重命名,以混淆类名为例 混淆类定义 自定义ClassVisitor重写visit方法 过滤非混淆范围内的class 重写visitSource,visitField...,visitFrame,visitInvokeDynamicInsn等方法 混淆类重命名 定义ClassWriter获取class文件byte数组重新写入文件 注解混淆 注解的混淆比较特殊,
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内...
混淆效果 最轻度混淆前后效果对比,已经大大降低了可读性 ? ? 正文 插件介绍 插件基于 JavaScript 混淆引擎 javascript-obfuscator@0.28.0 。...当前支持项目构建完成后自动混淆项目代码,后面会加入主动混淆目标文件的功能。...每个参数都有中文说明,都是皮皮熬着夜一句一句翻译的,鼠标移到参数名上就可以看到说明,或者直接看文档也是可以的~ 插件支持 Cocos Creator 2.x.x 版本,因为1.x.x 我没测试过。...2.插件默认为禁用状态,编辑器界面下点击 [ 扩展 --> 代码混淆工具 --> 构建后自动混淆 ] 启用自动混淆并设置参数 ?...插件配置文件保存路径为 ${你的项目路径}/local/ccc-obfuscated-code.json ?
在java项目中,需要客户定制离线授权时,怎么保证软件时效性呢? 如果用日期授权比如一年,如果单纯的获取系统时间,在离线的情况下,如果客户修改系统时间,软件的授权无法控制. 导致经济利益的损失....; import java.text.SimpleDateFormat; import java.util.Date; /** * * ClassName:TestStrings * Description...date.getTime()) { //执行相关操作 System.out.println("时间验证通过..."); } } } 2.采用混淆方法...; import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.text.DateFormat...; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Base64; import java.util.Base64
在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代码如下:
文章目录 一、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 中配置的混淆文件会传递给 引用该依赖库 的工程
JS混淆和反混淆常见思路 在了解了js代码的执行过程后,我们来看如何对js进行混淆。...代码混淆 这里我们抛砖引玉,讲一些比较常见的混淆方式,实际上混淆的办法非常的多。...题目的本质是给了一个称为“3FA”的chrome扩展,这个插件是用于防止网络钓鱼的。...插件中的js是混淆过的,需要装上这个扩展才能使用站点的功能,站点的功能是上传HTML后会有一个Bot访问到这个页面,并且发回来访问的截图。...需要通过对这个混淆的js进行调试,发现这个js中有发送消息的函数,逆出来其中的逻辑之后,制作一个用于恶意的HTML页面,Bot(相当于一个也安装了3FA插件的真人)访问后,Bot的flag就会显示在页面上
); 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
目标: 将代码混淆,也就是给第三方源代码,让他们只能运行,却看不懂代码。...用到的工具: 混淆jar的工具:proguard5.1 下载地址:http://download.csdn.net/detail/lk7688535/9625472 反编译jar的工具:xjad2.2...如上操作后便得到混淆后的jar包,再用xjad反编译就可得到混淆后的源代码了~
这俩天遇到了这样的问题,反编译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/ 功能和上面你的插件一样,这个功能更强大一点,如果想修改更细节的东西,推荐使用。
前言 最近一直在看Python,也很喜欢Python的灵活性;今天主要想说的是iOS的代码混淆,为什么想做代码混淆?...混淆工具 网上搜了一下,开源免费的混淆都在转载念茜大姐大的sh脚本的混淆方法,或者在念茜的脚本基础上二次开发,大家去看过就知道念茜的这篇博客是在14年写的,那时我刚做iOS没多久?...我这里主要是通过Python写的混淆工具,具体功能有方法混淆、属性混淆、类名混淆、添加垃圾代码、自动创建垃圾类、删除注释、修改资源文件Hash值、加密字符串、翻新资源名、模拟人工混淆、混淆文件名、混淆文件目录...、混淆词库、混淆日志、映射列表、敏感词过滤、图片压缩、爬虫服务、修改项目名,具体的如下: 代码混淆-3.jpg 软件界面 ZFJObsLib混淆工具全面支持OC项目工程、swift项目和u3d项目!!!...' + '*' * 30) personinfo.isMissing = False 混淆日志 混淆的部分日志,混淆的时候回通过import logging自动生成混淆日志《ZFJ混淆日志.log》,
文章目录 一、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 混淆效果
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混淆更偏向于代码不可读,代码层混淆更偏向于代码的可读性差。
混淆矩阵是一个表,经常用来描述分类模型(或“分类器”)在已知真实值的一组测试数据上的性能。混淆矩阵本身比较容易理解,但是相关术语可能会令人混淆。...让我们从一个二进制分类器的混淆矩阵示例开始(尽管它可以很容易地扩展到两个以上的类): ? 我们能从这个矩阵中了解到什么? 有两种可能的预测类:“yes”和“no”。...我已经将这些项添加到混淆矩阵中,并且添加了行和列总数: ? 这是一个比率的列表,通常是从一个混淆矩阵的二元分类器里得出: 准确率(Accuracy):总的来说,分类器的准确率是多少?
请尊重他人的劳动成果,转载请注明出处:《Android代码混淆技巧》 因为Android是使用Java开发的,所以开发者可以使用ProGuard对代码进行混淆。...ProGuard是一个免费的Java类文件收缩,优化,混淆和预校验器。它可以检测并删除未使用的类,字段,方法和属性。它可以优化字节码,并删除未使用的指令。...最后,预校验的Java6或针对Java MicroEdition的所述处理后的码。 下面就和大家分享一下对使用了第三方库的项目进行混淆的经验。...ProGuard默认会对第三方库也进行混淆的,而第三方库有的已经混淆过了,有的使用了Java反射技术,所以我们在进行代码混淆的时候要排除这些第三方库。...); java.lang.Object writeReplace(); java.lang.Object readResolve(); } -dontwarn com.google.gson
Java 插件是构建 JVM 项目的基础,它为项目增加了很多能力,例如编译,测试,打包,发布等等。 很多插件都是基于 Java 插件实现的,例如 Android 插件。...用法 使用 id 应用插件 plugins { id 'java' } Source sets 源集 Java 插件引入了源集的概念,它在逻辑上表示一组用于编译执行的源文件,这些源文件可能包括源代码文件和资源文件...插件的默认目录结构如下所示, 无论这些文件夹中有没有内容, Java 插件都会编译里面的内容, 并处理没有的内容。...一些扩展插件可能会为给定源集附加编译任务到这里 生命周期任务 Java 插件将它的一些任务附加到基础插件(Java插件自动应用)定义的生命周期任务上。...增加的属性 Java 插件为项目增加了很多新的属性,可以在脚本中直接使用这些属性。
序 本文主要研究一下如何使用proguard混淆java9代码 maven com.github.wvengen...}/jmods/java.base.jmod(!...Home/jmods/java.base.jmod(!...}/jmods/java.base.jmod(!...>/jmods/java.base.jmod(!.
为了防止自己的劳动成果被别人窃取,混淆代码能有效防止被反编译,下面来总结以下混淆代码的步骤: 1....最重要的就是在proguard-project.txt添加混淆的申明了: a....将你不需要混淆的部分申明进来,因为有些类经过混淆会导致程序编译不通过,如下: -keep public class * extends android.app.Fragment -keep public...int); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String... } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String
领取专属 10元无门槛券
手把手带您无忧上云