从0到1 Android安全学习之路 -- Java 字节码和 Dalvik 字节码

Java 字节码和 Dalvik 字节码

概述

  本篇博客将讲述 Java 源代码到字节码,字节码转汇编,以及 Android 中 Java 源代码转 Dalvik 字节码,Dalvik 字节码转 smali 汇编的一些操作。主要是熟悉一些基本工具的使用,这里做个总结。

源代码样例

  这里提供一份最简单的源代码示例,示例在于精而不在于复杂,当然肯定越简单越好,将下面的代码保存为HelloWorld.java文件,后面转 Java 字节码和 Dalvik 字节码都用该示例。

public class HelloWorld {
   
    
    public static void main(String[] args) {
   
        System.out.println("HelloWorld!");
    }
}

Java 字节码

   Java 源代码转字节码,使用 jdk 自带命令行工具javac,如下命令所示。执行后会在当前目录下生成 HelloWorld.class文件,这里生成 .class 文件就是 Java 字节码,可以交由 Java 虚拟机(JVM)执行,操作命令如下java HelloWorld

javac HelloWorld.java

  如果直接打开字节码文件,中间会有一些乱码,人无法直接阅读,所以这里借用 jdk 自带命令行工具javap执行反汇编,将字节码转为汇编代码。如下命令所示,这里操作的是HelloWorld.class,命令行中是否加上 .class 后缀都可以。

javap -c HelloWorld

  如下代码所示,是上面执行后的输出结果,这里注意该命令并不会将汇

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值