• Author:ZERO-A-ONE
  • Date:2022-07-30

本系列旨在记录我本人在使用基于M1 Pro的Apple Silicon芯片MacBook Pro笔记本搭建适用于二进制研究的环境,包括逆向、PWN之类的场景

0x1 Ghidra —— IDA的替代品

1.1 简介

​ 众所周知,对于一个二进制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已经支持了以下架构或二进制格式:

  • 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.htm

1.2 安装

1.2.1 JDK

因为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

接下来都是傻瓜式安装了

1.2.2 Ghidra

从官方Github下载发行版即可

https://github.com/NationalSecurityAgency/ghidra/releases

解压之后运行ghidraRun 即可

0x2 IDA Pro

看到了网上的师傅提供了在Apple Silicon上运行IDA Pro 7.6的解决方案,其主要核心技术是采用了wine的兼容层

兼容 M1 版本的 Wine 基本是都是国外大神 gcenx 预编译好的版本,我们只需要通过 brew 安装即可

如果不需要 python 环境,单独安装 winehq 也可以。但是 winehq python 环境配置不起来,IDA 配置winehq 会崩溃,也不能运行 bat 脚本

2.1 安装 wineskin

wineskin 可以帮助我们创建 wine 容器,制作 Mac App shell,还可以创建替身图标到 launchpad,通过 launchpad 就可以打开 IDA。

我们可以通过 brew 安装 wineskin

brew install --no-quarantine gcenx/wine/unofficial-wineskin

这里建议启用Clash的本地终端代理,不然国内走Git会很慢

安装完成后 launchpad 就会出现 wineskin,我们打开它并下载、创建一个容器:

2.2 配置 python 3 环境

到 python 官网下载 python 3.8 的 Windows 64 Bit 可执行包并解压放到 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 创建启动脚本

复制以下内容,并保存为 run64.bat 并存放在 IDA 根目录

@set path=.\python-3;%path%
@set PYTHONPATH=.\python-3
@start ida64.exe

2.4 将准备好的 IDA 导入 Wine 容器

选择 Install Software 然后将 IDA copy 进去:

2.5 配置 wineskin 容器运行路径:

2.6 设置环境变量

打开注册表编辑器,找到以下路径:

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

0x3 虚拟机的选择

根据目前网友的研究总结,适用于Apple Silicon

  • pd:四百多一年,无破解,可通过自动改时间无限试用

    • pd跑windows:dx11,OpenGL 3.3

    • pd跑Linux:OpenGL 4.1,无vulkan

  • vmware:免费

    • vmware跑windows:仅2D,无dx
    • vmware跑Linux:OpenGL 4.3,需要还未发布的Linux 5.19内核和最新的mesa驱动(vmware的Linux驱动和工具是开源的)
  • utm:开源,支持越狱iOS,qemu的gui

    • utm跑windows:仅2D,可以模拟x86的windows,但模拟win7之后就比较卡了,模拟win7或者xp比较流畅
    • utm跑Linux:OpenGL 2.0,非常容易崩溃

结论:

  • windows11 选pd
  • 带GUI的Linux选vmware
  • 命令行Linux选utm(或者lima)

注意:vmware跑Linux能得到OpenGL4.3,而苹果故意把macOS下的OpenGL版本锁死在4.1

参考文献

  • IDA Pro 7.6 with M1 Max on wine + py3.8

