首页 > 其他分享 >Day01 1.1 APP逆向的介绍

Day01 1.1 APP逆向的介绍

时间:2023-06-16 21:47:25浏览次数:44  
标签:逆向 1.1 Day01 APP 配置 证书 frida 安装 安卓

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)项目部署

标签:逆向,1.1,Day01,APP,配置,证书,frida,安装,安卓
From: https://www.cnblogs.com/dream-ze/p/17486539.html

相关文章

  • Day01 1.2 APP逆向的必备知识
    Day011.2APP逆向的必备知识【一】逆向原理(1)安卓app逆向正向:安卓开发工程师->Java语法+安卓框架->功能代码(Java+C)->APK(资源文件/.dex/.so)逆向:安卓逆向工程师->APK->反编译->Java+C代码+Hook->Python代码还原【二】什么是反编译,什么是HOOK(2.1......
  • Day01 1.3 什么是Root设备
    Day011.3什么是Root设备【一】什么是rootROOT是指获取安卓设备(手机或平板电脑)的超级用户权限,也被称为管理员或根用户权限。通过Root手机,用户可以获得对操作系统的完全控制权限,可以访问和修改系统文件、安装自定义固件、运行需要Root权限的应用程序等。Root权限的好处包......
  • Day01 1.4 Python虚拟环境的搭建
    Day011.4Python虚拟环境的搭建【一】虚拟环境介绍(1)虚拟环境优点1、使不同应用开发环境相互独立2、环境升级不影响其他应用,也不会影响全局的python环境3、防止出现包管理混乱及包版本冲突(2)什么是虚拟环境,为什么要有它?它解决了什么问题操作系统装了python3.8使用djang......
  • springBoot 读取application.yml及优先级
    1.回顾之前的web.xml的加载方式  2.springBoot加载application.yml方式1.Application.run方法中的ConfigurableEnvironmentenvironment=this.prepareEnvironment(listeners,bootstrapContext,applicationArguments);是准备环境,里面会加载配置文件 2.prepareEnviron......
  • 广州家政服务APP开发如何开启智能生活新时代?
    随着社会的快速发展和人们生活水平的提高,家政服务成为越来越多家庭的需求。而广州作为中国重要的城市之一,家政服务市场潜力巨大。在这个信息化、智能化的时代背景下,广州家政服务APP的开发成为引领智能生活新时代的重要方式。接下来广州名锐讯动将带大家探讨广州家政服务APP开发如何......
  • vue3:vue+nginx+php进行服务端部署的配置(nginx/1.18.0 / [email protected])
    一,开发环境中的配置:1,前端:vue的vue.config.jsconst{defineConfig}=require('@vue/cli-service')module.exports=defineConfig({transpileDependencies:true,publicPath:process.env.NODE_ENV==="production"?"./":"/&qu......
  •  iOS App 上架流程图文教学
    ​ iOSApp上架流程图文教学 在上架App之前必须先准备好开发者帐号,但申请开发者帐号因法兰克早在之前已经申请好了,故就跳过此步骤,直接从产生凭证到上传App开始讲起。首先,要将自己辛苦写好的App送审的话,则要依序做完下列几件事情即可。在开发者后台产生.cer(凭证档)......
  •  iOS App 上架流程图文教学
    ​ iOSApp上架流程图文教学 在上架App之前必须先准备好开发者帐号,但申请开发者帐号因法兰克早在之前已经申请好了,故就跳过此步骤,直接从产生凭证到上传App开始讲起。首先,要将自己辛苦写好的App送审的话,则要依序做完下列几件事情即可。在开发者后台产生.cer(凭证档)......
  • SpringBoot集成Swagger报错:Failed to start bean 'documentationPluginsBootstrapper'
    本文章向大家介绍SpringBoot集成Swagger报错:Failedtostartbean'documentationPluginsBootstrapper';,主要包括SpringBoot集成Swagger报错:Failedtostartbean'documentationPluginsBootstrapper';使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需......
  • H5与原生app交互
    H5与原生app交互原生调h5方法:h5:注册方法,绑定在windowns上:如windown[方法名]=()=>{}h5调原生方法,需要区分安卓和ios/**获取设备系统类型*/exportconstLoginPhoneType=()=>{varsUserAgent,isIOS,isAndroid,isIpad;sUserAgent=navigator.userAgent.toLowe......