反编译那些事儿(三)—那些看似没用到的全局变量和那些使用了动态参数的方法
说明:下面的反编译结果使用“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关键字修饰;
②、动态参数变为了数组;
反编译那些事儿(三)—那些看似没用到的全局变量和那些使用了动态参数的方法相关推荐
- Java代码的编译与反编译那些事儿
GitHub 2.5k Star 的Java工程师成神之路 ,不来了解一下吗? GitHub 2.5k Star 的Java工程师成神之路 ,真的不来了解一下吗? GitHub 2.5k Star 的 ...
- android apk 防止反编译技术第三篇-加密apk
经过了忙碌的一周终于有时间静下来写点东西了,我们继续介绍android apk防止反编译技术的另一种方法.前两篇我们讲了加壳技术和运行时修改字节码,如果有不明白的可以查看我的博客的前两篇中关于这两种技 ...
- android apk 防止反编译技术第三篇-加密
经过了忙碌的一周终于有时间静下来写点东西了,我们继续介绍android apk防止反编译技术的另一种方法.前两篇我们讲了加壳技术(http://my.oschina.net/u/2323218/blo ...
- 如何反编译 cocos creator 生成 的jsc文件/反编译jsc文件(三) , 还原cocos creator 工程
在实际运用中, 发现只是简单的将jsc反编译为js代码后, 并不能好好的进行二次开发, 最好能反编译成工程项目, 可以直接用IDE编译, 目前市面上使用最多的开发框架是cocos creator 和白 ...
- 反编译工具java知乎_GDA反编译器更新至3.66:支持污点传播分析、方法签名、python脚本...
本帖最后由 gjden 于 2019-9-24 16:44 编辑 GDA3简介(下载链接: www.gda.wiki:9090) GDA是一款由本人对反编译理论的长期研究和实践而形成的全交互式反编译器 ...
- 反编译APK文件的三种方法
因为学习Android编程的需要,有时我们需要对网络上发布的应用项目进行学习,可是Android项目一般是通过APK文件进行发布的,我们看不到源代码,嘿嘿,办法总会有的,而且不止一个... ps:对于 ...
- 反编译系列教程(上)
MalwareBenchmark · 2016/03/14 15:25 Author: MalwareBenchmark 0x00 简介 <编译原理>课程在大学本科阶段就难道了很多计算机专 ...
- 反编译使用yield关键字的方法
我认为这是一个真命题:"没有用.NET Reflector反编译并阅读过代码的程序员不是专业的.NET程序员"..NET Reflector强大的地方就在于可以把IL代码反编译成可 ...
- 【Java 虚拟机原理】Dalvik 虚拟机 ( 打包 Jar 文件和 Dex 文件 | 反编译 Dex 文件 | 分析 Dex 文件反编译结果 )
文章目录 前言 一.打包 Jar 文件和 Dex 文件 1.示例代码 2.打包 Jar 文件 3.打包 Dex 文件 二.反编译 Dex 文件 三.分析 Dex 文件 1.Student 类相关信息 ...
- Eclipse反编译插件: Jodeclipse与JadClipse
http://www.ieee.org.cn/dispbbs.asp?boardID=41&ID=51418 Eclipse反编译插件: Jodeclipse与JadClipse Jodecl ...
最新文章
- 阅读Book: MultiObjective using Evolutionary Algorithms (1) --prologue 单目标和多目标的不同
- Android移动开发之【Android实战项目】通过Java代码设置TextView
- 《编译与反编译技术实战》——第2章编译器实践概述
- 十年研发经验嵌入式工程师书籍推荐
- android4.0 开机启动activity 4.0,如何正确理解和使用Activity的4种启动模式
- C#中常用的几种读取XML文件的方法
- 惠而浦扫地机器人充不进电_【今日关注】惠而浦扫地机器人怎么样?体验2个月之肺腑之言? | 智能扫地机器人评测...
- 精心收集的 48 个 JavaScript 代码片段,仅需 30 秒就可理解
- MySQL_02之增删改查、PHP数据库操作
- 携程android app插件化
- win10获得system权限(超级管理员)
- AlphaGo围棋论文中文翻译
- excel保存快捷键_Excel快升效率的快捷键
- C++笔试笔记1(4399 西山居 深信服 剑心互娱 快手)
- Deepin搭建Qt5开发环境
- LPC1768 IAR环境下使用完整64K内存的方法_整理
- iphonex适配游戏_iPhoneX王者荣耀适配问题 iPhoneX游戏问题详解
- 葵花宝典:WPF自学手册(奋斗的小鸟)_PDF 电子书
- Java编程语言学习:Java语言编程的基础知识之Java的变量与数据类型、符号、运算符、数组Array总结之详细攻略
- FPGA产生相位编码基带信号