编辑推荐
《Android应用安全防护和逆向分析》有非常详细的案例讲解,也提供了大量的工具源码,是Android开发人员逆向学习研究的极好工具手册,可以帮助Android开发者成为更全面的Android高手。
内容简介
《Android应用安全防护和逆向分析》全面介绍Android应用的安全防护方法与逆向分析技术,分为四篇:基础篇、防护篇、工具篇、操作篇,共26章。基础篇包括第1~7章,主要介绍移动应用安全的基础知识,包括Android中NDK开发知识、逆向中需要用到的命令、编译之后的apk包含的四类主要文件格式解析等。防护篇包括第8~14章,主要介绍移动应用安全防护的相关技术,包括混淆、签名校验、反调试检测等安全策略,Android应用升级权限、降低权限等,配置文件中的问题,应用签名机制,apk的加固策略,so文件的加固策略等。工具篇包括第15~19章,主要介绍逆向分析常用的工具以及使用场景,包括如何开启设备的总调试开关,反编译利器apktool、Jadx、Xposed、CydiaSubstrate等。操作篇包括第20~26章,主要介绍Android中的逆向分析技巧,包括静态方式和动态方式,介绍Android中开发会遇到的系统漏洞及修复方式,最后分析了Android中一个非常经典的文件加密病毒样本。
作者简介
姜维某知名互联网公司开发者,参与过多个移动App开发项目,对Android安全问题情有独钟,深入分析过Android源代码和各类移动应用病毒,逆向分析实战经验
精彩书评
移动应用安全已经是个不可忽视的问题,《Android应用安全防护和逆向分析》结合多个案例进行实际操作讲解,介绍很多实用工具和命令,是一本非常好的安全逆向工具书籍。姜维研究安全逆向这么久,将自身多年的丰富经验用书本的形式展现给读者也是非常不易。
——周鸿祎,360公司创始人、董事长兼CEO、知名天使投资人
《Android应用安全防护和逆向分析》有非常详细的案例讲解,也提供了大量的工具源码,是Android开发人员逆向学习研究的极好工具手册,可以帮助Android开发者成为更全面的Android高手。
——蒋涛,CSDN创始人,极客帮基金创始人
《Android应用安全防护和逆向分析》在实际操作讲解的同时,还特别重视一些原理的讲解,可以帮助读者快速提升Android安全技术水平。
——段钢,看雪学院创始人
《Android应用安全防护和逆向分析》章节安排精心合理,技术点循序渐进,使用了大量带有标注的配图,清晰且直观,属于难得一见的用心之作。
——泮晓波,顶象技术移动安全实验室负责人、合伙人
《Android应用安全防护和逆向分析》的作者在信息安全领域的多年经验,加上纯粹的技术分享精神,注定了这是一本值得广大安全爱好者期待的好书。
——丰生强(网名:非虫),国内知名安全专家
《Android应用安全防护和逆向分析》既涵盖了入门者所必须掌握的基础知识,又精选了许多安全领域中的典型实例并对它们开展了详细讲解。
——邓凡平
目录
对《Android应用安全防护和逆向分析》的赞誉
前言
基础篇
第1章Android中锁屏密码加密算法分析
1.1锁屏密码方式
1.2密码算法分析
1.2.1输入密码算法分析
1.2.2手势密码算法分析
1.3本章小结
第2章Android中NDK开发
2.1搭建开发环境
2.1.1Eclipse环境搭建
2.1.2AndroidStudio环境搭建
2.2第一行代码:HelloWorld
2.3JNIEnv类型和jobject类型
2.3.1JNIEnv类型
2.3.2jobject参数obj
2.3.3Java类型和native中的类型映射关系
2.3.4jclass类型
2.3.5native中访问Java层代码
2.4JNIEnv类型中方法的使用
2.4.1native中获取方法的Id
2.4.2Java和C++中的多态机制
2.5创建Java对象及字符串的操作方法
2.5.1native中创建Java对象
2.5.2native中操作Java字符串
2.6C/C++中操作Java中的数组
2.6.1操作基本类型数组
2.6.2操作对象类型数组
2.7C/C++中的引用类型和ID的缓存
2.7.1引用类型
2.7.2缓存方法
2.8本章小结
第3章Android中开发与逆向常用命令总结
3.1基础命令
3.2非shell命令
3.3shell命令
3.4操作apk命令
3.5进程命令
3.6本章小结
第4章so文件格式解析
4.1ELF文件格式
4.2解析工具
4.3解析ELF文件
4.4验证解析结果
4.5本章小结
第5章AndroidManifest.xml文件格式解析
5.1格式分析
5.2格式解析
5.2.1解析头部信息
5.2.2解析StringChunk
5.2.3解析ResourceIdChunk
5.2.4解析StartNamespaceChunk
5.2.5解析StartTagChunk
5.3本章小结
第6章resource.arsc文件格式解析
6.1Android中资源文件id格式
6.2数据结构定义
6.2.1头部信息
6.2.2资源索引表的头部信息
6.2.3资源项的值字符串资源池
6.2.4Package数据块
6.2.5类型规范数据块
6.2.6资源类型项数据块
6.3解析代码
6.3.1解析头部信息
6.3.2解析资源字符串内容
6.3.3解析包信息
6.3.4解析资源类型的字符串内容
6.3.5解析资源值字符串内容
6.3.6解析正文内容
6.4本章小结
第7章dex文件格式解析
7.1dex文件格式
7.2构造dex文件
7.3解析数据结构
7.3.1头部信息Header结构
7.3.2string_ids数据结构
7.3.3type_ids数据结构
7.3.4proto_ids数据结构
7.3.5field_ids数据结构
7.3.6method_ids数据结构
7.3.7class_defs数据结构
7.4解析代码
7.4.1解析头部信息
7.4.2解析string_ids索引区
7.4.3解析type_ids索引区
7.4.4解析proto_ids索引区
7.4.5解析field_ids索引区
7.4.6解析method_ids索引区
7.4.7解析class_def区域
7.5本章小结
防护篇
第8章Android应用安全防护的基本策略
8.1混淆机制
8.1.1代码混淆
8.1.2资源混淆
8.2签名保护
8.3手动注册native方法
8.4反调试检测
8.5本章小结
第9章Android中常用权限分析
9.1辅助功能权限
9.2设备管理权限
9.3通知栏管理权限
9.4VPN开发权限
9.5本章小结
第10章Android中的run-as命令
10.1命令分析和使用
10.2Linux中的setuid和setgid概念
10.3Android中setuid和setgid的使用场景
10.4run-as命令的作用
10.5调用系统受uid限制的API
10.6本章小结
第11章Android中的allowBackup属性
11.1allowBackup属性介绍
11.2如何获取应用隐私数据
11.3如何恢复应用数据
11.4本章小结
第12章Android中的签名机制
12.1基本概念
12.2Android中签名流程
12.3Android中为何采用这种签名机制
12.4本章小结
第13章Android应用加固原理
13.1加固原理解析
13.2案例分析
13.3运行项目
13.4本章小结
第14章Android中的so加固原理
14.1基于对so中的section加密实现so加固
14.1.1技术原理
14.1.2实现方案
14.1.3代码实现
14.1.4总结
14.2基于对so中的函数加密实现so加固
14.2.1技术原理
14.2.2实现方案
14.2.3代码实现
14.3本章小结
工具篇
第15章Android逆向分析基础
15.1逆向工具
15.2逆向基本知识
15.3打开系统调试总开关
15.4本章小结
第16章反编译神器apktool和Jadx
操作篇