首页 > 其他分享 >Day01 1.2 APP逆向的必备知识

Day01 1.2 APP逆向的必备知识

时间:2023-06-16 21:47:06浏览次数:55  
标签:10 APP 1.2 Nexus Day01 Pixel 发布 Android 安卓

Day01 1.2APP逆向的必备知识

【一】逆向原理

(1)安卓app逆向

  • 正向:
    • 安卓开发工程师 ->
    • Java语法+安卓框架 ->
    • 功能代码(Java+C) ->
    • APK(资源文件/.dex/.so)
  • 逆向:
    • 安卓逆向工程师 ->
    • APK ->
    • 反编译 ->
    • Java+C代码 + Hook ->
    • Python代码还原

【二】什么是反编译,什么是HOOK

(2.1)什么是反编译

  • 反编译是指将已编译的安卓应用程序(APK文件)转换回其源代码的过程。
  • 通常,安卓应用程序在开发过程中会经过编译,将源代码转换为可执行的二进制代码,这使得源代码不可见和难以理解。
    • 反编译的过程旨在还原应用程序的源代码,以便进行分析、理解和修改。
  • 通过安卓反编译,你可以获取应用程序的源代码,了解其实现逻辑、算法、资源文件和其他关键信息。
    • 这对于安卓应用程序的安全评估、漏洞分析、逆向工程、定制化和学习都有重要意义。
  • 在安卓反编译过程中,常见的工具和技术包括:
    • apktool:
      • apktool是一款常用的开源工具,用于反编译和重新打包APK文件。
      • 它可以将APK文件解压为资源文件和Smali代码,并提供了对Smali代码进行分析和编辑的功能。
    • JADX:
      • JADX是一款功能强大的开源工具,用于将APK文件转换为可读的Java源代码。
      • 它能够还原大部分Java代码,并提供源代码分析和导航功能。
    • JD-GUI:
      • JD-GUI是一款免费的Java反编译工具,可以将已编译的Java类文件转换为可读的Java源代码。
      • 尽管它主要用于Java反编译,但对于某些Smali代码的反编译也有一定的支持

安装 jadx

1 下载https://www.oracle.com/java/technologies/downloads/#java8
2 解压提供的压缩包:jadx-1.2.0.zip
3 运行/bin/jadx-gui
4 打开爱学生:app,搜索:patriarchLogin

(2.2)什么是HOOK

  • HOOK指的是通过修改或替换目标应用程序的函数或方法来改变其行为的技术。

    • 这种技术允许开发者或黑客在不修改应用程序源代码的情况下,对其进行定制、调试、修改或篡改。
  • 在安卓中,常见的HOOK技术有以下几种:

    • 动态链接库(DLL)注入:
      • 通过加载一个自定义的动态链接库来替换目标应用程序的某些函数或方法。
      • 这种方式通常需要在ROOT权限下进行,并且需要一些额外的工具和技术,如Xposed Framework或Frida。
    • Xposed框架:
      • Xposed是一款强大的安卓框架,它提供了一种简单的方式来HOOK安卓应用程序。
      • 通过Xposed框架,开发者可以编写模块,用于修改或替换目标应用程序的函数或方法。
    • Frida框架:
      • Frida是一款功能强大的动态分析工具,它提供了在运行时修改和HOOK应用程序的能力。
      • 通过Frida,开发者可以使用JavaScript编写脚本,动态修改目标应用程序的行为

【三】设备选择

(1)mac或win系统均可

  • 建议i5,16g以上内存

(2)安卓设备选择

(2.1)电脑安卓模拟器(网易mumu)

  • win:
    • 网易mumu、逍遥、夜神、雷电(推荐3版本,不要用4版,以后抓包会有问题)
  • mac:
    • 网易mumu(暂不支持m1)
  • win同学安装模拟器时,开启vt-x:

https://mumu.163.com/include/16v1/2016/06/27/21967_625825.html

(2.2)安卓真机

  • 推荐:
    • Pixel谷歌手机【逆向+刷自定义安卓系统+脱壳机】

注意:购买时,必须要买解OEM锁的版本(欧版)

  • 其他:
    • 小米手机(官方支持解BL锁)

在逆向时,你的安卓设备必须获取ROOT权限,一般想要获取ROOT的权限,必须:

  • 手机解BL锁或OEM锁
  • 刷官方系统 + 基于Magisk面具对手机进行ROOT

【四】什么是OEM锁,BL锁

  • "Pixel开启OEM锁"
    • 通常指的是在Google Pixel设备上启用了OEM锁(也称为Bootloader锁)。
    • OEM锁是一个安全机制,目的是保护设备免受未经授权的修改和潜在的安全威胁
  • 如何开启OEM锁,详见资料

