说明:下面的反编译结果使用“http://download.csdn.net/detail/wangshuxuncom/6841823”处的反编译工具反编译的。

一、那些看似没用到的全局变量

java源码:

public class Test{

private static final String TEST = "ceshi";

public String getValue() {
                      return TEST;
          }

public static void main(String[] args) {
                      System.out.println(new Test().getValue());
          }
}

class文件反编译后的代码:

import java.io.PrintStream;

public class Test
{

public Test()
            {
            }

public String getValue()
           {
                       return "ceshi";
           }

public static void main(String args[])
          {
                      System.out.println((new Test()).getValue());
           }

private static final String TEST = "ceshi";
}

总结:反编译后的代码中会发现TEST全局变量没有用了,可是源代码中是有用的,这是怎么回事儿呢?这时请关注使用了该全局变量的地方,比较编译前和编译后的java脚本就会看出里面的猫腻。

二、那些使用了动态参数的方法

java源码:

public class Test {

public void getValue(String... values) {
                      for (int i = 0; i < values.length; i++) {
                                System.out.println(values[i]);
                      }
          }

public static void main(String[] args) {
                     new Test().getValue("ceshi1","ceshi2");
         }
}

class文件反编译后的代码:

import java.io.PrintStream;

public class Test
{

public Test()
         {
         }

public transient void getValue(String values[])
        {
                   for(int i = 0; i < values.length; i++)
                            System.out.println(values[i]);

}

public static void main(String args[])
       {
                 (new Test()).getValue(new String[] {"ceshi1", "ceshi2"});
       }
}

总结:①、getValue方法添加了transient关键字修饰;

②、动态参数变为了数组;

反编译那些事儿(三)—那些看似没用到的全局变量和那些使用了动态参数的方法相关推荐

  1. Java代码的编译与反编译那些事儿

    GitHub 2.5k Star 的Java工程师成神之路 ,不来了解一下吗? GitHub 2.5k Star 的Java工程师成神之路 ,真的不来了解一下吗? GitHub 2.5k Star 的 ...

  2. android apk 防止反编译技术第三篇-加密apk

    经过了忙碌的一周终于有时间静下来写点东西了,我们继续介绍android apk防止反编译技术的另一种方法.前两篇我们讲了加壳技术和运行时修改字节码,如果有不明白的可以查看我的博客的前两篇中关于这两种技 ...

  3. android apk 防止反编译技术第三篇-加密

    经过了忙碌的一周终于有时间静下来写点东西了,我们继续介绍android apk防止反编译技术的另一种方法.前两篇我们讲了加壳技术(http://my.oschina.net/u/2323218/blo ...

  4. 如何反编译 cocos creator 生成 的jsc文件/反编译jsc文件(三) , 还原cocos creator 工程

    在实际运用中, 发现只是简单的将jsc反编译为js代码后, 并不能好好的进行二次开发, 最好能反编译成工程项目, 可以直接用IDE编译, 目前市面上使用最多的开发框架是cocos creator 和白 ...

  5. 反编译工具java知乎_GDA反编译器更新至3.66:支持污点传播分析、方法签名、python脚本...

    本帖最后由 gjden 于 2019-9-24 16:44 编辑 GDA3简介(下载链接: www.gda.wiki:9090) GDA是一款由本人对反编译理论的长期研究和实践而形成的全交互式反编译器 ...

  6. 反编译APK文件的三种方法

    因为学习Android编程的需要,有时我们需要对网络上发布的应用项目进行学习,可是Android项目一般是通过APK文件进行发布的,我们看不到源代码,嘿嘿,办法总会有的,而且不止一个... ps:对于 ...

  7. 反编译系列教程(上)

    MalwareBenchmark · 2016/03/14 15:25 Author: MalwareBenchmark 0x00 简介 <编译原理>课程在大学本科阶段就难道了很多计算机专 ...

  8. 反编译使用yield关键字的方法

    我认为这是一个真命题:"没有用.NET Reflector反编译并阅读过代码的程序员不是专业的.NET程序员"..NET Reflector强大的地方就在于可以把IL代码反编译成可 ...

  9. 【Java 虚拟机原理】Dalvik 虚拟机 ( 打包 Jar 文件和 Dex 文件 | 反编译 Dex 文件 | 分析 Dex 文件反编译结果 )

    文章目录 前言 一.打包 Jar 文件和 Dex 文件 1.示例代码 2.打包 Jar 文件 3.打包 Dex 文件 二.反编译 Dex 文件 三.分析 Dex 文件 1.Student 类相关信息 ...

  10. Eclipse反编译插件: Jodeclipse与JadClipse

    http://www.ieee.org.cn/dispbbs.asp?boardID=41&ID=51418 Eclipse反编译插件: Jodeclipse与JadClipse Jodecl ...

最新文章

  1. 阅读Book: MultiObjective using Evolutionary Algorithms (1) --prologue 单目标和多目标的不同
  2. Android移动开发之【Android实战项目】通过Java代码设置TextView
  3. 《编译与反编译技术实战》——第2章编译器实践概述
  4. 十年研发经验嵌入式工程师书籍推荐
  5. android4.0 开机启动activity 4.0,如何正确理解和使用Activity的4种启动模式
  6. C#中常用的几种读取XML文件的方法
  7. 惠而浦扫地机器人充不进电_【今日关注】惠而浦扫地机器人怎么样?体验2个月之肺腑之言? | 智能扫地机器人评测...
  8. 精心收集的 48 个 JavaScript 代码片段,仅需 30 秒就可理解
  9. MySQL_02之增删改查、PHP数据库操作
  10. 携程android app插件化
  11. win10获得system权限(超级管理员)
  12. AlphaGo围棋论文中文翻译
  13. excel保存快捷键_Excel快升效率的快捷键
  14. C++笔试笔记1(4399 西山居 深信服 剑心互娱 快手)
  15. Deepin搭建Qt5开发环境
  16. LPC1768 IAR环境下使用完整64K内存的方法_整理
  17. iphonex适配游戏_iPhoneX王者荣耀适配问题 iPhoneX游戏问题详解
  18. 葵花宝典:WPF自学手册(奋斗的小鸟)_PDF 电子书
  19. Java编程语言学习:Java语言编程的基础知识之Java的变量与数据类型、符号、运算符、数组Array总结之详细攻略
  20. FPGA产生相位编码基带信号

热门文章

  1. Scala 编程---类和对象
  2. 关于SQL时间类型的模糊查询
  3. 近现代科学三大发现:证实佛法真实不虚
  4. Map3D/MapGuide API中如何计算两点间的距离?
  5. All In One For Firefox 3
  6. 阿里云Link Security为企业级区块链提供易用性安全解决方案
  7. 深入分析.NET应用程序SQL注入【危害】
  8. 关于网上商城开发的随笔记录1
  9. drbd+corosync+pacemaker实现mysql的高可用性“上”
  10. 1.Kubernetes权威指南 --- Kubernetes入门