Day01 APP逆向的介绍
【一】APP 逆向入门
(1)逆向设备与root
- 真机和模拟器
- 解BL锁
- fastboot刷机和root
- twrp刷root
- 面具和常见模块
(2)Python虚拟环境
- 系统解释器环境
- virtualenv虚拟环境
- 解释器配置常见错误
(3)抓包和配置
- charles介绍配置和安装
- https证书
- 用户证书与系统证书
- 解锁system分区
- Magisk+moveCert
(4)反编译工具
- apk文件结构
- jdk安装和配置
- jadx配置和使用
- jeb配置和使用
- GDA使用
- 反编译工具对比推荐
(5)逆向分析流程
- 模拟器配置
- app的安装和初始化
- http抓包配置
- charles必备技能
- 抓包配置
- 修改和重新请求
- 请求现象分享
- apk反编译和关键点寻找
- 算法逆向和还原
- 实战案例
- xx航空
- x安全
- xx合伙人
【二】Java必备语法
(1)Java环境搭建
(2)JDK和JRE
(3)语法基础
- 文件/类名/代码结构
- 变量和常量
- 输入输出
- 条件语句
- 循环语句
- 注释和其他
(4)数据类型
- 整数相关:byte,short,int,long
- 字符和字符串
- 数组
- Object基类
- List相关:ArrayList,LinkedList
- Set相关:HashSet,TreeSet
- Map相关:HashMap,TreeMap
- 类型转换
- 逆向常见案例
(5)面向对象相关
- 类和对象
- 静态成员
- 类的继承
- 接口和抽象类
- 成员修饰符
- 泛型
(6)包相关
- 包的定义
- 导入和修饰符
- 成员权限
- 内置和第三方
(7)常见加密和工具(Java和Python)
- 字节和字节数组(有无符号)
- UUID随机值
- 十六进制字符串
- md5/sha1/sha256等加密
- RSA非对称加密
- AES/DES 加密
- GZIP压缩
- 国密等
- Cyberchef工具
【三】安卓开发核心
(1)安卓环境搭建
- Android Studio
- 安卓SDK安卓和配置
(2)安装开发(正向)
- UI开发和设计
- 标签处理和事件绑定
- 交互字段
- 后台服务
- OKHttp3网络请求:常见请求,拦截器,逆向常见应用套路
- Retrofit网络库
- SharedPreferences持久化
- Json序列化和反序列化
(3)安装无障碍开发(正向)
- 开启无障碍服务
- 引导无障碍页面
- 页面元素查找
- 抖音抢福袋-业务处理
(4)API开发
- Flask框架搭建与使用
- 路由和视图编写
- API请求接收和响应
- 安装http配置和数据交互
(5)C语言基础
- 整形和字节
- 字符和字符串
- 数组
- 指针:指针类型,多级指针,指针运算
- 结构体
- 预处理和头文件
- 常见内置包和函数
(6)安卓JNI开发(正向)
- NDK工具包
- 项目配置
- JNI和JVM对象
- native方法的定义
- 静态注册和动态注册
- java类型/native类型/jni签名
- c语言和java的调用和转换:
- ptrace处理
- 导出函数/导入函数/符号表
(7)实战案例
- 案例一:安卓用户登录(安卓+api)
- 案例二:都有红包和福袋(薅羊毛)
【四】Frida框架
(1)ADB
- 服务管理
- 必备指令:上传下载,安装卸载,手机处理,远程系统,usb和网络连接,多设备处理,其它指令
- 案例:自动刷抖音
(2)安装和配置
- frida-server(安卓端)
- frida(PC端)
- 端口转发
(3)脚本语言分类
- Python版
- JavaScript版
(4)Hook模式
- attach
- spawn
(5)Hook脚本
- java层
- so层
(6)frida-rpc和数据通信
- rpc类型处理和转化
- 相互数据通信
【五】案例驱动实现
【六】专题课
(1)抓包专题
- 系统代理和检测的绕过
- 客户端证书校验
- 服务端证书校验
- 双向证书校验
- 代码混淆Hook
- HTTP,TCP,HTTPS底层分析,rOcapture使用
(2)AOSP系统定制
- ubuntu系统安装和配置
- 环境依赖安装
- 代码同步
- 驱动安装和处理
- 集成HTTPS证书
- 修改源码并隐藏ROOT特征
- 修改源码解决ptrace占坑
- 修改源码解决frida检测和调试
- FART定制脱壳机
(3)ROOT检测
- java层关键字检测和绕过
- so层关键字检核和绕过
- 定制AOSP源码绕过
(4)frida监测和反调试
- frida特征检测
- strongR-frida
- ptrace占坑
- libc.so系统函数hook
- pthread寻找和替换
(5)脱壳
- 脱壳工具使用
- frida脱壳
- 安卓底层必备脱壳+Fart脱壳机
- so层加固,内存脱壳,修复
- VMP加固原理和脱壳