移动安全(2) - 配置逆向环境r0env,从问题中配置与真机调试
配置r0env
相关的r0env的配置可以看b站的视频,肉师傅自己录的(他这迷死人的声线):点我,图文性质的配置:点我
r0env下载地址在他的公众号里
你r0env配置好了,那么逆向环境也基本配置好了。
mac下真机调试
由于之前都是用的windows平台+linux做逆向的:
- windows
- vmware workstation
- kali linux(肉丝大佬封装好的r0env)
- android studio
- 安卓手机 google nexus n5
windows平台下就不介绍了,因为太简单了,usb插上直接就有了,唯一的就是vmware workstation软件有的配置桥接模式时没网的时候,需要手动指定一个ip
由于我这就两台电脑,一台写代码用的mac,一台2014年买的联想笔记本,由于14年的,年代久远,所以,一开始就选用了mac来做逆向
然后mac端也有vmware fusion的虚拟机软件,所以,直接就可以:
- mac
- vmware fusion
- kali linux(肉丝大佬封装好的r0env)
- android studio
- 安卓手机 google nexus n5
接下来目的就是想通过usb接口,与手机互联,不想连手机?那还玩啥逆向?你在开什么玩笑?
wif adb真机调试
当然可以用wifi adb软件建立连接的,这个方法是最省事的
android studio直接就有了
但是fusion里是没有的:
而是直接在fusion里用地址连接:
首先确定你已经改为了桥接模式,并与手机在用一个局域网
直接连接
scrcpy测试:
虚拟机里的android studio,直接就有了
usb真机调试
有很多情况,可能wifi adb的模式不太好操作,所以可能需要usb接口形式的连接
当我手机插上mac电脑的时候,由于mac只有雷雳接口,用了绿联的扩展坞作转接usb,插上电脑就如下:
反正上面这个图片,我跟着操作了半天,没效果,应该是识别成了外界键盘去了,所以不用管
问题
但是,问题来了,我mac是可以识别的手机的,adb里有
而且还能直接进shell,那说明没问题的
但是,在vmware fusion里的usb设备里就是没有:
很奇怪
网上查阅了一下,看到这篇文章:https://kb.vmware.com/s/article/1021853
然后下面这句话,意思就是说vmware是不支持FireWire和Thunderbolt接口的
其中Thunderbolt就是前面说的雷雳接口
我当时就信了,看到发布日期2018年,我觉得应该过了几年了,应该有解决吧,所以不管了,我开始拿起我的联想笔记本,准备一通操作,由于年代久远,响应速度着实慢,我操作了2个多小时,把r0env配置好,然后进入的时候,提示inter vt的模式未开启,又去bios里开启,这些都是大学的时候封装windows系统学到的基本功,操作了半天,反正插上usb后,真机的usb驱动安装失败,我猜应该是国外手机的关系,反正一直装不上,真机都连不上,虚拟机也更连不上了,反正就是浪费了两个多小时(我拿这些时间来学习,都能学到好多知识了,唉)
结果又转回mac,在某技术群里问了下有么有用mac来操作的,他们说可以的,没什么问题,顿时就觉得果然不能信上面给的那个帖子啊,说不支持雷雳接口的
既然群友说可以,那就是可以
排查问题并解决
开始我换了个fusion的最新版,12.2.1,然后我mac是12.0.1系统,问了群友,他们也有跟我用一样系统的
那说明就是更可以了
接着就是排查问题
扩展坞-mac雷雳接口-fusion-r0env
首先能确定扩展坞-mac雷雳接口是没问题的,因为我都能进adb shell,但是安卓手机插上,mac里的文件管理访达里确实是没有的,不像windows会有个媒体标之类的,为此我还查了下,mac连接安卓手机,然后找到下面的帖子:
https://www.zhihu.com/question/19766565
还装了个HandShaker,锤子科技出的,发现没有什么用,还是用的局域网连接的,我需要的是用usb连接
为了确定mac与手机的连接,我还特地在mac上装了android studio看能否读取手机
发现是可以的,然后随便建了个安卓项目,调试,这个app能真的装在手机上的
那就还是fusion这个软件的问题,然后看到这个问题,稍微的有点接近:点我
但是看到评论区,还是说没有解决,不过至少给了个思路,应该是fusion没有获取到usb权限,所以就读取不了,
先试下,通用部分是这样的,我都允许了任何来源了
允许任何来源:
终端输入:sudo spctl --master-disable
关闭sip:(这里不用管一样可以)
https://www.macapp.so/tips/mac-disable-sip/
防火墙也是关的:
隐私里,我把能usb相关的我都选了:
把fusion加上:
退出fusion,打开,还是如此,usb里还是没有
然后又看到个贴,说要运行下fusion里的脚本,帖子地址找不到了,查了太多东西,一时想不起在哪里看到的了,如下操作:
再打开如下路径:
把跟usb相关的都执行一遍:
然后再回到安全与隐私里,就多个这个,勾上
此时打开还是不行的,找到那个虚拟机系统的vmx文件,找到你存放虚拟机的地方,如下操作:
找到这个vmx,用文本编辑器打开:
加上这一句:usb.generic.allowHID = "TRUE",保存退出,此时这个操作一定要在fusion关闭的情况下进行
此时你奇迹的发现,fusion终于可以读取usb了(这个图片画质不一样是因为截屏键跟fusion的按键冲突,截取不到,我用手机拍的,小问题,不纠结)
当点击连接时,报错如下:
太骚了
查看了半天,哪里看到的我也忘了,还要加如下的:usb.generic.allowLastHID = "TRUE",保存退出
重新打开fusion,点连接时,来了,等啥呢,直接点【好】
再看adb:
终于他妈的连上了,然后用scrcpy看下,完美
总结
1.应用程序,fusion,显示包内容,contents,LIbary,Services, 相关的usb服务跑一遍
2.安全性和隐私里,通用,允许,或者任何来源
3.安全性和隐私里,隐私,安全访问磁盘和文件夹,辅助工具,添加fusion
4.找到虚拟机vmx文件,在最后添加两个TRUE,并且这个操作要在fusion未启动情况下
- usb.generic.allowHID = "TRUE"
- usb.generic.allowLastHID = "TRUE"
over
总算搞定了,花了好几个小时解决这个问题。