https://www.cnblogs.com/dream-ze/p/17486542.html

【五】什么是adb

  • 「adb」即 Android Debug Bridge ,亦称安卓调试桥

    • 是谷歌为安卓开发者提供的开发工具之一,可以让你的电脑以指令窗口的方式控制手机。
  • 可以在安卓开发者网页中的 SDK 平台工具页面下直接下载对应系统的 adb 配置文件,大小只有几十MB

  • 用电脑控制手机的工具,软件

【六】刷机的几种方式

  • 线刷:(factory包)

    • adb 操作

    • fastboot模式操作手机

    • 刷入系统

  • 卡刷:(ota包)

    • 把系统镜像放在sd卡上,刷入到手机里的方式

【七】补充谷歌系列手机

以下是Nexus和Pixel手机的一些常见型号、版本和发布时间的简要列表:

(1)Nexus手机系列:

  • Nexus One - Android 2.1 Eclair - 2010年1月发布
  • Nexus S - Android 2.3 Gingerbread - 2010年12月发布
  • Galaxy Nexus - Android 4.0 Ice Cream Sandwich - 2011年11月发布
  • Nexus 4 - Android 4.2 Jelly Bean - 2012年11月发布
  • Nexus 5 - Android 4.4 KitKat - 2013年10月发布
  • Nexus 6 - Android 5.0 Lollipop - 2014年10月发布
  • Nexus 5X - Android 6.0 Marshmallow - 2015年9月发布
  • Nexus 6P - Android 6.0 Marshmallow - 2015年9月发布
  • Nexus 9 - Android 5.0 Lollipop - 2014年11月发布
  • Nexus Player - Android 5.0 Lollipop - 2014年11月发布

(2)Pixel手机系列:

  • Pixel - Android 7.1 Nougat - 2016年10月发布
  • Pixel XL - Android 7.1 Nougat - 2016年10月发布
  • Pixel 2 - Android 8.0 Oreo - 2017年10月发布
  • Pixel 2 XL - Android 8.0 Oreo - 2017年10月发布
  • Pixel 3 - Android 9 Pie - 2018年10月发布
  • Pixel 3 XL - Android 9 Pie - 2018年10月发布
  • Pixel 3a - Android 9 Pie - 2019年5月发布
  • Pixel 3a XL - Android 9 Pie - 2019年5月发布
  • Pixel 4 - Android 10 - 2019年10月发布
  • Pixel 4 XL - Android 10 - 2019年10月发布
  • Pixel 4a - Android 10 - 2020年8月发布
  • Pixel 4a (5G) - Android 11 - 2020年9月发布
  • Pixel 5 - Android 11 - 2020年9月发布
  • Pixel 6和Pixel 6 Pro -2021年9月发布
  • Pixel 7a、Pixel 7 -2023年5月发布

标签:10,APP,1.2,Nexus,Day01,Pixel,发布,Android,安卓
From: https://www.cnblogs.com/dream-ze/p/17486541.html

相关文章

  • 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......
  • **使用源码部署Nginx 1.23.3的详细步骤和性能优化**
    简介:在本篇博客文章中,我们将详细介绍如何使用源码部署Nginx1.23.3,并提供一些优化措施以提升性能和安全性。将按照以下步骤进行操作:目录准备工作下载和编译Nginx源码安装Nginx配置Nginx优化Nginx性能和安全性启动Nginx服务结论1.准备工作在开始部署Nginx之前,确保你的......
  • springBoot 读取application.yml及优先级
    1.回顾之前的web.xml的加载方式  2.springBoot加载application.yml方式1.Application.run方法中的ConfigurableEnvironmentenvironment=this.prepareEnvironment(listeners,bootstrapContext,applicationArguments);是准备环境,里面会加载配置文件 2.prepareEnviron......
  • 广州家政服务APP开发如何开启智能生活新时代?
    随着社会的快速发展和人们生活水平的提高,家政服务成为越来越多家庭的需求。而广州作为中国重要的城市之一,家政服务市场潜力巨大。在这个信息化、智能化的时代背景下,广州家政服务APP的开发成为引领智能生活新时代的重要方式。接下来广州名锐讯动将带大家探讨广州家政服务APP开发如何......
  •  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......
  • Mapper代理开发
      1.------需要把两个文件的名字命名为同样com.itheima.mapper com/itheima/mapper 修改后需要修改映射文件的地址 2..-----------------------------设置文件namespace属性 3.------------------------------------根据sql语句返回值数据类型来设置方法数......