首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏一猿小讲

    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
  • 来自专栏爬虫逆向案例

    js逆向-猿人学(6)混淆回溯

    猿人学爬虫比赛第六题《Js-混淆回溯》 任务:采集全部5页的彩票数据,计算全部中奖的总金额(包含一、二、三等奖) 该案例也挺简单的,往下看。 地址:http://match.yuanrenxue.com/match/6 首先看起来和第5题差不多。 5 : 6, s = 8 > n ? new $(e) : e.isEven() ? String.fromCharCode((31 & n) << 6 | 63 & this.get(s++)) : String.fromCharCode((15 & n) << 12 | (63 & this.get(s++)) << 6 | 63 & this.get(s++)) } return i

    1.8K40发布于 2021-11-22
  • 来自专栏林德熙的博客

    dotnet 6 使用 Obfuscar 进行代码混淆

    本文来安利大家 Obfuscar 这个好用的基于 MIT 协议开源的混淆工具。这是一个非常老牌的混淆工具,从 2014 年就对外分发,如今已有累计 495.5K 的 nuget 下载量。 而且此工具也在不断持续迭代更新,完全支持 dotnet 6 版本,对 WPF 和 WinForms 等等的支持也是非常好,支持多个不同混淆方式和等级的配置,支持混淆之后生成符号文件。 -- 程序集的引用加载路径,对于 dotnet 6 应用,特别是 WPF 或 WinForms 项目,是需要特别指定引用加载路径的 --> <! 这也能让代码更加混淆 以上就是我推荐的使用 dotnet tool 的方式 除了使用 dotnet tool 的方式之外,还可以自己将混淆过程嵌入到构建过程里面,如此可以实现在开发阶段对混淆的结果进行调试 ,可以从 https://github.com/NotPrab/.NET-Obfuscator 找到更多的混淆工具列表 当然,有混淆工具,也就有反混淆工具。

    2.9K10编辑于 2022-08-12
  • 来自专栏全栈程序员必看

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

    =urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73% 77%6F4%2B%6637%6A");$'. $q6.'{3}.$'.$q6.'{6}.$'.$q6.'{33}.$'.$q6.'{30};$'.$q3.'=$'.$q6.'{33}.$'.$q6.'{10}.$'.$q6.'{24}.$'. $q6.'{10}.$'.$q6.'{24};$'.$q4.'=$'.$q3.'{0}.$'.$q6.'{18}.$'.$q6.'{3}.$'.$q3.'{0}.$'.$q3.'{1}.$'.$q6. $q6.'{7}.$'.$q6.'{13};$'.$q1.'.=$'.$q6.'{22}.$'.$q6.'{36}.$'.$q6.'{29}.$'.$q6.'{26}.$'.$q6.'{30}.$'.

    2.7K20编辑于 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包,以及设置输出路径。下图就是我的设置完的效果。

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

    java离线日期授权解决方案 解决改系统日期 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 ]; A[b[0]] = A("qHu8wLLDF3GtZHy0018HAw==", "tVOKu"); A[b[1]] = b("f0F4QHh9SWdCbW1BckhldUt6Sg=

    1.5K20编辑于 2022-07-11
  • 来自专栏ek1ng的技术小站

    js混淆与反混淆

    JS混淆和反混淆常见思路 在了解了js代码的执行过程后,我们来看如何对js进行混淆。 可以想到比如我们想实现一个js混淆器我们该怎么做呢,要不就是用正则替换,要不就是在AST阶段生成混淆代码,用正则替换实现简单但是效果也比较差,现在js混淆大多数都是在不改变AST的情况下去生成混淆后的代码 代码混淆 这里我们抛砖引玉,讲一些比较常见的混淆方式,实际上混淆的办法非常的多。 function mota() { var a = ['\x59\x55\x64\x6b\x61\x47\x4a\x58\x56\x6a\x64\x61\x62\x46\x5a\x31\x59\x6d \x35\x73\x53\x31\x6c\x59\x57\x6d\x68\x6a\x4d\x6b\x35\x35\x59\x56\x68\x43\x4d\x45\x70\x72\x57\x6a\x46\

    14.4K41编辑于 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.9K30编辑于 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
  • 来自专栏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代码混淆

    PS:对实现原理不感兴趣的同学可跳到结尾看混淆的效果实现,实现过程的代码均在下方贴出 2 思路来源 1. tomcat混淆 本文中的tomcat混淆大部分思路来源自2022年补天白帽大会yzddMr6师傅的议题 JavaWebshell攻防下的黑魔法y4tracker师傅的博客文章:https://y4tacker.github.io/2022/11/27/year/2022/11/%E6%B5%85%E8% Object [] {"UTF-16LE", Boolean.FALSE, Integer.valueOf(4)}; } if (b0 == 0x4C && b1 == 0x6F 无论是tomcat混淆或者是代码层的混淆,都只能增加蓝队的解密/还原代码的成本。tomcat混淆更偏向于代码不可读,代码层混淆更偏向于代码的可读性差。 无论是yzddMr6师傅的议题、y4tracker的文章或者是jspencounter项目,在本次Godzilla二开中都是非常重要的参考。

    1.6K10编辑于 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());})();没改变代码结构,只是对代码中的每一行进行混淆变化

    3.2K01编辑于 2024-12-26
  • 来自专栏韩曙亮的移动开发专栏

    【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.2K00编辑于 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.4K20编辑于 2022-09-02
  • 来自专栏数据科学CLUB

    混淆矩阵

    混淆矩阵是一个表,经常用来描述分类模型(或“分类器”)在已知真实值的一组测试数据上的性能。混淆矩阵本身比较容易理解,但是相关术语可能会令人混淆。 让我们从一个二进制分类器的混淆矩阵示例开始(尽管它可以很容易地扩展到两个以上的类): ? 我们能从这个矩阵中了解到什么? 有两种可能的预测类:“yes”和“no”。 我已经将这些项添加到混淆矩阵中,并且添加了行和列总数: ? 这是一个比率的列表,通常是从一个混淆矩阵的二元分类器里得出: 准确率(Accuracy):总的来说,分类器的准确率是多少?

    2K20发布于 2020-06-17
  • 来自专栏Khan安全团队

    混淆检测

    混淆检测 是一款 Binary Ninja 插件,用于检测二进制文件中的混淆代码和可疑代码结构(例如状态机)。 此类代码结构可能实现 混淆代码 状态机和协议 C&C 服务器通信 字符串解密例程 加密算法 特征 识别大型二进制文件中有趣的代码结构 在 Binary Ninja 的图形视图中突出显示未对齐的指令 高效且与架构无关的实现

    29800编辑于 2025-05-04
  • 来自专栏叽叽西

    ProGuard混淆

    4.预检测(Preveirfy):在java平台上对处理后的代码进行再次检测。 详细介绍 (1) ProGuard 配置 -include{filename}:从给定的文件中读取配置参数。 ),即避免泛型被混淆 -keepattributes Signature -keepattributes EnclosingMethod # 抛出异常时保留代码行号,在第6章异常分析中我们提到过 -keepattributes -keepclassmembers class * implements java.io.Serializable { static final long serialVersionUID; private static final java.io.ObjectStreamField[] serialPersistentFields; ! (java.io.ObjectInputStream); java.lang.Object writeReplace(); java.lang.Object readResolve();

    4K30编辑于 2022-05-17
  • 来自专栏码匠的流水账

    使用proguard混淆java9代码

    序 本文主要研究一下如何使用proguard混淆java9代码 maven <plugin> <groupId>com.github.wvengen }/jmods/java.base.jmod(! Home/jmods/java.base.jmod(! }/jmods/java.base.jmod(! >/jmods/java.base.jmod(!.

    3.2K10发布于 2018-09-17
  • 来自专栏架构师成长之路

    Java(6)-java线程

    多线程是 Java 语言的一个很重要的特征。 多线程程序设计最大的特点就是能够提高程序执行效率和处理速度。Java 程序可同时并行运行多个相对独立的线程。 Java 提供的多线程机制使一个程序可同时执行多个任务。线程有时也被称为小进程,它是从一个大进程里分离出来的小的独立的线程。由于实现了多线程技术,Java 显得更健壮。 程序与程序ThreadDemo1.java表面上看运行结果相同,但是仔细对照会发现,程序OnlyThread.java中对 run方法的调用在程序ThreadDemo1.java中变成了对 start 也就是说看java是运行在什么操作系统上,java这个应用程序进程的线程调度算法就是什么。 Java SE 还声明JVM可以任何方式实现线程的优先级,甚至忽略它的存在。 3、在Linux上Java线程一对一地映射到内核级线程上。

    3.6K21编辑于 2022-04-14
  • 来自专栏林德熙的博客

    修复 SmartAssembly 混淆 .NET 6 时提示 Unable to load runtime config file 失败

    本文告诉大家如何修复使用 SmartAssembly 7.5 混淆 .NET 6 应用时提示 Unable to load runtime config file 失败 因为在 SmartAssembly 7.5 发布时,还没有正式发布 .NET 6 版本,好在 IL 是兼容的,因此跑起来也没有什么问题。

    60610编辑于 2022-01-18
领券