`
marystone
  • 浏览: 7477 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

JAVA反编译(一)

    博客分类:
  • Java
阅读更多
JAVA编译后的CLass是很容易被反编译的,网上这类工具也比较多。这里是用了DJ Java Decompiler工具。一般没有被混淆过的JAVA代码反编译后基本上都能正常阅读,也有少部分是工具无法完整反编译出来,会带一些JVM语言和label等。如果被混淆过的JAVA代码反编译后前面的情况会出现的更多一些,同时还会把私有变量、方法、类的名称混淆成不方便阅读。这里就记录一下反编译时常见的一些形式。

一、最常见是new一个对象赋给一个变量
JVM INSTR new #2   <Class ArrayList>;
        JVM INSTR dup ;
        JVM INSTR swap ;
        ArrayList();
        List tobeRemove;
        tobeRemove;

转化后代码为:
List tobeRemove=new ArrayList();

从上面反编译出来的代码可以看出JAVA里面new一个对象的过程。

二、比较复杂的对象创建语句
JVM INSTR new #48  <Class Area>;
        JVM INSTR dup ;
        JVM INSTR swap ;
        JVM INSTR new #49  <Class java.awt.geom.RoundRectangle2D$Float>;
        JVM INSTR dup ;
        JVM INSTR swap ;
        0.0F;
        0.0F;
        (float)(getWidth() - 1);
        (float)(getHeight() - 10);
        10F;
        10F;
        java.awt.geom.RoundRectangle2D.Float();
        Area();
        Area area;
        area;

转化后为:
Area area=new Area(new java.awt.geom.RoundRectangle2D.Float(0.0F,0.0F,(float)(getWidth() - 1),(float)(getHeight() - 10),10F,10F));


三、同步代码
HashMap hashmap = tasks;
        JVM INSTR monitorenter ;
        if(tasks.remove(new Integer(iTaskID)) == null)
            return false;
        hashmap;
        JVM INSTR monitorexit ;
        return false;
        hashmap;
        JVM INSTR monitorexit ;
        throw ;


转化后为:
synchronized (tasks) {
    		 if(tasks.remove(new Integer(iTaskID)) == null){
    	            return false;
    		 }else{
    		  return true;
    		 }
	 }
分享到:
评论

相关推荐

    JAVA反编译工具JAVA反编译工具JAVA反编译工具JAVA反编译工具JAVA反编译工具

    JAVA反编译工具JAVA反编译工具JAVA反编译工具JAVA反编译工具JAVA反编译工具JAVA反编译工具JAVA反编译工具JAVA反编译工具JAVA反编译工具JAVA反编译工具JAVA反编译工具JAVA反编译工具JAVA反编译工具JAVA反编译工具JAVA...

    java反编译工具绿色版

    Java反编译工具是程序员在开发和调试过程中经常会用到的一种实用软件,它能够将已编译的Java字节码(.class文件)转换回源代码格式,这对于查看和理解第三方库或者研究已有的二进制代码非常有帮助。本绿色版的Java反...

    java反编译工具

    JAD是另一个知名的Java反编译工具,它提供命令行接口,适合于自动化脚本或者集成到其他工具链中。FernFlower则是一个开源的反编译器,它的反编译效果通常较好,但可能需要更多的配置和调试。 需要注意的是,反编译...

    咖啡图形的java反编译工具(实用)

    这款名为“咖啡图形的java反编译工具”很可能是一款界面友好的图形化工具,专为简化这个过程而设计。 Java字节码是一种中间语言,由Java编译器生成,可以在任何支持Java虚拟机(JVM)的平台上运行。然而,由于字节...

    java反编译程序

    Java反编译是将已编译的字节码(.class文件)转换回源代码(.java文件)的过程。在开发或维护项目时,如果原始的源代码丢失或不可用,反编译工具就能派上用场。这些工具可以帮助开发者理解代码的功能,修复错误,...

    JAVA反编译软件(可将class文件反编译为java文件)

    Java反编译是Java开发中一个重要的辅助工具,它能够帮助开发者查看已编译的`.class`文件中的源代码,即使原始的`.java`源文件已经丢失或未被提供。这个过程对于理解类库的工作原理、逆向工程、调试、学习或者分析...

    jd-gui最好的JAVA反编译工具

    此时,就需要用到反编译工具,而jd-gui就是这样一款强大的JAVA反编译工具。它以其简单易用、功能齐全的特点,深受广大开发者喜爱。 首先,jd-gui是一款开源的Java反编译工具,能够将字节码还原为接近原始的Java源...

    java反编译exe

    标题中的“jd_gui.exe”就是一种常用的Java反编译工具,名为JadGUI。 JadGUI是Jad的图形用户界面版本,Jad是一个开源的Java反编译器,能够将.class文件还原为可读的Java源代码。JadGUI提供了一个简单易用的界面,...

    Java反编译工具jui

    Java反编译是Java开发中一个重要的辅助工具,主要用于查看和理解Java字节码,将已编译的.class文件或.jar文件转换回源代码形式。这在进行逆向工程、学习开源项目、修复bug或者理解未知代码的工作流程时非常有用。...

    java反编译工具 jad

    jad 是应用最广泛的java 反编译工具;其本身是命令行工具;其他很多用具是在jad内核的基础上加了一个图形界面;比如我上传的资源、Cavaj Java Decompiler  以下假设jad.exe在c:\java目录下  一、基本用法  ...

    java反编译工具 java反编译工具

    - **Procyon**:这是一个开源的Java反编译和编译工具,它提供了比JAD更好的语法还原能力。 - **FernFlower**:另一款开源的Java反编译器,其反编译结果通常比其他工具更接近原始源代码。 - **JDeobfuscator**:...

    java反编译工具,一款很好的java反编译工具

    java反编译工具,java反编译工具,java反编译工具 一款很好的java反编译工具 一款很好的java反编译工具一款很好的java反编译工具

    java jar反编译工具 java Class反编译工具

    总的来说,JD-GUI作为一款强大的Java反编译工具,为开发者提供了一种有效的方式来探索和学习已编译的Java代码,帮助他们解决问题、提高代码理解力,从而提升开发效率。无论你是初学者还是经验丰富的开发者,JD-GUI都...

    jd-gui java反编译的工具,非常好用

    java反编译的工具,非常好用 java反编译的工具,非常好用 java反编译的工具,非常好用 java反编译的工具,非常好用 java反编译的工具,非常好用 java反编译的工具,非常好用 java反编译的工具,非常好用 java反编译...

    JAVA反编译文件解决中文乱码

    本文将详细介绍如何解决JAVA反编译文件时的中文乱码问题。 首先,理解问题的根源:Java源代码默认采用UTF-8编码,但某些情况下,源代码可能使用了其他编码方式,如GBK。当这些源代码被编译成字节码后,再用不支持...

    JAVA反编译详细步骤

    首先,我们介绍最流行的Java反编译工具之一——JD-GUI。这个图形化工具允许用户直接打开.class文件,并查看对应的源代码。下载并安装JD-GUI后,只需拖拽.class文件到其界面,就能查看源码。尽管反编译后的代码可能与...

    安卓、Java反编译工具

    本文将深入探讨“安卓、Java反编译工具”这一主题,包括它们的工作原理、常用的反编译工具以及如何使用这些工具来解析编译过的文件。 首先,我们需要理解编译和反编译的基本概念。编译是将源代码(如Java或Android...

    mac版本java反编译JD-GUI

    JD-GUI是一款流行的Java反编译工具,尤其适用于Mac用户。在本文中,我们将深入探讨JD-GUI在Mac平台上的使用,以及它如何帮助开发者处理Java字节码。 JD-GUI是一款图形用户界面工具,它允许开发者直接查看和分析单个...

Global site tag (gtag.js) - Google Analytics