Java反编译代码分析(一)

简介:

浅析如何读懂这种反编译过来的文件,不喜勿喷。

赋值

复制代码
Node node;
        Node node1 = _$3.getChildNodes().item(0);
        node1;
        node1;
        JVM INSTR swap ;
        node;
        getChildNodes();
        0;
        item();
        getChildNodes();
        0;
        item();
        getNodeValue();
        String s;
        s;
复制代码

原始语句:

Node node;
Node node1 = currDocument.getChildNodes().item(0);
node = node1;
String s = node.getChildNodes().item(0).getChildNodes().item(0).getNodeValue();
//赋值语句
// JVM INSTR swap ;

不带参数创建对象

JVM INSTR new #244 <Class CrossTable>;
        JVM INSTR dup ;
        JVM INSTR swap ;
        CrossTable();
        CrossTable crosstable;
        crosstable;
CrossTable crosstable = new CrossTable();

带参数创建对象

复制代码
JVM INSTR new #262 <Class StringBuffer>;
        JVM INSTR dup ;
        JVM INSTR swap ;
        String.valueOf(s2);
        StringBuffer();
        s.substring(j, i);
        append();
        s6;
        append();
        toString();
        s2;
复制代码
s2 = (new StringBuffer(String.valueOf(s2))).append(s.substring(j, i)).append(s6).toString();
//s2 += s.substring(j, i) + s6;

for循环

复制代码
int k = 0;
goto _L4
_L8:
 ...
 k++;
_L4:
        if(k < as.length) goto _L8; else goto _L7
复制代码
for(int k=0;k < as.length;k++)
 {
     ...
 }

while循环

复制代码
String s1 = "";
          goto _L1
_L3:
        JVM INSTR new #262 <Class StringBuffer>;
        JVM INSTR dup ;
        JVM INSTR swap ;
        String.valueOf(s1);
        StringBuffer();
        _$2(resultset, s, l);
        append();
        toString();
        s1;
_L1:
        if(resultset.next()) goto _L3; else goto _L2
复制代码
String s1 = "";
 while(resultset.next())
 {
  s1 = s1 + resultSetToString(resultset, s, l);
 }

我是天王盖地虎的分割线




本文转自我爱物联网博客园博客,原文链接:http://www.cnblogs.com/yydcdut/p/4314546.html,如需转载请自行联系原作者

相关文章
|
算法 安全 Java
Java源码混淆,jar包加密,禁止反编译jar包
本文中介绍使用 XJar 对jar包进行加密。
1864 1
Java源码混淆,jar包加密,禁止反编译jar包
|
4天前
|
存储 安全 Java
深入理解Java字节码与反编译技术
深入理解Java字节码与反编译技术
13 0
|
2月前
|
缓存 Java 计算机视觉
深入理解Java自动装箱和自动拆箱(反编译字节码理解每条指令)
在Java中,自动装箱(Autoboxing)是指将基本数据类型(如int、char等)自动转换为其对应的包装类(如Integer、Character等)的过程。而自动拆箱(Unboxing)则是将包装类的对象转换回其对应的基本数据类型的操作。这些特性从Java SE 5开始被引入,以方便开发者在处理基本类型和其包装类之间进行转换。 下面是一个简短的摘要: - **自动装箱**:当基本类型赋值给包装类时,例如 `Integer i = 1;`,Java会自动调用Integer的`valueOf()`方法,将int转换为Integer对象。对于数值在-128到127之间的int,会使用Int
46 2
深入理解Java自动装箱和自动拆箱(反编译字节码理解每条指令)
|
5月前
|
Java
Java【付诸实践 04】Jar包class文件反编译、修改、重新编译打包方法(含反编译工具jd-gui-windows-1.6.6.zip百度云资源)
Java【付诸实践 04】Jar包class文件反编译、修改、重新编译打包方法(含反编译工具jd-gui-windows-1.6.6.zip百度云资源)
182 0
|
5月前
|
IDE Java 开发工具
你知道 Java 中关键字 enum 是一个语法糖吗?反编译枚举类
你知道 Java 中关键字 enum 是一个语法糖吗?反编译枚举类
48 0
|
6月前
|
Java
Java反编译生成java文件
Java反编译生成java文件
68 0
|
6月前
|
Java
java反编译class
java反编译class
58 0
|
9月前
|
安全 Java 开发者
Kotlin 和 Java对比,具体代码分析
@[TOC](目录) Kotlin 和 Java 都是广泛使用的编程语言,它们有一些共同点,例如都追求面向对象编程,但也有许多不同之处。下面是 Kotlin 和 Java 之间的一些比较: # 一、语法比较 1. 声明变量:Kotlin 使用 val 和 var 关键字来声明不可变和可变变量,而 Java 使用 final 和非 final 修饰符。 2. 类型推断:Kotlin 支持类型推断,可以省略变量类型,而 Java 必须显式指定变量类型。 3. 可空类型:Kotlin 使用?和!! 操作符来表示可空类型和非空类型,而 Java 没有这样的区分。 4. 函数声明:Kotlin 使用 f
113 0
|
9月前
|
Arthas 人工智能 运维
Java线上排错---反编译文件
Java线上排错---反编译文件
106 0
|
10月前
|
Java
java反编译问题 报 INTERNAL ERROR
使用 jd-gui.exe反编译工具,反编译时部分类无法反编译。
199 0
java反编译问题 报 INTERNAL ERROR