Java怎么防止反编译?求教

众所周知,Java反编译十分容易,但如何防止反编译呢?如果反编译了,还有什么安全可言呢?

0

4个回答

代码混淆,核心代码放服务器

0
u014680022
denghaoyu0147 代码混淆的话维护时看不懂啊
3 年多之前 回复

1.proguard,已经下载好,与该文件同目录下。版本为4.7。其原理就是将jar中的包名、类名、属性名、方法名还有代码重新命名、编写一遍,
2.尽量下载最新的proguard,否则混淆代码时可能会报与你的jdk版本不兼容的错误(我使用的是1.7)
3.解压proguard,执行 bin目录下的proguardgui.bat。
    4.运行,点击左边“input/output” 菜单,......
答案就在这里:java防止反编译
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

0

代码混淆是对生成的class目标文件混淆,混淆可以加大反编译和阅读反编译后代码的难度。你的原始源代码不受影响。

0

代码混淆+加固。混淆时将map保留,后续分析异常需要

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
java class防止反编译,最大限度的保护自己的代码
java以其跨平台、免费、安全等特点,被越来越多的应用到大型的系统中。正是由于其代码的跨平台性,是解析型语言才使得它很容易被反编译成源码,从而造成公司代码的泄露,设置时运用框架的泄露。本文从各个方面介绍了防止class被反编译。从而保护自己的知识产权不受侵害。 包括混淆技术,加密技术等。
教大家防止Jar包被反编译
加密的方法就是,向Jar注入无效代码(不合法的,或者根本不是代码的字符串)。 那么无效的代码又怎么能正确运行呢? 答案就是,你要保证你的代码永远不会执行到那一步。 我作一个简单的例子说明: 我们建立一个项目: package com.TestJar; public class Main { public static void main(String[]
java项目的jar包加密(防止反编译)
最近给公司写了一个项目,需要给其他公司用,为了不让别人看到源码,将项目打成了jar包,但是jar包用反编译工具还是能很轻松的看到源码。所以想到了加密jar包,用的是ProGuard,下载地址:https://sourceforge.net/projects/proguard/files/。       其实jar包加密只是增加了反编译时间,理论上还是能破解的,但是有总比没有好。废话少说,开始吧。
最简单的 java 防反编译技巧
public class CompileForbid { public static void main(String[] args) { try { System.out.println("-------"); //防止反编译的处理 if (654789 == new Random().nextInt()
如何加密java web应用程序代码(.class文件),防止被反编译
使用手册一、准备好源程序(.class文件)1. 把程序发布到某个目录下,比如tomcat的webapps目录下。 二、注意事项2. 不支持打包好的文件(比如jar,war等),请将打包文件解压后,再运行本程序进行加密。3. 加密工具会将.class源文件直接替换成已经加密的文件,所以请事先做好程序备份。4. 加密文件最好不超过200个,否则系统运行可能出现问题。5. 不支持spring,请将涉及...
程序防止反编译(或者说增加反编译的难度)的一些思路
1.代码混淆。 看过关于Javascript代码混淆的文章,当时没仔细看,只是知道了有这么回事。 另外,C#之类的当然也可以混淆。 2.加密程序集,调用时加载解密dll 3.设计“逻辑炸弹”,当一个进程或程序被反复跟踪,就“引爆”整个程序,使程序崩溃,进而无法被反编译。
java代码保护,防止反编译
保护企业成果,防止反编译,有效的保护知识产权。 欢迎下载
JAVA加密 保护源代码 防止反编译的工具
众所周知,java开发语言提供了很方便的开发平台,而且开发出来的程序很容易在不同的平台上面进行移植,现在越来越多的人使用它开发软件。 Java有了它方便的一个方面,但是他同时也带给了开发者一个烦恼,这就是保护的办法不多,而且大多数不是很好用,这样自己辛苦开发出来的程序很容易被人反编译过来而据为己有,一般情况下,大多数的人都是用混编器(java obfuscator)来把开发出来的程序进行打乱以达到没有办法来反编译观看源代码,但是这种办法在网上很容易找到相关的软件来重新整理,那么这个混编只能控制一些本来也没有办法动您的软件的人,而对于一些掌握工具的人几乎是透明的,还有就是利用硬件加密锁,但大多数公司提供的硬件加密锁只是提供了一些dll的连接或简单的api调用,只要反编译他们,就很容易把一些api调用去掉,这样硬件加密锁也就不起作用了,但是现在到底有没有好的办法呢? 市场上现有的几款防止反编译工具其实都是改进了加载过程。但是加载到JAVA虚拟机后一样可以得到CLASS字节码的。 只要懂JAVA原理的人其实很用意破解的. JAVACOMPILE 这款工具就不一样了,javacompile 它是修改了虚拟机内核, 用户目录里没有需要的JAVA字节码,而是当JAVA需要调用函数的时候才通过网络下载相对应的已经二次编译的字节码,就算用户通过 CLASS.getClass 也得不到可以用来反编译字节码。 真正意义上保护了JAVA知识产权。 个人版限制编译30个CLASS文件,文件打包方式下载。
java jar包反编译
java jar包反编译,适合学习代码使用。很好用以已验证。
java class加密防止反编译v2.0
本工具是对java class文件进行加密保护防止反编译的工具!本工具全面支持linux/unix/windows操作系统。 继推出v1.0版本后,获得了用户大量的支持与的反馈,我们再次推出本v2.0版,对加密算法进行了更大的改进,安全性大大提升! 众所周知,java编译后的class文件是一种中间字节字文件, 很容易被反编译工具反编译,而传统的java源代码保护方法基本都是采用混淆的方式, 但这样会带来很多麻烦,而且也不能真正保护class文件, 本工具是对class文件进行加密,采用jni的方式解密运行, 加密算法达到256位,加密后的class文件不可能被破解,反编译工具也对加密后的class文件无能为力。 运行方式: 运行时,要能正确的加载加密后的class文件, 必须使用我们提供的动态链接库classloader.dll(wndows操作系统)或者libclassloader.so(Linux、Unix操作系统)。 执行java时带上参数-agentlib:<动态文件所在路径>\classloader 注意此处不要后缀名.dll(或者.so)。 如: 我把classloader.dll放在C:\目录下; 运行加密后的class文件命令如下: windows下执行java: java -agentlib:C:\classloader Sample Linux、Unix等系列操作系统下执行java: java -agentlib:/home/classloader Sample 当然如果class文件没加密,这样运行也不会出错! 应用场合: 独立的应用程序,运行java时,带上参数-agentlib:<动态库文件所在路径>\classloader Tomcat、Jboss等Java application server修改启动脚本, 把执行java的命令行后面加上参数-agentlib:<动态链接库文件所在路径>\classloader 适应环境: 操作系统:所有操作系统,Windows系统、Linux/Unix,只是运行时, 使用的动态链接库文件不一样而已,其它配置完全一样。 jdk必须1.5以上。
Spring加载加密后的文件,防止反编译
公司的产品需要放在合作伙伴的产品里面部署到客户那边,为了防止他方很方便地反编译我们产品,需要对其进行保护。 网上有免费的如ProGuard,收费的有 Zelix 等,公司也购买了一个加密狗什么的。公司总是希望不花钱或者花很少的钱完成某种程度的保护,甚至有点是防君子不防小人了。免费的ProGuard只是混淆工具,而且不能进行Flow Obfuscation,且不说人家Debug就能厘清代码调用逻辑
针对Java Web部署和发布项目的加密和反编译的一些看法
【需要加密的反编译的一些场景】 1、公司开发的java web要项目打包成war包往外卖,怎么对war包进行处理,防止其自己拷贝后往外出售呢,如果不通过加密的方式,还有其他方式防止其出售呢. 2、大家都知道的,class很好反编译。出于对知识产权和自身软件的保护,不希望任何人都可以看到源代码或者被反编译工具进行解密。 【java web发布运行在tomcat 大概加密与反编译过程如下】 对
防止APP被反编译,混淆设置
1.首先需要在app下的build.gradle下配置,true表示编译时会混淆代码 [html] view plain copy span style="font-size:18px;">buildTypes {           release {                      minifyEnabled true       
java防反编译jar
java jar包防反编译工具,混淆代码,可以对类名,String,变量,数字等进行混淆,
防止反编译混淆工具
.NET Reactor是一款功能强大的代码保护以及许可授权管理系统软件,允许.NET软件开发人员能够轻松,安全地保护他们的应用程序。该方案是非常容易使用,清洁,良好的组织和直观的界面,帮助开发人员保护他们的.NET软件在一个安全和简单的方式。.NET反应堆能够产生不能被直接理解为CIL天然exe文件,并且源是完全不可访问的。它完全避免写在VB.NET,C#,J#,Delphi.NET等任何反编译.NET程序集,通过各种方法。
[教程]防止模块被反编译的有效方法(吴总提供):
点击阅读原文防止模块被反编译的有效方法:请在模块中建立一个或多个窗口,将其&quot;可视&quot;属性设置为假,窗口上放一些随机类型的组件(尽量不要用常用组件),重要数据分散放在这些组件的属性里面,模块中的代码动态载入这些窗口,从这些组件属性中读入相关数据使用.原理: 由于易语言有相当多类型的组件,而每个组件的属性数据保存格式都不一样,模块反编译想把每种组件中的属性数据反编译出来具有相当的难度,所以数据放在组件属...
android 防止反编译的若干方法
第一种方式:混淆策略 混淆策略是每个应用必须增加的一种防护策略,同时他不仅是为了防护,也是为了减小应用安装包的大小,所以他是每个应用发版之前必须要添加的一项功能,现在混淆策略一般有两种: 对代码的混淆 我们在反编译apk之后,看到的代码类名,方法名,已经代码格式看起来不像正常的Android项目代码,那么这时候就会增加阅读难度,增加破解难度,像这样的代码混淆:
.net dll或者exe避免被反编译的方法
1. 使用商业版混淆器软件 2. 核心代码用C++封装dll,提供给.net 调用
Android安全之防止被反编译
DEX加壳保护,DEX指令动态加载保护和高级源码混淆保护。 DEX加壳保护通过将DEX文件隐藏,并生成一个类似于虚像的壳文件,阻止黑客利用反编译工具获取App源码、so库保护,使得C/C++ 层面的代码安全也得到防护。加上资源文件保护(图片、音频等文件的防查看和防修改)、xml 主配文件保护(对主配文件进行二次签名)、内存保护等措施,可以基本保证App的动态和静态安全。
防止别人反编译你的软件
翻看历史记录,可以看到之前有写过一篇文章,简单讲解了怎么反编译,或者说破解C#软件。由于大公司的项目很注重安全性,这里通过移动端APP来为例,通过几个方向点,说一下避免别人反编译你软件的几个思路,以下仅限于技术方面的处理方式,暂时想到这么多,其它的自我发散思考吧。 1.混淆代码 这是软件防反编译加密技术的必要项,也是最直接而有效的方式,对应用程序的代码进行混淆,保证源码被逆向后无法解析代...
[C#防止反编译大法]
[C#防止反编译大法]
防止APK被反编译
最近项目要打包,就想到了要防止被反编译,网上呢,教程也有许多,但是我还是直接选择了一个在线平台来处理。我用的是腾讯云的乐固加固,附上地址——http://console.qcloud.com/legu/myapplication/index也就不需要添加什么keep了。点击上传应用。这里我这显示的是“加固成功”,因为我已经弄完了。新上传的应用需要你自己点击加固,还在这个位置。加固成功后,下载加固包...
android 加固防止反编译-重新打包
1、需要加密的Apk(源Apk) 2、壳程序Apk(负责解密Apk工作) 3、加密工具(将源Apk进行加密和壳Dex合并成新的Dex) 主要步骤: 我们拿到需要加密的Apk和自己的壳程序Apk,然后用加密算法对源Apk进行加密在将壳Apk进行合并得到新的Dex文件,最后替换壳程序中的dex文件即可,得到新的Apk,那么这个新的Apk我们也叫作脱壳程序Apk.他已经不是一个完
几维安全推出全新Java2C加密方案,完美解决Java代码反编译!
“能够从理论上完全解决Java代码反编译的问题,Java指令转换为汇编指令前能无缝接入几维虚拟机保护。”目前,市面上安卓的APP应用通常采用Java语言编写的,由于其开发门槛低,容易被反编译。黑客通过反编译APK得到源码后,会在应用中插入代码,获取利益,比如添加广告、盗取用户账号密码、后台定制活动等,对企业和用户造成极大的危害。而近年来由于移动应用行业的利益吸引,以及逆向破解工具(如IDA Pro...
JVMTI 实现 springboot jar包的加密(防止反编译)
421342
asp.net反编译和防止反编译方法
反编译,可以查看dll和exe文件中的源码。开源工具:ILSpy  防止反编译,采用混淆器对dll程序集和exe程序进行混淆处理。开源工具:ConfuserEX
Jar Java 反编译
Java反编译工具,提供可视化界面。 Jar反编译工具,提供可视化界面。
防止delphi被人反编译-加壳后发布-delphi软件保护器
防止delphi被人反编译 加壳后发布-delphi软件保护器 辛苦做的delphi软件被人解密了,是多么可惜的事情 有了这个软件,可以防范这些,充分保护你的软件 非常好的一个保护工具
Android Studio 基于NDK加密,防止反编译获取加密key
Android Studio 基于NDK加密,防止反编译获取加密key一、配置ndk路径(不会请自行百度)二、新建JniUtils类实现native方法1. JniUtils代码public class JniUtils { public static native String getStringC(); public static native String myEncrypt(S
c# 程序加密 防止反编译
.NET Reactor是一款功能强大的代码保护以及许可授权管理系统软件,主要用于开发人员保护其.NET软件程序,.NET Reactor支持所有支持.NET编译的程序开发语言。
JAVA防反编译&许可授权管理
由于项目需要,需要对发布的程序进行管理,核心的有两点,一是将代码进行加密防止反编译破解,二是想看下有没有合适的许可授权管理。 JAVA反编译工具 另一篇工具推荐 试用了下JAD,破解起来还是很方便的。接下来找防反编译的工具。 首先要明确的是:防反编译只是增加反编译的难度,没有办法做到完全防止。商业上要用的话可以考虑商业加密软件狗。 JAVA防反编译技术介绍 根据《两种防反编译工具》找到两
C#写COM组件
求教求教求教求教求教求教求教
XJar: Spring-Boot JAR 包加密运行工具,避免源码泄露以及反编译
XJar Spring Boot JAR 安全加密运行工具,同时支持的原生JAR。 基于对JAR包内资源的加密以及拓展ClassLoader来构建的一套程序加密启动,动态解密运行的方案,避免源码泄露或反编译。 功能特性 无需侵入代码,只需要把编译好的JAR包通过工具加密即可。 完全内存解密,杜绝源码以及字节码泄露以及反编译。 支持所有JDK内置加解密算法。 可选择需要加解密的字节码或其他资源文...
jar包反编译小工具
java开发过程中,有时候需要反编译一些jar包,学习其对应的代码,本工具可以对jar文件进行反编译,方便查看jar的具体内容
c/c++加密方案,保护代码不被反编译
找了很久的加密方案仍然没有找到?恰好这里有一份只需五分钟,不妨一试?你要做的就是这么简单:1、获取定制SDK;2、一键加密;3、发许可;4、发布软件那么这份定制版的加密SDK,你的选择?A 立即获取 B 赶紧使用 C 马上注册这份定制版SDK,你可以用来:1 加密代码无论你是用什么开发语言写的:Java、.Net、C#、Python、Revit、Ru...
Unity防反编译的两种手段
Unity防反编译的两种手段。
如何实现将自己的核心代码打包添加license和限定使用时间【防止反编译】
       我们身处于拿来即用的时代,我们身处于物联网高爆发的时代,我们身处在知识产权弱于保护的时代,我们身处在幸幸苦苦码的代码被人轻而易取获取的时代,我们身处狼狈且不甘于平凡的时代。所以保护自己的成果显得尤为重要,建立自己核心代码license和使用期限的重要性甚嚣尘上。 第一步:      将自己的核心代码使用一个Java工程编写。此时应该牢记写测试用例 第二步:     在sc目录...
防止java反编译的一些方法
防止java反编译的一些方法
【移动安全】so动态调试对抗反编译及反调试
环境配置 1、设置JDK环境变量后需要修改JEB的配置脚本jeb_wincon.bat rem Prefer a JDK over a JRE, which allows support for JEB native Java plugins if defined JAVA_HOME (set base=”d:\Program Files\Java\jdk1.8.0_65\bin”) else
Java反编译工具使用对比,最好用的Java反编译工具 --- JD-GUI、XJad
Java反编译工具使用对比,最好用的Java反编译工具 --- JD-GUI 大家都知道,将源代码转换成二进制执行代码的过程叫“编译”,比如将C源代码编译成.exe可执行文件;那么把二进制执行代码转换成源代码的过程就叫“反编译”,比如把exe转换为C源代码就叫“反编译”。 由于主流的C的编译器都进行了代码的优化,因此把C编译生成的exe文件反编译成C代码非常困难。但是像Java、.net这样基于虚拟机技术的编程语言则反编译非常容易,Java平台下有Jad、Jode、JD等反编译器,.net平台