Apple Silicon配置二进制环境(一)相关推荐

  1. 最适合 Apple Silicon 的 Tensorflow 环境搭建

    最适合 Apple Silicon 的 Tensorflow 环境搭建 文章目录 最适合 Apple Silicon 的 Tensorflow 环境搭建 前言 一.mini- forge下载: 1. ...

  2. macOS M1(Apple Silicon) 安装配置 Conda 环境

    由于常用的Anaconda和Miniconda现在都没有提供M1处理器支持的conda环境(截止于2021/2/4),虽然也不影响正常使用,但如果能有支持的版本会更好.以下是conda-forge提供 ...

  3. Macbook Apple Silicon 环境及常用软件安装

    macbook Apple Silicon 环境及软件安装 一.iTerm 2 二.安装 JetBrains Toolbox 全家桶 三.HomeBrew 四.安装Git 五.oh-my-zsh 六. ...

  4. Mac Apple Silicon M1/M2 homebrew miniforge conda pytorch yolov5深度学习环境搭建并简单测试MPS GPU加速

    目录 开始安装 零,获取代理 一,配置代理 配置zsh走代理 配置git走代理 二,安装homebrew 三,安装miniforge 四,创建conda环境 五,安装pytorch 六,运行yolov ...

  5. mac软件移植linux,相比软件迁移 Apple Silicon Mac的Linux系统移植工作更困难

    Asahi Linux 项目团队在博客文章中写道,他们尝试了在 Apple Silicon 系统上设置备用启动内核.虽然已实现大多数功能,但还是缺乏对安装非苹果内核的命令支持. Apple Insid ...

  6. Apple Silicon M1 MacBook Air上手详细评测M1的强大!

    离开Intel的第一天,一点都不想它. 简要总结这款M1 MacBook Air: 1.  M1性能表现超出预期的好,速度快到堪称恐怖 2.  与Intel Mac一样功能强大,甚至更强大 3.  M ...

  7. 苹果Arm芯片适配开发 (Apple Silicon)

    文章目录 苹果Arm芯片适配开发 (Apple Silicon) Apple Silicon 1. 将macOS应用程序移植到苹果芯片上 1.1 创建一个移植计划 1.2 获取链接库的通用版本 1.3 ...

  8. Macbook(M1版)的用户看过来,.net 6 Preview 6支持Apple Silicon for macOS

    本文由葡萄城技术团队翻译 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 我们很高兴发布.NET6预览的第6版,本次预览是倒数第二次预览了.在本次预览发布之 ...

  9. 简单粗爆在MacOS下运行EAS 8.2客户端【Intel/Apple Silicon通用】

    之前发布了两个贴子,分别讲述了如何在Intel和M1芯片下安装金蝶EAS8.2客户端.因为是小众人群使用,官方呢,也没投入相关的资源,这个安装脚本也是官方的测试版本,经过我两年多的使用,基本上可以满足 ...

  10. android studio cmake opencv_Mac下安装及配置OpenCV环境(Xcode)

    Mac下安装及配置OpenCV环境(Xcode) OpenCV (Open Source Computer Vision Library) OpenCV是Intel开源计算机视觉库.它由一系列 C 函 ...

最新文章

  1. 读懂python代码_读懂花里胡哨的14行Python代码!
  2. memcached客户端(分布算法)
  3. latex中怎么设置每一行文字都对齐_排版系列教程 | LaTeX,为学术论文排版而生【浮动体篇】...
  4. Activity启动模式和FLAG、TASKAFFINITY
  5. 【文本匹配】Question Answering论文
  6. 阿里开始“拆”中台?!中台建设何去何从?
  7. 华为Java开发编程最新军规,谁违反谁滚蛋!
  8. AIS家电行业供应链管理系统综合分析-零部件订货对应分析需求
  9. Windows10下安装原生TensorFlow GPU版
  10. 备战2022年5月软考高项 —— 信息系统项目管理师
  11. 开源公告|腾讯代码安全指南开源,涉及C/C++、Go等六门编程语言
  12. 如何用最短的时间找到初级数据分析工作?
  13. C++ async future deferred
  14. 倒计时1天 | 大势智慧2022新品发布会全面而来!
  15. 爱上开源之一款查询docker容器启动命令的工具
  16. ctfshow Nodejs
  17. 基于SVN的项目管理——集中与分散
  18. Contest1802 - 2019年第二阶段我要变强个人训练赛第十八场 问题 N: 扶桑号战列舰 线段树+贪心
  19. 如何开始人工智能之旅: 改弦更张不合算,别忽视既有平台
  20. emc存储java打开后报错,EMC存储划分lun过程

热门文章

  1. Linux学习笔记——CentOS
  2. 中国电信运营商布局云计算“赛道”面临三大挑战
  3. 红帽RHCA考试内容解析
  4. 平面三自由度机器人动力学建模与仿真
  5. Nginx通过反向代理实现单端口访问多个服务
  6. 基于Python的管理系统(附源码)
  7. 设备管理 USB ID
  8. jdk1.7 64位官方下载地址
  9. 数字电路技术可能出现的简答题_数字电子技术基础期末考试题
  10. 那些适用于跨境电商的ERP系统