USB找不到设备 🔗
windows 环境 🔗
- 找不到设备:右键电脑属性->设备管理器->便携设备->属性->详细信息->属性(硬件id),把硬件id复制到C:\Users\xxxx.android\adb_usb.ini文件中,填入
0x12345
,12345替换成设备ID,然后重启adb服务
macOS环境 🔗
- 执行
system_profiler SPUSBDataType
里面找到Android的Vendor ID - 将vendor id的值写入 /User/你对应的用户文件夹/.android/adb_usb.ini文件。若该文件不存在,则新建一个。
- adb kill-server && adb start-server && adb devices
- 华为手机无法识别:https://www.jianshu.com/p/8c19fb78a680
- 首先关闭mac
sip
黑苹果在recovery模式下去关闭也可以,mac夜神abd找不到,找到app包下面的adb命令:/app包路径/adb connect 127.0.0.1:62001
连接以后,可以发现设备了
面具root隐藏 🔗
- 首先:移除系统的支付APP检查,例如miui的
手机管家->支付保护中心
关闭APP保护, - 方案一:面具设置,新版的magisk已增加了zygisk排除列表,我们可以通过这个排除列表去排除需要隐藏的应用,打开magisk,点右上角的设置图标,在设置里找到zygisk打开,然后打开遵循排除列表,在配置排除列表里把需要隐藏的应用打上钩。
- 方案二:(建议使用适用APP更广)如果有些APP还是无法隐藏,面具里面安装
Shamiko
插件,https://github.com/LSPosed/LSPosed.github.io/releases
,在使用Magisk官方版24+开启Zygisk和遵守排除列表隐藏root之后,排除列表内被隐藏root了的app就没法在LSP模块内勾选了,会显示在排除列表内,然后呈灰色状态无法勾选。使用Shamiko的时候必须关闭遵守排除列表这个开关。
,后续在配置排除列表里把需要隐藏的应用打上钩。
面具root后过环境检测 🔗
- 关闭magisk的Zygisk开关,刷入
Zygisk-Next
模块,代替面具的Zygisk模块,重启手机 - 刷入
Shamiko
模块,重启手机 - 刷入
LSPosed
框架模块,重启手机 - 刷入
PlayIntegrityFix
模块,注意这个模块需要开启翻墙,隐藏bootloader环境检测,重启手机 - 然后在
magisk
排除列表去排除需要隐藏的应用,如momo检测
就可以过了 - 【注意:如果TEE受损】:刷入
Tricky-Store
和TrickyAddonModule
增强模块,这个模块可以解决某些设备上密钥证明不完整或损坏的问题
抓包 🔗
简单APP网页调试 🔗
- chrome浏览器输入:
chrome://inspect/#devices
- 安卓开启USB调试
证书安装 🔗
- 说明:安卓7.0以上,需要解锁BL和root权限
- Charles配置 help->SSL Proxying->install charels root cer 安装电脑证书,mac证书查看详情 信任证书
- 保存证书配置 help->SSL Proxying->save charels root cer 安装电脑证书,mac证书查看详情 信任证书
- 转换证书:openssl x509 -inform DER -in charles-ssl-proxying-certificate.cer -out imac.crt
- 多格式转换命令:openssl x509 -inform PEM -outform DER -in {yourcert.pem} -out {yourcert.crt}
- charles无法下载证书:证书保存到本地,adb push 文件路径 /sdcard/Download; 设置—更多设置—系统安全—加密与凭据—从存储设备安装证书,先清除所有凭据,后选择SD卡安装
- 安装证书:
- 进入以下目录:
/data/misc/user/0/cacerts-added
可以看到刚才安装的证书.0
结尾的 - 将system分区挂在为可读写
mount -o rw,remount /system
, 如果有的版本报错可以替换mount -o rw,remount /
- cp /data/misc/user/0/cacerts-added/xx.0 /system/etc/security/cacerts/ ,并将权限改成644,(chmod -R 644 /system/etc/security/cacerts/xx.0),重启设备
- 进入以下目录:
- 完成以上配置,大部分APP可以抓包了,如果出现反抓包,看下面解决办法。
(反抓包解决)iptables + redsocks2 + Charles 透明代理抓包 🔗
先打开你的APP,然后ps -ef | grep com.xxx.xxxxx
命令找到有你的应用包名那一行,第一列就是uid
通常你看到的是u0_a428这样的,那么后面的命令,uid相关的可以写成u0_a428
,也可以写成10428
- 透明代理下载,
https://fh0.github.io/assets/android-redsocks2.tgz
, 把redsocks.conf和redsocks2_arm64推送到手机/data/local/tmp
- redsocks.conf配置如下 ,其中
bind
就是透明代理地址,relay
就是Charles的代理地址 ,注意配置文件的每一对{}
后面都应该有一个空行,否则会提示unclosed section
base {
log_debug = off;
log_info = on;
log = stderr;
daemon = off;
redirector = iptables;
}
redsocks {
bind = "127.0.0.1:16677"; #本地透明代理地址
relay = "192.168.3.141:7777"; # Charles Socks-Proxy代理地址
type = socks5;
autoproxy = 0;
timeout = 13;
}
- 推送
adb push redsocks2_arm64 /data/local/tmp/
adb push redsocks.conf /data/local/tmp/
adb shell
su
chmod +x /data/local/tmp/redsocks2_arm64
- iptables配置:
- 保存开机后的iptables方法:
iptables-save > /data/local/tmp/iptables.rules
; - 恢复方法:
重启手机
, - 配置转发
- (全转发)配置全转发
iptables -t nat -A OUTPUT -p tcp ! -d 127.0.0.1 -m owner --uid-owner 10172 --dport 0:65535 -j DNAT --to-destination 127.0.0.1:16677
, 作用是:将uid为10428所请求的在0-65535端口上的tcp流量,转发到127.0.0.1:16677,但是排除了来自127.0.0.1的请求 - (按端口转发)配置端口抓包,如80,443
iptables -t nat -A OUTPUT -p tcp ! -d 127.0.0.1 -m owner --uid-owner 10172 -m multiport --dports 80,443 -j DNAT --to-destination 127.0.0.1:16677
- 删除规则
iptables -t nat -D OUTPUT -p tcp ! -d 127.0.0.1 -m owner --uid-owner 10172 --dport 0:65535 -j DNAT --to-destination 127.0.0.1:16677
- (全转发)配置全转发
- 保存开机后的iptables方法:
- 启动
cd /data/local/tmp/ && ./redsocks2_arm64
- 查看代理工具的socks代理流量
常用工具下载地址 🔗
- 无需root沙箱抓包工具:https://github.com/android-hacker/VirtualXposed
- JustTrustMe:https://github.com/Fuzion24/JustTrustMe
- 安装搞基助手apk:https://github.com/liuran001/GJZS
- SSLUnpinning:https://github.com/ac-pm/SSLUnpinning_Xposed\
- frida: https://github.com/frida/frida/releases
- 反编译工具:https://github.com/iBotPeaches/Apktool/releases
mac安装集合工具 🔗
- adb
brew cask install android-platform-tools
- java-sdk安装
- 安卓sdk-tools: https://www.androiddevtools.cn/ 下载build-tools
- jadx-gui:
brew install jadx 启动方法:jadx-gui
- scrcpy: 远程投屏安卓手机 https://github.com/Genymobile/scrcpy
特别:mac在PD虚拟机安装win10中的模拟器 🔗
win管理员运行 win10 转发端口
netsh interface portproxy add v4tov4 5555 127.0.0.1 5555 #模拟器端口转发到外网
netsh interface portproxy del v4tov4 listenport=5555 #删除端口转发
#firda抓包
adb.exe forward tcp:27042 tcp:27042
adb.exe forward tcp:27043 tcp:27043
netsh interface portproxy add v4tov4 27042 127.0.0.1 27042 #firda抓包转发外网
netsh interface portproxy add v4tov4 27043 127.0.0.1 27043 #firda抓包转发外网
雷电模拟器
emulator-5554 device 实际端口:5555
emulator-5556 device 实际端口:5557 ,雷电是+2的端口递增
win查看端口转发
netsh interface portproxy show all
mac 远程连接pd中win10的模拟器
adb connect 192.168.0.3:62001
adb导出命令 🔗
- 打印出来所有安装到手机上的APP包名 :
adb pm list package
- 找出安装后的包名应用的apk所在位置 :
adb pm path com.ccb.longjiLife
- 下载:
adb pull /data/app/com.ccb.longjiLife-MXDTkEBGW2u_cAwg20D4JQ==/base.apk /Users/abner/Downloads/apk
刷入twrp操作 🔗
红米note9 5G版本操作 🔗
- 手机进入fastboot
adb reboot bootloader
- 刷入 TWRP
fastboot flash recovery /Users/abner/Downloads/RedmiNote95g-twrp.img
- 为防止重启手机 MIUI 自动替换回官方 Recovery,按住手机
音量上键
,命令行同时执行
fastboot reboot recovery
- 在进入 TWRP 后,挂载“系统分区为只读”。这里滑动按钮以允许修改 ,不然不能禁止 MIUI 替换回官方 Recovery。
- 下载Magisk zip包,下载apk文件修改为zip后缀,并推送到手机,必须在
external_sd
路径下不可以修改,因为sdcard目录加密是乱码
adb push Magisk-v28.1.zip /external_sd/
- 乱码解决,双清data的cache,然后安装Magisk-v28.1.zip。由于 MIUI 在启动时会检查 System 分区完整性,上一步 TWRP 修改了 System 分区,需要通过刷入 Magisk 移除启动验证。