《Android系统安全和反编译实战》循序渐进地讲解了Android系统安全方面的基本知识,从Android系统介绍开始到综合实例的实战过程,全程剖析了Android系统安全、应用安全开发和加密、解密方面的核心知识。全书共17章,主要内容包括,Android技术核心框架分析、获取并编译源代码、Android系统的安全机制、内存安全机制、Binder通信安全机制、Android虚拟机基础、Dalvik VM的运作流程、DEX文件详解、编写安全的应用程序、应用安全策略、文件加密、电话系统的安全机制、短信系统的安全机制、网络防火墙系统、文件加密系统等核心技术。《Android系统安全和反编译实战》适合Android初学者、Android应用开发者、Android安全架构研究人员、Android底层开发人员和Android源代码分析人员学习,也可以作为相关培训学校和大专院校相关专业的教学用书。
第1章 Android技术概述 11.1 智能手机系统介绍 11.2 搭建Android应用开发环境 21.2.1 安装Android SDK的系统要求 21.2.2 安装JDK 21.2.3 获取并安装Eclipse和Android SDK 51.2.4 安装ADT 71.2.5 设定Android SDK Home 81.2.6 验证开发环境 91.2.7 创建Android虚拟设备(AVD) 91.2.8 启动AVD模拟器 101.2.9 解决搭建环境过程中的常见问题 12第2章 Android技术核心框架分析 152.1 简析Android安装文件 152.1.1 Android SDK目录结构 152.1.2 android.jar及内部结构 162.1.3 阅读SDK帮助文档 162.1.4 常用的SDK工具 172.2 演示官方实例 192.3 剖析Android系统架构 232.3.1 Android体系结构介绍 232.3.2 Android应用工程文件组成 252.4 简述五大组件 272.4.1 用Activity来表现界面 272.4.2 用Intent和Intent Filters实现切换 282.4.3 Service为你服务 282.4.4 用Broadcast Intent/Receiver发送广播 292.4.5 用Content Provider存储数据 292.5 进程和线程 292.5.1 先看进程 292.5.2 再看线程 302.5.3 应用程序的生命周期 30第3章 获取并编译源码 333.1 在Linux系统中获取Android源码 333.2 在Windows平台获取Android源码 343.3 分析Android源码结构 363.3.1 应用程序 383.3.2 应用程序框架 393.3.3 系统服务 393.3.4 系统程序库 413.3.5 系统运行库 443.3.6 硬件抽象层 443.4 编译源码 453.4.1 搭建编译环境 463.4.2 开始编译 463.4.3 在模拟器中运行 473.4.4 常见的错误分析 483.4.5 实践演练——演示两种编译Android程序的方法 493.5 编译Android Kernel 523.5.1 获取Goldfish内核代码 523.5.2 获取MSM内核代码 553.5.3 获取OMAP内核代码 553.5.4 编译Android的Linux内核 553.6 编译源码生成SDK 57第4章 Android系统的安全机制 614.1 Android安全机制概述 614.1.1 Android的安全机制模型 614.1.2 Android的安全框架概述 624.2 分析Linux系统的安全机制 634.2.1 Linux用户权限基础 634.2.2 进程 684.3 分析Android系统的安全机制 704.3.1 沙箱模型介绍 704.3.2 应用程序的安全机制 724.3.3 分区加载机制 73第5章 内存安全机制——匿名共享内存系统 745.1 分析Ashmem驱动程序 745.1.1 基础数据结构 745.1.2 初始化处理 755.1.3 打开匿名共享内存设备文件 765.1.4 内存映射 785.1.5 实现读写操作 795.1.6 锁定和解锁 815.1.7 回收内存块 865.2 分析C++访问接口层 875.2.1 接口MemoryBase 875.2.2 客户端实现 905.2.3 接口MemoryBase 945.3 分析Java访问接口层 975.4 内存优化机制 1005.4.1 sp和wp简析 1005.4.2 详解智能指针 1025.5 Android内存系统的安全机制分析 1185.5.1 Ashmem匿名共享内存的机理 1195.5.2 使用Low Memory Killer机制实现安全和高效 119第6章 Binder通信安全机制(上) 1216.1 Binder机制基础 1216.1.1 选择Binder机制的原因——简洁快速、低耗内存、更加安全 1216.1.2 Binder安全机制的必要性 1226.1.3 Android的进程间通信(IPC)机制Binder 1226.1.4 Service Manager是Binder机制的上下文管理者 1236.1.5 Service Manager服务 1376.2 分析Binder驱动程序 1406.2.1 分析数据结构 1406.2.2 分析设备初始化 1506.2.3 打开Binder设备文件 1516.2.4 内存映射 1526.2.5 释放物理页面 1566.2.6 分配内核缓冲区 1576.2.7 释放内核缓冲区 1586.2.8 查询内核缓冲区 160第7章 Binder通信安全机制(下) 1627.1 Binder封装库 1627.1.1 类BBinder 1637.1.2 类BpRefBase 1657.1.3 类IPCThreadState 1667.2 初始化Java层Binder框架 1687.3 分析MediaServer的通信机制 1707.3.1 MediaServer的入口函数 1707.3.2 ProcessState 1717.3.3 defaultServiceManager 1737.3.4 注册MediaPlayerService 1797.3.5 分析StartThread Pool和join Thread Pool 1887.4 总结进程通信机制的安全性 1907.4.1 进程先线程安全 1907.4.2 远程过程调用机制(RPC) 1917.4.3 实现线程安全方法 1927.4.4 Binder中的安全策略 193第8章 Android虚拟机基础 1948.1 Dalvik VM和JVM的差异 1948.2 Dalvik虚拟机的主要特征 1958.3 Dalvik VM架构 1968.3.1 Dalvik虚拟机的代码结构 1968.3.2 dx工具 1988.3.3 Dalvik VM的进程管理 1988.3.4 Android的初始化流程 1988.4 Dalvik VM控制VM命令详解 1998.4.1 基本命令 1998.4.2 扩展的JNI检测 1998.4.3 断言 2008.4.4 字节码校验和优化 2008.4.5 Dalvik VM的运行模式 2018.4.6 死锁预测 2018.4.7 dump堆栈追踪 2028.4.8 dex文件和校验 2028.4.9 产生标志位 2028.5 Dalvik VM进程管理 2028.5.1 Zygote基础 2028.5.2 Dalvik的进程模型 2118.5.3 Dalvik的进程通信 2158.6 Zygote(孕育)进程 2188.6.1 Zygote基础 2188.6.2 分析Zygote的启动过程 219第9章 Dalvik VM的运作流程 2339.1 Dalvik VM相关的可执行程序 2339.1.1 dalvikvm、dvz和app_process简介 2339.1.2 对比app_process和dalvikvm的执行过程 2349.2 初始化Dalvik VM 2369.2.1 开始虚拟机的准备工作 2369.2.2 初始化跟踪显示系统 2379.2.3 初始化垃圾回收器 2379.2.4 初始化线程列表和主线程环境参数 2379.2.5 分配内部操作方法的表格内存 2389.2.6 初始化虚拟机的指令码相关的内容 2389.2.7 分配指令寄存器状态的内存 2399.2.8 分配指令寄存器状态的内存和最基本用的Java库 2399.2.9 初始化使用的Java类库线程类 2409.2.10 初始化虚拟机使用的异常Java类库 2419.2.11 初始化其他对象 2429.3 启动Zygote 2509.3.1 在init.rc中配置zygote启动参数 2509.3.2 启动Socket服务端口 2509.3.3 加载preload-classes 2519.3.4 加载preload-resources 252……第10章 DEX文件详解第11章 编写安全的应用程序第12章 应用安全策略第13章 文件加密第14章 电话系统的安全机制第15章 短信系统的安全机制第16章 网络防火墙系统实现第17章 文件加密系统实现
评论关闭。