Android系统安全和反编译实战(二)

admin 2023年1月28日16:11:28评论24 views字数 5439阅读18分7秒阅读模式

微信公众号:计算机与网络安全


Android系统安全和反编译实战(二)

(全文略)


本书循序渐进地讲解了Android系统安全方面的基本知识,从Android系统介绍开始到综合实例的实战过程,全程剖析了Android系统安全、应用安全开发和加密、解密方面的核心知识。全书共17章,主要内容包括,Android技术核心框架分析、获取并编译源代码、Android系统的安全机制、内存安全机制、Binder通信安全机制、Android虚拟机基础、Dalvik VM的运作流程、DEX文件详解、编写安全的应用程序、应用安全策略、文件加密、电话系统的安全机制、短信系统的安全机制、网络防火墙系统、文件加密系统等核心技术。

本书适合Android初学者、Android应用开发者、Android安全架构研究人员、Android底层开发人员和Android源代码分析人员学习,也可以作为相关培训学校和大专院校相关专业的教学用书。


目录

第1章 Android技术概述
1.1 智能手机系统介绍
1.2 搭建Android应用开发环境
1.2.1 安装Android SDK的系统要求
1.2.2 安装JDK
1.2.3 获取并安装Eclipse和Android SDK
1.2.4 安装ADT
1.2.5 设定Android SDK Home
1.2.6 验证开发环境
1.2.7 创建Android虚拟设备(AVD)
1.2.8 启动AVD模拟器
1.2.9 解决搭建环境过程中的常见问题
第2章 Android技术核心框架分析
2.1 简析Android安装文件
2.1.1 Android SDK目录结构
2.1.2 android.jar及内部结构
2.1.3 阅读SDK帮助文档
2.1.4 常用的SDK工具
2.2 演示官方实例
2.3 剖析Android系统架构
2.3.1 Android体系结构介绍
2.3.2 Android应用工程文件组成
2.4 简述五大组件
2.4.1 用Activity来表现界面
2.4.2 用Intent和Intent Filters实现切换
2.4.3 Service为你服务
2.4.4 用Broadcast Intent/Receiver发送广播
2.4.5 用Content Provider存储数据
2.5 进程和线程
2.5.1 先看进程
2.5.2 再看线程
2.5.3 应用程序的生命周期
第3章 获取并编译源码
3.1 在Linux系统中获取Android源码
3.2 在Windows平台获取Android源码
3.3 分析Android源码结构
3.3.1 应用程序
3.3.2 应用程序框架
3.3.3 系统服务
3.3.4 系统程序库
3.3.5 系统运行库
3.3.6 硬件抽象层
3.4 编译源码
3.4.1 搭建编译环境
3.4.2 开始编译
3.4.3 在模拟器中运行
3.4.4 常见的错误分析
3.4.5 实践演练——演示两种编译Android程序的方法
3.5 编译Android Kernel
3.5.1 获取Goldfish内核代码
3.5.2 获取MSM内核代码
3.5.3 获取OMAP内核代码
3.5.4 编译Android的Linux内核
3.6 编译源码生成SDK
第4章 Android系统的安全机制
4.1 Android安全机制概述
4.1.1 Android的安全机制模型
4.1.2 Android的安全框架概述
4.2 分析Linux系统的安全机制
4.2.1 Linux用户权限基础
4.2.2 进程
4.3 分析Android系统的安全机制
4.3.1 沙箱模型介绍
4.3.2 应用程序的安全机制
4.3.3 分区加载机制
第5章 内存安全机制——匿名共享内存系统
5.1 分析Ashmem驱动程序
5.1.1 基础数据结构
5.1.2 初始化处理
5.1.3 打开匿名共享内存设备文件
5.1.4 内存映射
5.1.5 实现读写操作
5.1.6 锁定和解锁
5.1.7 回收内存块
5.2 分析C 访问接口层
5.2.1 接口MemoryBase
5.2.2 客户端实现
5.2.3 接口MemoryBase
5.3 分析Java访问接口层
5.4 内存优化机制
5.4.p和wp简析
5.4.2 详解智能指针
5.5 Android内存系统的安全机制分析
5.5.1 Ashmem匿名共享内存的机理
5.5.2 使用Low Memory Killer机制实现安全和高效
第6章 Binder通信安全机制(上)
6.1 Binder机制基础
6.1.1 选择Binder机制的原因——简洁快速、低耗内存、更加安全
6.1.2 Binder安全机制的必要性
6.1.3 Android的进程间通信(IPC)机制Binder
6.1.4 Service Manager是Binder机制的上下文管理者
6.1.5 Service Manager服务
6.2 分析Binder驱动程序
6.2.1 分析数据结构
6.2.2 分析设备初始化
6.2.3 打开Binder设备文件
6.2.4 内存映射
6.2.5 释放物理页面
6.2.6 分配内核缓冲区
6.2.7 释放内核缓冲区
6.2.8 查询内核缓冲区
第7章 Binder通信安全机制(下)
7.1 Binder封装库
7.1.1 类BBinder
7.1.2 类BpRefBase
7.1.3 类IPCThreadState
7.2 初始化Java层Binder框架
7.3 分析MediaServer的通信机制
7.3.1 MediaServer的入口函数
7.3.2 ProcessState
7.3.3 defaultServiceManager
7.3.4 注册MediaPlayerService
7.3.5 分析StartThread Pool和join Thread Pool
7.4 总结进程通信机制的安全性
7.4.1 进程先线程安全
7.4.2 远程过程调用机制(RPC)
7.4.3 实现线程安全方法
7.4.4 Binder中的安全策略
第8章 Android虚拟机基础
8.1 Dalvik VM和JVM的差异
8.2 Dalvik虚拟机的主要特征
8.3 Dalvik VM架构
8.3.1 Dalvik虚拟机的代码结构
8.3.2 dx工具
8.3.3 Dalvik VM的进程管理
8.3.4 Android的初始化流程
8.4 Dalvik VM控制VM命令详解
8.4.1 基本命令
8.4.2 扩展的JNI检测
8.4.3 断言
8.4.4 字节码校验和优化
8.4.5 Dalvik VM的运行模式
8.4.6 死锁预测
8.4.7 dump堆栈追踪
8.4.8 dex文件和校验
8.4.9 产生标志位
8.5 Dalvik VM进程管理
8.5.1 Zygote基础
8.5.2 Dalvik的进程模型
8.5.3 Dalvik的进程通信
8.6 Zygote(孕育)进程
8.6.1 Zygote基础
8.6.2 分析Zygote的启动过程
第9章 Dalvik VM的运作流程
9.1 Dalvik VM相关的可执行程序
9.1.1 dalvikvm、dvz和app_process简介
9.1.2 对比app_process和dalvikvm的执行过程
9.2 初始化Dalvik VM
9.2.1 开始虚拟机的准备工作
9.2.2 初始化跟踪显示系统
9.2.3 初始化垃圾回收器
9.2.4 初始化线程列表和主线程环境参数
9.2.5 分配内部操作方法的表格内存
9.2.6 初始化虚拟机的指令码相关的内容
9.2.7 分配指令寄存器状态的内存
9.2.8 分配指令寄存器状态的内存和基本用的Java库
9.2.9 初始化使用的Java类库线程类
9.2.10 初始化虚拟机使用的异常Java类库
9.2.11 初始化其他对象
9.3 启动Zygote
9.3.1 在init.rc中配置zygote启动参数
9.3.2 启动Socket服务端口
9.3.3 加载preload-classes
9.3.4 加载preload-resources
9.4 启动各种系统服务线程

