国外谷歌系列手机都可以,找原生镜像就行:https://developers.google.cn/android/images
国内能搞机且比较稳定的目前就只有小米
安卓10以下,fastboot
安卓10以上,记得要用新版的fastboot
twrp要选手机型号对应的版本
小米手机刷机,保证已解bl锁(刚绑定账户需要等待168小时解锁,一个账户半年内只能解几个设备)
可以直接这么搜,找对应的twrp
magisk
supersu
小米建议不要刷开发板系统用里面的root,并不完全,直接用稳定版,刷magisk
magisk:
riru
lsp
move证书zip
justTrustMe .4版/justTrustmePlus
zygisk:
edxp/lsp
shamiko
move_Certificates.zip(安卓10以上,需要借助这个模块才能把证书移动系统目录)
justTrustMe .4版/justTrustmePlus
postern、小黄鸟
wifi adb
mt管理器/np管理器
开启adb调试
派大星(xposed)
x86架构,功能受限,只有java层,指纹很多,很容易被检测
twrp刷入
patch方式刷入magisk(安卓10以上的手机,如果twrp刷入有问题),参考:https://magiskcn.com/
直接在刷机的时候刷入自编译的带有root权限的rom
frida
启动模式,spawn,attach
app有壳的时候,可以延时启动,setTimeout(main, 1000)
frida -U 选用usb连接的设备
frida -H 选用远程设备
遇到双进程保护的,用-p 进程ID
xposed
安装zip包
ratel(免root,功能非常强大,但逐渐被大厂风控针对,且目前作者已不再更新)
edxposed(xposed之后的替代版)
lsposed(xposed之后的替代版,跟edxp各有千秋)
xpatch:https://github.com/WindySha/Xpatch
太极-阳(需要root)
太极-阴(免root)
两仪(免root,给我的感觉类似virtualxposed)
派大星(模拟器里的xposed,可以不用科学方法激活框架)
objection
objection -g com.package.name explore (usb模式)
objection -N -h xxxx -p xxxx -g com.package.name explore(网络模式)
缺点:无法切换classloader,部分类无法hook跟踪
TweakMe(主要是过重打包的签名检测)
jeb、jadx、GDA、ida、Ghidra、010Editor
mt管理器/np管理器
免root用xposed
ratel
两仪
太极-阴
virtualxposed/virtualapp
vmos
免root用frida
frida-gadget
xpatch+frida插件:https://github.com/WindySha/FridaXposedModule
frida绕过脚本
magisk隐藏
zygisk排除目标app+shamiko
antifrida脚本
魔改frida反对抗
hluda
hluda续写版:https://github.com/hzzheyang/strongR-frida-android
花总的
霜哥的
frida-trace跟踪,对应修改特征
自定义rom
可以参考花总的文章:https://mp.weixin.qq.com/s/Md6svG0qH2SstR94BkSi-A
魔改xposed
自定义rom
1.fridaManger
2.frida-gadget,重打包app,把frida_gadget.so塞到app里
3.frida-inject
https://github.com/iGio90/FridaAndroidInjector 现成的方案
https://github.com/langgithub/FridaInject 另一个现成的方案
1.frida原生不太适合生产环境使用,java层、so层都可以hook
2.xposed原生支持持久化,默认只能hook java层,可借助dobby库实现so层hook
3.frida支持动态调试,xposed更改代码后,需要重启手机或者重启app
4.最近几年的frida生态比xposed好很多,不过xposed并不是毫无用武之地
5.编写hook,代码,个人感觉xposed系列写的代码要比frida多一点,frida调试易上手
6.在hook的时候,xposed有几个hook生命周期的api,frida没有
7.在hook的时候,frida不用考虑是否是私有公有属性,xposed需要考虑
xcube
xpatch:https://github.com/WindySha/Xpatch
1.frida-dexdump(一代、二代壳可脱,部分三代壳可用):
https://github.com/hluwa/frida-dexdump
遇到脱壳失败的时候,可以frida spwan模式 空起,然后frida-dexdump attch模式脱壳
2.frida_dump
https://github.com/lasting-yang/frida_dump
yang神和r0ysue的脚本
dump dex
dump so
3.frida的unpack脚本:https://github.com/dstmath/frida-unpack
4.珍惜大佬的fundex/funelf(只支持edxp)
5.youpk,如果有root检测,则可能无法用
6.ratel
7.寒冰大佬的fart,相对完美的方案
8.fartext、mikro:fart基础之上的改版
1.系统代理检测:charles+VPN(postern、drony、小黄鸟)
2.网卡、vpn检测:过网卡、vpn检测脚本
3.sslpinning检测:
objection 关闭ssl
frida unsslpinning脚本
4.tcp/udp包:mitmdump、小黄鸟
5.用户证书:
xposed:justTrustMe插件
frida:过证书检测脚本
6.证书绑定,双向证书
r0capture
7.针对spdy/quic:frida降级
8.flutter sslpinning: frida过检测脚本
9.自实现http请求库:
针对跟踪,hook入参和返回值
10.protobuf/gRPC:https://mp.weixin.qq.com/s/8yOabTkMid9iKcbMJjYVHA
10.tls检测:
具体情况具体处理
11.抓包框架:lamba:https://github.com/rev1si0n/lamda
12.eCapture:eBPF下的抓包工具,无需CA证书即可抓HTTPS明文
1.定位代码
jeb、jadx查看代码
objection、r0tracer跟踪定位类,类方法
如果跟踪不到(搜索不到)方法:
1).用mt管理器(np管理器),查看当前的activity记录(这个也可以用来获取升级弹窗的类,进而去弹窗),跟踪调用逻辑
2).用frida的点击hook脚本,定位点击按钮所在位置触发的逻辑
3).用葫芦娃大佬的ZenTracer:https://github.com/hluwa/ZenTracer
2.frida/xposed调试
3.还原/调用
协议、算法还原
针对比较难还原的so层算法:
1.unidbg/unicorn:https://github.com/zhkl0228/unidbg
2.这个算法在java层是否能主动调用
1).能:rpc:
sekiro+ratel
frida rpc + asyncandroid.dex
xposed 插件
2).不能:autojs/appium/xposedAppium/ratelSuperAppium自动化操作+hook
frida+xposed+反调试对抗+魔改rom
沙箱自吐
标准的:AES/DES/MD4/MD5/SHA/RSA/BASE64
魔改的加密,需要针对分析,主动调用,给一个入参,看返回值,跟标准的对比差距