精华内容
下载资源
问答
  • 最强大的Java混淆器 完美破解 Zelix Klassmaster Java混淆器 破解版 9.0.8
  • 最强大的Java混淆器 完美破解 Zelix Klassmaster Java混淆器 破解版 12.0.1
  • 对外接口联调保护你的Java源码-Java混淆器Allatori-7.5@集成eclipse编译 Obfuscation with Setting Classpath Single Jar Packaging Introduction to Watermarks Using Stack Trace Utility Integration with Apache...
  • Java 混淆器

    千次阅读 2019-10-15 20:06:48
    ProGuard 是一个压缩(shrink)、优化(optimize)和混淆(obfuscate) Java 字节码文件的免费的工具。它可以删除无用的类、字段、方法和属性,可以删除没用的注释,最大限度地优化字节码文件。它还可以使用简短的无...

    【这是一猿小讲的第 60 篇原创分享】

    在脑海中假想一下,在你苦苦经历 81 难,摸爬滚打研制的技术轮子,终于成型得以问世,遂打个 JAR 包投放于万网之中。可是没过几天,同样功能的轮子出现在你的眼前,关键是核心代码都一样,此时你的内心是否会像一万只草泥马奔腾而过呢?

    面对此景,我们有没有办法,去混淆一些核心代码,来捍卫自己劳动成果呢?

    作为臣服于 Java 的子民们,一切又都是那么的幸福,诸多开源的轮子帮你解决了这个问题,今天不妨尝试用一用 ProGuard 这款轮子。

    ProGuard 是一个压缩(shrink)、优化(optimize)和混淆(obfuscate) Java 字节码文件的免费的工具。它可以删除无用的类、字段、方法和属性,可以删除没用的注释,最大限度地优化字节码文件。它还可以使用简短的无意义的名称来重命名已经存在的类、字段、方法和属性。常常用于Android 开发用于混淆最终的项目,增加项目被反编译的难度——摘自百度百科。

    640?wx_fmt=png

    如官方图示(看不清,懵懂就行)

    • ProGuard 会对输入的 JAR 文件按照压缩、优化、混淆、预验证的顺序依次进行处理,最后得到输出 JAR 文件;

    • ProGuard 使用依赖类库(Library jars)来辅助对 Input jars 类之间的依赖关系进行解析,但是依赖类库本身不会被处理,也不会被包含到 Output jars 中。

    1. 工欲善其事必先利其器

    下载最新版的 ProGuard,然后解压,进入到 bin 目录,Windows 下直接双击  proguardgui.bat 即可,而 Mac Os 下控制台运行 proguardgui.sh 即可。

    下载地址:https://sourceforge.net/projects/proguard/files/latest/download

    640?wx_fmt=png

    本次演示是在 Mac Os 下,控制台输入 sh proguardgui.sh。ProGuard 运行启动成功的界面如下。

    640?wx_fmt=png

    2. 工具而已,用就行了

    640?wx_fmt=png

    在 Input/Output 中,Add input 选择要混淆的 JAR 包,注意一定要添加待混淆的 JAR 包依赖的所有类库,Add output 指定输出文件名(例如 a.jar);压缩(Shrinking)和优化(Optimization)不是本次的重点,略过;Obfuscation 中有很多混淆规则,可以自行依据官网进行配置调整;最后选择 Process,点击右下角的 Process! 即可。

    640?wx_fmt=png

    成功操作界面会提示:Processing completed successfully!

    3. 效果如何呢?

    采用 JD-GUI 打开根据混淆输出的 JAR,效果貌似像那么回事儿。

    640?wx_fmt=png

    保护你劳动成果的方式有很多种,本次 2 分钟简单的分享,只是让你们知道有 ProGuard 这款技术轮子存在,有太多的细节需要去实践,大家可以按需,自行按照官网进行深入使用。

    640?wx_fmt=png

    推荐阅读:

    展开全文
  • Allatori是第二代Java混淆器,为您的知识财产权提供全面的保护。尽管大部分第二代混淆器都考虑到保护级别的问题, 我们还是开发了一系列附加功能到Allatori中,这使得逆向工程代码攻击几乎不可能。Allatori不仅仅是...
  • Java混淆器 Java Obfuscator用于保护Java应用程序。 您可以在下面找到有关编译和用法的进一步说明。 入门 去做 去做 布尔型Obf 新的字符串加密 java-> kotlin insn生成器 数字obf crc32错误 类/方法/字段重命名器...
  • Java混淆器

    2012-04-13 12:52:05
    Java混淆器 窗口界面 带中文帮助文档 运行: 命令行:JDK路径/bin/java -Xmx384m -jar Encrypt.jar 说明:如果被加密的文件需要第三方插件(*.jar),请把(*.jar)文件Copy到JDK路径\jre\lib\ext\目录下
  • java混淆器

    2013-08-27 15:39:20
    java混淆器以及使用方法retroguard-v2.3.1
  • 于是就出现了Java混淆编译器,它的作用是打乱class文件中的符号信息,从而使反向工程变得非常困难。 Jocky就是这样一款优秀的Java混淆编译器。 1.2 为什么需要Jocky? 目前业界有不少商业的甚或是开源的混淆...
  • ProGuard是一个压缩、优化和混淆Java字节码文件的免费的工具,它可以删除无用的类、字段、方法和属性。可以删除没用的注释,最大限度地优化字节码文件。它还可以使用简短的无意义的名称来重命名已经存在的类、字段、...
  • Java混淆器jocky

    2019-03-01 16:50:59
    博文链接:https://blueskylan.iteye.com/blog/250052
  • java混淆器jocky

    2010-09-15 12:04:51
    java混淆器,能够对jar、private、public、protect等混淆,防止java的class文件被盗用
  • jocky1.0.3 (原joc) java混淆器 去除jdk版本限制
  • * http://blog.163.com/eye_ziye/blog/static/2144710512013431035733/
  • 无名】一般的java混淆器,主要针对Java应用进行,如只保留main入口,直接针对java字节码的类库进行混淆。而我以前的工作主要是编写公共底层库,需要做一些源代码保护,最后用的是apusic提供的joc.jar混淆编译器,可...

    【虎.无名】一般的java混淆器,主要针对Java应用进行,如只保留main入口,直接针对java字节码的类库进行混淆。而我以前的工作主要是编写公共底层库,需要做一些源代码保护,最后用的是apusic提供的joc.jar混淆编译器,可直接针对源代码进行混淆编译。目前joc下载链接已经失效,而且不支持jdk1.5以上版本了。无奈只能重新对Java混淆器进行选型。Allatori 功能上似乎还行,就是不知道有没有有效期等其他问题。试验了proguard4.2/Allatori-2.1-Demo/yguard-2.2.0三种。Allatori效果最好,但是无法通过Android的编译,其次是ProGuard,可选项很多,但是很遗憾没有字符串加密功能。】

    http://www.zxbc.cn/html/20070419/6497_4.html Java混淆编译器(转apusic.com)-java基础 作者:佚名 出处:中国自学编程网收集整理   发布日期:2007-04-19   
    翻了几页Java虚拟机规范之后突发奇想,别的混淆器都是在编译好的byte code上做文章,能不能从源码直接编译成经过混淆的class文件呢?就这样花了一个多星期的时间写了一个Java混淆编译器(Java Obfuscator Compiler)。
    A: 下载joc.jar (http://www.apusic.com/product/cpsy.htm),运行java -jar joc.jar就可以启动Java混淆编译器,joc的命令行参数和javac完全相同,但增加了一个新的参数-Xobfuscate,它的用法如下:
           -Xobfuscate:<level>
    其中<level>指定混淆级别,可以是以下几种级别:
           -Xobfuscate:none        不进行混淆
           -Xobfuscate:private     对所有private访问级别的元素进行混淆
           -Xobfuscate:package     对所有private或package private元素进行混淆
           -Xobfuscate:protected   对所有private, package private, protected元素进行混淆
           -Xobfuscate:public      对所有的元素都进行混淆
           -Xobfuscate:all         相当于-Xobfuscate:public
    如果使用-Xobfuscate不带级别参数,则相当于-Xobfuscate:package

    http://bbs.pediy.com/showthread.php?t=37063 关于Java混淆器
    Java混乱器现在有很多现成的东西,比如 JShrink , Zelix KlassMaster,JODE, DashO, 等等。
    如果想要自己编写混乱器,那么你最先应该了解 Java Class 文件的规格,同时要深入了解字节代码的格式等等,而且要通过对面向对象的理解,来进行名城的混乱,等等
    难,如果想交流关于混乱器的制作,请合伙联系 vhly@163.com
    --
    关于混乱器,我想Jshrink可以满足初步的需求,如果想要更高强度的,可以使用Zelix KlassMaster, DashO等,但是这两个还都需要花钱呢。下面列举混乱器的特性:(按强度排列
    ProGuard 开源混乱器,支持脚本控制,可以使用GUI界面,重命名a-z A-Z等单个字符名称。字符串不加密,支持 J2ME
    RetroGuard 开源混乱器,支持脚本控制,可以使用GUI界面,重命名a-z A-Z等单个字符名称。包括优化代码,字符串不加密 支持 J2ME
    yGuard 同上两个,支持Ant自动构建
    CodeShield 使用 Cnnn 来命名 如 C001 C002 等等 字符串不加密 GUI支持
    JCloak 同上
    JODE   支持 Obfuscator Decompiler Encryptor 支持混乱、反编译、加密
    JShrink 使用Java Api对类进行重命名,支持字符串加密,支持 J2ME JProof 1stBarrier 未分析
    Marvin 不支持GUI,支持脚本,字符串加密
    Smokescreen 15天试用,支持字符串加密支持J2ME 保护时有漏洞,类文件原始字符串内容不删除***
    DashO 商业使用,有强大的功能,优化,加密,支持广泛
    Zelix KlassMaster 保护功能非常强大,支持字符串的复杂加密保护,字节代码混乱,堆栈混乱,支持异常重构
    对于制作混乱器,首先要有一个功能完善的类文件分析库,然后通过各种算法。对于类文件的名称、成员、方法以及字节代码进行修改。
    ---
    http://www.javaeye.com/news/2303 Java混淆器Allatori 2.1版本发布
    Allatori属于第二代混淆器,具有全方位保护你的知识产权的能力。Allatori具有以下几种保护方式:命名混淆,流混淆调试信息混淆字符串编码,以及水印技术对于教育和非商业项目来说这个混淆器是免费的。 2.1版本支持war和ear文件格式,并且允许对需要混淆代码的应用程序添加有效日期。这里是Allatori的官方网站(http://www.allatori.com/)和演示版的下载地址。【[INFO] Expiry date set to 一月 01, 2000?是不是demo版本就不可使用?】
    ---
    http://www.javaeye.com/topic/772 Java 混淆器 RetroGuard 的使用方法
    Java 代码编译后生成的 .class 中包含有源代码中的所有信息(不包括注释),尤其是在其中保存有调试信息的时候。所以一个按照正常方式编译的 Java .class 文件可以非常轻易地被反编译。反编译工具有很多种,其中非常强大的一种是 jad。 
    为了避免出现这种情况,保护开发者的劳动,又有一种叫做 Java 混淆器的工具被开发出来。Java 混淆器的作用是对编译好的代码进行混淆,使得其无法被反编译或者反编译后的代码混乱难懂。Java 混淆器也有很多种,其中比较强大的一种是 RetroGuard(只说比较强大是因为我对其功效还是有些怀疑的)。

    这里我介绍一下 RetroGuard 的使用方法。 
    将下载的 .tar.gz 或者 .zip 文件解压。有用的只有 retroguard.jar 一个文件,其它的是源代码和文档。 
    RetroGuard 是针对 jar 文件做混淆的。使用之前需要先配置一下。可以手工编辑配置文件,更好的方法是使用 RetroGuard 提供的 GUI 工具来生成配置文件。使用方法如下: 
    java -classpath retroguard.jar;xxx.jar;yyy.zip;... RGgui 
    然后在 GUI 的 Wizard 中设置各个参数。上面的 -classpath 中应该列出要混淆的 jar 所依赖的所有的包。 
    RGgui 的详细使用方法可以看 RetroGuard 的文档 docs.html。 
    配置文件生成后,就可以运行 RetroGuard 进行混淆了。使用方法如下: 
    java -classpath xxx.jar;yyy.zip;... RetroGuard vvv-unofb.jar vvv.jar vvv.rgs vvv.log 
    其中 vvv-unofb.jar 是未混淆的 jar 文件,vvv.jar 是混淆后生成的 jar 文件,vvv.rgs 是配置文件,vvv.log 是日志文件。缺省的配置文件名称为 script.rgs,缺省的日志文件名称为 retroguard.log。

    在生成配置文件时需要注意的是: 
    1、所有 public 的类名、方法名、变量名应该全部保留。因为所有设置为 public 的内容代表了整个包对外表现的接口。若某个内容不想为外界访问,就不应该设置为 public 的。 
    2、若包中某个类使用了 java.lang.Class 或者 java.lang.ClassLoader 中的某个方法加载了一个类,若这个类在包外,不需要特别处理;若这个类在包内,则需要保留这个类的类名,否则混淆后会找不到这个类。 3、在包中的所有调试信息(源文件名、行号、变量/参数信息等等)应全部删除。

    RetroGuard 还有一种打 patch 的所谓“增量式混淆”的使用方法。方法的要点是把上一次混淆生成的 log 文件作为下一次混淆的配置文件,这样就可以生成一个仅包含修改的 patch jar。在使用的时候把这个 path jar 放在 CLASSPATH 的上一次混淆 jar 之前。这种增量式混淆有两种方法: 
    1、每个 patch jar 仅包含上一个版本混淆以来发生的变化,这样每个 patch jar 会很小,但是 CLASSPATH 会越来越长。 
    2、每个 patch jar 包含上一个主要版本(2.0、3.0、4.0)混淆以来发生的变化,这样两个主要版本间的 patch jar 会越来越大。但是 CLASSPATH 只需做很小的变化。 
    以上的两种方式我都不喜欢,感觉都不够优雅。 
    ---
    http://www.javah.net/JAVArenzheng/20070720/4237.html 混淆器retroguard使用经验(原创)
    后来我仔细想了原因,原来pulic static void main(String []) 已经被混淆成了a()方法了。一时我真不知改怎么解决。于是我开始查找retroguard使用说明,结果发现它还有更多用法,比如可以保留某些类不混淆。具体设置就是利用script.rgs文件。retroguard提供了一个编写script文件的图形界面
    java RGgui
    按照提示,很容易编写script文件,我设置了保留包含有main方法的那个类(即Main Class)不混淆。这样得到script.rgs文件后,在命令行输入:
    java RetroGuard bandviewer1.01-unob.jar bandviewer1.01-ob.jar script.rgs
    ---
    资源下载
    proguard下载(http://proguard.sourceforge.net/ 官方网址无法下载)
    http://internap.dl.sourceforge.net/sourceforge/proguard/proguard4.2.zip
    http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/p/pr/proguard/proguard4.2.zip
    Allatori 2.1版 http://www.allatori.com/downloads/Allatori-2.1-Demo.zip 【能对字符串加密,支持有效期处理
    RetroGuard http://www.retrologic.com/downloads/retroguard-v2.3.1.zip

    http://www.leesw.com/ 】smokescreen java obfuscator的website 
    http://www.retrologic.com/retroguard-main.html 】RetroGuard java obfuscator的website 
    http://www.codingart.com/codeshield.html 】CodeShield Java Bytecode Obfuscator 
    http://www.meurrens.org/ip-Links/Java/CodeEngineering/jobe-doc.html 】JOBE 
    http://www.preemptive.com/tools/ 】DashO(不是共享软件) 
    http://www.condensity.com/ 】Condensity(不是共享软件,不过有5天试用版) 
    http://www.force5.com/servlet/EvalDownload 】Jcloak 
    http://www.jproof.com/downloads.html 】1stBarrier 
    http://www.2lkit.com/products/2LKitObf/index.htm 】2lKit Obfuscator 
    http://www.duckware.com/jobfuscate.html 】Jobfuscate 
    http://www.meurrens.org/ip-Links/Java/CodeEngineering/zelixDoc/documentation/index.html 】Zelix 
    http://www.drjava.de/obfuscator/ 】Marvin 
    http://www.e-t.com/jshrink.html 】Jshrink

    1stBarrier (JProof): http://www.jproof.com/products.html 2LKit Obfuscator: http://www.2lkit.com/products/2LKitObf/index.htm Condensity: http://www.condensity.com/ Dash-O (preEmptive): http://www.preemptive.com/ JCloak (Force 5): http://www.force5.com/ JOBE: http://www-personal.engin.umich.edu/java/unsupported/jobe/doc.html JObfuscator (Helseth): http://www.helseth.com/ Jshrink (Estridge Technology): http://www.e-t.com/jshrink.html RetroGuard (RetroLogic): http://www.retrologic.com/ SourceGuard (4thPass): http://www.4thpass.com/sourceguard/ Zelix KlassMaster: http://www.zelix.com/

    Java开源混淆器比较(:ProGuard       JavaGuard       RetroGuard       yGuard       JODE)
    ProGuard   是一个免费的   Java类文件的压缩,优化,混肴器。它删除没有用的类,字段,方法与属性。使字节码最大程度地优化,使用简短且无意义的名字来重命名类、字段和方法   。eclipse已经把Proguard集成在一起了。
    JavaGuard (http://sourceforge.net/projects/javaguard/ )JavaGuard是一个通用的字节码模糊器,旨在容易地适合你的规则建造和测试进程,保证你的有价值的代码更安全,使其不易被反编译以及其它形式的反向处理。
    RetroGuard是不错的Java混淆器,在JBuilder7的企业版中也带了这个混淆器。
    yGuard 是RetroGuard的一个升级版本自带一个ANT任务 【虎.无名:混淆效果很不好,还不如ProGuard 4.2,而且后者有GUI配置界面,方便很多,可选项也很多。】
    JODE包含一个Java混淆器与一个Java优化器。通过一个脚本文件可以控制Class文件的多种优化方式。它支持以下操作:1.能够把Class,method,field   和local   names   重命成简略的,模糊的或者特定名字的或者依照一个转换表. 2.除去debugging   信息. 3.除去"坏死的"代码(classes,   fields,   methods). 4.优化局部变量的分配。

    展开全文
  • 声明:本文内容仅供学习交流,请勿用于非法用途Zelix KlassMaster是一款优秀的Java混淆器,但试用版有时间限制,偶然间从一个群里获得了ilanyu上传的ZMK9.0.8试用版,尝试运行时发现已经过期。目前的ZKM已经不再屏蔽...

    声明:本文内容仅供学习交流,请勿用于非法用途

    Zelix KlassMaster是一款优秀的Java混淆器,但试用版有时间限制,偶然间从一个群里获得了ilanyu上传的ZMK9.0.8试用版,尝试运行时发现已经过期。


    目前的ZKM已经不再屏蔽中国大陆IP了,但是下载试用版有个限制,就是需要用公司邮箱,不能用免费的邮箱如Hotmail, Yahoo, Gmail等等。

    公司邮箱,如果有的话建议优先使用公司邮箱。如果实在没有或者公司限制邮箱的使用范围可以用下面的方法。

    仔细推敲里面的描述我们发现,不能使用免费邮箱,那么大体上可能能使用独立域名邮箱,自己买个域名,买个云服务器,搭建一个邮件服务器就可以实现。

    ZKM试用版下载:http://www.zelix.com/klassmaster/download1.html

    试用版官方有两个限制

    1.每个类最多混淆2个方法

    2.试用时间只有30天

    本文只谈论去除试用时间的限制,不讨论方法数目的限制

    首先试用-verbose参数输出其启动过程

    java -verbose -jar ZKM.jar

    输出结果如下


    为了简化这个输出过程,我们可以使用-javaagent写代码过滤Java本身的类

    参考这篇文章的输出所有类,将代码

    public byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws IllegalClassFormatException {
            System.out.println(className);      
            return null;
        }

    改成

    @Override
    	public byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined,
    			ProtectionDomain protectionDomain, byte[] classfileBuffer) throws IllegalClassFormatException {
    		if (className.startsWith("com/zelix/")) {
    			System.out.println(className);
    		}
    		return null;
    	}

    打包成ZKMAgent.jar

    执行如下命令

    java -javaagent:ZKMAgent.jar -jar ZKM.jar

    输出


    推测判断时间在com/zelix/lh类里

    至于具体是什么意思呢,反编译看下


    只凭这点还真不好找,好在从网上找到了一个8.0的破解版

    下载地址:https://download.csdn.net/download/luffybaby/9915433

    新版肯定是在旧版基础上改的,用上面的方法找到旧版中的这个类


    旧版a方法比新版的a少一个参数,功能上我们暂且认为是一样的。

    我们直接修改a方法体,直接返回0,发现时间变了

    所以说,这个方法的返回值会影响时间,但是直接将这个值成很大的数9999999999000L,也只影响到了Evaluation has expired后面输出的时间值,没有弹出窗口。

    注意到8.0里面判断了传入的参数,然后返回不同的值,我们这里仿照它,先重写方法体调用System.out.println输出这个参数


    可以看到,输出了三个值,说明这个方法调用了三次,把这三个值按照同样的判断重写方法体。修改成功!



    展开全文
  • java混淆器的作用

    2012-10-12 09:34:58
    用java写的代码 编译后成为.class文件 但是这个class文件...正常的,编译后供别人使用,当别人反编译class文件想查看源代码时发现的是被混淆后的代码,虽然这些混淆后的代码也可以分析出来但是很困难java混淆器的作用
  • 很好用的java代码混淆工具,第一次使用比较难上手,之后就好了。但是只是对代码的混淆,想杜绝反编译是不可能的了
  • ProGuard 5.3.3 是一款免费的...使用ProGuardGUI,您可以在混淆设置中创建,加载,修改和保存和快速处理您的代码, 或者使用您已保存的设置从命令行可以运行ProGuard.使用ReTrace(折回)部分的GUI你可以反混淆你的堆栈跟踪.
  • java混淆器 RetroGuard

    热门讨论 2009-12-15 10:19:54
    java混淆器 RetroGuard 免费提供源码 可运行jar文件 Java 代码编译后生成的 .class 中包含有源代码中的所有信息(不包括注释),尤其是在其中保存有调试信息的时候。所以一个按照正常方式编译的 Java .class 文件...
  • 很强大的java代码混淆工具 Jocky

    热门讨论 2014-09-30 15:29:52
    大家熟知的Progaurd只能对class文件进行混淆,也就是必须先把java源码编译为class文件,然后再进行混淆 Jockey跟其他混淆工具不同的是:它是直接对编译过程做文章,也就是在把java文件编译为class文件的过程中对代码...
  • Java+IDEA+Maven混淆打包

    2019-07-15 15:33:10
    IDEA中使用maven打jar包,然后使用工具混淆代码,亲测有效
  • java源码加密混淆技术 proguard,可以有效保护java源码
  • Java字节码的开源优化 ProGuard是最受欢迎的Java字节码优化。它使您的Java和Android应用程序缩小了90%,速度提高了20%。ProGuard还通过模糊类,字段和方法的名称来提供对逆向工程的最小保护。 ProGuard可以...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 118,931
精华内容 47,572
关键字:

java混淆器

java 订阅