本系列旨在记录我本人在使用基于M1 Pro的Apple Silicon芯片MacBook Pro笔记本搭建适用于二进制研究的环境,包括逆向、PWN之类的场景
众所周知,对于一个二进制CTFer or 研究院而言,一个良好的反汇编工具是生活工作必备良品。在这其中Interactive Disassembler公司推出的IDA Pro配合Hex Rays反编译器,一直都是广大用户的首选。但是IDA Pro需要到7.6版本才对Apple Silicon提供了原生ARM64的支持,虽然X64版本也可以在Rosetta2下出色的运行。在互联网中一直都缺乏IDA for macOS的泄漏版本,我们需要寻求一款替代品
我们可以把目光放到美国国家安全局NSA开发的Ghidra上,这是一款用Java Swing框架编写的GUI,反编译组件是用C++编写的。Ghidra的插件可以用Java或Python(通过Jython)开发。Ghidra的调试器支持通过WinDbg调试用户模式Windows程序,以及通过GDB调试Linux程序
Ghidra已经支持了以下架构或二进制格式:
如果想深入了解Ghidra的用法可以参考看雪课程《Ghidra操作手册》:
https://www.kanxue.com/book-section_list-64.htm
因为Ghidra基于Java编写,所以我们首先需要安装JDK
https://www.oracle.com/java/technologies/downloads/#jdk18-mac
为了节省配置环境变量的步骤建议选择直接下载Apple Silicon安装版Arm 64 DMG Installer
https://download.oracle.com/java/18/latest/jdk-18_macos-aarch64_bin.dmg
接下来都是傻瓜式安装了
从官方Github下载发行版即可
https://github.com/NationalSecurityAgency/ghidra/releases
解压之后运行ghidraRun 即可
看到了网上的师傅提供了在Apple Silicon上运行IDA Pro 7.6的解决方案,其主要核心技术是采用了wine的兼容层
兼容 M1 版本的 Wine 基本是都是国外大神 gcenx 预编译好的版本,我们只需要通过 brew 安装即可
如果不需要 python 环境,单独安装 winehq 也可以。但是 winehq python 环境配置不起来,IDA 配置winehq 会崩溃,也不能运行 bat 脚本
wineskin 可以帮助我们创建 wine 容器,制作 Mac App shell,还可以创建替身图标到 launchpad,通过 launchpad 就可以打开 IDA。
我们可以通过 brew 安装 wineskin:
brew install --no-quarantine gcenx/wine/unofficial-wineskin
这里建议启用Clash的本地终端代理,不然国内走Git会很慢
安装完成后 launchpad 就会出现 wineskin,我们打开它并下载、创建一个容器:


到 python 官网下载 python 3.8 的 Windows 64 Bit 可执行包并解压放到 IDA 的根目录下,并命名为 python-3:
https://www.python.org/ftp/python/3.8.10/python-3.8.10-embed-amd64.zip 47
复制以下内容,并保存为 run64.bat 并存放在 IDA 根目录
@set path=.\python-3;%path%
@set PYTHONPATH=.\python-3
@start ida64.exe
选择 Install Software 然后将 IDA copy 进去:


打开注册表编辑器,找到以下路径:
HKEY_CURRENT_USER\Software\Hex-Rays\Python3TargetDLL
并设置至为(需要根据你的实际情况修改):
C:\Program Files\Hex-Rays\IDA Pro\python-3\python3.dll
注:如果找不到 Hex-Rays 路径,请先 test-run 一次 ida.exe,或手动创建;
如果找不到 Python3TargetDLL 键,请手动新增一个 字符串类型 键。
注意坑:不要去尝试通过安装版 python 配合 idapyswitch.exe 修改注册表,idapyswitch.exe 获取的 dll 路径并不正确,安装版 python 也不能正确设置 wine 环境变量,IDA 会崩溃。
给 wine 容器创建一个替身(图标需要自己在 wineskin 设置好),并移动到 /Application 目录下,然后就可以通过 launchpad 启动 ida 7.6 了:


python3 也可以正常使用了:

这里也可以直接使用原博主提供打包好的:
链接:https://pan.baidu.com/s/1todGWnAXMg6emvJooL58VA?pwd=8617
提取码:8617
根据目前网友的研究总结,适用于Apple Silicon
pd:四百多一年,无破解,可通过自动改时间无限试用
pd跑windows:dx11,OpenGL 3.3
pd跑Linux:OpenGL 4.1,无vulkan
vmware:免费
utm:开源,支持越狱iOS,qemu的gui
结论:
注意:vmware跑Linux能得到OpenGL4.3,而苹果故意把macOS下的OpenGL版本锁死在4.1