描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302587477
本书主要内容为安卓Frida逆向与抓包,包含如何搭建完美运行Frida的安卓逆向分析环境,使用Frida对安卓App各项组件、框架和代码进行Hook,如何批量自动化Hook,以及全自动导出Hook的结果。针对爬虫工程师为迫切需要的抓包部分,本书详细阐述了各种应用层框架的抓包实战,HTTP(S)及其框架的抓包的核心原理及工具的使用,通过Frida进行的Hook抓包,还深入介绍了Frida对native层的Hook,以及一系列“通杀”“自吐”脚本的研发过程和核心原理。
本书以详细介绍了Hook框架Frida在安卓逆向工程与抓包中的应用,主要内容包括如何搭建完美运行Frida的安卓逆向分析环境,使用Frida对安卓App各项组件、框架和代码进行Hook,如何批量自动化Hook,以及全自动导出结果。针对爬虫工程师为迫切需要的抓包技术,详细阐述了各种应用层框架的抓包实战,HTTP(S)及其框架抓包的核心原理及工具使用,通过Frida进行的Hook抓包,还进一步介绍了Frida对native层的Hook,以及一系列“通杀”“自吐”脚本的研发过程和核心原理。 本书内容详尽,突出实操,适合安卓开发人员,安卓应用安全工程师,逆向分析工程师,爬虫工程师,以及大数据分析工程师和安全研究人员使用。
第1章 环境准备 1
1.1 虚拟机环境准备 1
1.2 逆向过程的环境准备 3
1.3 移动设备环境准备 7
1.3.1 刷机 7
1.3.2 ROOT 11
1.4 Kali NetHunter刷机 14
1.5 本章小结 18
第2章 安卓逆向过程基础 19
2.1 Android相关基础介绍 19
2.1.1 系统架构 19
2.1.2 Android四大组件 21
2.2 从Hello World开始了解Android的
开发流程 21
2.2.1 行代码Hello World的
开发流程 22
2.2.2 Hello World分析与完善 24
2.3 安卓逆向过程中的常用命令 27
2.3.1 常用Linux命令介绍 27
2.3.2 Android特有的adb命令
介绍 30
2.4 本章小结 35
第3章 Frida逆向入门之Java层Hook 36
3.1 Frida基础 36
3.1.1 Frida介绍 36
3.1.2 Frida环境搭建 37
3.1.3 Frida基础介绍 39
3.1.4 Frida IDE配置 40
3.2 Frida脚本入门 41
3.2.1 Frida脚本的概念 41
3.2.2 Java层Hook基础 43
3.2.3 Java层主动调用 50
3.3 RPC及其自动化 53
3.4 本章小结 58
第4章 Objection快速逆向入门 59
4.1 Objection介绍 59
4.2 Objection安装与使用 60
4.2.1 Objection安装 60
4.2.2 Objection使用 62
4.3 Objection实战 71
4.3.1 Jadx/Jeb/GDA介绍 72
4.3.2 Objection结合Jeb分析 76
4.4 Frida开发思想 84
4.4.1 定位:Objection辅助定位 84
4.4.2 利用:Frida脚本修改参数、
主动调用 90
4.4.3 规模化利用:Python规模化
利用 94
4.5 本章小结 96
第5章 App攻防博弈过程 97
5.1 App攻防技术演进 97
5.1.1 APK结构分析 97
5.1.2 App攻防技术发展 99
5.2 Smali语言简介 105
5.3 对App进行分析和破解的实战 114
5.3.1 对未加固App进行分析和
破解的实战 114
5.3.2 对加固App进行分析和
破解的实战 122
5.4 本章小结 129
第6章 Xposed框架介绍 130
6.1 Xposed框架简介 130
6.2 Xposed框架安装与插件开发 132
6.2.1 Xposed框架安装 132
6.2.2 Xposed插件安装 134
6.3 本章小结 141
第7章 抓包详解 143
7.1 抓包介绍 143
7.2 HTTP(S)协议抓包配置 144
7.2.1 HTTP抓包配置 144
7.2.2 HTTPS/Socket协议抓包配置 152
7.3 应用层抓包核心原理 156
7.4 Hook模拟抓包 160
7.5 本章小结 169
第8章 Hook抓包实战之HTTP(S)
网络框架分析 170
8.1 常见网络通信框架介绍 170
8.2 系统自带HTTP网络通信库
HttpURLConnection 171
8.2.1 HttpURLConnection基础
开发流程 171
8.2.2 HttpURLConnection
“自吐”脚本开发 173
8.3 HTTP第三方网络通信库——
okhttp3与Retrofit 178
8.3.1 okhttp3开发初步 178
8.3.2 okhttp3“自吐”脚本开发 184
8.4 终极“自吐”Socket 197
8.4.1 网络模型 197
8.4.2 Socket(s)抓包分析 199
8.5 本章小结 210
第9章 Hook抓包实战之应用层
其他协议及抓包分析 211
9.1 WebSocket协议 211
9.1.1 WebSocket简介 211
9.1.2 分析WebSocket搭建环境 212
9.1.3 WebSocket抓包与协议分析 215
9.2 XMPP协议 219
9.2.1 XMPP简介 219
9.2.2 XMPP环境搭建与抓包分析 220
9.3 Protobuf相关协议 225
9.3.1 gRPC/Protobuf介绍 225
9.3.2 gRPC/Protobuf环境搭建与
逆向分析 227
9.4 本章小结 237
第10章 实战协议分析 238
10.1 Frida辅助抓包 238
10.1.1 SSL Pinning案例介绍 238
10.1.2 服务器端校验客户端 244
10.2 违法应用协议分析 249
10.2.1 违法图片取证分析 249
10.2.2 违法应用视频清晰度破解 261
10.3 本章小结 266
第11章 Frida逆向入门之
native层Hook 267
11.1 native基础 267
11.1.1 NDK基础介绍 267
11.1.2 NDK开发的基本流程 268
11.1.3 JNI函数逆向的基本流程 272
11.2 Frida native层Hook 275
11.2.1 native层Hook基础 275
11.2.2 libssl库Hook 281
11.2.3 libc库Hook 288
11.3 本章小结 292
第12章 抓包进阶 293
12.1 花式抓包姿势介绍 293
12.1.1 Wireshark手机抓包 293
12.1.2 路由器抓包 297
12.2 r0capture开发 300
12.3 本章小结 306
“Frida真是太有意思了!”这是一位资深爬虫工程师在笔者的星球中留言。
为什么爬虫工程师会用Frida呢?因为要学习App安全的逆向分析。为什么爬虫工程师要分析App呢?由于智能手机的普及和O2O商业模式的推广,人们已经逐渐习惯了“一部手机”搞定一切的生活方式。
大量的数据在App中产生,比如在大众点评中评价餐馆,在短视频社交App中给女主播点赞,在淘宝中下单购物,在微信朋友圈中分享自己的动态,到通过App进行“消费”,比如查看别人对于某网红店铺的评价,在短视频App上看感兴趣的视频和直播消磨时间,看别人的朋友圈,看淘宝宝贝的点评等。
我们以某著名短视频App为例,从拍视频、剪视频、配乐上传,通过平台的大数据分发体系推送给对其感兴趣的受众,受众对其观看、点赞加关注,数据的产生、加工和消费,只在一部手机上即可完成,已经不存在网页的形式了,这也是爬虫或大数据工程师必须学习App端安全分析的客观原因。
主观原因方面爬虫工程师向上突破较为乏力,想要拿更高的工资,一般走架构师或App安全分析两条路。架构师要求设计海量数据存储架构,App安全分析则必须学习App逆向,这也是爬虫工程师来做App逆向工程的情况越来越多,对App逆向分析的需求越来越大的 原因。
那么为什么爬虫工程师会这么喜欢Frida呢?原因主要有以下两点:
(1)Frida有Python接口,爬虫工程师的主力语言是Python,看到Python就倍感亲切;
(2)Frida的Hook Java和Hook native都是用JavaScript编写的,爬虫工程师在分析网页时对JavaScript已经相当熟悉;使用Frida进行逆向分析和测试时非常迅速,可以快速进行猜想验证和原型制作,所试立刻有所得。
Frida以其简洁的接口和强大的功能,迅速掳获了安卓应用安全研究员以及爬虫工程师的芳心,成为学习和工作中的主力,笔者也有幸在Frida的浪潮中应用Frida做了许多工作,本书即是笔者的工作和学结,笔者还建立了自己的社群,期待与大家一起、跟随Frida的更新脚步共同成长和进步。
本书内容介绍
本书主要内容为安卓Frida逆向与抓包,包含如何搭建完美运行Frida的安卓逆向分析环境,使用Frida对安卓App各项组件、框架和代码进行Hook,如何批量自动化Hook,以及全自动导出Hook的结果。针对爬虫工程师为迫切需要的抓包部分,本书详细阐述了各种应用层框架的抓包实战,HTTP(S)及其框架的抓包的核心原理及工具的使用,通过Frida进行的Hook抓包,还深入介绍了Frida对native层的Hook,以及一系列“通杀”“自吐”脚本的研发过程和核心原理。
本书的读者对象
? 安卓开发工程师
? 安卓App安全工程师
? 安卓逆向分析工程师
? 爬虫工程师
? 大数据收集和分析工程师
? App安全研究人员
技术支持
在本书编写的过程中,Frida已经推出版本14,即将推出版本15,安卓也出了Android 11版本,本书中的代码可以在特定版本的Frida和安卓中成功运行。由于安卓逆向是一门实践性极强的学科,读者在动手实践的过程中难免会产生各式各样的疑问,笔者特地准备了GitHub仓库更新(地址:https://github.com/r0ysue/AndroidFridaBeginnersBook),读者如有疑问可以在仓库的issue页面提出,笔者会尽力解答和修复。
如果在使用本书的过程中有什么问题,请发邮件联系[email protected],邮件主题为“安卓Frida逆向与抓包实战”。
后,感谢公众号“菜鸟学编程”运营者蔡晋、“咸鱼学Python”运营者戴煌金、“进击的Coder”运营者崔庆才和开源Frida工具DEXDump、Wallbreaker作者hluwa的热情推荐!
感谢笔者的父母,感谢中科院信工所的Simpler,感谢看雪学院和段钢先生,感谢寒冰冷月、imyang、白龙、bxl、葫芦娃、智障、NWMonster、非虫,成就属于你们。
陈佳林
2021年5月
评论
还没有评论。