新書推薦:
《
从天下到世界——国际法与晚清中国的主权意识
》
售價:NT$
347.0
《
血色帝国:近代英国社会与美洲移民
》
售價:NT$
265.0
《
海外中国研究·王羲之:六朝贵族的世界(艺术系列)
》
售價:NT$
811.0
《
唐宋绘画史 全彩插图版
》
售價:NT$
449.0
《
“御容”与真相:近代中国视觉文化转型(1840-1920)
》
售價:NT$
505.0
《
鸣沙丛书·大风起兮:地方视野和政治变迁中的“五四”(1911~1927)
》
售價:NT$
454.0
《
海洋、岛屿和革命:当南方遭遇帝国(文明的另一种声音)
》
售價:NT$
485.0
《
铝合金先进成型技术
》
售價:NT$
1214.0
|
編輯推薦: |
《Android应用安全实战:Frida协议分析》融合了资深爬虫工程师多年实战经验,采用理论和实践相结合的模式,六大实战案例,带领读者掌握逆向分析,进阶Android端爬虫。语言简练、内容实用,配有270分钟二维码视频,使读者身临其境,迅速、深入地掌握Frida框架的使用方法。
|
內容簡介: |
Android应用安全是一个热门话题,本书从Hook框架Frida出发,由浅入深,带领读者掌握Frida框架的使用方法,并让读者能够解决逆向分析、安全测试、算法还原和关键代码快速定位等实际问题。
Android应用安全实战:Frida协议分析共8章,首先讲解了Frida框架环境安装配置,随后讲解了如何使用Frida框架对Android应用的Java层和so层进行分析,并设计了算法自吐框架,*后讲解了Frida框架的高级应用和算法转发。从*基础的环境安装到中高级逆向技巧均有涉猎,能够让读者在实战中掌握Frida框架,并应用于Android逆向分析之中。
Android应用安全实战:Frida协议分析内容翔实,理论与实战相结合,可供Android开发工程师、Android应用安全工程师、爬虫工程师、逆向分析工程师以及想要从事逆向领域工作的人员学习。
|
關於作者: |
李岳阳,毕业于北京大学,小肩膀教育联合创始人。曾于有道精品课教授Python编程,后为网易云课堂特邀专家,开设包括“爬虫工程师”等多门课程,拥有多年授课经验。曾出版书籍《反爬虫AST原理与还原混淆实战》。
卓斌,小肩膀教育创始人,51CTO年度新锐讲师。拥有十余年安全开发培训经验,多年来研发多门Web和Android端逆向课程,深受学员好评。
|
目錄:
|
前言
第1章 Frida逆向环境搭建
1.1 Frida框架介绍
1.2 Frida框架环境搭建
1.2.1 Python的安装
1.2.2 Visual Studio Code的安装
1.2.3 Node.js的安装
1.2.4 Frida的安装
1.3 Android平台环境搭建
1.3.1 Android系统刷机
1.3.2 获取Android系统管理员权限
1.3.3 frida-server配置
第2章 Frida框架Java层应用
2.1 Frida框架的Hook方法
2.1.1 Hook静态方法和实例方法
2.1.2 Hook构造方法
2.1.3 Hook重载方法
2.1.4 Hook方法的所有重载
2.1.5 对象参数的构造
2.1.6 主动调用Java函数
2.2 Frida框架Hook类
2.2.1 获取和修改类的字段
2.2.2 Hook内部类和匿名类
2.2.3 枚举所有已加载的类和枚举类的所有方法
2.2.4 Hook类的所有方法
2.3 实战:某嘟牛协议分析
2.3.1 某嘟牛Java层登录协议分析
2.3.2 Frida框架辅助协议分析
2.3.3 Frida框架生成加密参数
第3章 关键代码快速定位
3.1 集合的Hook
3.1.1 Hook HashMap定位散列表
3.1.2 打印函数栈
3.1.3 Hook ArrayList定位动态数组
3.2 组件与事件的Hook
3.2.1 Hook Toast定位提示
3.2.2 Hook findViewById定位组件
3.2.3 Hook setOnClickListener定位按钮点击事件
3.3 常用类的Hook
3.3.1 Hook TextUtils定位用户输入
3.3.2 Hook JSONObject定位JSON数据
3.3.3 Hook Collections定位排序算法
3.3.4 Hook String定位字符转换
3.3.5 Hook StringBuilder定位字符串操作
3.3.6 Hook Base64定位编码
3.4 其他类的定位
3.4.1 Hook定位接口的实现类
3.4.2 Hook定位抽象类的实现类
3.5 实战:去除应用程序的强制升级
第4章 算法“自吐”脚本开发
4.1 工具函数封装
4.2 Frida Hook MD5算法
4.2.1 Hook MD5算法update方法
4.2.2 Hook MD5算法digest方法
4.3 Frida Hook MAC算法
4.3.1 Hook MAC算法密钥
4.3.2 Hook MAC算法update方法
4.3.3 Hook MAC算法doFinal方法
4.4 Frida Hook数字签名算法
4.4.1 Hook 数字签名算法update方法
4.4.2 Hook 数字签名算法sign方法
4.5 Objection辅助Hook
4.5.1 Objection的安装和基本使用
4.5.2 实战:某电竞界面跳转
第5章 Frida框架so层基本应用
5.1 获取Module
5.1.1 通过模块名来获取Module
5.1.2 通过地址来获取Module
5.1.3 Process中的常用属性和方法
5.2 枚举符号
5.2.1 枚举模块的导入表
5.2.2 枚举模块的导出表
5.2.3 枚举模块的符号表
5.2.4 Module中的常用属性和方法
5.3 Frida Hook so函数
5.3.1 Hook导出函数
5.3.2 从给定地址查看内存数据
5.3.3 Hook任意函数
5.3.4 获取指针参数返回值
5.3.5 Frida inlineHook获取函数执行结果
5.4 Frida修改函数参数与返回值
5.4.1 修改函数数值参数与返回值
5.4.2 修改字符串参数
5.5 实战:某热点登录协议分析
第6章 JNI函数的Hook与快速定位
6.1 JNI函数的Hook
6.1.1 JNIEnv的获取
6.1.2 枚举libart符号表来Hook
6.1.3 通过计算地址的方式来Hook
6.2 主动调用so函数
6.2.1 Frida API主动调用JNI函数
6.2.2 so层文件打印函数栈
6.2.3 DebugSymbol类
6.2.4 so层主动调用任意函数
6.2.5 通过NativeFunction主动调用JNI函数
6.3 JNI函数注册的快速定位
6.3.1 Hook dlsym获取函数地址
6.3.2 Hook RegisterNatives获取函数地址
6.4 ollvm混淆应用协议分析实战
6.4.1 jnitrace工具的使用
6.4.2 实战:某App应用程序协议分析
第7章 Frida框架so层进阶应用
7.1 Frida操作内存数据
7.1.1 内存读写
7.1.2 Frida修改so函数代码
7.1.3 Frida 从内存中导出 so函数
7.1.4 ollvm字符串解密
7.1.5 构造二级指针
7.1.6 读写文件
7.2 Frida其他常用API介绍
7.2.1 NativePointer类的常用方法
7.2.2 Memory的常用方法
7.2.3 替换函数
7.3 Frida进阶Hook
7.3.1 Hook系统函数dlopen
7.3.2 Hook系统函数JNI_Onload
7.3.3 Hook系统函数initarray
7.3.4 Hook系统函数pthread_create
7.3.5 监控内存读写
7.3.6 函数追踪工具frida-trace
7.3.7 Frida API的简单封装
7.3.8 代码跟踪引擎stalker
7.4 实战:某观察登录协议分析
第8章 Frida框架算法转发方案
8.1 Frida的Python库使用
8.1.1 Frida注入方式
8.1.2 spawn方式启动与连接非标准端口
8.2 Frida与Python交互
8.3 Frida的RPC调用
8.4 实战:某嘟牛Frida算法转发
|
內容試閱:
|
前言
Android应用的安全问题在业内备受关注,但这方面相关的系统性资料却不多。本书从Hook框架Frida出发来讲解如何对Android应用的协议进行分析。
这本书讲了什么
本书共8章,全书整体围绕Frida框架进行讲解,并配合大量实战,相信会让读者学会该框架的使用方法。
第1章介绍的是在Android系统下使用Frida框架进行逆向的环境搭建。 当然这里安装的环境只是基础的环境,实际上Android逆向需要配置的环境比这多得多。 比如反编译dex需要的jadx、jeb工具,反编译so文件需要的IDA工具,开发App应用程序需要的Android Studio,以及各种抓包工具等。 不过,一开始能够掌握基本的逆向工具就已经足够了。
第2章主要介绍Java层的逆向分析,Android应用常见的代码都存放在Java层,因此对熟悉Android正向开发的读者来说,学习逆向也是较为简单的。 配合本章的实战,学习完这章之后,一般较为简单的Android应用的协议分析读者就都可以解决了。
第3章主要介绍关键代码快速定位,看似只是一堆分散的技巧罗列,实际上是进行逆向工作基本的方法。 因为在实际的逆向分析中,不可能去逐行查看反编译后的代码,而只凭感觉定位也是不够的,这里把一些常用的定位方法总结起来,能够帮助读者快速提高逆向效率。
第4章介绍了算法“自吐” 脚本的开发,本章的内容比较重要,因为它摆脱了以往将纯逆向视为体力劳动的片面思想,进入了更抽象的框架开发。 基于Frida的框架开发并不难,所谓熟能生巧,把日常逆向工作中常用的操作封装起来,就可以慢慢积累成框架。 读者可以在完成本章的学习后对“自吐” 框架进行完善,增加更多功能。
第5章介绍了so层的逆向分析,只要是有志于在逆向分析领域有所精进的逆向工作者,都必须学会so层的逆向分析,因为一般有难度的Android应用都会使用so层加密。
第6章介绍了JNI函数的Hook和快速定位,在so层逆向分析中,经常需要和JNI函数打交道,掌握JNI函数的Hook是必要的。
第7章讲解内存读写、各种系统函数的Hook,以及各种代码的trace方法。
第8章介绍了Frida框架算法转发方案,能够将Android应用本身当作解密工具,也可以建立解密API方便调用。
学习本书需要注意的事项
书中的Hook框架Frida在命令中多是首字母小写形式frida。App应用程序指的是Android系统下的APK。当提到某函数的参数个数是3,指的是从1开始共3个参数。当提到某函数的第3个参数,指的是从0开始的第4个参数。另外,本书的初衷是为了让读者掌握Frida这一Hook框架,并将其用于工作和学习当中,为避免对书中提供的案例造成不利影响,本书对涉及的具体应用名和包名都会进行省略。
什么人适合看这本书
本书是零基础,可以说,只要是对Android应用安全感兴趣的人都可以阅读。 当然,具有一定Android开发基础的人读起来会更加轻松。 值得一提的是,当下热门的网络爬虫,在对Android应用进行数据爬取时,必然要用到书里的知识。 本书贵在实用,没有讲解大量简单的基础知识,而是以实战为主,对大量实际Android应用进行分析,跟着书中内容认真操作会让你飞速进步。
本书的资源有哪些
本书的学习需要配合卓斌开发的Android测试应用,因为书中的实操大多是在该应用程序上实践的。 此外,也会为读者提供书中进行逆向分析的案例样本和所有代码(扫描封底二维码即可获得),而且部分章节还配有视频(扫描书中二维码即可观看)。
读者如果在操作过程中有任何问题,或者有解决不了的难题,欢迎联系我们,可以添加微信(xiaojianbang8888或者Charleval),也可以加入读者QQ群945868932。 本人和卓斌致力于安全逆向教育多年,涉及领域包括网络爬虫、JavaScript逆向、Android逆向、深度学习图像识别等。 读者有进一步学习的想法,或者对于书中的知识有任何问题,都可以通过以上渠道联系我们,我们可以共同讨论解决。
由于编者水平有限,对书中的不足之处,恳请读者批评指正。
李岳阳
|
|