• 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、字节码?

      百毒知道

     

  • 相关阅读:
    (uC/OS-II学习笔记) 事件标志……
    (uC/OS-II学习笔记) 消息邮箱&&消息队列
    (uC/OS-II学习笔记)关于共享资源与信号量
    (uC/OS-II学习笔记)uC/OS-II 时间管理
    (uC/OS-II学习笔记)uC/OS-II在kinetis K60上移植与任务建立
    (Kinetis K60)RTC实时时钟
    (Kinetis K60)flash读写
    JQuery官方学习资料(译):避免与其他库的冲突
    JQuery官方学习资料(译):$( document ).ready()
    JQuery官方学习资料(译):$ vs $()
  • 原文地址:https://www.cnblogs.com/GKLBB/p/13570140.html
Copyright © 2020-2023  润新知