Android逆向分析基础-Dalvik虚拟机

  1. Dalvik虚拟机的特点
    1. 运行Dalvik字节码, 而不是Java字节码
    2. 基于寄存器架构, 而不是基于栈架构
    3. Dalvik可执行文件把class文件压缩合并, 使其变得更小
  2. Dalvik 是怎样执行程序的
    1. Linux的init进程做设备初始化
    2. init通过init.rc启动Zygote
    3. Zygote初始化Dalvik VM
    4. Zygote启动system_server, system_server通过socket等侯命令
    5. Zygote收到命令通过fork自身创建新的Dalvik实例, 执行应用程序
  3. Dalvik及时编译方式
    1. method方式: 以函数或方法为单位进行编译
    2. trace方式: 以trace为单位(执行路径)进行编译
  4. Dalvik汇编语言基础
  5. 反编译dex文件
    1. BakSmali, 如果没有下载到可以到这里下载
      1. 下载BakSmali最新版本
      2. 将baksmali-2.1.1.jar与要反编译的dex文件放到同一目录下
      3. java -jar baksmali-2.1.1.jar -o bakout Hello.dex
      4. 会把反编译的smali文件放到bakout目录中
    2. Dedexer, 这里是源代码, 如果需要jar可以点击这里
      1. 下载ddx
      2. 将ddx-1.26.jar与要反编译的dex放到同一目录下
      3. java -jar ddx-1.26.jar -d ddxout Hello.dex
      4. 会把反编译的ddx文件放到ddxout目录下
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值