加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 服务器 > 安全 > 正文

网络安全知识:Android App

发布时间:2021-05-22 17:41:01 所属栏目:安全 来源:互联网
导读:1. Dalvik虚拟机概述 Google于2007年底正式发布了Android SDK,Dalvik虚拟机也第一次进入了我们的视野。它的作者是丹伯恩斯坦(Dan Bornstein),名字来源于他的祖先曾经居住过的名叫Dalvik的小渔村。Dalvik虚拟机作为Android平台的核心组件,拥有如下几个特

1. Dalvik虚拟机概述

Google于2007年底正式发布了Android SDK,Dalvik虚拟机也第一次进入了我们的视野。它的作者是丹·伯恩斯坦(Dan Bornstein),名字来源于他的祖先曾经居住过的名叫Dalvik的小渔村。Dalvik虚拟机作为Android平台的核心组件,拥有如下几个特点。

(1)体积小,占用内存空间小。

(2)专用的DEX可执行文件格式,体积更小,执行速度更快。

(3)常量池采用32位索引值,寻址类方法名、字段名、常量更快。

(4)基于寄存器架构,并拥有一套完整的指令系统。

(5)提供了对象生命周期管理、堆栈管理、线程管理、安全和异常管理以及垃圾回收等重要功能。

(6)所有的Android程序都运行在Android系统进程里,每个进程对应着一个Dalvik虚拟机实例。

Dalvik虚拟机与传统的Java虚拟机有着许多不同点,两者并不兼容,它们显著的不同点主要表现在以下几个方面。

(1)Java虚拟机运行的是Java字节码,Dalvik虚拟机运行的是Dalvik字节码。

(2)Dalvik可执行文件体积更小。

(3)Java虚拟机基于栈架构,Dalvik虚拟机基于寄存器架构。

2. Smali概述

Dalvik虚拟机(Dalvik VM)是Google专门为Android平台设计的一套虚拟机。区别于标准Java虚拟机JVM的class文件格式,Dalvik VM拥有专属的DEX可执行文件格式和指令集代码。Smali和Baksmali 则是针对 DEX 执行文件格式的汇编器和反汇编器,反汇编后DEX文件会产生.smali后缀的代码文件,Smali代码拥有特定的格式与语法,Smali语言是对Dalvik虚拟机字节码的一种解释。

Smali 语言起初是由一个名叫 JesusFreke 的黑客对 Dalvik 字节码的翻译,并非一种官方标准语言,因为 Dalvik 虚拟机名字来源于冰岛一个小渔村的名字,Smali和Baksmali 便取自冰岛语中的“汇编器”和“反编器”。目前,Smali 是在 Google Code上的一个开源项目。

虽然主流的DEX可执行文件反汇编工具不少,如Dedexer、IDA Pro,但Smali提供反汇编功能的同时,也提供了打包反汇编代码重新生成 DEX 的功能,因此 Smali 被广泛地用于App广告注入、汉化和破解,ROM定制等方面。

3. APKtool工具介绍

APKtool工具是在Smali工具的基础上进行封装和改进的,除了对DEX文件的汇编和反汇编功能外,还可以对 APK 中已编译成二进制的资源文件进行反编译和重新编译。同时也支持给Smali代码添加调试信息以支持断点调试。

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读