《Android应用安全实战:Frida协议分析》是由机械工业出版社出版的一本关于Android方面的书籍,作者是李岳阳、卓斌,主要介绍了关于Android、应用安全、Frida、协议分析方面的知识内容,目前在Android类书籍综合评分为:8.9分。
书籍介绍
编辑推荐
《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.1Frida框架介绍
- 1.2Frida框架环境搭建
- 1.2.1Python的安装
- 1.2.2VisualStudioCode的安装
- 1.2.3Node.js的安装
- 1.2.4Frida的安装
- 1.3Android平台环境搭建
- 1.3.1Android系统刷机
- 1.3.2获取Android系统管理员权限
- 1.3.3frida-server配置
- 第2章Frida框架Java层应用
- 2.1Frida框架的Hook方法
- 2.1.1Hook静态方法和实例方法
- 2.1.2Hook构造方法
- 2.1.3Hook重载方法
- 2.1.4Hook方法的所有重载
- 2.1.5对象参数的构造
- 2.1.6主动调用Java函数
- 2.2Frida框架Hook类
- 2.2.1获取和修改类的字段
- 2.2.2Hook内部类和匿名类
- 2.2.3枚举所有已加载的类和枚举类的所有方法
- 2.2.4Hook类的所有方法
- 2.3实战:某嘟牛协议分析
- 2.3.1某嘟牛Java层登录协议分析
- 2.3.2Frida框架辅助协议分析
- 2.3.3Frida框架生成加密参数
- 第3章关键代码快速定位
- 3.1集合的Hook
- 3.1.1HookHashMap定位散列表
- 3.1.2打印函数栈
- 3.1.3HookArrayList定位动态数组
- 3.2组件与事件的Hook
- 3.2.1HookToast定位提示
- 3.2.2HookfindViewById定位组件
- 3.2.3HooksetOnClickListener定位按钮点击事件
- 3.3常用类的Hook
- 3.3.1HookTextUtils定位用户输入
- 3.3.2HookJSONObject定位JSON数据
- 3.3.3HookCollections定位排序算法
- 3.3.4HookString定位字符转换
- 3.3.5HookStringBuilder定位字符串操作
- 3.3.6HookBase64定位编码
- 3.4其他类的定位
- 3.4.1Hook定位接口的实现类
- 3.4.2Hook定位抽象类的实现类
- 3.5实战:去除应用程序的强制升级
- 第4章算法“自吐”脚本开发
- 4.1工具函数封装
- 4.2FridaHookMD5算法
- 4.2.1HookMD5算法update方法
- 4.2.2HookMD5算法digest方法
- 4.3FridaHookMAC算法
- 4.3.1HookMAC算法密钥
- 4.3.2HookMAC算法update方法
- 4.3.3HookMAC算法doFinal方法
- 4.4FridaHook数字签名算法
- 4.4.1Hook数字签名算法update方法
- 4.4.2Hook数字签名算法sign方法
- 4.5Objection辅助Hook
- 4.5.1Objection的安装和基本使用
- 4.5.2实战:某电竞界面跳转
- 第5章Frida框架so层基本应用
- 5.1获取Module
- 5.1.1通过模块名来获取Module
- 5.1.2通过地址来获取Module
- 5.1.3Process中的常用属性和方法
- 5.2枚举符号
- 5.2.1枚举模块的导入表
- 5.2.2枚举模块的导出表
- 5.2.3枚举模块的符号表
- 5.2.4Module中的常用属性和方法
- 5.3FridaHookso函数
- 5.3.1Hook导出函数
- 5.3.2从给定地址查看内存数据
- 5.3.3Hook任意函数
- 5.3.4获取指针参数返回值
- 5.3.5FridainlineHook获取函数执行结果
- 5.4Frida修改函数参数与返回值
- 5.4.1修改函数数值参数与返回值
- 5.4.2修改字符串参数
- 5.5实战:某热点登录协议分析
- 第6章JNI函数的Hook与快速定位
- 6.1JNI函数的Hook
- 6.1.1JNIEnv的获取
- 6.1.2枚举libart符号表来Hook
- 6.1.3通过计算地址的方式来Hook
- 6.2主动调用so函数
- 6.2.1FridaAPI主动调用JNI函数
- 6.2.2so层文件打印函数栈
- 6.2.3DebugSymbol类
- 6.2.4so层主动调用任意函数
- 6.2.5通过NativeFunction主动调用JNI函数
- 6.3JNI函数注册的快速定位
- 6.3.1Hookdlsym获取函数地址
- 6.3.2HookRegisterNatives获取函数地址
- 6.4ollvm混淆应用协议分析实战
- 6.4.1jnitrace工具的使用
- 6.4.2实战:某App应用程序协议分析
- 第7章Frida框架so层进阶应用
- 7.1Frida操作内存数据
- 7.1.1内存读写
- 7.1.2Frida修改so函数代码
- 7.1.3Frida从内存中导出so函数
- 7.1.4ollvm字符串解密
- 7.1.5构造二级指针
- 7.1.6读写文件
- 7.2Frida其他常用API介绍
- 7.2.1NativePointer类的常用方法
- 7.2.2Memory的常用方法
- 7.2.3替换函数
- 7.3Frida进阶Hook
- 7.3.1Hook系统函数dlopen
- 7.3.2Hook系统函数JNI_Onload
- 7.3.3Hook系统函数initarray
- 7.3.4Hook系统函数pthread_create
- 7.3.5监控内存读写
- 7.3.6函数追踪工具frida-trace
- 7.3.7FridaAPI的简单封装
- 7.3.8代码跟踪引擎stalker
- 7.4实战:某观察登录协议分析
- 第8章Frida框架算法转发方案
- 8.1Frida的Python库使用
- 8.1.1Frida注入方式
- 8.1.2spawn方式启动与连接非标准端口
- 8.2Frida与Python交互
- 8.3Frida的RPC调用
- 8.4实战:某嘟牛Frida算法转发