学习Android的朋友们一定对这本红色的《Android软件安全与逆向分析》并不陌生,这本书由非虫大神创作,出版于2013年,被誉为是国内第一本Android软件安全书,也是新手入门Android安全和逆向的必读之作。
如今,非虫大神再出新作,一本蓝色的《Android软件安全权威指南 》为你奉上。
这本书从平台搭建和语言基础开始,循序渐进地讲解了Android平台上的软件安全技术,提供了对Windows、Linux、macOS三个平台的支持,涉及与Android软件安全相关的环境搭建、文件格式、静态分析、动态调试、Hook与注入、软件保护技术、软件壳等主题,涵盖OAT、ELF等新的文件格式。本书将Java层与Native层的软件安全技术分开讲解,加入了与软件壳相关的章节,内容安排细致、合理。本书的每一章都以实例讲解的方式展开内容,实践性较强。
作者简介
丰生强
网名:非虫,资深软件安全研究员,看雪论坛『Android安全』版块版主
专注软件安全领域,拥有十余年一线软件安全研究经验,喜欢研究和分享最新、最实用的软件安全技术。著有《Android 软件安全与逆向分析》《macOS软件安全与逆向分析》等。
序
自2013年《Android软件安全与逆向分析》出版至今,已经过去了五年。目前,移动平台已经成为人们上网的主要方式,手机操作系统只剩下了Android和iOS。Android也从手机平台渗透到智能电视、智能家居甚至智能交通、智慧物流领域。可以说,Android已经融入了我们的生活。五年前,Android才刚刚开始普及;五年后,Android已经“雄霸天下”了。同时,随着Android被广泛地应用到我们生活的各个领域,如何保护自己公司或者甲方的软件,甚至如何有效地进行高强度的保护性开发,都已经成为安全技术人员必须直面的需求。
在这五年中,软件保护技术从第一代壳——DEX加密、字符串加密、资源加密、反调试及自定义DexClassLoader,进化到第二代壳——DEX抽取与so加固、DEX Method代码抽取、DEX动态加载及so加固,再进化到第三代壳——DEX动态解密与so混淆、DEX Method代码动态解密及so代码膨胀混淆,直至现在最流行的第四代壳——代码虚拟化保护,也就是本书主要与大家分享的基于LLVM编译器实现的Obfuscator-LLVM技术。
初入Android安全圈的读者不必担心读不懂这本书。这本书完全从基础讲起,覆盖Android软件安全领域的大部分知识点,是一本内容循序渐进、可以帮助您拾级而上的好书。在跟随非虫畅游Android安全世界的旅途中,您还可以来看雪论坛(www.kanxue.com)寻找志同道合的良师益友,分享学习中的见解和经验,相信这些都会对您开阔视野、提高技术水平有很大的帮助。
看雪学院创始人 段 钢
2018年11月21日
前言
笔者在2013年曾出版过一本Android安全图书——《Android软件安全与逆向分析》。当时,Android软件安全问题刚刚凸显出来。经历了数年的快速发展,Android平台上的安全技术与行业趋势发生了很大的变化,本书会集中讨论这些内容。
首先是Android系统自身的安全性。从笔者开始关注Android领域时的2.2版本至今,Android已经发生了脱胎换骨的变化。应用的权限细粒度管理,系统强制启用SELinux、内核KASLR,以及设备存储的强制全盘加密等多种安全手段的实施,都使得Android系统正在向更安全、更稳定的方向发展。
从Android 4.4开始引入的ART虚拟机到后来不断进行的优化过程中可以看出,APK无论是在安装速度还是在运行时的流畅度上都节节攀升!这是一个好消息。但同时,坏消息也不断传出。Android平台上的软件,经历了数年井喷式的发展,质量难免参差不齐,而恶意软件的横行,也给Android系统的名声带来了不好的影响。幸运的是,这些不好的影响正在远离我们——Android官方对待安全的态度是安全从业人员有目共睹的。
本书包括但不限于以下内容。
全平台覆盖讲解,包括Windows、Linux、macOS三大平台上的Android软件开发、逆向分析、动态调试、软件壳等内容。
文件格式讲解,包括DEX、ODEX、AXML、ARSC、OAT、SO等。
Java层与Native层的软件逆向分析讲解。
ARM汇编内幕,包括对Thumb指令、ARM指令、AArch64指令格式的讲解。
Hook与注入方案讲解。
软件保护技术讲解。
内容特色
1、循序渐进的学习路线。本书对知识与技术要点的讲解是由浅入深逐步展开的,对工具的使用及原理的讲解符合国人的学习思路。读者可以按照本书的目录顺序阅读和学习。
2、大量的实例分析。为了让读者充分感受技术涉及的应用场景,本书在讲解不同的技术要点时,会辅以大量的实例。书中的所有实例均由笔者精心编写并反复调试,所有代码都遵循AGPLv3协议在GitHub上进行了开源。读者可以通过阅读这些实例的源码来加深对技术的理解。
3、实用工具的讲解。本书提倡多动手、多实践,而实践的内容之一就是掌握书中介绍的第三方工具。除了系统地介绍一些命令,本书在讲解过程中还使用了大量的第三方工具。这些工具大都是跨平台且免费开源的。掌握这些工具的使用方法,阅读并理解这些工具所产生的代码,了解这些工具的工作原理,有助于将实践与理论结合起来。
读者定位
本书主要讲解与Android平台软件安全相关的技术,因此在读者的定位上自然离不开“软件”与“安全”这两个领域。
在“软件”领域,适合阅读本书的读者包括:
1、高校软件开发相关专业的学生;
2、Android软件开发工程师;
3、系统底层开发人员。
在“安全”领域,适合阅读本书的读者包括:
1、高校信息安全相关专业的学生;
2、软件安全研究员;
3、逆向工程师;
4、病毒分析师。
福利来啦!
感谢非虫版主的大力支持,为看雪的朋友们提供了签名图书。
活动方式如下:
长按并识别下方二维码,点赞+分享原文,并在原文下方留言。
本次活动我们选出留言点赞量最高的前1名幸运读者,送出非虫版主亲笔签名大作!
本次活动将于明天下午5点截止~
明天继续赠书活动,敬请关注!
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)