KALI LINUX 工具大全---jd-gui(爪哇反编译器-图形界面)

一款高度还原java的开源独立反编译器---具有图形化界面

官网:http://java-decompiler.github.io/

第一印象

logo:

 

软件截图:

网站截图


相关介绍

下载:官网直接下载,注意有蔷。https://github.com/java-decompiler/jd-gui/releases、https://github.com/java-decompiler/jd-core

   https://github.com/java-decompiler/jd-eclipse/releases

存储库:github(https://github.com/java-decompiler

版本:JD-Core,JD-GUI、JD-Eclipse,windows、linux、osx

     JD-GUI是一个独立的图形实用程序,显示“ .class”文件的Java源代码。您可以使用JD-GUI浏览重建的源代码,以立即访问方法和字段。

     JD-Eclipse是Eclipse平台的插件。它允许您在调试过程中显示所有Java源代码,即使您没有全部源代码也是如此。

     JD-Core是一个“ .class”文件重构Java源代码的库文件。JD-Core可用于恢复丢失的源代码并探究Java运行时库的源码。支持Java 5的新功能,例如注释,泛型或“枚举”类             型。JD-GUI和JD-Eclipse都包含JD-Core库。

版本日期:1.6.6(2019.12.25)

编写语言:java

兼容性:优,与当前绝大多数编译器兼容,其中包括:

  • JDK 1.1.8, JDK 1.3.1, JDK 1.4.2, JDK 1.5.0, JDK 1.6.0, JDK 1.7.0, JDK 1.8.0, JDK 9.0.1, JDK 10.0.2(Oracle JVM收购自sun的正统)
  • jrockit90_150_06(Oracle 优化的JVM)
  • jikes-1.22(IDM JAVA)
  • harmony-jdk-r533500(apache jdk 已废弃,我怎么突然看到了鸿檬,虽然不是华伟的鸿檬,但是我猜测有可能基于这个JDK开发的,因为安卓早间也是用的Oracle JVM开发的,被Oracle告,被强行收取了一波官司费,不过现在的安卓虽然是基于jdk的但是核心代码没有用Oracle 的,而是自己实现的,除了api接口还是用Oracle 的,其余代码都实现了私有,其实安卓核心来讲就是 改的面目全非的linux+私有JDK+私有驱动程序+在JDK上运行的APK,apk的本质还是java,安卓的核心代码都没有开源,只是开源了开发要用到的东西,没有完全开源的软件我个人认为就是闭源的,为什么安卓基于linux开发的系统却可以不开源,谷鸽很鸡贼,为了避免开源,安卓在linux上自己实现了一套系统调用,这个系统调用就必须开源,这样在linux系统上的软件就不用开源了,因为安卓本质上就不是操作系统,是一个中间层,类似java一样,也正因如此才可以想卡谁的脖子卡谁的脖子。为什么要沿用类java来构建安卓,因为Java起初就是为嵌入式而开发的软件,java生态环境已相当成熟,基于java可以省好多事,安卓只要专注于界面就好了。手机开源操作系统绝对不是安卓一家,随着安卓的不断闭源,将有其他的开源自由手机操作系统随之崛起)
  • Eclipse Java Compiler v_677_R32x, 3.2.1 release

文档:无

源作者:Emmanuel Dupuy

开源 是

版权 GPLv3

盈利方式:捐赠

优点:jd-gui的最强大的地方就是引擎jd-core十分强劲,准确且快。在遇到错误时会注释汇编代码的形式展示错误内容。还有一个较为直观的界面,用java开发具有了跨平台特               性,主流操作系统都可以使用。

缺点:功能较为单一,只能反编译后查看源码内容

快速上手

jd-gui支持的格式有aar、class、ear、jar、java、jmod、log、war、zip、kar

JD-GUI的安装方式

   免安装,要先装好java环境

JD-Eclipse的安装方式

  1. 下载JD-Eclipse ZIP文件,
  2. 启动Eclipse,
  3. 点击“帮助>安装新软件...”
  4. 在对话框窗口中拖放ZIP文件,
  5. 选中“ Java Decompiler Eclipse插件”
  6. 点击“下一步”和“完成”按钮,
  7. 由于未签名“ org.jd.ide.eclipse.plugin_x.yzjar”,因此出现警告对话框单击“仍然安装”按钮。

使用方法

  JD-GUI程序双击执行或命令行执行 "java -jar jd-gui-x.y.z.jar" 或 "java -classpath jd-gui-x.y.z.jar org.jd.gui.App",前提是系统要装有java环境。直接打开目标文件或拖放。使用非常直观,代码中的下划线就是交叉引用的下文,就是被调用者的地方。删除所有文件即可卸载

详细讲解

如何源码构建JD-GUI?

> git clone https://github.com/java-decompiler/jd-gui.git
> cd jd-gui
> ./gradlew build 

生成文件到:

  • "build/libs/jd-gui-x.y.z.jar"
  • "build/libs/jd-gui-x.y.z-min.jar"
  • "build/distributions/jd-gui-windows-x.y.z.zip"
  • "build/distributions/jd-gui-osx-x.y.z.tar"
  • "build/distributions/jd-gui-x.y.z.deb"
  • "build/distributions/jd-gui-x.y.z.rpm"

如何扩展JD-GUI插件?

> ./gradlew idea 

生成Idea Intellij项目

> ./gradlew eclipse

生成Eclipse项目

> java -classpath jd-gui-x.y.z.jar;myextension1.jar;myextension2.jar org.jd.gui.App

使用您的扩展程序启动JD-GUI

扩展阅读

  衡量一个反编译查看器是否优秀的唯一标准就是反编译 引擎/内核/核心 能否高度还原出源码(以后统一叫引擎)其次支持的二进制文件格式是不是够多、支持大文件、多引擎支持、是否跨平台、有没有图形界面、是否直观易读(语法高亮、目录层级显示、显示调试信息比如代码行或源文件名、注解等等)、是否具有一定容错性(不要反编译一半就挂了)、是否开源、有没有交叉引用(调用者和被调用者)、强大的搜索功能、是否可编辑(目前的反编译器都不可编辑,不能直接编辑源码或二进制代码),有没有调试功能、是否具有可扩展性(比如添加自己的反编译支持格式等)。

什么是编译、链接、执行、

  百毒知道

什么是反编译器和反汇编器

  百毒知道

什么是调试器和反调试

  百毒知道

什么静态分析和动态调试

  百毒知道

什么是反调试和反反编译和加固和加壳和混淆

  反调试就是阻碍调试进程的内容,加固指定的就包含反调试、反反编译、加密字符串等一切阻碍反编译进行的技术。加壳就加固的一种快速方法,可以瞬间保护可执行代码无需提供源码。混淆也是一种加固方法,指的是将字符串加密、函数名随机化、函数结构扁平化的初步加固处理。

什么调试信息和代码行

  在编译完成后会存留有多余代码,方便调试使用。其中有个信息是代码行,它反映了这行代码在源码中的大致位置。

什么GUI和CLI

  百毒知道

什么独立软件

  独立软件就是不依赖任何第三方软件的软件,包括核心和GUI

常见的反编译器有哪些?

  JD-Core 、CFR、Dava、FernFlower、JaDx、Jode、Krakatau、Procyon

什么是java、jdk、jre、字节码?

  百毒知道

 

原文地址:https://www.cnblogs.com/GKLBB/p/13570140.html