Day01 1.1 APP逆向的介绍

发布时间 2023-06-16 21:27:22作者: Chimengmeng

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加固原理和脱壳

【七】打包与交付

(1)exe可执行文件打包

(2)基于pyqt5实现的GUI开发

(3)web平台开发

(4)项目部署