安卓逆向基础

本文介绍了Android开发者必备的工具,如jadx和gda用于反编译DEX文件,AndroidStudio的下载和配置,以及adb的基本使用。重点讲解了抓包工具如HttpCanary和Frida的安装与Hook技术的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、dex反编译工具安装

1、jadx

https://github.com/skylot/jadx/releases/tag/v1.3.2

2、gda

http://www.gda.wiki:9090/

3、jeb 在已上两个工具不行的情况下

二、AndroidStudio下载、安装、配

https://developer.android.google.cn/studio/
配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. AndroidSDK下载、目录介绍
  2. AndroidStudio配置文件所在位置

a).gradle .android
C:\Users\Administrator
b)AndroidStudio4.2
C:\Users Administrator\AppDatalLocal\Google

  1. AndroidStudio工程的创建

1、adb的作用
2、adb构成
a)client端,在电脑上,负责发送adb命令
b)daemon守护进程adbd,在手机上,负责接收和执行adb命令
c)server端,在电脑上,负责管理client和daemon之间的通信
3、adb工作原理
a)client端将命令发送给server端
b)server端会将命令发送给daemon端
c)daemon端进行执行
d)将执行结果,返回给server端
e)server端将结果再返回给client端
4、
超级adbd
adb root
adb remount

adb常用命令

adb/adb help/adb --help
adb version 显示adb版本和路径
adb start-server 启动server
adb kill-server 停止server
adb devices 显示连接的设备列表
adb install xxx.apk 通过adb安装app
adb install-r xxx.apk
adb uninstall 包名
adb push xxx xxx
adb pullxxx xxx

基本抓包环境

1.抓包工具分类
全局抓包工具 Http v7、Http debugger pro
代理抓包工具 Charles、Fiddler
VPN抓包工具 HttpCanary
网卡抓包工具 WireShark
手机抓包工具 tcpdumpHook抓包工具 r0Capture
2. Charles的安装与配置
前置环境
配置JDK
启用超级管理员
关闭防火墙
下载 https://www.charlesproxy.com/download/
注册
https://www.zzzmode.com/mytools/charles/
抓包的开启、停止、清除
代理端口设置 Proxy->Proxy Settings
在这里插入图片描述

socksdroid的安装与配置
Connection这一栏填入本机ip和Charles上设置的代理port右上角打开VPN
Charles会弹出对话框,是否允许设备连接,点击Allow
4.抓取HTTP流量(抓不到关闭防火墙)

5.上述抓包配置的注意事项
5.1手机和电脑同在一个网段下
5.2 电脑能够ping通手机
5.3 手机能够ping通电脑
5.4 电脑和手机ping不通,可以查看下路由器的一些设置
比如ap隔离,错连到访客网络等

抓https流量步骤

1在这里插入图片描述在这里插入图片描述
2、adb push xx.pem /sdcard
3、然后手机设置–安全–加密与凭据–从存储设备安装—

基本控件的使用

  1. Button
    控件id->在代码中方便的获取控件四种点击事件绑定方式
    Log
    Toast
  2. TextView
    strings.xml
    public.xml
  3. EditTextEditText内容的获取与设置
    TextUtils
    str.trim()

基本抓包环境

  1. HttpCanary的安装、配置与使用
    2.rOcapture介绍
    一个Hook抓包脚本,主要原理就是Hook了一些SSL相关的系统函数GitHub地址
    https://github.com/r0ysue/r0capture
    rOcapture的使用方式
    先安装依赖 pip install hexdump

attach模式,抓包内容可以保存成pcap文件供后续分析
python3 r0capture.py -U com.qiyi.video -v -p igiyi.pcap
spawn模式
python3 r0capture.py -U-f com.giyi.video -v

  1. WireShark
    如果保存成了pcap文件,可以使用这个工具来打开

FridaHook环境搭建

Hook可以用来做什么
可以用来判断app执行某个操作的时候,是否经过我们的怀疑的这个函数可以用来修改被hook函数的运行逻辑
可以用来在运行过程中,获取被hook的函数传入的具体的参数和返回值可以用来主动调用app中的某些函数

2.Python3.8 64bit的下载和安装
https://www.python.org/downloads/3.8
64bit的任意一个版本都行,不用管最后的小版本

3. frida的安装
pip install frida = =14.2.18
pip install frida-tools==9.2.5(装frida-tools时会自动安装frida)

4、如何判断frida是否安装成功
cmd中执行frida --version,能打印出版本号说明frida-tools没有问题
cmd中执行python,进入控制台import frida,能成功导包,说明frida库没有问题

5. frida的卸载
pip uninstall frida
pip uninstall frida-tools
whl包的离线安装
pip install frida-14.2.18-cp38-cp38-win amd64. whl
pip install frida tools-9.2.5-py3-none-any.whl

7.frida版本、Android系统版本与Python版本
frida12.3.6 Android5-6
Python3.7 frida12.8.0
Android7-8 Python3.8
frida14+ Android9+ Python3.8
frida15+ Android12也可以用

8.frida安装指定版本
a)先安装指定版本frida
6)再安装指定版本frida-tools
c)frida-tools版本的查看
https://github.com/frida/frida/releases
https://github.com/frida/frida/releases/tag/12.3.6

9.webstorm与nodejs的安装

10.frida代码提示的配置(在jsproject目录下安装)
npm i @types/frida-gum
不区分大小写设置
在这里插入图片描述

11.frida-server的配置
frida-server的运行平台要选对frida-server的版本与frida的版本要匹配指定版本frida-server的获取
https://github.com/frida/frida/releases/tag/12.3.6
通过usb连接真机不需要转发端口,通过ip连接需要转发,连接模拟器也需要转发

adb forward tcp:27042 tcp:27042
启动服务端
在这里插入图片描述

启动
在这里插入图片描述
1.找到一些疑似关键函数,可以通过hook来确认app执行某个操作的时候,是否调用了它们
2.如果没有触发这些函数,考虑以下问题
a)app在执行这个操作的时候,真的没有调用这个函数,换一个其他的关键函数
b)代码写错了,导致hook函数没执行
c)一般可以通过主动调用上层函数,来触发这些hook函数
3.如果触发了这些函数,可以通过hook来打印执行过程中传入函数的参数和返回值
4.frida -U-F-l HookDemo.js-U 代表远程USB设备-F 代表附加到最前的这个app-1后面指明需要加载的JS脚本
5.写好的js脚本要注入手机端,并不是在Node.js中使用,所以只能用v8和fridaAPl支持的代

6.POST分析技巧
b)分析步骤
c)分析封包数据来源
服务器响应中返回
固定不变的或者可以直接写死的(同一家公司对app区分的产品id等appld)app中随机生成(nonce)或者加密的
代码比较容易出错的地方
a)提交的数据该编码的没有编码(有些二次编码)
b)提交的数据不该写死的写死了
替换数据的时候不够仔细
d)忽略了一些看似没用的关键请求
e)提交请求的步骤弄错了
f) 延迟
8.纠错方法
a)关键变量输出
断点调试b)
c)对自己的程序进程抓包,和app发出去的数据对比
9.更多HTTP数据提交的相关内容,就需要你们自己学习了,安卓协议逆向主要还是复现算法

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值