[TOC]
环境
- Mac
- Android SDK:
1 | /Users/zhoujie/Library/Android/sdk |
- JDK
1 | /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home |
- 夜神模拟器
- 真机 - HONOR20
1 | Android 版本: 10 |
adb
- 理解
adb start-server
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15//没有相关进程
➜ ~ ps aux | grep adb
//没有相关端口监听
➜ netstat -nat | grep 5037
➜ ~ adb start-server
* daemon not running; starting now at tcp:5037
* daemon started successfully
➜ ~ ps aux | grep adb
zhoujie 76412 0.0 0.0 34195628 5592 ?? Ss 10:27PM 0:00.23 adb -L tcp:5037 fork-server server --reply-fd 4
➜ ~ netstat -nat | grep 5037
tcp4 0 0 127.0.0.1.5037 *.* LISTEN
1 | // 电脑上有adb进程 |
- 电脑上adb进程相关
1 | // 查看adb进程 |
- 连接模拟器或真机
1
2
3
4连接夜神模拟器:adb connect 127.0.0.1:62001
连接MUMU模拟器:adb connect 127.0.0.1:22471[Mac]
连接MUMU模拟器:adb connect 127.0.0.1:7555[windows]
阅读代码
- 界面
1 | // 普通真机也有效 |
- 搜索词 - 网络
1 | implements Interceptor |
- 搜索词 - 加密
1 | Cipher,SecretKeySpec,IvParameterSpec |
- 退出
1 | android.os.Process.killProcess(android.os.Process.myPid()) |
查看日志
真机用户手机也可以查看日志
1 | // 1. 获取到进程ID |
任务:查壳、脱壳
- 查壳工具:MT管理器、开发助手
- 脱壳工具:FRIDA-DEXDump、BlackDex
1 | Android 5.0开始默认是ART模式 |
任务:可调试
- 工具:mprop
方法一:
1 | 手机上执行: |
方法二:
1 | // AndroidManifest.xml |
1 | am start -D -n com.outdoor.debugtest/.MainActivity |
任务:webview可调试
1 | var WebView = Java.use("android.webkit.WebView") |
任务:签名
- 下载 抖音极速版
1 | 从 小米应用商店 下载 抖音极速版 |
- 在模拟器上安装 原版抖音极速版 并运行,确保能正常运行
- 删除原签名,重新打包
1 | mkdir com.ss.self |
- 签名
1 | // 进入到 apksigner 所在目录 |
- 在模拟器上安装 重新签名的Apk 并运行,确保能正常运行
1 | adb connect 127.0.0.1:62001 |
- 一步到位
1 | ./apksigner sign --ks ~/.keystore ~/Downloads/com.ss.android.ugc.aweme.lite.apk |
任务:信任用户证书
- 在清单文件
AndroidManifest.xml
中开启网络安全配置,代码如下:
1 | <?xml version="1.0" encoding="utf-8"?> |
- 新建文件
res/xml/network_security_config.xml
来进行网络安全的配置,通过trust-anchors来设置信任的证书,代码如下:
1 | <?xml version="1.0" encoding="utf-8"?> |
任务:修改代码
1 | // 1. 反编译出源代码 |
任务:注入frida-gadget.so
- 工具:objection,LIEF
1 | // |
- 技巧:获取
-a
的正确值
1 | adb shell getprop ro.product.cpu.abi |
- 技巧:获取
-a
的所有可取值
1 | // 输入一个错误的值 |
- 细节:objection把
libfrida-gadget.so
下载在:
1 | ~/.objection/android/arm64/libfrida-gadget.so |
- 参考
Gadget
https://frida.re/docs/gadget/
09 - How to use frida on a non-rooted device
https://lief.quarkslab.com/doc/latest/tutorials/09_frida_lief.html
任务:so相关
模拟器危险
- 彩蛋视频
- 快看点
- 多看点
- 红云视频极速版
- 妙看赚钱-com.taige.mygold-libsecuritydevice.so
加固的App
- 影蛙视频 - 模拟器奔溃
- https://app.mi.com/details?id=com.qiansheng.yingwa&ref=search
- 映客直播极速版 - com.ingkee.lite - 爱加密
- 多看点_3.3.0 - com.duoyou.duokandian - 模拟器检测
- https://app.mi.com/details?id=com.duoyou.duokandian&ref=search
- 赚钱小视频
- https://app.mi.com/details?id=com.sljh.zqxsp&ref=search
问题:Apktool回编译失败
- /res/layout/activity_main.xml:19: error: attribute android:abc not found
1 | W: /Users/zhoujie/Downloads/bxd-app-release/res/layout/activity_main.xml:19: error: attribute android:abc not found. |
- 原因:xml中故意加入无效的attribute
- 解决:删除xml中无效的attribute,再回编译