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

Java 反编译

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

2.9K30
您找到你想要的搜索结果了吗?
是的
没有找到

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;

3K20

Java| 编译和反编译

Java语言中的反编译一般指将class文件转换成java文件。 有了反编译工具,我们可以做很多事情,最主要的功能就是有了反编译工具,我们就能读得懂Java编译器生成的字节码。...Java常用反编译工具 本文主要介绍4个Java反编译工具:javap、jad和cfr以及可视化反编译工具JD-GUI JAVAP javap是jdk自带的一个工具,可以对代码反编译,也可以查看java.../lang/String.hashCode:()I 9: lookupswitch { // 2 99162322: 36 113318802...PS: 但是,由于JAD已经很久不更新了,在对Java7生成的字节码进行反编译时,偶尔会出现不支持的问题,在对Java 8的lambda表达式反编译时就彻底失败。...CFR将反编译现代Java特性–Java 8 lambdas(Java和更早版本中的Java beta 103),已经反编译Java 7 String,但CFR是完全用Java 6编写的.

2.4K10

Java jar 如何防止被反编译

作者 | dartagnan 出品 | http://tt316.cn/eTlSp java作为解释型的语言,其高度抽象的特性意味其很容易被反编译,容易被反编译,自然有防止反编译措施存在。...之所以会对java反编译感兴趣,那是因为自己在学习的过程中,常常需要借鉴一下别人的成果(你懂的...)。或许反编译别人的代码不怎么道德,这个嘛.........废话不多说,正文如下: 常用的保护技术 由于Java字节码的抽象级别较高,因此它们较容易被反编译。本节介绍了几种常用的方法,用于保护Java字节码不被反编译。...但是从实际情况来看,由于混淆技术的多元化发展,混淆理论的成熟,经过混淆的Java代码还是能够很好地防止反编译。下面我们会详细介绍混淆技术,因为混淆是一种保护Java程序的重要技术。...这样可以更高程度地保护题目管理模块不被反编译。对于Java开发的模块,我们仍然要使用混淆技术。该方案的示意图参见图7。

2.8K20

javai = i++和 j = i++ 的区别

由于i++和i--的使用会导致值的改变,所以在处理后置的++和--的时候,java的编译器会重新为变量分配一块新的内存空间,用来存放原来的值, 而完成赋值运算之后,这块内存会被释放。...i的原始值存放在后开辟的内存中,最后将这个值赋给j,进行j = i++运算之后,j会得到i的值,而i又将自加,所以,在释放内存之后,原来存放j和i的地方将得到的值分别是:j(此时的值等于初始i的值)和i...总结:  Java编译器每次遇到自增(指的是i++)、自减(指的是i--)运算符的时候都会开辟一块新的内存空间来保存赋值之前j的值,即为缓存变量,然后再将这个换成变量的值赋给左边的变量。...扩展: 微软的windows下的visualstudio编译的结果和java不同,但在gcc等其他的c语言编译器下,结果和java是一样的,千万要注意,由于有些人使用的是c语言的编译器但不是windows...下的编译器,结果仍然和java的一致,但在windows下的编译运行结果却不一样,希望能引起读者的注意。

1.2K100

Java反编译工具JD-GUI以及Eclipse的反编译插件

反编译是一个复杂的过程,所以越是高级语言,就越难于反编译,但目前还是有许许多多的反编译软件:通过对他人软件的目标程序(可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构...Java反编译工具JD-GUI Github上的官方下载地址:https://github.com/java-decompiler/jd-gui/releases 有多种平台的安装版本,可以自己选择下载安装...,也可以直接下载JAR包,然后用java -jar进行运行,如下: 1 java -jar jd-gui-1.4.0.jar 安装Eclipse的反编译插件 jd-eclipse jd-gui在Eclipse...:http://java-decompiler.github.io/ ) 填写完毕后会加载该插件的相关信息,勾选该插件,一路Next安装下去即可。...Java反编译工具-JD-GUI jd-eclipse反编译插件的在线安装和使用 关于Eclipse安装了反编译插件,无法查看源码问题 警告 本文最后更新于 December 10, 2018,文中内容可能已过时

2.2K10

反编译Apk得到Java源代码

laichao.googlecode.com/files/jdgui.zip   Linux版JD-GUI:http://laichao.googlecode.com/files/jd-gui-0.3.2.linux.i686....tar.gz 步骤: 1.首先找到Android软件安装包中的classes.dex 把.apk文件改名为.zip,然后解压缩,得到其中的classes.dex文件,它就是java文件编译再通过dx工具打包成的...,所以现在我们就用上述提到的2个工具来逆方向导出java源文件 2.把classes.dex拷贝到dex2jar.bat所在目录。...输入:                     apktool d C:\***.apk  C:\***文件夹  (命令行解释:apktool d 要反编译的文件 输出文件夹) 特别注意:你要反编译的文件一定要放在...三.将反编译完的文件重新打包成apk  很简单,只要输入:      apktood b c:***文件夹(你编译出来文件夹)

2K20

javai++ 和 ++i的区别

今天同事扔给我两道面试题,由于我2年前就接触过这道题,所以没啥意思,我看完后扔到一个交流群里,回答这道题的绝大部分人竟然都答错了;很多人很清晰的知道这两道题想考察面试者对 i++ 和 ++i 的理解...(这是一道典型的看着非常简单的题,但是不少人还是会因为粗心栽跟头) 第一题: int a = 0; for (int i = 0; i < 99; i++) {...= 0; i < 99; i++) { b = ++ b; } System.out.println(b); 我估计会有不少人做错,因为群里有开发三四年的人...i++ 和 ++i 在理论上的区别是: i++:是先把i拿出来使用,然后再+1; ++i :是先把i+1,然后再拿出来使用; 答案见下: 第一题:a=0 第二题:b=99 再升级一下 第三题...Integer a = 0; int b = 0; for (int i = 0; i < 99; i++) { a = a ++;

1.2K30

7款开源java反编译工具

今天我们要来分享一些关于Java反编译工具,反编译听起来是一个非常高上大的技术词汇,通俗的说,反编译是一个对目标可执行程序进行逆向分析,从而得到原始代码的过程。...1、Java反编译插件 —— Jadclipse JadClipse是Jad的Eclipse插件,是一款非常实用而且方便地Java反编译插件,我们只需将下载的插件包复制到eclipse的plugins目录下...2、Java反编译工具 jad jad是一款使用非常广泛地Java反编译工具,上面这款Jadclipse就是基于jad的反编译插件,JAD 文件包含 MIDlet 套件的标题信息,例如开发应用程序的公司...JD-GUI不需要安装,直接点击运行,可以反编译jar,class文件。 ? 4、Java反编译器 jdec jdec是一个Java反编译器。...5、uuDeJava uuDeJava是Java Class文件的反编译工具。反编译Java源程序被输出到Class的相同目录。内部使用jad.exe。

5.4K10
领券