美文网首页
2020-08-12

2020-08-12

作者: 胖渣大橘子 | 来源:发表于2020-08-12 16:43 被阅读0次

    Android系统安全和反编译实战_笔记(一)

    别让你的代码称为别人的炮灰

    (1) 建立信心
    橘仔一定能学好!!!信心是成功的关键,学习计算机技术也是如此。
    (2) 稳扎稳打
    "稳扎稳打, 步步为营"。开发技术的学习不能速成,没有捷径。在每一个知识点都彻底融会贯通后,才能取学习下一个知识点。
    (3) 多交流
    闭门造车只会延误学习的进度,学会共同探索、共同进步。

    剖析 Android 系统架构

    自下而上分为四层

    • 操作系统 (OS)
    • 各种库 (Libraries) 和 Android 运行环境 (RunTime)
    • 应用程序框架 (Application Framework)
    • 应用程序 (Application)
      各个层的结构图


      androidlevel.png

    Android 安全机制概述

    根据 Android 系统架构分析,其安全机制是在 Linux 操作系统的内核安全机制基础之上的, 这主要体现在如下两个方面。
    (1) 使用进程沙箱机制来隔离进程资源。
    (2) 通过 Android 系统独有的内存管理技术, 安全高效地实现进程间通信处理。Android 应用程序是基于 Framework 应用框架的,并且使用java 语言进行编写,最后运行与 Dalvik VM (Android 虚拟机)。同时,Android 的底层应用由 C/C++ 语言实现, 以原生库形式直接运行于操作系统的用户空间。这样, Android 应用程序和 Dalvik VM 的运行环境都被控制在"进程沙箱"环境下。“进程沙箱”是一个完全被隔离的环境,自行拥有专用的文件系统区域,能够独立共享私有数据。


    Android 安全机制架构.jpeg

    Android 安全机制模型

    (1) 内存管理
    Android 内存管理机制基于标准 Linux 的 OOM (低内存管理) 机制,实现了低内存清理机制 (LMK) 机制,将所有的进程按照重要性进行分级,系统会自动清理最低级别进程所占用的内存空间。另外,还引入 Android独有的共享内存机制Ashmem, 此机制具有不再使用共享内存区域的能力。
    (2) 权限声明
    Android 应用程序需要显示声明权限、名称、权限组与保护级别。在 Android 系统中规定: 不同级别应用程序的使用权限的认证方式不同。

    • Normal 级: 申请后即可使用。
    • Dangerous 级: 在安装时由用户确认后方可用。
    • Signature 与 Signatureorsystem级: 必须是系统用户才可用
      (3) 应用程序包签名
      Android 应用程序包 (.apk 格式文件) 必须被开发者数字签名, 同一名开发者可以指定不同的应用程序共享UID, 这样可以在同一个进程空间以实现资源共享。
      (4) 访问控制
      通过使用基于 Linux 系统的访问控制机制, 可以确保系统文件与用户数据不受非法访问。
      (5) 进程沙箱隔离
      Android 应用程序安装时会赋予一个独特的用户标识 (UID), 这个标识被永久保持。当 Android 应用程序及其运行的Dalvik VM 运行于独立的Linux 进程空间中时, 会将与 UID 不同的应用程序隔离出来。
      (6) 进程通信
      Android 采用 Binder 机制提供的共享内存实现进程间通信功能, Binder 机制基于 Client-Server 模式, 提供了类似于
      COM 和 CORBA 的轻量级远程进程调用 (RPC) 。通过使用 Binder 机制中的接口描述语言 (AIDL)来定义接口与交换数据的类型,可以确保进程间通信的数据不会发生越界操作,影响进程的空间。

    相关文章

      网友评论

          本文标题:2020-08-12

          本文链接:https://www.haomeiwen.com/subject/cqbpdktx.html