首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java jar 如何防止反编译

作者 | dartagnan 出品 | http://tt316.cn/eTlSp java作为解释型的语言,其高度抽象的特性意味其很容易反编译容易反编译,自然有防止反编译措施存在。...废话不多说,正文如下: 常用的保护技术 由于Java字节码的抽象级别较高,因此它们较容易反编译。本节介绍了几种常用的方法,用于保护Java字节码不被反编译。...通常,这些方法不能够绝对防止程序反编译,而是加大反编译的难度而已,因为这些方法都有自己的使用环境和弱点。 1....由于它本身不是加密的,因此它可能成为黑客最先攻击的目标。如果相关的解密密钥和算法攻克,那么加密的类也很容易解密。...转换成本地代码 将程序转换成本地代码也是一种防止反编译的有效方法。因为本地代码往往难以反编译。开发人员可以选择将整个应用程序转换成本地代码,也可以选择关键模块转换。

3.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java中String对象最容易忽略的知识

    一、String类的两种定义方法 String是一个字符串类型的类,使用""定义的内容都是字符串,但是String在使用上有一点特殊,它有两种定义方式,相信所有java程序员都知道,但是有些细节却很容易忽略....equals(str3)); System.out.println(str3.equals(str1)); } } 运行结果 true true true 在平时使用的时候很容易对这两个搞混淆...五、字符串常量的不可改变性 字符串一旦定义就不可改变,但是我们不能从平时编写的代码表面地去理解它,要从内存分析上才能理解它为什么是不可改变的。...如果按照代码来理解可能认为str的内容改变了,并且改变了两次!之前记得有人问过我类似的问题:上面的代码str对象赋值过程中进行了几步操作?当时我也不是很清楚,不过经过这次学习就能解释这个问题了。...以上操作可以看到,所谓的字符串的内容实际上并未改变(Java定义好了String的内容不能改变),改变的是地址的指向。

    73320

    Java代码防止反编译的4中方法

    p=5138 Java 作为解释型的语言,其高度抽象的特性意味其很容易反编译容易反编译,自然有防止反编译措施存在。今天就拜读了一篇相关的文章,受益匪浅,知彼知己嘛!!...或许反编译别人的代码不怎么道德,这个嘛......废话不多说,正文如下: 常用的保护技术 由于Java字节码的抽象级别较高,因此它们较容易反编译。...本节介绍了几种常用的方法,用于保护Java字节码不被反编译。通常,这些方法不能够绝对防止程序反编译,而是加大反编译的难度而已,因为这些方法都有自己的使用环境和弱点。 1....图1隔离Java程序示意图    2. 对Class文件进行加密   为了防止Class文件直接反编译,许多开发人员将一些关键的Class文件进行加密,例如对注册码、序列号管理相关的类等。...由于它本身不是加密的,因此它可能成为黑客最先攻击的目标。如果相关的解密密钥和算法攻克,那么加密的类也很容易解密。这种保护方式示意图见图2。

    6K21

    Java 反编译

    接下来就就一起聊聊 Java 反编译相关的知识。...大家都知道,将源文件转换成二进制执行代码的过程叫“编译”,比如将 Java 源代码编译成 JAR 可执行文件;那么把二进制执行文件转换成源文件的过程就叫“反编译”,比如将 JAR 反编译成源文件。...那么 Java 平台下有没有开源的轮子,可以让反编译这件事情变得简单呢? 那是当然,这样的轮子一箩筐。...Java 平台下有Jad、Jode、Java Decompiler(JD-GUI)等反编译利器,编程这些年,几乎都用过,但是目前电脑上只有 Java Decompiler(JD-GUI)这一款在用,之前分享的很多关于源码的文章...简单的工具,不多说 JD-GUI 支持泛型、enum 枚举类型和Annotation 的反编译;支持整个 JAR 文件的反编译,并且在反编译后的源代码可直接点击进行相关代码的跳转,说一千道一万,不妨自己试试看

    2.9K30

    .NET应用如何防止反编译

    前言 前段时间分享了两篇关于.NET反编译相关的文章,然后文章留言区就有小伙伴提问:如何防止反编译?因此本篇文章我们就来讲讲.NET应用如何防止反编译。....NET反编译相关的文章可以看如下文章: 4款免费且实用的.NET反编译工具 .NET反编译神器ILSpy怎么用?....NET应用如何防止反编译 注意虽然我们无法完全防止我们的.NET应用反编译,但是我们可以采取以下一些措施来增加反编译的难度。...加密敏感数据: 对于应用程序中的敏感数据(如数据库链接、阿里云链接密钥等),可以使用加密算法进行加密,确保即使反编译,也无法直接获取到明文数据。...这样可以降低静态分析和反编译的风险,但是动态代码生成还可能导致一些间接影响,例如频繁的动态生成代码可能会增加内存压力,影响垃圾回收的效率。

    47030

    容易误解的overflow:hidden

    有时候是为了防止布局撑开,有时候是为了配合其它规则实现文字截断,还有时候纯粹是为了创建块级上下文。...overflow:hidden的父元素之外,但是它依然显示了。...而普通元素在水平方向上的溢出隐藏,垂直方向上撑开父元素。也就是说,普通元素的表现符合我们的预期,而绝对定位元素并不如很多人想当然的那样隐藏。 理论依据 那么,这个原理到底是什么呢?...这就说明,一个绝对定位的元素是否overflow:hidden隐藏,要看其包含块相对于overflow:hidden的位置来决定。这就好比驻日美军,他们不受日本的法律约束而受美国军法约束。...这样万一某一天你看到overflow:hidden里面的东东居然显示出来了,你才知道是为什么。

    3.5K110

    如何防止你的 jar 反编译

    隔离Java程序 2. 对Class文件进行加密 3. 转换成本地代码 4、代码混淆 5、混淆技术介绍 ---- 面试官:如何防止 Java 源码反编译?我竟然答不上来。。...java作为解释型的语言,其高度抽象的特性意味其很容易反编译容易反编译,自然有防止反编译措施存在。今天就拜读了一篇相关的文章,受益匪浅,知彼知己嘛!!...废话不多说,正文如下: 常用的保护技术 由于Java字节码的抽象级别较高,因此它们较容易反编译。本节介绍了几种常用的方法,用于保护Java字节码不被反编译。...通常,这些方法不能够绝对防止程序反编译,而是加大反编译的难度而已,因为这些方法都有自己的使用环境和弱点。 1....由于它本身不是加密的,因此它可能成为黑客最先攻击的目标。如果相关的解密密钥和算法攻克,那么加密的类也很容易解密。这种保护方式示意图见图2。

    1.3K30

    反编译Java_java反编译的代码可以修改么

    1.反编译java开发者必不可少的东西,今天我们jd-gui-0.3.6.exe这个工具来反编译class文件。...下面是下载地址: http://download.csdn.net/detail/luozheng4698729/9728359 2.工具使用起来很简单,双击打开–>File—>OpenFile选择你要反编译的...下面我们来看下几个反编译后的神奇例子: //------------- 实例1 ------------ //反编译前 public class Test { public static void main...public static void main(String[] paramArrayOfString) { java.util.HashMap localHashMap = new java.util.HashMap...强烈推荐一套Java进阶博客,都是干货,走向架构师不是梦! Java进阶全套博客 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

    79410

    .net程序源代码如何避免反编译

    许多开发人员仍然不知道可移植的可执行文件(PE)文件是可以编译成可读的源代码。在学习如何防止或使反编译器难以对源代码进行反向编译之前,我们需要了解一些基本概念。 什么是可移植的可执行文件?...IL DASM is MSIL 是个反编译程序,可以用来查看中间语言。...我们可以使用市场上免费的反编译器,比如Telerik JustDecompile和Jet brain dotPeek,通过这些工具我们可以将中间语言转换成原始的源代码。...如何防止EXE和DLL反编译? 保护EXE和DLL不被反编译到原始源代码的方法称为混淆。有很多付费和免费的软件可以提供混淆代码的功能,让.Net程序集代码变得模糊,不易理解。...现在尝试用反编工具反编译。 正如我们所看到的,由ConfuserEx生成的混乱的DLL或EXE不能再被反编译

    2.2K20

    面试官:如何防止 Java 源码反编译?我竟然答不上来。。

    来源博客:https://www.cnblogs.com/dartagnan/ 面试官:如何防止 Java 源码反编译?我竟然答不上来。。...java作为解释型的语言,其高度抽象的特性意味其很容易反编译容易反编译,自然有防止反编译措施存在。今天就拜读了一篇相关的文章,受益匪浅,知彼知己嘛!!...废话不多说,正文如下: 常用的保护技术 由于Java字节码的抽象级别较高,因此它们较容易反编译。本节介绍了几种常用的方法,用于保护Java字节码不被反编译。...通常,这些方法不能够绝对防止程序反编译,而是加大反编译的难度而已,因为这些方法都有自己的使用环境和弱点。 1....由于它本身不是加密的,因此它可能成为黑客最先攻击的目标。如果相关的解密密钥和算法攻克,那么加密的类也很容易解密。这种保护方式示意图见图2。 图2 对Class文件进行加密示意图 3.

    57120

    Java反编译工具Luyten

    Luyten是一款很强大的反编译工具包,是一款github的开源工具,软件功能非常强大,界面简洁明晰、操作方便快捷,设计得很人性化。...//github.com/deathmarine/Luyten/releases/tag/v0.5.3 我比较喜欢直接使用.jar版本,直接在页面打开目标.class或者.jar包文件,即可直观的查看反编译后的源码...同样的jar,我们打开试试效果: 不再是ERROR了,同样在使用过程中可以总结一下它和jd-gui的区别: 1.查看jar包的时候,jd-gui是折叠的,而Luyten是展开的 2.以前在用jd-gui反编译的时候...List list =newArrayList(); 编译后会变成 List list =newArrayList(); 因为泛型在编译期会被擦除,这个没毛病,但是Luyten反编译后的为什么没有擦除呢...是因为jdk在编译过程中虽然擦除了泛型,但是还是通过注释对其进行了标记,如: #4 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;

    3.4K20
    领券