Apple Silicon配置二进制环境(一)
- Author:ZERO-A-ONE
- Date:2022-07-30
本系列旨在記錄我本人在使用基于M1 Pro的Apple Silicon芯片MacBook Pro筆記本搭建適用于二進(jìn)制研究的環(huán)境,包括逆向、PWN之類的場景
0x1 Ghidra —— IDA的替代品
1.1 簡介
? 眾所周知,對于一個(gè)二進(jìn)制CTFer or 研究院而言,一個(gè)良好的反匯編工具是生活工作必備良品。在這其中Interactive Disassembler公司推出的IDA Pro配合Hex Rays反編譯器,一直都是廣大用戶的首選。但是IDA Pro需要到7.6版本才對Apple Silicon提供了原生ARM64的支持,雖然X64版本也可以在Rosetta2下出色的運(yùn)行。在互聯(lián)網(wǎng)中一直都缺乏IDA for macOS的泄漏版本,我們需要尋求一款替代品
? 我們可以把目光放到美國國家安全局NSA開發(fā)的Ghidra上,這是一款用Java Swing框架編寫的GUI,反編譯組件是用C++編寫的。Ghidra的插件可以用Java或Python(通過Jython)開發(fā)。Ghidra的調(diào)試器支持通過WinDbg調(diào)試用戶模式Windows程序,以及通過GDB調(diào)試Linux程序
? Ghidra已經(jīng)支持了以下架構(gòu)或二進(jìn)制格式:
- x86 16, 32 and 64 bit
- ARMand AARCH64
- PowerPC 32/64 and VLE
- MIPS 16/32/64
- MicroMIPS
- 68xxx
- Java and DEX bytecode
- PA-RISC
- PIC 12/16/17/18/24
- SPARC 32/64
- CR16C
- Z80
- 6502
- 8048, 8051
- MSP430
- AVR8, AVR32
- SuperH
- V850
? 如果想深入了解Ghidra的用法可以參考看雪課程《Ghidra操作手冊》:
https://www.kanxue.com/book-section_list-64.htm1.2 安裝
1.2.1 JDK
因?yàn)镚hidra基于Java編寫,所以我們首先需要安裝JDK
https://www.oracle.com/java/technologies/downloads/#jdk18-mac為了節(jié)省配置環(huán)境變量的步驟建議選擇直接下載Apple Silicon安裝版Arm 64 DMG Installer
https://download.oracle.com/java/18/latest/jdk-18_macos-aarch64_bin.dmg接下來都是傻瓜式安裝了
1.2.2 Ghidra
從官方Github下載發(fā)行版即可
https://github.com/NationalSecurityAgency/ghidra/releases解壓之后運(yùn)行g(shù)hidraRun 即可
0x2 IDA Pro
看到了網(wǎng)上的師傅提供了在Apple Silicon上運(yùn)行IDA Pro 7.6的解決方案,其主要核心技術(shù)是采用了wine的兼容層
兼容 M1 版本的 Wine 基本是都是國外大神 gcenx 預(yù)編譯好的版本,我們只需要通過 brew 安裝即可
如果不需要 python 環(huán)境,單獨(dú)安裝 winehq 也可以。但是 winehq python 環(huán)境配置不起來,IDA 配置winehq 會(huì)崩潰,也不能運(yùn)行 bat 腳本
2.1 安裝 wineskin
wineskin 可以幫助我們創(chuàng)建 wine 容器,制作 Mac App shell,還可以創(chuàng)建替身圖標(biāo)到 launchpad,通過 launchpad 就可以打開 IDA。
我們可以通過 brew 安裝 wineskin:
brew install --no-quarantine gcenx/wine/unofficial-wineskin這里建議啟用Clash的本地終端代理,不然國內(nèi)走Git會(huì)很慢
安裝完成后 launchpad 就會(huì)出現(xiàn) wineskin,我們打開它并下載、創(chuàng)建一個(gè)容器:
2.2 配置 python 3 環(huán)境
到 python 官網(wǎng)下載 python 3.8 的 Windows 64 Bit 可執(zhí)行包并解壓放到 IDA 的根目錄下,并命名為 python-3:
Python Releases for Windows | Python.org 20
https://www.python.org/ftp/python/3.8.10/python-3.8.10-embed-amd64.zip 47
2.3 創(chuàng)建啟動(dòng)腳本
復(fù)制以下內(nèi)容,并保存為 run64.bat 并存放在 IDA 根目錄
@set path=.\python-3;%path% @set PYTHONPATH=.\python-3 @start ida64.exe2.4 將準(zhǔn)備好的 IDA 導(dǎo)入 Wine 容器
選擇 Install Software 然后將 IDA copy 進(jìn)去:
2.5 配置 wineskin 容器運(yùn)行路徑:
2.6 設(shè)置環(huán)境變量
打開注冊表編輯器,找到以下路徑:
HKEY_CURRENT_USER\Software\Hex-Rays\Python3TargetDLL
并設(shè)置至為(需要根據(jù)你的實(shí)際情況修改):
C:\Program Files\Hex-Rays\IDA Pro\python-3\python3.dll注:如果找不到 Hex-Rays 路徑,請先 test-run 一次 ida.exe,或手動(dòng)創(chuàng)建;
如果找不到 Python3TargetDLL 鍵,請手動(dòng)新增一個(gè) 字符串類型 鍵。
注意坑:不要去嘗試通過安裝版 python 配合 idapyswitch.exe 修改注冊表,idapyswitch.exe 獲取的 dll 路徑并不正確,安裝版 python 也不能正確設(shè)置 wine 環(huán)境變量,IDA 會(huì)崩潰。
給 wine 容器創(chuàng)建一個(gè)替身(圖標(biāo)需要自己在 wineskin 設(shè)置好),并移動(dòng)到 /Application 目錄下,然后就可以通過 launchpad 啟動(dòng) ida 7.6 了:
python3 也可以正常使用了:
這里也可以直接使用原博主提供打包好的:
鏈接:https://pan.baidu.com/s/1todGWnAXMg6emvJooL58VA?pwd=8617 提取碼:86170x3 虛擬機(jī)的選擇
根據(jù)目前網(wǎng)友的研究總結(jié),適用于Apple Silicon
-
pd:四百多一年,無破解,可通過自動(dòng)改時(shí)間無限試用
-
pd跑windows:dx11,OpenGL 3.3
-
pd跑Linux:OpenGL 4.1,無vulkan
-
-
vmware:免費(fèi)
- vmware跑windows:僅2D,無dx
- vmware跑Linux:OpenGL 4.3,需要還未發(fā)布的Linux 5.19內(nèi)核和最新的mesa驅(qū)動(dòng)(vmware的Linux驅(qū)動(dòng)和工具是開源的)
-
utm:開源,支持越獄iOS,qemu的gui
- utm跑windows:僅2D,可以模擬x86的windows,但模擬win7之后就比較卡了,模擬win7或者xp比較流暢
- utm跑Linux:OpenGL 2.0,非常容易崩潰
結(jié)論:
- windows11 選pd
- 帶GUI的Linux選vmware
- 命令行Linux選utm(或者lima)
注意:vmware跑Linux能得到OpenGL4.3,而蘋果故意把macOS下的OpenGL版本鎖死在4.1
參考文獻(xiàn)
- IDA Pro 7.6 with M1 Max on wine + py3.8
總結(jié)
以上是生活随笔為你收集整理的Apple Silicon配置二进制环境(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 项目管理:项目管理为什么难?
- 下一篇: 用python写helloworld_P