文章目录
App 逆向环境准备
逆向基本流程
# 1 获取目标app(官网,豌豆荚),尽量不要去华为应用市场,小米应用市场下载
-作为安卓开发--》开发出的app--》上架到不同的应用市场【小米应用市场,华为,应用宝,豌豆夹】
-安卓应用--》放到谷歌应用市场内--》谷歌国内访问不了
-国内产生了很多应用市场--》app的安全性参差不齐
-小米,华为应用市场--》专门有工作人员对app的安全性进行审核--》审核过后才能上线
-他们逆的时候,可能有难度
-作为ios开发--》开发出的app--》只需要上架到ios应用市场
# 2 把app安装到手机上--》打开app操作---》使用抓包工具【charles,fiddler】--》进行抓包
-charles:mac,win
-fiddler:win
# 3 使用反编译工具【JADX,GDA,JD-GUI】,把apk反编译成java代码,分析逻辑,定位对代码
# 4 使用动态分析工具【frida,xposed】,通过hook,动态跟踪,确定代码位置,理解代码逻辑
# 5 使用python还原代码,模拟发送请求,完成我们的操作
ADB配置和使用
1 ADB是什么
「adb」即 Android Debug Bridge ,亦称安卓调试桥,是谷歌为安卓开发者提供的开发工具之一,可以让你的电脑以指令窗口的方式控制手机。
可以在安卓开发者网页中的 SDK 平台工具页面下直接下载对应系统【mac,win】的 adb 配置文件,大小只有几十MB
# 1 下载地址,最新版:
https://developer.android.com/studio/releases/platform-tools?hl=zh-cn
最新版本:35.0.2(2024 年 7 月)--》目前先不用
# 2 各个平台的历史版本:
https://androidmtk.com/download-android-sdk-platform-tools
# 3 安装很简单:只需要解压即可(配置环境变量)
内含:adb 和 fastboot工具
2 ADB版本选择
# 1 ADB 版本选择根据你选择的手机出来的年代选择
# 2 我这里使用:30.0.5
-刷机:pixel 2xl--》17年出的手机--》adb版本还比较低
-我使用高版本adb刷机,发现刷机失败
3 ADB安装和配置
ADB 安装很简单,就是把压缩包解压后,配置环境变量即可
1 win平台安装和配置
# 1 把压缩包:platform-tools_r30.0.5-windows.zip 解压
- D:\soft\platform-tools # 路径中不要带中文,不要带空格
# 2 把当前路径,加入到环境变量
-我的电脑--右键属性---》高级系统设置---》环境变量
# 3 打开新的cmd(以管理员身份运行)
# adb version
Android Debug Bridge version 1.0.41
Version 34.0.3-10161052
Installed as D:\sdk\platform-tools\adb.exe
Running on Windows 10.0.22621
2 mac/linux 安装和配置
# 1 解压:platform-tools_r30.0.5-mac.zip ,解压到某个路径
/User/你的名字/soft/platform-tools/
# 2 把这个路径加入环境变量(mac加环境变量有些复杂)
-打开Terminal
-敲cd 回车,进入到你家路径 # pwd 查看当前所在目录--》 打出 /User/你的名字
-敲 vi .zprofile # 进入vi编辑模式
# vi ~/.zshrc
-敲 a 进入追加模式 # 能在.zprofile 追加内容了
-export PATH=${PATH}:/Users/你的名字/soft/platform-tools # 粘贴到最后
-敲 esc 敲 :wq 退出
# 3 让刚刚的配置生效
source .zprofile
# 4 打开 Terminal,测试
adb version # 顺利打印出adb的版本
ADB操作手机
1 开启usb调试
# 1 点击Settings(设置) -> About phone(关于手机) ->版本号(最底部)--->点击7次(开启usb调试)
# 2 点击Settings(设置) -> 系统---> 高级--->开发者选项--》进入
-开启usb调试
# 3 使用数据线,链接电脑(垃圾数据线可能不支持链接)
-链接数据线后,会弹出个允许调试的框,点击确认即可
2 投屏到电脑上
一个软件(scrcpy),能把安卓手机的屏幕,投屏到电脑上的一个软件
具体如何装,大家自己搜索
# https://zhuanlan.zhihu.com/p/653295589
# 任意路径下敲
scrcpy---》都能执行--》加环境变量--》usb调试开启
# scrcpy 本质就是用adb,操作和投屏手机
# 坑:
-路径:adb
-scrcpy:adb,如果把这个放在了上面,以后敲adb,就会优先使用这个adb,版本就不对应
# 把scrcpy的目录放到adb的下面就可以了
mac 下载可以在安装完adb 后,直接通过brew install scrcpy 下载
3 ADB 常用命令
# 1 adb 装好了,开启usb调试,链接了数据线
-在电脑上敲命令,操作手机了
-借助于adb操作
# 2 开启和关闭adb服务(了解即可)
adb start-server # 开启adb
adb kill-server # 关闭adb
# 3 查看已链接设备信息(要会)
adb devices # 设备id号
# 4 上传下载文件(电脑把文件传到手机,手机上文件传到电脑)
adb -s 设备id号 push C:\demo.txt /sdcard # 如果只有一个设备,就不用写 -s 设备id
adb push C:\Users\Administrator\Desktop\a.zip /sdcard/Download
# 手机 目录结构
/sdcard # 内存卡
/sdcard/download # 正常下载的文件一般会放在这里
adb -s 设备id号 pull /sdcard/Download/a.zip D:\
adb pull /sdcard/Download/a.zip D://a.zip
adb pull /sdcard/Download/a.zip ./ # 当前路径
# 5 安装和卸载app
adb install C:\2345Downloads\xianyu.apk
adb uninstall 包名称
adb shell pm list packages # 查看包列表
adb shell pm list packages -e 关键字 # 查看包列表(搜索)
# 6 查看手机处理器(32/64位)
adb shell -s 设备id号 getprop ro.product.cpu.abi
adb shell getprop ro.product.cpu.abi
'''
armeabi-v7a(32位ARM设备)
arm64-v8a (64位ARM设备)
'''
# 7 进入到手机内部,执行命令(安卓也是类unix--》linux命令一样)
adb shell # 进入到手机中
ls # 查看当前目录下有那些文件和文件夹
pwd # 查看当前所在路径
cd # 进入到某个路径下
rm 文件名 # 删除文件
rm -rf /* # 不要在命令里执行
# 现在你还没root手机,不是root用户,有的文件删不了
# 8 其他
- 查看手机设备:adb devices
- 查看设备型号:adb shell getprop ro.product.model
- 查看电池信息:adb shell dumpsys battery
- 查看设备ID:adb shell settings get secure android_id
- 查看设备IMEI:adb shell dumpsys iphonesubinfo
- 查看Android版本:adb shell getprop ro.build.version.release
- 查看手机网络信息:adb shell ifconfig
- 查看设备日志:adb logcat
- 重启手机设备:adb reboot
- 安装一个apk:adb install /path/demo.apk
- 卸载一个apk:adb uninstall <package>
- 查看系统运行进程:adb shell ps
- 查看系统磁盘情况:adb shell ls /path/
- 手机设备截屏:adb shell screencap -p /sdcard/aa.png
- 手机文件下载到电脑:adb pull /sdcard/aa.png ./
- 电脑文件上传到手机:adb push aa.png /data/local/
- 手机设备录像:adb shell screenrecord /sdcard/ab.mp4
- 手机屏幕分辨率:adb shell wm size
- 手机屏幕密度:adb shell wm density
- 手机屏幕点击:adb shell input tap xvalue yvalue
- 手机屏幕滑动:adb shell input swipe 1000 1500 200 200
- 手机屏幕带时间滑动:adb shell input swipe 1000 1500 0 0 1000
- 手机文本输入:adb shell input text xxxxx
- 手机键盘事件:adb shell input keyevent xx
刷机和root
root
刷机根据不同的厂商的手机,有不同的方案,这里推荐使用的手机是google 的 Pixel 系列手机(google出品的手机,没那么多麻烦事)。或者小米的手机,小米手机root 起来会麻烦点,可以找人帮刷,就不一一介绍了。
刷机
刷机去厂商手机官网下载刷机包
Pixel https://developers.google.cn/android/images?hl=zh-cn
小米 https://xiaomirom.com/
# 0 解压刷机包
# 刷机包里面会有 flash-all.bat 和 flash-all.sh 两个脚本,分别对应win 和 mac/linux 平台,选择对应的使用即可
# 1 执行adb命令,重启手机,进入到fastboot模式
adb reboot bootloader
# 2 敲命令看看手机是否顺利连接到电脑上
# 没有输出的原因是 安卓驱动没装好
# 设备管理器中
fastboot devices
# 801KPUU1367574 fastboot
# 3 开始刷机(注意路径,管理员身份运行,线不能掉)之前手机上所有东西都没了
flash-all.bat # 开始刷机了,等待完成
# 4 刷机结束
fastboot reboot # 或者按开机键
# 5 开机,配置网络,语言--》进入到手机界面
# 6 打开usb调试
补充: 小米刷机完,需要打开root 权限管理,
- 可以在 设置 -> 应用设置 -> 授权管理 -> 开启ROOT 权限 下载对应的更新包开启(这种权限被限制了部分)
- 参考 https://blog.csdn.net/u014265135/article/details/132433826,通过 magisk 来解root