书籍作者:陈佳林 | ISBN:9787302598978 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:3714 |
创建日期:2023-03-25 | 发布日期:2023-03-25 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
《安卓Frida逆向与协议分析》翔实地介绍流行的Frida工具在安卓逆向工程中的应用,内容包括:如何安装和使用Frida、基本环境的搭建、Frida-tools、Frida脚本、Frida API、批量自动化Trace和分析、RPC远程方法调用、在无须逆向算法具体实现的情况下对Frida工具的调用,并提供了大量App逆向与协议分析案例,书中还介绍了更加稳定的Xposed框架的使用方法,以及从安卓源码开始定制属于自己的抓包沙箱,打造无法被绕过的抓包环境等内容。
本书案例丰富,注重实操,适合安卓应用安全工程师、安卓逆向分析工程师、爬虫工程师以及大数据采集和分析工程师使用。
安卓操作系统目前在中国乃至世界范围内占据主流,大量互联网、市政、金融、O2O、出租车等公司及部门将业务依托于App的方式交付给最终用户,这些App真的安全吗?前有各类爬虫软件对票务、市政企业个人信息等App内容的疯狂抓取,后有拼多多被薅数十亿羊毛的事件,因此App的安全、逆向工程及自动化利用技术越来越受到App开发者的关注。
自从Frida于2014年年末问世以来,迅速在全球安全社区掀起了“Frida热潮”,借助Frida动态修改内存的特性实现了快速逆向和算法调用功能,安卓应用安全分析和对抗技术从未像如今这样成熟和自动化。
作为安卓应用安全测评工程师,或者大数据平台采集工程师,逆向研究员对于App的逆向分析研究及其算法的还原和接口调用的热爱仿佛是刻在骨子里的。
与逆向技术的发展相对应的是,很多大型软件和平台的开发者也逐渐把算法藏得越来越深,越来越难以逆向。这里面最具有代表性的是强混淆框架Ollvm和Arm层的虚拟机保护技术Vmp,前者注重增加算法本身的复杂度,后者通过增加一套中间层将算法保护起来,使得逆向工作变得更加困难,显然,逆不出中间层也就还原不出算法。
面对这种情况我们该如何应对呢?解决办法是采用黑盒调用的方式,忽略算法的具体细节,使用Frida把SO加载起来,直接调用里面的算法得到计算结果,构造出正确的参数,将封包传给服务器。也可以将调用过程封装成API暴露给同事使用,甚至搭建计算集群,加快运行速度,提高运行效率。本书详细地介绍了基于Frida和Xposed的算法批量调用和转发实践,并给出了具体的案例分析。
如果App对Frida或Xposed进行了检测,我们还可以采用编译安卓源码的方式打造属于自己的抓包沙箱。对于系统来说,由于App的全部代码都是依赖系统去完成执行的,因此无论是加固App在运行时的脱壳,还是App发送和接收数据包,对于系统本身来说App的行为都是没有隐私的。换句话说,如果在系统层或者更底层对App的行为进行监控,App的很多关键信息就会暴露在“阳光”之下一览无余。之后可以直接修改系统源码,使用r0capture工具为Hook的那些API中加入一份日志,即可把处于明文状态的包打印出来,从而实现无法对抗的抓包系统沙箱。
Frida以其简洁的接口和强大的功能迅速俘获了安卓应用安全研究员以及爬虫研究员的芳心,成为逆向工作中的绝对主力,笔者也有幸在Frida普及的浪潮中做了一些总结和分享,建立了自己的社群,与大家一起跟随Frida的更新脚步共同成长和进步。
本书翔实地介绍了如何安装和使用Frida、基本的环境搭建、Frida-tools、Frida脚本、Frida API、批量自动化Trace和分析、RPC远程方法调用,并包含大量App逆向与协议分析案例实战,此外,还介绍了更加稳定的框架Xposed的使用方法,以及从安卓源码开始定制属于自己的抓包沙箱,打造无法被绕过的抓包环境等内容。
本书技术新颖,案例丰富,注重实操,适合以下人员阅读:
? 安卓应用安全工程师。
? 安卓逆向分析工程师。
? 爬虫工程师。
? 大数据收集和分析工程师。
在本书完稿时,Frida版本更新到15,安卓也即将推出版本12,不过请读者放心,本书中的代码可以在特定版本的Frida和安卓中成功运行。
安卓逆向是一门实践性极强的学科,读者在动手实践的过程中难免会产生各式各样的疑问,因此笔者特地准备了GitHub仓库更新和勘误,读者如有疑问可以到仓库的issue页面提出,笔者会尽力解答和修复。笔者的GitHub:https://github.com/r0ysue/AndroidFridaSeniorBook。
最后,在这里感谢笔者的父母,感谢中科院信工所的Simpler,感谢看雪学院和段钢先生,感谢寒冰冷月、imyang,感谢xiaow、bxl、寄予蓝、白龙,感谢葫芦娃、智障、NWMonster、非虫,成就属于你们。
陈佳林
2022年1月
第1章 安卓逆向环境搭建 1
1.1 虚拟机环境准备 1
1.2 逆向环境准备 3
1.3 移动设备环境准备 6
1.3.1 刷机 6
1.3.2 ROOT 10
1.3.3 Kali NetHunter刷机 13
1.4 Frida开发环境搭建 17
1.4.1 Frida介绍 18
1.4.2 Frida使用环境搭建 18
1.4.3 Frida开发环境配置 22
1.5 本章小结 23
第2章 Frida Hook基础与快速定位 24
2.1 Frida基础 24
2.1.1 Frida基础介绍 24
2.1.2 Frida Hook 基础 26
2.1.3 Objection基础 28
2.2 Hook快速定位方案 33
2.2.1 基于Trace枚举的关键类定位方式 33
2.2.2 基于内存枚举的关键类定位方式 40
2.3 本章小结 46
第3章 Frida脚本开发之主动调用与RPC入门 47
3.1 Frida RPC开发姿势 47
3.2 Frida Java层主动调用与RPC 53
3.3 Frida Native层函数主动调用 61
3.4 本章小结 66
第4章 Frida逆向之违法App协议分析与取证实战 67
4.1 加固App协议分析 67
4.1.1 抓包 67
4.1.2 注册/登录协议分析 70
4.2 违法应用取证分析与VIP破解 75
4.2.1 VIP清晰度破解 75
4.2.2 图片取证分析 78
4.3 本章小结 87
第5章 Xposed Hook及主动调用与RPC实现 88
5.1 Xposed应用Hook 88
5.1.1 Xposed安装与Hook插件开发入门 88
5.1.2 Hook API详解 93
5.1.3 Xposed Hook加固应用 98
5.1.4 使用Frida一探Xposed Hook 101
5.2 Xposed主动调用与RPC实现 108
5.2.1 Xposed主动调用函数 108
5.2.2 Xposed结合NanoHTTPD实现RPC调用 115
5.3 本章小结 119
第6章 Android源码编译与Xposed魔改 121
6.1 Android源码环境搭建 121
6.1.1 编译环境准备 121
6.1.2 源码编译 125
6.1.3 自编译系统刷机 129
6.2 Xposed定制 131
6.2.1 Xposed源码编译 131
6.2.2 Xposed魔改绕过XposedChecker检测 140
6.3 本章小结 151
第7章 Android沙箱之加解密库“自吐” 153
7.1 沙箱介绍 153
7.2 哈希算法“自吐” 154
7.2.1 密码学与哈希算法介绍 154
7.2.2 MD5算法Hook“自吐” 155
7.2.3 Hash算法源码沙箱“自吐” 160
7.3 crypto_filter_aosp项目移植 167
7.4 本章小结 172
第8章 Android沙箱开发之网络库与系统库“自吐” 173
8.1 从r0capture到源码沙箱网络库“自吐” 173
8.1.1 App抓包分析 173
8.1.2 从r0capture到沙箱无感知抓包 176
8.1.3 使用沙箱辅助中间人抓包 186
8.2 风控对抗之简单实现设备信息的篡改 198
8.2.1 风控对抗基础介绍 198
8.2.2 源码改机简单实现 199
8.3 本章小结 210
第9章 Android协议分析之收费直播间逆向分析 212
9.1 VIP功能绕过 212
9.2 协议分析 217
9.3 主动调用分析 225
9.3.1 简单函数的主动调用 226
9.3.2 复杂函数的主动调用 230
9.4 本章小结 237
第10章 Android协议分析之会员制非法应用破解 238
10.1 r0tracer介绍与源码剖析 238
10.2 付费功能绕过 244
10.3 协议分析 250
10.4 打造智能聊天机器人 255
10.5 本章小结 260