jad及小颖反编译专家的用法和使用详解

合集下载

Java反编译工具Jad详解

Java反编译工具Jad详解

Java反编译⼯具Jad详解项⽬过程中需要反编译⼀个jar包,于是作了⼀些学习,记录下来。

(JAva Decompiler)是⼀个Java的反编译器,可以通过命令⾏把Java的class⽂件反编译成源代码。

如果你在使⽤编写代码的时候遇到找不到源代码的第三⽅库,⽽且你⼜需要看看这个库的具体实现,那么你就需要使⽤这个东西。

⽽且如果你是使⽤Eclipse的话,还有⼀个Eclipse插件,提供⼀个class⽂件查看器可以直接打开class⽂件查看其反编译后的源代码,太⽅便了,太⽅便了!不过,可惜的是这个开源项⽬似乎已经关闭了,官⽅⽹站已经上不去了,有个叫Tomas Varaneckas的好⼼⼈收集了所有的版本提供给⼤家下载:⽽且这个最新的版本也只⽀持Java 4,不⽀持Java 5。

还有⼀个叫做的⼯具⽀持Java 5的新特性,如enum等,⽽且它提供独⽴的GUI程序和基于Eclipse的插件,也很⽅便。

但是对于,作者没有提供下载的链接,他说“Open the sources of JD-Core is not on my roadmap: I spent too many time on this project.”当然后⾯也有⼀⼤篇⽂章是别⼈⽤来骂他的,可以看,蛮有意思。

我的项⽬中需要将第三⽅库反编译出来,让后对其进⾏修改,然后再编译,不仅仅是查看,因此只能⽤命令⾏的Jad来做。

使⽤⽅法:[1] 反编译⼀个class⽂件:jad example.class,会⽣成example.jad,⽤⽂本编辑器打开就是java源代码[2] 指定⽣成源代码的后缀名:jad -sjava example.class,⽣成example.java[3] 改变⽣成的源代码的名称,可以先使⽤-p将反编译后的源代码输出到控制台窗⼝,然后使⽤重定向,输出到⽂件:jad -p example.class > myexample.java[4] 把源代码⽂件输出到指定的⽬录:jad -dnewdir -sjava example.class,在newdir⽬录下⽣成example.java[5] 把packages⽬录下的class⽂件全部反编译:jad -sjava packages/*.class[6] 把packages⽬录以及⼦⽬录下的⽂件全部反编译:jad -sjava packages/**/*.class,不过你仍然会发现所有的源代码⽂件被放到了同⼀个⽂件中,没有按照class⽂件的包路径建⽴起路径[7] 把packages⽬录以及⼦⽬录下的⽂件全部反编译并建⽴和java包⼀致的⽂件夹路径,可以使⽤-r命令:jad -r -sjava packages/**/*.class[8] 当重复使⽤命令反编译时,Jad会提⽰“whether you want to overwrite it or not”,使⽤-o可以强制覆盖旧⽂件[9] 还有其他的参数可以设置⽣成的源代码的格式,可以输⼊jad命令查看帮助,这⾥有个⼈做了简单的翻译:[10] 当然,你会发现有些源⽂件头部有些注释信息,不⽤找了,jad没有参数可以去掉它,⽤别的办法吧。

jad命令详解

jad命令详解

指定输出文件的名字的话,用以下的转移命令
jad -p example1.class > myexm1.java
输出带字节码注释和源码的(最常用)
பைடு நூலகம்
jad -o -a Test.class > ss.java
-noinner -关掉对内部类的支持 (default: turn on)
-nolvt - 忽略局部变量的表信息
-nonlb - 不要输出一个新行在打开一个括号之前 (default: do)
-o - 无需确认直接覆盖输出 (default: no)
-p - 发送反编译代码到标准输出 STDOUT (e.g., for piping)
jad是最简单的class反编译为java文件的小工具.
现在就总结一下jad 命令
首先,看一下jad的帮助提示
-a - 用JVM字节格式来注解输出
-af - 同 -a,但是注解的时候用全名称
-clear - 清除所有的前缀
-b - 输出多于的括号 (e.g., if(a) { b(); }, default: no)
-d <dir> - 指定输出文件的文件目录
-dead -试图反编译代码的dead 部分(default: no)
-disass - 不用用字节码的方式反编译 (no JAVA source generated)
-f - 输出整个的名字,无论是类还是方法
-ff -输出类的成员在方法之前 (default: after methods)
其次.常用命令
jad -o -r -sjava -dsrc test.class
tree目录下的所有*.class文件

jad-java反编译工具

jad-java反编译工具

jad-java反编译⼯具
⼀、简介
此外,JAD还是⼀个简单易⽤的反编译⼯具,可以将⼆进制字节码⽂件(class⽂件)转换成java源⽂件。

在众多的JAVA反编译⼯具中,有⼏种⾮常著名的⼯具使⽤了相同的核⼼引擎——JAD,其中主要包括:Front End Plus、mDeJava、Decafe Pro、Cavaj Java Decompiler、DJ Java Decompiler、NMI’s Java Class Viewer和国产的JAVA源代码反编译专家等等。

JAD本⾝是⼀个命令⾏⼯具,没有图形界⾯,上述的这些⼯具⼤多是在JAD内核的基础之上加了⼀个图形界⾯⽽已。

这么多种产品的共同选择,⾜可证明JAD在JAVA反编译领域中的尊贵地位。

JAD( Joint Application Design)
JAD是动态系统开发⽅法(DSDM)中原型⽣命周期区时所使⽤来收集商业要求的程序。

JAD程序包括加强⽤户参与的途径,促进系统开发,提⾼产品规格的质量。

来源于百度百科
⼆、安装
下载对应的版本。

window版本解压即可
三、使⽤
常⽤命令:jad -o -a Demo.class
四、备注
我把jad.exe⽂件,放到java的bin⽬录下。

便于使⽤。

如何使用反编译工具分析源代码(九)

如何使用反编译工具分析源代码(九)

使用反编译工具分析源代码引言在软件开发领域中,代码的可读性和安全性一直是开发者们关注的焦点。

很多时候,我们或许需要对某个软件的源代码进行分析,无论是为了学习设计理念还是为了查找潜在的安全漏洞。

而在这个过程中,反编译工具成为了我们不可或缺的利器。

一、什么是反编译工具反编译工具是一种软件,它可以将已编译的程序代码还原为源代码。

也就是说,通过反编译工具,我们可以将目标软件的二进制文件转化为可读性更高的源代码。

这使得我们在分析软件时能够更加直观地理解代码结构和实现逻辑。

二、选择适合的反编译工具市面上有很多反编译工具供我们选择,如JD-GUI、IDA Pro、Ghidra等。

在选择反编译工具时,需要考虑以下几个方面:1. 是否免费:有些反编译工具是商业软件,而有些则是开源项目。

根据自身需求和经济能力,选择适合的版本。

2. 支持的语言:不同的反编译工具对不同编程语言的支持程度可能不同。

确保所选工具支持目标软件所使用的编程语言。

3. 功能和易用性:不同的反编译工具可能有不同的功能和界面设计,确保所选工具具备自己所需的功能,并且易于操作和理解。

三、分析源代码的常用方法1. 查看反编译后的源代码结构一旦通过反编译工具将目标软件的二进制文件转化为源代码,我们可以通过查看源代码结构来深入了解软件的实现细节。

另外,逆向工程师们还可以通过对源代码的分析,理解软件的设计原理、算法等。

2. 寻找关键函数和变量在源代码中,往往有一些关键函数和变量负责实现软件的核心功能。

通过分析这些关键函数和变量,我们可以窥探软件的工作原理。

对于逆向工程师而言,找到这些关键函数和变量是分析软件的重要一步。

3. 追踪程序流程源代码中的控制流程可以帮助我们了解软件的执行流程和逻辑。

通过分析代码中的条件语句、循环语句等,我们可以推测软件在不同情况下的行为。

这对于发现潜在的安全漏洞非常有帮助。

4. 调试源代码有些反编译工具还提供了调试功能,让我们可以在源代码级别进行调试。

如何使用反编译工具分析源代码(二)

如何使用反编译工具分析源代码(二)

反编译工具是一种强大的软件,它可以将已编译的二进制代码转换回源代码的形式。

这样一来,我们就可以轻松地分析和理解程序背后的逻辑。

本文将介绍如何使用反编译工具进行源代码分析,以及如何获得更深入的洞察。

一、反编译工具的选择和安装在开始之前,我们首先需要选择一款可靠的反编译工具。

市面上有很多选择,如IDA Pro、Ghidra等。

这些工具都有各自的特点,使用时需根据具体情况进行选择。

安装反编译工具通常较为简单,只需按照官方提供的指南进行操作即可。

二、导入二进制文件并分析函数调用当我们打开反编译工具后,第一步是导入待分析的二进制文件。

在导入成功后,我们可以看到程序的函数列表。

通过查看函数列表,我们可以初步了解程序的结构和主要功能。

接下来,我们可以选择一个感兴趣的函数进行分析。

选中函数后,反编译工具会将其对应的二进制代码转换为易于阅读的源代码形式。

此时,我们可以仔细研究函数内部的代码逻辑,并分析其中的函数调用关系。

通过追踪函数调用,我们可以逐步探究程序的执行过程,找出关键的代码段。

三、查看变量和数据结构在进行源代码分析时,了解程序中的变量和数据结构十分重要。

反编译工具通常能够识别并还原出这些信息。

通过查看变量和数据结构,我们可以更好地理解程序的运行机制。

在反编译工具中,我们可以查看变量的定义、使用和修改情况。

这有助于我们理清程序中各个变量之间的关系,并追踪它们的值在代码中的传递过程。

此外,对于复杂的数据结构,如数组、结构体等,反编译工具也会提供相应的还原和可视化功能,方便我们进一步分析。

四、进行逆向分析反编译工具不仅可以还原源代码,还可以帮助我们进行逆向分析。

逆向分析是指通过分析程序的二进制代码,来获取关键信息或发现潜在的漏洞。

通过逆向分析,我们可以发现程序隐藏的逻辑、算法或者加密方法。

这对于加密软件、恶意软件等领域非常有用。

在逆向分析过程中,我们可以利用反编译工具提供的调试功能,逐步执行程序,观察程序的行为,并通过断点等技术手段来获取我们所需的信息。

如何使用反编译工具分析源代码(十)

如何使用反编译工具分析源代码(十)

反编译工具(Decompiler)是一种常用的软件开发工具,它能够将已编译的二进制代码转换回源代码的形式。

借助反编译工具,开发者可以更深入地了解应用程序的内部实现和运行机制。

本文将探讨如何使用反编译工具进行源代码分析,并提供一些有效的技巧和注意事项。

一、反编译工具的基本原理在开始讨论反编译工具的使用之前,我们需要了解其基本原理。

反编译工具通过分析已编译的二进制代码,并尝试将其转换回等效的源代码形式。

虽然反编译结果不一定能完全还原原始的源代码,但它们通常能够给开发者提供足够的信息来理解和修改程序。

二、选择合适的反编译工具当前市场上有各种各样的反编译工具可供选择,如Java反编译器JD-GUI、.NET反编译器ILSpy等。

在选择反编译工具时,我们应根据具体的应用场景和需求来进行评估。

考虑以下几个因素:1. 支持的目标平台:不同的反编译工具支持不同的目标平台,例如Java、.NET、C/C++等。

确保选用的工具能够处理目标程序的编译语言和平台。

2. 反编译结果的质量:不同的反编译工具对于同一段二进制代码的还原效果可能存在差异。

在选择工具时,我们可以参考一些评测或用户评价,选择具备较高还原质量的工具。

3. 反编译工具的易用性:一个好的反编译工具应该具备友好的用户界面和丰富的功能。

这将有助于开发者更高效地分析源代码和进行必要的修改。

三、分析源代码的基本步骤在使用反编译工具进行源代码分析时,我们可以按照以下步骤进行操作:1. 导入目标程序:打开反编译工具,并导入待分析的目标程序。

不同的工具提供不同的导入方式,如打开二进制文件、连接到已运行的进程等。

2. 进行反编译:通过工具的相应命令或操作,将已编译的二进制代码转换为源代码形式。

这一过程可能需要一些时间,具体取决于目标程序的大小和复杂度。

3. 执行代码浏览:在得到反编译结果后,我们可以开始浏览和分析源代码。

工具通常提供源代码的结构化展示和关键信息的高亮显示,以便开发者更好地理解代码。

如何使用反编译工具分析源代码(三)

如何使用反编译工具分析源代码(三)

使用反编译工具分析源代码源代码是软件开发过程中的重要组成部分,通过分析源代码可以了解软件的实现原理和功能逻辑。

而对于一些封闭的、无法获得源代码的软件,我们可以通过使用反编译工具来对其进行分析。

本文将介绍如何使用反编译工具进行源代码的分析,并探讨其在软件开发过程中的应用。

一、反编译工具的概述反编译工具是一类软件工具,用于将经过编译的二进制代码转换为可读的源代码。

通过反编译工具,我们可以将二进制文件还原为高级语言代码,如C、Java等。

反编译工具在软件分析、安全研究、软件逆向工程等领域有着广泛的应用,可以帮助开发人员理解和修改现有软件,也可以帮助安全研究人员发现和修复软件漏洞。

二、反编译工具的使用1. 选择合适的反编译工具目前市面上有多种反编译工具可供选择,如JD-GUI、Ghidra、IDA Pro等。

在选择工具时,需要考虑工具的功能、稳定性以及用户群体的评价等因素。

对于初学者而言,可以选择一些简单易用的工具,随着经验的积累再逐渐转向功能更强大、更专业的工具。

2. 导入二进制文件在使用反编译工具之前,需要将待分析的二进制文件导入工具中。

通常情况下,这些工具都支持直接打开二进制文件或者将二进制文件导入工程中。

一旦导入成功,工具就会将二进制代码转化为可读的源代码形式。

3. 源代码分析经过导入后,工具会呈现源代码的多个层次结构,如包、类、方法等,用户可以根据需要分析相应的代码片段。

可以通过查看代码逻辑、注释、变量命名等方式来理解源代码的功能逻辑。

同时,一些工具还提供了静态分析功能,可以帮助用户索引和搜索特定的代码片段。

三、反编译工具在软件开发中的应用1. 理解第三方库或开源软件在使用第三方库或开源软件进行开发时,我们通常只能获得其二进制文件。

通过使用反编译工具,我们可以分析这些库或软件的源代码,了解其实现原理和功能逻辑,从而更好地集成和使用这些软件。

2. 软件逆向工程和漏洞研究软件逆向工程是指对软件进行逆向分析,以获取其内部结构、功能实现和算法等信息。

如何使用反编译工具分析源代码(八)

如何使用反编译工具分析源代码(八)

反编译工具是一种对已编译的应用程序进行逆向工程的工具。

它可以帮助开发者分析和理解源代码,同时也被黑客用于探索软件的漏洞和安全弱点。

在使用反编译工具分析源代码时,我们需要遵循一定的步骤和原则,以确保获取准确的结果。

第一步是选择适合的反编译工具。

市面上有很多反编译工具可供选择,如JD-GUI、Decompiler、IDA Pro等。

我们应根据自己的需求和经验综合考虑,选择最适合的工具。

同时,要确保所选择的工具是安全可信的,不会对系统造成潜在风险。

第二步是准备好被分析的目标应用程序。

这个应用程序可以是自己开发的,也可以是从外部获取的。

确保应用程序是最新版本的,并且已经经过调试和测试,以避免因错误或漏洞造成的不准确结果。

第三步是进行反编译分析。

启动所选择的反编译工具,并导入目标应用程序。

在导入过程中,工具会将应用程序转换为可读的源代码形式。

我们可以通过浏览源代码,查看函数、变量、类和方法等细节,以更好地理解应用程序的架构和功能。

在分析源代码时,我们需要注意以下几点。

首先,要注意命名规范和注释,这可以帮助我们更好地理解代码的含义和逻辑。

其次,要关注关键函数和算法,比如加密解密算法、权限控制等,这些函数通常是应用程序的核心功能。

另外,还要注意异常处理和错误处理,以及与网络通信相关的代码,这些都是应用程序安全的关键点。

此外,我们还可以使用反编译工具提供的其他功能,如查找字符串和关键字、浏览调用图、查看依赖关系等。

这些功能可以帮助我们更全面地分析和了解源代码。

最后,我们需要注意的是,虽然反编译工具可以帮助我们分析源代码,但也有一些限制和局限性。

比如,工具可能无法完全恢复源代码的结构和格式,因此在分析过程中可能会存在一些困惑和困难。

此外,某些应用程序可能使用了代码混淆技术,使得源代码更难以理解和分析。

总体而言,反编译工具是开发者和安全研究人员分析源代码的有力工具。

通过合理使用反编译工具,我们可以更好地理解和调试应用程序,同时也可以发现并修复潜在的安全漏洞。

反编译插件jadclipse使用

反编译插件jadclipse使用

反编译插件jadclipse使用
反编译插件jadclipse下载:
选择适合版本的jar文件下载
然后根据Installation 的说明安装配置
1,把下载的 JadClipse JAR 文件放在Eclipse安装目录的plugins 文件夹下,(我本机的路径是D:\MyEclipse 6.0\eclipse\plugins)2,重启Eclipse,
3,下载jad,,选择适合的版本,
4,把jad.exe 放在系统路径中,(例如C:\Program Files\Jad\jad.exe),然后在Eclipse中选择Window > Preferences... > Java > JadClipse > Path to Decompiler,填写jad.exe的路径,在Directory for tempcrary files中填写临时文件路径,如下图
5,选择,Window > Preferences... > General > Editors > File Associations 选择*.class文件,如下图
选择 Associated editors 选中 JadClipse class File Viewer ,选择右边的 Default 按钮,如下图
当 JadClipse class File Viewer 变为 defaule之后,如下图
至此,jadClipse插件就安装完成了,你可以双击 class文件或者是把鼠标放在想看的类或方法名上,然后按住ctrl点击,就可以看到反编译后的源文件了,。

用jad工具反编译eclipse中jar文件中的class文件

用jad工具反编译eclipse中jar文件中的class文件

在eclipse中添加一个jad反编译插件,可以用来查看jar包中的class文件一、下载一个jad工具插件。

如图:jad.zip(272kb)中包含两个文件,一个是net.sf.jadclipse_3.3.0.jar,一个是jad.exe。

建议下载地址:/download/yunsyz/4584223 下一个就够了,里面包含jad.exe和net.sf.jadclipse_3.3.0.jar,或者单独去网上下载这两个文件。

二、把net.sf.jadclipse_3.3.0.jar文件复制到你的Eclipse安装目录下的plugins目录下(D:\MyEclipse 6.5\myeclipse\eclipse\plugins)。

如:三、把jad.exe文件复制到你的Eclipse安装目录下的bin目录(D:\MyEclipse 6.5\jre\bin),也可以是D:\MyEc lipse 6.5\下的其它目录,但一定要复制上目录地址(例子复制D:\MyEclipse 6.5\jre\bin,其它目录就要复制其它目录地址),一会儿要用到。

如:四、打开eclipse,如果你复制文件之前已经打开,请重新打开。

打开后:Window->Preferences->Java->JadClipse你就会看到多了一个JadClipse的选项。

如:五、点JadClipse,把刚才第三步中的地址,复制到Path to decompliler: D:\MyEclipse 6.5\jre\bin 然后加上\jad.exe ,勾选上前两项,Reuse code buffer默认勾选,Ignore existing source手动勾选。

如:六、成功了,现在就可以反编译class文件了,呵呵,试试吧!如:。

jadx使用

jadx使用

jadx使⽤jadx使⽤来源⼀、前⾔今天介绍⼀个⾮常好⽤的反编译的⼯具 jadx 。

jadx 的功能⾮常的强⼤,对我⽽⾔,基本上满⾜⽇常反编译需求。

jadx 优点:1. 图形化的界⾯。

2. 拖拽式的操作。

3. 反编译输出 Java 代码。

4. 导出 Gradle ⼯程。

这些优点都让 jadx 成为我反编译的第⼀选择,它可以处理⼤部分反编译的需求,基本上是我反编译⼯具的⾸选。

接下来我们就来看看,jadx 如何使⽤吧。

⼆、使⽤ jadx2.1 安装 jadxjadx 本⾝就是⼀个开源项⽬,源代码已经在 Github 上开源了。

Jadx Github :有兴趣可以直接 clone 源代码,然后本地⾃⼰编译。

但是多数情况下,我们是需要⼀个编译好的版本。

编译好的版本,可以在 sourceforge 上下载到。

sourceforge 下载 jadx。

直接下载最新版就可以了,现在的最新版是 jadx-0.6.1 。

下载好解压之后,你会获得这样的⽬录结构:对于 Mac 或者 Linux,使⽤ jadx-gui ,Windows 下就需要使⽤ jadx-gui.bat 了,双击可以直接运⾏,如果有安全警告,忽略它就可以了。

(后⽂主要以 Mac 环境为讲解,Windows 下的⼤部分操作都是类似的)2.2 使⽤ jadx前⾯提到,直接双击 jadx-gui 就可以直接运⾏。

运⾏之后,会启动⼀个 terminal ,在这⾥你可以看到你所有操作的输出,错误⽇志也会输出在这⾥。

打开之后,你可以选择⼀个 apk、dex、jar、zip、class、aar ⽂件,可以看到 jadx ⽀持的格式还是挺多的,基本上编译成 Java 虚拟机能识别的字节码,它都可以进⾏反编译。

除了选择⼀个⽂件,还可以直接将 apk ⽂件,拖拽进去,这⼀点⾮常好⽤。

我随便找了⼀个⼿边的 Apk ,丢进去,看看反编译后的效果。

这⾥⾯就是反编译后的代码了,对于 apk ⽽⾔,⼀些 xml 的资源,也⼀并被反编译还原回来了,⾮常的⽅便。

如何使用反编译工具分析源代码

如何使用反编译工具分析源代码

源代码是程序员编写的计算机程序的一种形式,它是由一系列指令组成,用于告诉电脑如何执行特定的任务。

在软件开发过程中,分析源代码是非常重要的,可以帮助我们理解程序的具体实现细节,找出其中的漏洞和问题,提高程序的性能和安全性。

本文将介绍如何使用反编译工具对源代码进行分析。

1. 反编译工具的作用和原理反编译工具是一种能够将编译后的程序文件还原为源代码的工具。

它通过分析程序执行时的机器码,推断出程序的功能和逻辑,并将其转化为人类可读的形式。

反编译工具通常使用静态分析和动态分析的方法,静态分析是在不运行程序的情况下对程序进行分析,动态分析则需要运行程序来获取更多信息。

2. 准备反编译工具首先,我们需要选择一个适合的反编译工具。

市面上有很多反编译工具可以选择,例如Jadx、jd-gui、IDA Pro等。

我们可以根据自己的需求和编程语言选择合适的工具。

3. 获取目标程序接下来,我们需要获取我们要分析的目标程序。

可以是我们自己编写的程序,也可以是其他人编写的程序。

我们需要将目标程序的二进制文件准备好,以供反编译工具使用。

4. 运行反编译工具打开选择的反编译工具,将目标程序的二进制文件导入工具中。

工具会对二进制文件进行分析,并尝试还原出源代码。

这个过程可能需要一些时间,具体时间取决于程序的复杂性和工具的性能。

5. 分析源代码在反编译工具还原出源代码后,我们将可以看到程序的具体实现细节。

我们可以阅读源代码,理解程序的功能和逻辑,找出潜在的问题和漏洞。

例如,我们可以查找可能的错误处理代码、安全隐患、性能瓶颈等。

6. 优化源代码在分析源代码的过程中,我们可能会发现一些可以优化的地方。

例如,我们可以对算法进行改进,减少冗余代码,提高程序的性能。

通过对源代码的深入分析和改进,我们可以使程序更加高效和可靠。

7. 调试目标程序除了分析源代码,反编译工具还可以帮助我们调试目标程序。

我们可以在工具中设置断点,观察程序在运行过程中的变量值和执行流程,以找出程序的问题所在。

Myeclipse中反编译插件jad的安装和使用

Myeclipse中反编译插件jad的安装和使用

Myeclipse中反编译插件jad的安装和使用Java反编译工具 For Eclipse [支持Eclipse3.x][安装篇]一、Eclipse 反编译工具安装(jad jadclipse)jad是java的反编译工具,是命令行执行,反编译出来的源文件可读性较高。

可惜用起来不太方便。

还好找到eclipse下的插件,叫jadclipse,安装好之后,可在Eclipse中双击.class文件,就能直接看源文件,或jar包中的class文件,也可以直接反编译[可直接查看]。

1.在下载对应版本的jad后解压。

解压缩后将jad.exe拷贝到虚拟机目录下[JDK OR JRE;其实可以任何目录,因为可以在安装好jadclipse后,在eclipse中设置的],如: D:\JavaSoft\jdk1.6.0_19\bin2.下载 jadclipse_3.3.jar将jadclipse_3.3.0.jar复制到eclipse\plugins目录下。

3.启动Eclipse后,在Windows——>Perference——>Java下面应该会多出一个JadClipse目录,相关的设置可以在此修改配置jadclipse://为什么我是放在bin目录,因为我的系统环境指向D:\JavaSoft\jdk1.6.0_19\bin\,可以在系统命令行里直接输入jad path to decompiler======>>D:\JavaSoft\jdk1.6.0_19\bin\jad.exe[jad. exe的实际路径]Directory for temporaryfiles==========>>D:\Class2JavaTemp[临时目录]4、在Eclipse的Windows——>Perference——>General->Editors->File Associations中修改“*.class”默认关联的编辑器为“JadClipse Class Fil e Viewer”[使用篇][单个.class]1如果要在eclipse中直接打开.class文件,首先要吧您的class文件,引入到项目中来1.1Build Path==>Configure Build Path==>右边Libraries选项卡,点击Add Class Folder==>Creat New Folder,然后再刚建立的文件夹前打勾,1.2然后把您的.class复制进项目树上您刚刚建立的类文件夹。

Java语言编译与反编译详解

Java语言编译与反编译详解

Java语言编译与反编译详解Java作为一种广泛应用于软件开发的编程语言,其编译与反编译过程是程序员日常工作中不可或缺的环节。

本文将详细介绍Java语言的编译与反编译原理、步骤以及相关注意事项。

一、Java语言编译原理与过程编译是将人类可读的源代码转换为机器可执行的目标代码的过程。

Java语言也是通过编译来实现程序的执行。

下面将简要介绍Java语言的编译原理与过程。

1.1 词法分析词法分析是编译的第一步,它将源代码分解为一个个最小的语法单元,即“词法记号”。

Java语言的词法记号包括关键字、标识符、运算符、分隔符等。

1.2 语法分析语法分析是编译的第二步,它将词法记号组织成一棵语法树,以便后续的语义分析和目标代码生成。

语法分析通过对源代码进行上下文无关文法的分析,确定代码的结构和语义。

1.3 语义分析语义分析是编译的第三步,它对语法树进行分析,检查代码的语义正确性,并生成中间代码。

语义分析包括类型检查、作用域分析、对象解析等。

经过语义分析,编译器可以确定代码的执行过程。

1.4 目标代码生成目标代码生成是编译的最后一步,它将中间代码转化为机器可执行的目标代码,即二进制代码。

Java语言的目标代码是字节码,通过Java虚拟机(JVM)进行解释执行。

二、Java语言反编译原理与过程反编译是将目标代码或已编译的可执行文件转换回原始源代码的过程。

Java语言也有相应的反编译工具,可以将字节码文件反编译为可读的Java源代码。

下面将介绍Java语言的反编译原理与过程。

2.1 字节码Java语言编译生成的目标代码是字节码,它是一种与机器无关的中间代码。

字节码文件包含一系列的指令,这些指令通过JVM进行一一解释执行。

2.2 反编译过程反编译过程将字节码文件转换为Java源代码。

反编译工具通过解析字节码指令和常量池等信息,还原出类、方法、变量等的结构和代码逻辑。

然而,反编译后的源代码可能会有一定的语义丢失和变形。

jad的用法

jad的用法

反编译工具jad的用法准备软件:jadnt158.zip 下载链接自己百度吧解压出jad.exe以下假设jad.exe在d:\java目录下一、操作步骤:1.首先配置一下环境变量。

计算机->属性->高级系统设置->环境变量->(找到)Path->编辑->(添加jad路径,注意有分号~)d:\;2.好了,打开cmd输入jad出现如下图就说明配置正确了3.开始反编译(假设实验文件Father.class在D盘)输入jad d:\Father.class如下图:反编译的文件在哪里生成了?经过笔者耐心的搜索,是在acer这个文件夹里。

我的电脑是acer的牌的,大概你们的在“我的文档”中吧,自己找不到搜一下吧~4.将生成的Father.jad改为Father.java即可大概查看到源文件代码了。

显示为// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.// Jad home page: /jad.html// Decompiler options: packimports(3)// Source File Name: HelloWorld.javaimport java.io.PrintStream;import javax.microedition.lcdui.*;import javax.microedition.midlet.MIDlet;import javax.microedition.midlet.MIDletStateChangeException;public class HelloWorld extends MIDletimplements CommandListener{public HelloWorld(){exitCommand = new Command("Exit", 7, 1);tb = new TextBox("Hello MIDlet", "Hello World", 12, 0);tb.addCommand(exitCommand);tb.setCommandListener(this);}protected void destroyApp(boolean arg0)throws MIDletStateChangeException{System.out.println("destroyApp");}protected void pauseApp(){System.out.println("pauseApp");}protected void startApp()throws MIDletStateChangeException{Display.getDisplay(this).setCurrent(tb);System.out.println("startApp");}public void commandAction(Command arg0, Displayable arg1) {if(arg0 == exitCommand){try{destroyApp(false);}catch(MIDletStateChangeException e){System.out.println("MIDletStateChangeException");}notifyDestroyed();}}private Command exitCommand;private TextBox tb;}源代码为import mand;import mandListener;import javax.microedition.lcdui.Display;import javax.microedition.lcdui.Displayable;import javax.microedition.lcdui.TextBox;import javax.microedition.midlet.MIDlet;import javax.microedition.midlet.MIDletStateChangeException;public class HelloWorld extends MIDlet implements CommandListener{ private Command exitCommand;private TextBox tb;public HelloWorld() {exitCommand=new Command("Exit",Command.EXIT ,1);tb=new TextBox("Hello MIDlet","Hello World",12,0);tb.addCommand(exitCommand);tb.setCommandListener(this);}protected void destroyApp(boolean arg0) throws MIDletStateChangeException {// TODO Auto-generated method stubSystem.out.println("destroyApp");}protected void pauseApp() {// TODO Auto-generated method stubSystem.out.println("pauseApp");}protected void startApp() throws MIDletStateChangeException { // TODO Auto-generated method stubDisplay.getDisplay(this).setCurrent(tb);System.out.println("startApp");}public void commandAction(Command arg0, Displayable arg1) { // TODO Auto-generated method stubif(arg0==exitCommand){try {destroyApp(false);} catch (MIDletStateChangeException e) {// TODO Auto-generated catch blockSystem.out.println("MIDletStateChangeException");}notifyDestroyed();}}}或许有点出入,大概就是这样了二、我在网上找的一些使用参数其实只要在cmd中输入jad就可以了Option -o不提示,覆盖源文件Option -sc:\java\>jad -sjava example1.class反编译结果以.java为扩展名。

jad常用命令的使用

jad常用命令的使用

jad常⽤命令的使⽤java反编译器JAD.exe.能将任何java的类⽂件反编译成.java⽂件,就可以看java软件的源代码了反编译单个JAVA语⾔的CLASS⽂件,在命令⾏输⼊:jad example.class回车.然后在你当前⽬录会⽣成⼀个example.jad的⽂件!把它的后缀改为java就可以阅读了!(你可以忽略.class后缀)选项 -s<后缀>允许你更改输出⽂件的后缀.jad -sjava example.class这条命令⽣成⽂件”example.java”.当你同时使⽤选项-o和-sjava时要⼩⼼了,因为Jad会意外的覆盖掉你的源⽂件.jad使⽤JAVA的CLASS⽂件名作为默认的输出⽂件名.举个例⼦,如果CLASS⽂件”example.class”包含了JAVA的CLASS”test”那么jad会优先⽣成”test.jad”.如果你想要指定⼀⾃⼰的输出⽂件名,请使⽤:jad -p example.class >myexm.java选项-d允许你指定输出⽂件到另外⼀个⽂件夹,这个⽂件夹将默认创建在当前⽬录.举个例⼦:jad -o -dtest -sjava *.class(或者jad -o -d test -s java *.class,两者是⼀样的)这条命令反编译所有.在当前⽬录并且放置所有输出⽂件在⽬录”test”以.java为后缀名.如果你想反编译整个java类树,⽤如下命令:jad -o -r -sjava -dsrc tree/**/*.class这条命令反编译所有.位于”tree”以及⼦⽬录并且建⽴输出⽂件在’’src”⽬录的相对⼦⽬录中依照类的包名.举个例⼦,如果⽂件”tree/a/b/c.class”包含类”c”来⾃包”a.b”,那么数车⽂件的名字是’’src/a/b/c.java”.。

如何使用反编译工具分析源代码(六)

如何使用反编译工具分析源代码(六)

如何使用反编译工具分析源代码在软件开发和信息安全领域,反编译工具是一种常用的工具,它可以将编译后的可执行文件还原为源代码。

使用反编译工具分析源代码有助于理解软件的内部结构和逻辑,对于开发者和安全研究人员来说都具有重要意义。

本文将介绍如何正确地使用反编译工具来分析源代码,并提供一些实用的技巧和注意事项。

一、选择合适的反编译工具首先,我们需要选择适合自己需要的反编译工具。

目前市场上有很多不同的反编译工具,比如IDA Pro、Ghidra、Jeb等。

这些工具都有各自的特点和优缺点,我们需要根据自己的需求和实际情况来选择合适的工具。

二、导入目标文件在使用反编译工具之前,我们需要将目标文件(可执行文件、动态链接库等)导入到工具中。

一般来说,反编译工具都提供了导入文件的功能,我们只需要将目标文件拖拽到工具界面中即可。

导入完成后,工具会自动进行反编译,并将反编译结果展示给用户。

三、分析源代码结构在获得源代码之后,我们可以开始分析代码的结构和逻辑。

首先,我们可以查看函数和变量的定义和声明。

通过查看函数和变量的定义,我们可以了解软件的整体结构和模块关系。

接下来,我们可以深入分析函数的实现细节。

可以查看函数内部的代码逻辑、控制流程以及函数调用关系等信息。

这些信息对于理解软件的实现逻辑和功能起着重要作用。

此外,一些反编译工具还提供了图形化的展示功能,能够以图形的形式显示代码的结构和关系。

通过这种方式,我们可以更直观地理解代码的层次结构和模块间的依赖关系。

四、注意事项在使用反编译工具分析源代码时,我们需要注意以下几点:1. 版权和法律问题。

反编译工具的使用需要遵守版权和法律规定。

在分析他人代码的时候,尤其要注意不要侵犯他人的知识产权。

2. 代码的可读性。

由于反编译过程中会存在一些信息的丢失和变形,因此反编译出来的源代码可能不如原始代码可读。

在分析过程中,我们需要针对具体情况进行适当的推理和猜测,以还原原始代码的意图。

3. 代码的准确性。

[蓝光技术]玩转BD-J原盘之java反编译

[蓝光技术]玩转BD-J原盘之java反编译

[蓝光技术]玩转BD-J原盘之java反编译
在玩BD-J原盘时难免会遇到修改java代码的时候,这个时候我们就需要对jar包里面的字节码反编译,便于阅读源代码,找到需要修改的地方
一、JD-GUI
这个工具非常方便,可以直接打开jar包
这个打开jar包之后的界面,点击左侧的class文件,右侧就会显示java源代码
图中这个class是发音设置的源代码
也可以选中所有代码后粘贴出来另存为*.java源文件。

这个工具提供的搜索功能也非常,可以搜索常量、字符串、方法、类的实例等
这个功能其实是我们最需要的我们需要通过搜索找到需要修改的地方
二、小颖Java源代码反编译超级引挚
这个工具最大的特色就是可以按目录反编译,一键将整个目录下的字节码文件全部反编译成java源文件。

反编译后就可以用文本工具查看和修改代码了反编译出来的结果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

java反编译工具--jad及小颖反编译专家的用法和使用详解
当下载一个软件是jar格式的,我们可以使用jar2cod这个软件将它转换成cod格式,通过桌面管理器装到
我们的bb上;如果你的电脑上安装了winrar并且没有安装jdk或者其他java开发工具,jar格式的文件的
图标就是一个压缩包的图标,我们可以将它解压,解压后可以看到里面包含了一些class 文件和其他一些
文件,.class后缀名的文件就是java源程序通过编译生成的类文件,而jar是对一个程序中所有需要用到
的类和其他资源打包的结果。

如果想深入的了解一下别人的软件是如何开发出来的,可以使用jad这个文
件对class文件进行反编译。

最新版的jad是1.5.8,下面我们来说一说jad的使用方法。

前提: 1.系统中安装了jdk;
2.正确的设置了系统的环境变量。

Java下的一个简单易用的反编译工具jad, 可以很方便的将.class反编译为.Java.
一、基本用法
假设在c:\Java\目录下包含有一个名为example1.class的文件,反编译方法如下所示。

c:\Java\>jad example1.class
结果是将example1.class反编译为example1.jad。

将example1.jad改为example1.Java 即得源文件。

c:\Java\>jad *.class
上述语句可以反编译c:\Java\目录下所有的class文件。

二、Option -o
不提示,覆盖源文件
三、Option -s
c:\Java\>jad –s Java example1.class
反编译结果以.Java为扩展名。

编译出来的文件就是example1.java
四、Option -p
将反编译结果输出到屏幕
c:\Java\>jad -p example1.class
将反编译结果重定向到文件
c:\Java\>jad -p example1.class>example1.Java
五、Option -d
指定反编译的输出文件目录
c:\Java\>jad -o –d test –s Java *.class
上述语句是将c:\Java\下所有class文件反编译输出到test目录下。

反编译别人的程序可以让我们看到别人软件的源代码,从而更好的了解别人的软件是如何开发出来的,
积累我们的编程经验,在此基础上还可以对软件进行一些修改。

除jad外小颖JAVA源代码反编译专家
V1.4终极版也是个很好的工具,但是只能对JDK1.4.2和之前的版本编译的程序反编译,而JDK5.0后
的文件就无能为力了,我们接着来讲一下小颖java源代码反编译专家的使用方法。

下载安装后打开程序的主界面如下:
我们以反编译qq2008beta1为例:
1.先将qq2008beta1 解压
2.指定qq2008beta1的目录
3.指定输出文件夹的目录
4.点击开始反编译。

5.打开输出文件夹查看结果
我们打开a.java看一下内容:
注:小颖java反编译专家是基于jad1.5.7的,在反编译的时候有可能某个文件一直反编译不出,我们可以关掉
小颖java反编译专家找出不能成功反编译的文件,删除,接着反编译,最后再用jad1.5.8 在dos下进行反编译。

进入dos ,切换到目录下输入jad -s java *.class 反编译所有小颖java反编译器未反编译成功的文件
从上图我们可以看出,虽然使用反编译工具jad但是CLASS文件仍不能完全的反编译出源代码中的一些方法,这就需要我们
对反编译出的文件进行一些必要的修改,否则即使重新打包成jar也不能正常的运行。

相关文档
最新文档