# 在 M 系列晶片 Macbook 上執行 x86 檔案 ![image](https://hackmd.io/_uploads/BJX6_1Zebl.png) 這個常見的 Error 是因為 x86, ARM 的指令集不一樣導致的 我們來看看怎麼解決 ## 前言:注意事項 目前有很多方法可以解決 像是用 qemu, rosetta 去跑, 但在未來打 CTF 的 pwn 題型時, 以上方法 gdb 在執行都會遇到一些問題 所以一率建議以 **UTM 的 enumeration** 進行 ## Step 1:下載 UTM 下載網址:https://mac.getutm.app/ ## Step 2:下載 ParrotOS 這個會比 Kali 輕一些,跑起來會比較快 下載網址:https://parrotsec.org/download/ ![image](https://hackmd.io/_uploads/BJrdUgZxZx.png) ![image](https://hackmd.io/_uploads/BJQqLgZx-l.png) ![image](https://hackmd.io/_uploads/rJjJG-Zebx.png) ![image](https://hackmd.io/_uploads/Sy9gMWWxbx.png) 點 Download ## Step 3:匯入到 UTM ![image](https://hackmd.io/_uploads/rkTW7Wbg-e.png) 點 Create a New Virtual Machine ![image](https://hackmd.io/_uploads/SJMEdW-eWx.png) 點 Emulate ![image](https://hackmd.io/_uploads/HyAR5WZlbg.png) 點 Linux ![image](https://hackmd.io/_uploads/SkUWoZ-xbl.png) 點 Browse 把下載的 parrotOS iso 檔放進來 ![image](https://hackmd.io/_uploads/SkQ4iWWxZg.png) 直接 continue 即可 ![image](https://hackmd.io/_uploads/ByHroWbebl.png) 一樣可以直接 continue ![image](https://hackmd.io/_uploads/rJkwib-gZl.png) continue ![image](https://hackmd.io/_uploads/rkO_ibZlZe.png) 這邊可以調名字設定 調完就可以按 save ![image](https://hackmd.io/_uploads/B1BRi-Zgbx.png) 然後按播放鍵開始跑 ## Step 4:在 UTM 上執行 ![image](https://hackmd.io/_uploads/BkyVhZ-gWg.png) 看到這個畫面按 enter 就會開啟 Live 模式 p.s. 開啟時間很久是正常的,大約會是 20-30 分鐘 ![Screenshot 2025-11-12 at 11.53.54 AM](https://hackmd.io/_uploads/HJ5ZrtbgWx.png) 開始下載 ![image](https://hackmd.io/_uploads/Byl_bKWl-g.png) 接下來照以下設定: * Welcome: 直接 Next 即可 * Location: Asia - Taipei * Keyboard: English(US) - Default * Partitions: Erase disk * Users: 可自行設定名稱、密碼 * Summary: 確認無誤按下 Install 等待執行條跑完就安裝好了 ![image](https://hackmd.io/_uploads/Byjwfc-eZl.png) 關機鈕在這邊 ## Step 5:關機後記得 iso 退出 ![image](https://hackmd.io/_uploads/S1YIJzWgbl.png) 關機後記得要在這邊把 iso 退出 不然下次按開機原本的東西會全部消失,要特別注意 ![Screenshot 2025-11-12 at 3.24.08 AM](https://hackmd.io/_uploads/H1kpabZlZx.png) 開機後即可在這個地方打開 terminal 執行指令 ## 恭喜完成 這樣 UTM 的設定就大功告成了, x86 的執行檔就可以在這邊執行了, 但因為畢竟這是模擬出來的, 效能上會非常慢(跑起來會卡卡的), 所以建議**只有要執行 x86 檔案**的時候再用這邊。 ## 補充 如果希望在終端執行更順的話,可以透過 ssh 來達成, 實際達成方式是在 UTM 上把網路模式設成 NAT 就可以做 Port Forwarding,讓本機連過去 在執行上因為是單純的 CLI 就會順非常多