rvictl -s (手机UDID)另外可能需要用到的命令
停止
rvictl -x (手机UDID)查看
rvictl -l2.这里我没有用电脑共享网络,而是让电脑跟手机在同个可访问外网的局域网内(安卓手机开热点,mac和手机都连上了这个热点),然后用Wireshark找到rvi里与手机本地ip互访最频繁的目标ip及目标端口,这里其实已经看到在请求接口了,没错就是这个ip

3.设置Charles反向代理填上目标ip,两个端口要填上第2步中的目标端口

4.把目标app用AppsDump3脱壳,然后处理为可debug的包
eee@MacBook-Pro sh % ./enable_debug.sh /Users/eee/Downloads/xxx.ipaExecutable=/Users/eee/Downloads/extracted/Payload/Runner.app/Runnerwarning: Specifying ':' in the path is deprecated and will not work in a future release查找get-task-allow:添加get-task-allow为trueExecutable=/Users/eee/Downloads/extracted/Payload/Runner.app/Runnerextracted/Payload/Runner.app: no signature打包tip中...tipa: /Users/eee/Downloads/extracted/Runner.tipa操作完成
5.修改下大佬的js里的两个ip
6.打开Charles,把手机的代理设置为mac ip 端口8888,挂载js
frida -U -f com.hhhh.ffff -l flutter_connect_.js就能抓取了

然而这并没什么卵用,为啥要折腾这个呢,起因是最近一直想把一个flutter伪装影视app的广告给秒过掉(调用初始后广告sdk时直接不初始化,直接返回初始化成功)
之前是不让广告sdk初始化会导致一直白屏,然后让其他初始化后不让广告界面显示,就会导致启动app后会几秒白屏。所以就想研究原生与flutter之间的相互调用,最后定位到可能需要用frida trace来定位FlutterMethodChannel invokeMethod的调用源头。
但是呢要用这个frida就得把ipa弄成debug,就得把从市场的包给删除,然后处理成debug包再装上,删除原包后,处理了又装上后,居然忘记变身口令了,网上一顿找,各种试都不行,所以就怀疑可能接口判断了app还在应用市场不,想的是看能不能hook下接口的返回,让其他以为还在市场上,就能用口令变身了,等能抓包时,发现还真是有个接口报错了,但是看了下返回的报错也猜不出成功会返啥样的数据。
于是就换了一个口令依然有效的app来学下抓包,最后才有了这次记录,中间还是有很多坑的,一直在尝试共享网络都不行,然后又是Charles彻底重装,好在终于成功了。
可能是最近沉迷于在公司写垃圾代码,感觉说了一大堆语无伦次的东西,哎,同事们都在写app上架国外市场或者转型ai开发了,我居然还在这玩这
夜雨聆风