Java应用的防破解方案

news2025/4/19 15:36:20

前言

自从Java诞生以来,其字节码容易被反编译的问题就为程序员所诟病。由此也诞生了不少Java混淆工具和加壳软件。

Java应用的打包

  • exe4j
  • launch4j
  • JSmooth: 已经过时了
  • jpackage:JDK自带的打包工具
  • Installer工具:Inno Setup、NSIS(https://sourceforge.net/projects/nsis/)

混淆器

下面是一些常见的开源的和商业的混淆工具:

  • ProGuard is a popular open-source GPL-licenced bytecode optimizer and file shrinker for Java and Kotlin. It claims to make these applications up to 90% smaller and 20% faster. It also provides some minimal obfuscation by renaming classes, fields and methods. Android Studio uses ProGuard automatically. ProGuard,一款shrinker(压缩:检测和删除没有使用的类,字段,方法和属性), optimizer(优化:对字节码进行优化,并且移除无用指令), obfuscator(混淆:使用a,b,c等无意义的名称,对类,字段和方法进行重命名), and preverifier(审核:在Java平台上对处理后的代码进行预检)工具。缩短进程检测并删去未运用的类、字段、办法和特点。优化器 进程优化字节码并删去未运用的指令。混杂进程运用简短无意义的称号重命名剩余的类、字段和办法。最后的预验证进程将预验证信息增加到类中,这是 Java Micro Edition 和 Java 6 及更高版别所必需的。
  • yGuard is another commonly used open-source obfuscator.
  • ZKM(Zelix KlassMaster) is a full featured commercial Java obfuscator. It shrinks and obfuscates both code and string constants.
  • Allatori is a commercial second generation Java obfuscator. 第二代Java混淆器。所谓第二代混淆器,不仅仅能进行字段混淆,还能实现流混淆。
  • DashO Java and Android Obfuscator is a commercial second generation Java obfuscator. DashO-Pro是第三代的Java混淆器(obfuscator)、压缩机(compactor)、优化工具和水印工具(watermarker)。它能有效保护和防止Java程序被反编译和篡改,是Java代码保护的理想选择。DashO-Pro除了为Java代码提供领先的代码保护外,它还将应用程序的大小缩减到原文件的70%。如果您正在找寻为您的Java程序提供反编译保护、提高运行速度和减少程序体积的办法,那么我们推荐您使用DashO。DashO是一个Java和Android的混用程序,它提供企业级应用的加固和屏蔽,大大降低了知识产权盗窃、数据盗窃、盗版和篡改的风险。分层混淆,加密,水印,自动失效,反调试,反篡改,反仿真器,反挂钩,反根设备解决方案,为世界各地的应用程序提供保护。
  • Stringer Java Obfuscation Toolkit is a commercial Java obfuscator supporting up to Java 13.

There is an easy-to-read introductory article with extra links on bytecode obfuscation on the OWASP Foundation’s website. Another good introductory article on obfuscation techniques is on the DashO website.

名称License地址
yGuardLGPLhttp://www.yworks.com/products/yguard
ProGuardGPLv2https://www.guardsquare.com/en/proguard
Facebook ProGuard分支GPLv2https://github.com/facebook/proguard
DashOCommercialhttps://www.preemptive.com/products/dasho
AllatoriCommercialhttp://www.allatori.com
StringerCommercialhttps://jfxstore.com
Java AntidecompilerCommercialhttp://www.bisguard.com/help/java/
Zelix KlassMasterCommercialhttp://www.zelix.com

加壳

https://gitee.com/chejiangyi/jar-protect

在这里插入图片描述

在这里插入图片描述

采用Golang打包Java程序

Golang
binary-go就是其中一个合适的选择

go get -u github.com/samuelngs/binary-go

安装完之后,我们执行

binary -dir ./[静态文件位置] -out binary

就会产生出许多的go文件,默认它是以20M为一个进行分拆的。

package main

import (
    _ "embed"
    "fmt"
    "os"
    "os/exec"
)

//go:embed binary
var f []byte

func main() {
    _ = os.WriteFile("foobar", f, 0755)
    out, _ := exec.Command("./foobar").Output()
    fmt.Printf("Output: %s\n", out)
}
cmd := exec.Command("java", "-jar", "Astro.jar", "1924 12 12 23 23 23 74.34 34.67")
fmt.Println(cmd.Start())

xjar

xjar的原理是将jar包加密,然后执行的时候再加密,而密钥存放在外部的go可执行文件中。加密和解密都是由java程序完成。

参考链接

  • https://github.com/segator/jbinary
  • go-jdk:Run JVM-based code in Go efficiently
  • https://github.com/core-lib/xjar
  • https://github.com/lqs1848/AllatoriCrack.git
  • https://yworks.github.io/yGuard/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1092893.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis 最流行的图形化界面下载及使用超详细教程(带安装包)! redis windows客户端下载

另一个完全不同的redis图形化界面教程链接(带安装包): https://blog.csdn.net/dream_ready/article/details/133817466 redis图形化界面的压缩包,直接解压缩即可,双击 Another Redis Desktop Manager.exe 即可打开 1、…

数据结构--》掌握数据结构中的查找算法

当你需要从大量数据中查找某个元素时,查找算法就变得非常重要。 无论你是初学者还是进阶者,本文将为你提供简单易懂、实用可行的知识点,帮助你更好地掌握查找在数据结构和算法中的重要性,进而提升算法解题的能力。接下来让我们开启…

IDEA中SpringBoot的启动类文件变成了一个J文件的解决方案

错误如下: 解决方案: 此时可以发现已经恢复成功了

使用Python进行钻石价格分析

钻石是最昂贵的宝石之一。钻石的质量通常以其重量(克拉)、净度、颜色和切工来评估。重量越大、净度越高、色彩纯净、切工精细的钻石价格也越高。其中,4C标准是衡量钻石质量的国际标准,即克拉(Carat)、净度&…

java中将数组转换成字符串

方法1&#xff1a;使用StringBuilder拼接 基本类型和引用类型兼容 int[] arr {1,2,4,6,9};StringBuilder sb new StringBuilder();for (int i 0; i < arr.length ; i) {if (i!arr.length-1){sb.append(arr[i]",");}else {sb.append(arr[i]);}}System.out.prin…

面向对象特征【封装性】

文章目录 OOP封装性内聚&#xff08;Cohesion&#xff09;耦合&#xff08;Coupling&#xff09; 封装性的优势最佳实践实际应用示例 OOP 面向对象编程&#xff08;OOP&#xff09;是计算机科学中的一个核心范例&#xff0c;它的其中一个重要特征是封装性。封装性有助于提高代码…

“之江创客”跨境电商赛区决赛暨浙南新电商发展论坛圆满落幕

9月26日&#xff0c;由商务部中国国际电子商务中心指导&#xff0c;浙江省商务厅等十个部门主办&#xff0c;浙江省电子商务促进中心、温州市商务局、苍南县人民政府承办的“之江创客”2023全球电子商务创业创新大赛跨境电商赛区决赛暨浙南新电商发展论坛在苍南圆满落幕。浙江省…

快递查询方法分享:如何批量查询并筛选超时快递?

快递查询是我们在日常生活中经常需要进行的一项任务。然而&#xff0c;当我们需要同时查询多个快递单号的时候&#xff0c;手动一个一个输入单号进行查询无疑是一项十分耗时的工作。为了解决这个问题&#xff0c;今天给大家介绍一款名为“固乔快递查询助手”的神器。 固乔快递查…

gRPC之gRPC Gateway

1、gRPC Gateway etcd3 API全面升级为gRPC后&#xff0c;同时要提供REST API服务&#xff0c;维护两个版本的服务显然不太合理&#xff0c;所以 grpc-gateway 诞生了。通过protobuf的自定义option实现了一个网关&#xff0c;服务端同时开启gRPC和HTTP服务&#xff0c; HTTP服…

10月14日,每日信息差

今天是2023年10月14日&#xff0c;以下是为您准备的8条信息差 第一、中国石油摘得日本碳信用实货交易首单。据了解&#xff0c;日本交易所集团旗下的东京证券交易所11日宣布&#xff0c;交易二氧化碳排放量的“碳信用市场”正式开始运营 第二、前三季度全国铁路投产新线1402公…

解决git在window11操作很慢,占用很大cpu的问题

【git在window11操作很慢&#xff0c;占用很大cpu&#xff0c;最后也执行失败】 在谷歌输入&#xff1a;git very slow in window 11。通过下面链接终于找到了解决方案&#xff1a; https://www.reddit.com/r/vscode/comments/sulebx/slow_git_in_wsl_after_updating_to_window…

【算法优选】 前缀和专题——壹

文章目录 &#x1f60e;前言&#x1f384;[前缀和](https://www.nowcoder.com/practice/acead2f4c28c401889915da98ecdc6bf?tpId230&tqId2021480&ru/exam/oj&qru/ta/dynamic-programming/question-ranking&sourceUrl/exam/oj?page1&tab%25E7%25AE%2597%2…

Go语言入门心法(一)

Go语言入门心法(一) Go语言入门心法(二): 结构体 Go语言入门心法(三): 接口 一: go语言中变量认知 go语言中变量的定义: &#xff08;要想飞|先会走&#xff09;||&#xff08;翻身仗|抹遗憾 &#xff09; |&#xff08;二八定律&#xff09;(先量变)|(再质变)||&#x…

JVM基础:初识JVM

IDE&#xff1a;IntelliJ IDEA 2022.1.3 x64 操作系统&#xff1a;win10 x64 位 家庭版 文章目录 一、JVM是什么&#xff1f;二、JVM有哪些功能&#xff1f;2.1 解释和运行2.2 内存管理2.3 即时编译 三、有哪些常见的JVM&#xff1f;3.1 常见JVM3.2 Java虚拟机规范3.3 HotSpot的…

工业网关它的功能是什么

随着工业4.0的到来&#xff0c;工业网关在工业自动化领域中的作用越来越重要。工业网关是一种连接不同工业设备的网络设备&#xff0c;它能够实现不同设备之间的通信和数据传输。本文将以HiWoo Box为例&#xff0c;介绍工业网关的主要功能和应用场景。 一、工业网关的主要功能…

推荐几款简单易用的协作化项目管理工具

您是否正在寻找一种有效且简单的项目管理工具来帮助您与团队成员协作?项目管理工具在当今的商业世界中已经变得必不可少&#xff0c;因为它们帮助团队保持组织和生产力。找到合适的工具是困难的&#xff0c;因为有太多的选择。有些工具是为特定类型的项目设计的&#xff0c;而…

zabbix触发器与动作

一、触发器&#xff08;Trigger&#xff09; 1、概念&#xff1a; 在 Zabbix 中&#xff0c;触发器用于监测 Zabbix 监控系统中的各种指标和条件&#xff0c;并在特定条件满足时触发警报。&#xff08;触发器用于定义监控项的报警阈值&#xff09; 2、触发器对象&#xff1a…

CCF CSP认证 历年题目自练Day31

题目一 试题编号&#xff1a; 202206-1 试题名称&#xff1a; 归一化处理 时间限制&#xff1a; 500ms 内存限制&#xff1a; 512.0MB 题目背景 在机器学习中&#xff0c;对数据进行归一化处理是一种常用的技术。 将数据从各种各样分布调整为平均值为 0、方差为 1的标准分布&a…

Windows服务器监控工具

随着Windows服务器成为大多数网络不可或缺的一部分&#xff0c;一些关键业务功能永远依赖于它们的正常运行时间。其可用性和性能受到打击可能会对这些功能产生不利影响&#xff0c;进而极大地影响收入。 由于这些情况&#xff0c;通过主动衡量其性能并使用有效的Windows服务器…

html进阶语法

html进阶 列表、表格、表单 目标&#xff1a;掌握嵌套关系标签的写法&#xff0c;使用列表标签布局网页 01-列表 作用&#xff1a;布局内容排列整齐的区域。 列表分类&#xff1a;无序列表、有序列表、定义列表。 无序列表 作用&#xff1a;布局排列整齐的不需要规定顺序的…