反编译工具jd |
您所在的位置:网站首页 › jd gui汉化 › 反编译工具jd |
1、反编译
1.1介绍
要了解反编译,首先需要了解计算机语言,它包括机器语言、汇编语言、高级语言三种。其中,机器语言和汇编语言通常被称之为低级语言。 简单来说,可以这样简单的理解:低级语言是计算机认识的语言、高级语言是程序员认识的语言。 所谓编译,就是指高级语言转换成低级语言让计算机执行的过程。反编译则相反,通过低级语言进行反向工程,获取其源代码。 1.2作用1. Java这门编程语言,有许多如泛型、自动装箱拆箱等语法糖。因为java虚拟机不认识这些,所以就会在编译的时候进行相应的解糖,得到class文件。反编译工具就可以帮我们反编译class文件,获得一份java文件,让我们了解到这些语法糖是如何实现的。 2.可以对其他人的代码进行反编译,学习代码实现。或者通过源代码查找bug,制作外挂等。 1.3防止反编译由于我们有工具可以对Class文件进行反编译,当然就要有对应的技术可以应对反编译,从而保护java程序。比较典型的应对策略如下: (1)隔离Java程序,让用户接触不到你的Class文件 (2)对Class文件进行加密,提高破解难度 (3)代码混淆,将代码转换成功能上等价,但是难于阅读和理解的形式 2、jd-gui的使用首先我们可以自制一个demo的class文件来测试使用反编译工具。在自定义路径下,新建一个demo的java文件。简单测试即可,具体内部代码如下图。 图2-2 demo.java 然后我们在该路径下,用cmd进入命令界面,输入javac demo.java指令,即可将java文件编译成class文件,并在同目录下出现。 图2-3 编译demo.java文件 图2-4 同目录下出现demo.class文件 得到class文件以后我们就可以来测试反编译功能了。首先还是打开jd-gui.exe文件。单击【file】从中选择【Open File ...】选项,弹出一个文件选择框,可以选择要打开的文件,或者直接单击文件夹图标,直接弹出文件选择框;从文件选择框中选择要打开的.class类型的文件,单击【确定】。在打开的文件里,左侧可以看到文件的保存位置,类及方法,右侧显示类的具体内容,注释不会显示 图2-5 打开文件进行反编译 图2-6 反编译结果 Jd-gui同时也支持高级搜索。点击下图所示图标,即可进入搜索界面,快速定位需要的东西。 图2-7 高级搜索 搜索方法。类似电脑的快捷键Ctrl+F,此时不会打开小窗,在界面的下方会显示一个输入框,输入想要查找的方法名,即可。 图2-8 搜索方法 搜索类。菜单栏快捷方式,在弹框内输入想要查找的类名。 图2-9 搜索类 3、luyten的使用同样,那前面做的demo.class文件进行举例使用。打开luyten工具进入图形界面,打开文件,可以看到展示如下图。 图3-1 luyten反编译界面 可以看到,编码格式有些问题,默认为Unicode显示。我们可以点击【Settings】做一些配置,如勾选【Force Explicit Imports】,显示全部引入包的路径,默认为*显示;同时勾选【Enable Unicode Replacement】,正常显示中文。具体如下图。 图3-2 luyten配置 之后就可以正常显示了。反编译中,点击【save as】是生成当前指定文件源码,【save all】是生成当前jar包的全部文件源码。 图3-3 生成源码 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |