jad及小颖反编译专家的用法和使用详解
- 格式:doc
- 大小:306.00 KB
- 文档页数:7
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-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下载:
选择适合版本的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点击,就可以看到反编译后的源文件了,。
在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文件了,呵呵,试试吧!如:。
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也不能正常的运行。