java反编译本机代码 java如何反编译

java反编译的代码可以用吗不行 。可执行文件java反编译本机代码你即使反编译出来 也不是源码 。包括所有java反编译本机代码的反编译软件java反编译本机代码,反编译出来的java反编译本机代码,都不是源码java反编译本机代码,别看着反编译出来的代码感觉是对的,有的反编译出来还是可以运行的都不算 。另外反编译别人的软件 , 只能自己研究,去过用于商业用途可是犯法的哦
什么是Java代码的编译与反编译?Java代码的编译与反编译
2017-02-21Hollis数盟
一、什么是编译
1、利用编译程序从源语言编写的源程序产生目标程序的过程 。
2、用编译程序产生目标程序的动作 。编译就是把高级语言变成计算机可以识别的2进制语言java反编译本机代码 , 计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的 。编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段java反编译本机代码:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成 。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息 。
【java反编译本机代码 java如何反编译】二、什么是反编译
计算机软件反向工程(Reverseengineering)也称为计算机软件还原工程 , 是指通过对java反编译本机代码他人软件的目标程序(可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,某些特定情况下可能推导出源代码 。反编译作为自己开发软件时的参考,或者直接用于自己的软件产品中 。
三、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即可查看源码
Java反编译代码解释:public static String format(long paramLong)//paramLong是一个传递进来的long型整数
{
int i = 60 * 60;定义i=60乘60就是3600
long l1 = paramLong / i;定义l1等于paramLong除以i
long l2 = (paramLong - l1 * i) / 60;定义
long l3 = paramLong - l1 * i - l2 * 60;定义
String str1;声明字符串
label64: String str2;label是监听
if (l110L)如果l1小于10
{
str1 = "0"l1;字符串拼接
if (l2 = 10L)如果l2大于等于10
break label175;结束监听
str2 = "0"l2;字符串拼接
label92: if (l3 = 10L)监听如果l3大于等于10
break label195;结束监听
}
for (String str3 = "0"l3; ; str3 = l3)for循环,
{
return str1":"str2":"str3;
str1 = l1;
break label64:
label175: str2 = l2;
label195: break label92:
}
}
主要研究一下监听是怎么用的吧
什么是Java代码的编译与反编译java代码java反编译本机代码的编译,就是java反编译本机代码你写完代码,java编译器把它编译成java虚拟机认识java反编译本机代码的代码,然后再由虚拟机执行它 。反编译就是反过来,当然这不是java虚拟机干的事儿,是java反编译本机代码你找反编译工具干的事儿,把编译过的代码反编译成人看得懂的源代码 。
java反编译的几种方式第一种方式:Help——Eclipse Marketplace
安装eclipse自带java反编译本机代码的插件( Decompiler )
第二种方式:使用反编译工具(XJad2.2等)
第三种方式:在cmd中java反编译本机代码的输入javap -verbose HellloWorld.class 回车java反编译本机代码 , 此处的HelloWorld.class为自己创建的HelloWorld.java编译后的class文件
如何反编译获得java源代码就是有些R资源只显示ID号,还有一些没用的代码也反编译出来了
java反编译本机代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java如何反编译、java反编译本机代码的信息别忘了在本站进行查找喔 。

    推荐阅读