9.4.1 启动各种系统服务线程

9.4.2 启动第一个Activity

9.5 加载class类文件

9.5.1 DexFile在内存中的映射

9.5.2 ClassObject-—-Class 在加载后的表现形式

9.5.3 加载Class并生成相应ClassObject的函数

9.5.4 加载基本类库文件

9.5.5 加载用户类文件

第10章 DEX文件详解
10.1 DEX文件介绍
10.2 DEX文件的格式
10.2.1 map_list
10.2.2 String_id_item.
10.2.3 type_id_item
10.2.4 proto_id_item
10.2.5 ield_id_item
10.2.6 method_id_item.
10.2.7 class_def_item.
10.3 DEX文件结构
10.3.1 文件头(File Header)
10.3.2 魔数字段
10.3.3 检验码字段
10.3.4 SHA-1签名字段
10.3.5 map_of字段
10.3.6 string_ids_size和off字段
10.4 DEXFile接口详解
10.4.1 构造函数
10.4.2 公共方法
10.5 DEX和动态加载类机制
10.5.1 类加载机制
10.5.2 具体加载
10.5.3 代码加密
10.6 动态加载jar和DEX
第11章 编写安全的应用程序
11.1 开发第一个Android应用程序
11.1.1 新创建Android工程
11.1.2 编写代码和代码分析
11.1.3 调试
11.1.4 运行项目
11.2 声明不同的权限
11.2.1 AndroidManifest.xml文件基础
11.2.2 声明获取不同的权限
11.2.3 自定义一个权限
11.3 发布Android程序生成APK
11.3.1 什么是APK文件
11.3.2 申请会员
11.3.3 生成签名文件
11.3.4 使用签名文件
11.3.5 发布到市场
11.4 反编译APK文件
11.4.1 使用dex2jar和jdgui.exe进行反编译
11.4.2 Smali指令破解
11.5 防止APK文件被反编译
11.6 操作实战一一演示反编译和编译的完整过程
11.6.1 分析反编译后的文件
11.6.2 分析smali文件
11.6.3 分析内部类
11.6.4 分析监听器
11.6.5 分析注解类
11.6.6 Android独有的自动类
11.7 Android应用组件的安全机制
11.7.1 设置组件的可访问性
11.7.2 Intent 组件的安全机制
11.7.3 Activity组件的安全机制
11.7.4 Content Provider 组件的权限机制
11.7.5 Service组件的安全机制
11.7.6 Broadcast Receiver 组件的安全机制

