问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

反编译是怎么回事,谁能细说一下?

发布网友 发布时间:2022-04-22 01:31

我来回答

1个回答

热心网友 时间:2023-11-22 03:20

Java代码的编译与反编译

2017-02-21Hollis数盟

一、什么是编译

1、利用编译程序从源语言编写的源程序产生目标程序的过程。

2、用编译程序产生目标程序的动作。编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。

二、什么是反编译

计算机软件反向工程(Reverseengineering)也称为计算机软件还原工程,是指通过对他人软件的目标程序(可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,某些特定情况下可能推导出源代码。反编译作为自己开发软件时的参考,或者直接用于自己的软件产品中。

三、Java类的编译与反编译

我们在最初学习Java的时候,会接触到两个命令:javac和java,那个时候我们就知道,javac是用来编译Java类的,就是将我们写好的helloworld.java文件编译成helloworld.class文件。

class文件打破了C或者C++等语言所遵循的传统,使用这些传统语言写的程序通常首先被编译,然后被连接成单独的、专门支持特定硬件平台和操作系统的二进制文件。通常情况下,一个平台上的二进制可执行文件不能在其他平台上工作。而Javaclass文件是可以运行在任何支持Java虚拟机的硬件平台和操作系统上的二进制文件。

那么反编译呢,就是通过helloworld.class文件得到java文件(或者说是程序员能看懂的Java文件)

四、什么时候会用到反编译

1、我们只有一个类的class文件,但是我们又看不懂Java的class文件,那么我们可以把它反编译成我们可以看得懂的文件。

2、学习Java过程中,JDK的每个版本都会加入越来越多的语法糖,有些时候我们想知道Java一些实现细节,我们可以借助反编译。

五、反编译工具

1、javap

2、Jad:官网(墙裂推荐)

客户端:

可以在官网下载可执行文件,找到对应的操作系统的对应版本,然后进行安装使用。

因为我使用的是linux操作系统,所以我下载的是Linux版本的工具,这个工具下载好之后会有一个执行文件,只要在执行文件所在目录执行./jadhelloworld.class就会在当前目录下生成helloworld.jad文件,该文件里就是我们很熟悉的Java代码

Eclipse插件:

下载地址在官网下载插件的jar包,然后将jar包放到eclipse的plugins目录下‘在打开Eclipse,Eclipse->Window->Preferences->Java,此时你会发现会比原来多了一个JadClipse的选项,单击,在Pathtodecompiler中输入你刚才放置jad.exe的位置,也可以制定临时文件的目录。当然在JadClipse下还有一些子选项,如Debug,Directives等,按照默认配置即可。基本配置完毕后,我们可以查看一下class文件的默认打开方式,Eclipse->Window->Preferences->General->Editors->FileAssociations我们可以看到class文件的打开方式有两个,JadClipse和Eclipse自带的ClassFileViewer,而JadClipse是默认的。全部配置完成,下面我们可以查看源码了,选择需要查看的类,按F3即可查看源码

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
胜达这款车百公里油耗多少? 胜达节能油加盟办厂可靠吗是不是骗子 河南洛阳胜达就是骗子,我把钱交了也不来人了,他们一个老总说了爱咋办... 胜达油是个骗局吗 胜达节能油是什么? 叩解度关于叩解的论述 湿重跟湿重有关的打浆磨片 戴尔XPS M1330-950重要参数 如果到别的单位去面试的话 如果人家问起为什么会选择这家公司而离开另外... 学生会被两个部门同时面试怎么办 字如其人是真的吗? 爱媛38到底是个什么样的水果? 什么是反编译工具?反编译工具有什么用? 字如其人有依据吗? 任何程序都可以反编译吗?为什么有一些程序不可以... 字如其人是不是说字写的漂亮就是好人!!!! 我字... 软件反编译 字如其人有科学依据吗?? 你相信“字如其人”吗?为什么? 在网上卖软件违法吗? 自己做的软件卖给别人违法吗 字如其人这个说法准吗 发布别人的共享软件侵权吗? “字如其人”有依据吗 反编译是什么意思 “字如其人”是真的吗?这能看出什么? 在不修改他人的软件前提下,发布相关补丁是否违法? 字如其人有科学依据? 卖别人的软件违法吗? 破解游戏机犯法吗? 为什么说“字如其人”? 淘宝这么成功为什么不会被反编译,不是说理论上只... 人们经常说“字如其人”,依据来源是什么? 反编译是什么意思? 朋友们来聊聊,字如其人这个说法有道理吗? 为什么说字如其人呢? 钱学森大学时期高分试卷字迹如印刷,字如其人这句... 爱媛38是橙子还是橘子 “字如其人”这种说法有道理吗?字能体现一个人的性... 字如其人是真的吗 见字如见人是否有其科学根据 爱媛38号柑桔选用什么砧木最好 “字如其人”这个道理,是不是真的? 爱媛38号柑橘特性是什么 爱媛38号柑橘 「字如其人」是真的吗? 沃柑和爱媛38号是同一品种吗???如果不是的!哪... 有句话说“字如其人”有道理吗? 请问埋地式的篮球架基础要浇多少大的混凝土,基坑... 篮球架高度是由什么来定的呢 注水篮球架材质底座是什么材质