配置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
總算搞定了,花了好幾個小時解決這個問題。