`
sunnychuh
  • 浏览: 22240 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

引用 Jad批量反编译

阅读更多


因为之前我们已经将jad加入到了%JAVA_HOME%\bin中,只要配置了环境变量,我们就可以在命令行中方便的使用。在这里,大象还是以dom4j-1.6.1.jar为例来说明具体的操作步骤。

解压dom4j-1.6.1.jar和jaxen-1.1-beta-7.jar。为了方便,我将JAR包解压放到F盘根目录,在cmd中,进入到F盘根路径下,输入命令:jad -o -r -s java -d src org/**/*.class

我解释一下这些参数的含义:

-o:覆盖旧文件,而且不用提示确认。

-r:重新加载生成包结构。

-s:定义输出文件的扩展名。jad为默认扩展名,我们反编译后当然是要.java源文件了。

-d:输出文件的目录。src表示反编译后的所有文件都放在src目录下。

org/**/*.class:org是解压后的文件夹的名字,整个表示org目录下的所有class文件。你也可以写成这样**/*.class,这表示当前目录及其子目录下所有的class文件(包含所有的子目录)。

  反编译dom4j-1.6.1.jar必须得有jaxen-1.1-beta-7.jar,因为dom4j里面有对xpath的调用,而这些东西都是引用jaxen里的API,如果不加则会有这样的错误:

<img src="http://www.blogjava.net/images/blogjava_net/bolo/eclipse/jad6.JPG" />

有可能JAR包中的class文件不是老外的,而是我们自己写的,里面可能会有中文的情况,这时,虽然反编译通过了,但里面却是gb2312形式的unicode编码,因此我们还得做一个工作,将这些编码转换成中文。

大象使用ant脚本来完成这个工作,内容比较简单,加了注释,应该很好明白,脚本文件名为build.xml,它放在src目录下,和反编译所得的包处在同一层。

<?xml version="1.0" encoding="GBK"?>

<project name="decompile" basedir="." default="native2ascii">

<!-- 定义输出目录 -->

<property name="build" value="build"/>

<!-- 清除输出目录 -->

<target name="clean">

<delete dir="${build}"/>

</target>

<!-- 创建输出目录 -->

<target name="init" depends="clean">

<mkdir dir="${build}"/>

</target>

<!-- 编码转换 reverse="true"为反向转换 --> 

<target name="native2ascii" depends="init">

<native2ascii reverse="true" src="${basedir}" encoding="gb2312" dest="${basedir}/${build}" />

</target>

</project>

有一个地方需要补充一下,在native2ascii元素中,src和dest这两个属性表示着路径。如果反编译后,src目录下,有多个不同的文件夹,这时使用ant来转换编码,请先想好要对哪些文件进行反编码;如果按上面的写法,将会把src目录下的所有文件夹中的所有文件进行反编码。假设,现在有com和org两个文件夹(其实是两个包),我只需要对com中的文件进行反编码,那么可以这样改写:src="${basedir}/com" dest="${basedir}/${build}/com"

分享到:
评论

相关推荐

    java class文件的反编译工具

    反编译工具支持拖拉功能,这意味着用户可以直接将.class文件拖放到工具界面上,工具会自动加载并反编译该类及其引用的类。这样可以提高工作效率,尤其在处理大量类文件时。 总的来说,Java类文件的反编译是软件开发...

    jd-gui反编译class文件

    JD-GUI的工作原理基于反编译技术,它解析Java字节码并将其转换回接近原始的.java源代码形式。尽管这个过程可能会丢失一些注释和原始的变量命名,但大多数代码结构和功能逻辑可以被准确地恢复。 使用JD-GUI的步骤...

    java反编译工具

    JAD,则是另一款强大的命令行Java反编译器,它支持批量处理,可以将整个.jar或.class文件夹反编译为源代码。JAD的特点包括: 1. **批处理模式**:通过命令行参数,JAD可以一次性处理多个文件或目录,适合自动化脚本...

    Java 反编译插件

    其中,JD-GUI是一款独立的图形工具,可以直接打开.class文件并显示反编译的源代码,而JAD则提供了命令行接口,可以批量处理字节码文件。 Java反编译插件通常是集成在开发环境(如Eclipse、IntelliJ IDEA或NetBeans...

    java反编译利器

    JD-GUI允许用户直接查看单个类的源代码,而JAD则提供命令行接口,可以批量处理反编译任务。Procyon则是相对较新的反编译器,支持Java 8及以下版本的特性。 3. **Eclipse集成反编译**:Eclipse作为流行的Java IDE,...

    java反编译软件

    - **功能**:是否支持批量反编译、集成到开发环境、代码高亮等。 - **许可证**:确保工具的使用符合其许可证条款,特别是商业用途时。 总之,Java反编译软件是开发者的重要工具,可以帮助我们理解和分析Java代码,...

    Java代码反编译工具

    6. **其他反编译工具**:除了JD-GUI,还有其他一些流行的Java反编译工具,如JAD,它是一个命令行工具,可以批量处理反编译任务;FernFlower,也是一个开源的Java反编译器,常用于GitHub上的项目。 7. **版权和法律...

    java反编译器,好用的java反编译器

    5. **命令行选项**:对于自动化任务,JAD提供了丰富的命令行选项,可以批量处理多个类文件,或者根据需要调整反编译设置。 6. **开源项目**:JAD是一个开源项目,这意味着它的源代码公开,开发者可以根据需要进行...

    java反编译工具,xjad

    5. **库支持**:对于依赖于Java标准库或其他外部库的代码,XJAD尝试解释这些引用,使反编译的代码更具可读性。 6. **命令行界面**:XJAD通常通过命令行接口使用,允许用户自定义输入和输出选项,以及进行批量处理。...

    java反编译工具(class转java)

    虽然`JD-GUI`在很多情况下已经足够使用,但有些场景下可能需要更强大的反编译解决方案,例如进行批量处理或集成到自动化流程中。这时,`JD-Core`库(`JD-GUI`的命令行版本)或者`JAD`(Java反汇编器)可能会是更好的...

Global site tag (gtag.js) - Google Analytics