第12章 应用安全策略

12.1 应用程序安装安全策略

12.1.1 Android应用程序权限的背景
12.1.2 Android应用程序的权限
12.1.3 控制Android应用权限的工具
12.2 Android 浏览器安全策略
12.2.1 WebKit 源码分析
12.2.2 C/C++层框架
12.2.3 分析WebKit 的操作过程
12.2.4 WebView讲解
12.2.5 Android浏览器的安全漏洞分析
12.3 数据库和SQL注入
12.3.1 Android系统存储数据的方式
12.3.2 恶意获取存储卡信息
12.3.3 SQLite注入漏洞分析
12.4 软件更新安全策略
12.4.1 设置软件实现自动更新
12.4.2 自动更新的安全隐患

第13章 文件加密

13.1 Dmcrypt加密机制介绍

13.1.1 Linux密码管理机制

13.1.2 Dmcrypt加密机制分析

13.1.3 使用dmcrypt机制构建加密文件系统

13.2 Vold机制介绍

13.2.1 Vold机制基础

13.2.2 Vold的主要功能

13.2.3 Vold处理SD/USB的流程
13.2.4 Vold 的加密机制

第14章 电话系统的安全机制

14.1 Android 电话系统详解

14.1.1 电话系统简介

14.1.2 电话系统结构

14.1.3 需要移植的内容

14.1.4 驱动程序介绍

14.1.5 RIL接口

14.1.6 分析电话系统的实现流程

14.2 分析Andorid音频系统

14.2.1 音频系统结构

14.2.2 分析音频系统的层次

14.3 电话系统的安全机制

14.3.1 防止电话监听

14.3.2 VoIP语音编码和安全性分析
14.3.3 SIP协议控制
14.3.4 在Android平台实现SIP协议栈
14.3.5 通话加密技术

第15章 短信系统的安全机制

15.1 Android 短信系统详解

15.1.1 短信系统的主界面

15.1.2 发送普通短信的过程

15.1.3 发送彩信的过程

15.1.4 接收短信

15.2 短信加密机制的设计模式

15.2.1 短信编码设计模式

15.2.2 DES短信息加密解密算法

第16章 网络防火墙系统实现

16.1 防火墙系统需求分析

16.2 编写布局文件

16.3 编写主程序文件

16.3.1 主Activity 文件

16.3.2 帮助Activity文件

16.3.3 公共库函数文件

16.3.4 系统广播文件

16.3.5 登录验证

16.3.6 打开/关闭某一个实施控件

第17章 文件加密系统实现

17.1 文件加密系统功能模块介绍

17.2 系统主界面

17.3 文件加密模块

17.3.1 选择加密文件

17.3.2 加密文件

17.4 文件解密模块

17.4.1 选择解密文件

17.4.2 解密文件

17.5 数字签名模块

17.5.1 数字签名主界面

17.5.2 设置数字签名

17.5.3 签名验证

17.5.4 生成密钥

17.6 报文鉴别模块

17.6.1 报文鉴别主界面

17.6.2 生成鉴别码

17.6.3 鉴别文件

17.7编辑文件模块


附:Android系统安全和反编译实战(二).pdf


- The end -

原文始发于微信公众号(计算机与网络安全):Android系统安全和反编译实战(二)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年1月28日16:11:28
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Android系统安全和反编译实战(二)https://cn-sec.com/archives/1525005.html

发表评论

匿名网友 填写信息