首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏码匠的流水账

    使用proguard混淆java9代码

    序 本文主要研究一下如何使用proguard混淆java9代码 maven <plugin> <groupId>com.github.wvengen []);} 这里target要指定为9版本 问题 duplicate class definitions [proguard] Warning: class [META-INF/versions/9/ -9.jdk/Contents/Home/jmods/java.base.jmod(! module-info.class)] [proguard] Error: Can't read [/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents module-info.class)] (No such file or directory: /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/

    3.2K10发布于 2018-09-17
  • 来自专栏一猿小讲

    Java 混淆

    面对此景,我们有没有办法,去混淆一些核心代码,来捍卫自己劳动成果呢? 作为臣服于 Java 的子民们,一切又都是那么的幸福,诸多开源的轮子帮你解决了这个问题,今天不妨尝试用一用 ProGuard 这款轮子。 ProGuard 是一个压缩(shrink)、优化(optimize)和混淆(obfuscate) Java 字节码文件的免费的工具。 在 Input/Output 中,Add input 选择要混淆的 JAR 包,注意一定要添加待混淆的 JAR 包依赖的所有类库,Add output 指定输出文件名(例如 a.jar);压缩(Shrinking 采用 JD-GUI 打开根据混淆输出的 JAR,效果貌似像那么回事儿。 ?

    1.9K10发布于 2019-10-21
  • 来自专栏全栈程序员必看

    php代码混淆加密算法_java代码混淆加密

    版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    2.6K20编辑于 2022-11-10
  • 来自专栏岚的工作随笔

    Java 代码混淆快速上手

    这种方式就是本篇的主题,代码混淆(Obfuscation)混淆的核心概念在正式开始实战前,先对代码混淆的核心概念有一些认知。场景为什么需要代码混淆呢? 原理Java 是编译成Class字节码再被JVM所运行的,所以编译和运行阶段都是可以混淆的关键阶段。字节码工具: ASM、Javassist、Byte Buddy。 使用 ProGuard 混淆一款老牌的开源代码混淆器,截止目前,github上最新版为:v7.6,支持JDK 23。下载与打开任意版本都可以,内部自带快捷使用、演示包。 环境,可以直接双击lib/proguardgui.jar来启动,这是一个友好的 Java 构建的桌面版。 启动失败请检查环境或者尝试用java -jar 的命令来打开。使用说明首页就是广告,从第一个input / output上手,设置要输入等待混淆的jar包,以及设置输出路径。下图就是我的设置完的效果。

    81100编辑于 2024-11-15
  • 来自专栏代码混淆

    java离线日期授权解决方案 解决改系统日期 Java代码混淆 日期混淆

    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 ==", "MqJrU"); A[b[2]] = C("uX8Ds2zyr8EqcR6UE9pyWlqyUMsAaDgO", "VGtVr"); A[b[3]] = b("QlJbXE5CUltcTkJS ", "zjcdv"); A[b[4]] = A("JktDF9fl3OwDkhnixRjda/Z9EUCprgtJ", "SfSkl"); A[b[5]] = A("JTPA6jQSVMwNKBts2Mfou3sEhcAMbgpN

    1.5K20编辑于 2022-07-11
  • 来自专栏程序猿DD

    Java 9 - 17 特性解读:Java 9

    所以胖哥抽时间梳理了一下从Java 9Java 17的一些常用API的变动。今天先来看看Java 9 都有什么东西。 Java 9 Java 9 最大的变化就是引入了一个JShell和模块化,日常并没有用太多,所以今天不花时间在这些功能上面。 Java 9改善了这一现状,现在你可以: // [1, 2, 3, 4] List<Integer> integers = List.of(1, 2, 3, 4); // {1,2,3} Set<Integer Stream扩展 Stream API 是Java 8中引入的最重要的特性之一。在Java 9中Stream进一步得到了加强。 总结 其实Java 9 还有一些底层的优化,不过对于普通开发者来说了解这些就够用了。上面几个特性,比较常用的就是静态不变集合、try-with-resources优化。

    57330编辑于 2023-04-04
  • 来自专栏码农小胖哥的码农生涯

    Java 9Java 17之Java 9

    所以胖哥抽时间梳理了一下从Java 9Java 17的一些常用API的变动。今天先来看看Java 9 都有什么东西。 Java 9 Java 9 最大的变化就是引入了一个JShell和模块化,日常并没有用太多,所以今天不花时间在这些功能上面。 Java 9改善了这一现状,现在你可以: // [1, 2, 3, 4] List<Integer> integers = List.of(1, 2, 3, 4); // {1,2,3} Set<Integer Stream扩展 Stream API 是Java 8中引入的最重要的特性之一。在Java 9中Stream进一步得到了加强。 总结 其实Java 9 还有一些底层的优化,不过对于普通开发者来说了解这些就够用了。上面几个特性,比较常用的就是静态不变集合、try-with-resources优化。

    1K30发布于 2021-09-29
  • 来自专栏ek1ng的技术小站

    js混淆与反混淆

    JS混淆和反混淆常见思路 在了解了js代码的执行过程后,我们来看如何对js进行混淆。 可以想到比如我们想实现一个js混淆器我们该怎么做呢,要不就是用正则替换,要不就是在AST阶段生成混淆代码,用正则替换实现简单但是效果也比较差,现在js混淆大多数都是在不改变AST的情况下去生成混淆后的代码 代码混淆 这里我们抛砖引玉,讲一些比较常见的混淆方式,实际上混淆的办法非常的多。 常见的混淆/反混淆工具 亲手尝试反混淆 HGAME 2023 Week1 Classic Childhood Game 当然直接执行mota()就能出,但是我们来尝试一下通过调试反混淆这段代码,看看是什么逻辑 然后我们继续步进,可以看出这里其实是一个多次base64解码的过程 这里e的值为aGdhbWV7ZlVubnlKYXZhc2NyaXB0JkZ1bm55TTB0YUc0bWV9 函数的返回值是e然后

    14.3K41编辑于 2023-03-08
  • 来自专栏全栈程序员必看

    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

    3.7K30编辑于 2022-09-02
  • 来自专栏pangguoming

    利用proguard对java web工程代码混淆

    目标: 将代码混淆,也就是给第三方源代码,让他们只能运行,却看不懂代码。 用到的工具: 混淆jar的工具:proguard5.1  下载地址:http://download.csdn.net/detail/lk7688535/9625472 反编译jar的工具:xjad2.2 如上操作后便得到混淆后的jar包,再用xjad反编译就可得到混淆后的源代码了~

    2K10发布于 2018-09-19
  • 来自专栏公众号:懒时小窝

    Java】A Guide to Java 9 Modularity

    引言近期在 Baeldung 看到了一篇有关Java9模块化入门介绍的文章,整体翻译加理解下来发现确实不错,个人认为美中不足的是项目构建过于简单和偏手动,个人建议找一些简单的Java9以及之上的开源项目结合参考使用更佳 原文A Guide to Java 9 Modularity | Baeldung1. Module System (JPMS), or “Modules” for short.Java 9 在包上面引入了新的层次,正式的名称叫做 Java 平台模块系统(JPMS),或者更简单称之为“模块 Default ModulesWhen we install Java 9, we can see that the JDK now has a new structure.安装JDK9之后可以看到现在有一个新结构 比如我们使用Java9运行低版本的Java8的程序时候,可能需要添加模块化。

    47620编辑于 2023-06-27
  • 来自专栏怀英的自我修炼

    Java漫谈9

    Java String 两种不同的赋值方案比较》 http://blog.163.com/woshihezhonghua@126/blog/static/1271436362012101214031911 / 简单来说,就是因为java的编译器会自动给你加上。 由此,我想到两点: 第一是,java中的那些基本数据类型,会不会也是由编译器自动加上new这个关键字的。搜了一下必应,没搜到什么有效的答案。 如果常量池中的“hello”长时间没有被引用,java的垃圾回收器就会自动将它回收,释放“hello”对象所占用的空间。对于堆内存中的“hello”对象也是如此。 这里补充说一下,在java中,双等号是用来判断相等的,在String中它判断的是对象的地址是否相等,若要判断String的值是否相等,要用equals方法。

    76690发布于 2018-03-12
  • 来自专栏云计算linux

    Java 9 揭秘

    Java SE 9之前,JDK构建系统用于生成两种类型的运行时映像 ——Java运行时环境(JRE)和Java开发工具包(JDK)。 Java SE 9之前的JDK和JRE目录布局 在 Java SE 9之前,JDK中: bin目录用于包含命令行开发和调试工具,如javac,jar和javadoc。 Java SE 9中的JDK目录布局 在Java SE 9 的JDK中: 没有名为jre的子目录。 bin目录包含所有命令。 在Windows平台上,它继续包含系统的运行时动态链接库。 ="Windows" JAVA_VERSION="9" JAVA_FULL_VERSION="9-ea+133" 在列表中只显示了三个模块。 Java SE 9仍然支持认可的标准和独立API覆盖机制。 在Java SE 9中,运行时映像由模块组成。 要使用此机制,需要使用更新版本的模块,用于支持标准和独立API。

    93110编辑于 2024-12-19
  • 来自专栏CodeWwang

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

     这俩天遇到了这样的问题,反编译JAR包之后,出现了没法再javac的问题(修改java文件再编译回去的想法泡汤),原因大概是因为JAR的发行商对其作了很多的加密混淆处理,和签名处理。   另外,它还提供一个库,可以让开发人员读写Java类文件和字节码。 这里有一点其实在java文件中定义的各种参数,编译成字节码文件的时候,都变成了字符串,只是逻辑位置不同,处于不同的域中。 // 使用JDK编译代码 javac XX.java 将需要去签名的jar包放到编译好的class文件的目录,或者记住jar包目录,打开DOS窗口: // 执行XX,如果是同一个文件夹 java XX <JAR名称> <去签名之后的JAR包名称> java -cp .

    1.6K20编辑于 2022-08-24
  • 来自专栏红蓝对抗

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

    y4tracker师傅的博客文章:https://y4tacker.github.io/2022/11/27/year/2022/11/%E6%B5%85%E8%B0%88JspWebshell%E4%B9% input = new java.io.BufferedReader(new java.io.InputStreamReader(p.getInputStream())); String line bytes.append(", "); } bytes.append((int) c); } return bytes.toString(); } 9 Godzilla中JAVA_RSA加密器的生成木马逻辑代码修改 也就是将第2点提到的功能应用到Godzilla中JAVA_RSA加密器的生成木马逻辑中(代码逻辑比较简陋粗糙) //修改后的JAVA_RSA 无论是tomcat混淆或者是代码层的混淆,都只能增加蓝队的解密/还原代码的成本。tomcat混淆更偏向于代码不可读,代码层混淆更偏向于代码的可读性差。

    1.5K10编辑于 2024-01-23
  • 来自专栏javascript技术

    「JS混淆」免费JS混淆工具

    github上的,免费的,英文的,JS混淆工具:https://js-obfuscator.github.io/UI:混淆测试:JS源码:(function (){ var domain = "js-obfuscator.com getFullYear() + "," + domain; }; var console_log = console.log; console_log(copyright())})();JS混淆结果 u006F\u0067']; _0xd = (885711 ^ 885702) + (139322 ^ 139320); _0xbe(_0xea());})();没改变代码结构,只是对代码中的每一行进行混淆变化

    2.8K01编辑于 2024-12-26
  • 来自专栏公众号:懒时小窝

    Java】A Guide to Java 9 Modularity

    引言 近期在 Baeldung 看到了一篇有关Java9模块化入门介绍的文章,整体翻译加理解下来发现确实不错,个人认为美中不足的是项目构建过于简单和偏手动,个人建议找一些简单的Java9以及之上的开源项目结合参考使用更佳 原文 A Guide to Java 9 Modularity | Baeldung 1. Java 9 在包上面引入了新的层次,正式的名称叫做 Java 平台模块系统(JPMS),或者更简单称之为“模块”。 在Java9之后,这种反射滥用的行为受到明确限制,我们必须要明确授予其他模块对于我们模块的反射访问权限。 比如我们使用Java9运行低版本的Java8的程序时候,可能需要添加模块化。

    49420编辑于 2023-09-02
  • 来自专栏码匠的流水账

    java9系列(二)docker运行java9

    序 本文介绍下如何在docker运行java9 镜像 docker pull openjdk:9-jdk 启动 docker run -it openjdk:9-jdk /bin/jshell 然后就可以正常使用 (1,2,3,4).stream().limit(3).forEach(e -> System.out.print(e)) 123 退出 jshell> /exit | Goodbye 查看此镜像的java 版本 docker run -it openjdk:9-jdk /bin/bash root@44d1d18351a8:/# java -version openjdk version "9-Debian " OpenJDK Runtime Environment (build 9-Debian+0-9b181-4) OpenJDK 64-Bit Server VM (build 9-Debian+0-9b181 -4, mixed mode) doc Start using Java 9 shell — jshell with docker

    98600发布于 2018-09-17
  • 来自专栏韩曙亮的移动开发专栏

    【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 混淆效果

    5.1K00编辑于 2023-03-28
  • 来自专栏全栈程序员必看

    Android代码混淆混淆规则

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

    2.3K20编辑于 2022-09-02
领券