当前位置:网站首页>Apple Silicon配置二进制环境(一)
Apple Silicon配置二进制环境(一)
2022-07-30 19:54:00 【ZERO-A-ONE】
- 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
:
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
参考文献
边栏推荐
- mysql慢查询优化
- 技术很牛逼,还需要“向上管理”吗?
- MySQL分库分表
- MindSpore:【语音识别】DFCNN网络训练loss不收敛
- MySQl数据库————DQL数据查询语言
- MindSpore:【MindSpore1.1】Mindspore安装后验证出现cudaSetDevice failed错误
- MySQL六脉神剑,SQL通关大总结
- 使用MULTISET来比较数据集的实例介绍
- MySQL performance optimization (hardware, system configuration, table structure, SQL statements)
- 来了!东方甄选为龙江农产品直播带货
猜你喜欢
MindSpore: CV.Rescale(rescale,shift)中参数rescale和shift的含义?
MySQL分组后取最大一条数据【最优解】
Ordinary int main(){} does not write return 0; what will happen?
MySQL大总结
推荐系统:冷启动问题【用户冷启动、物品冷启动、系统冷启动】
PHP低代码开发引擎—表单设计
ELK log analysis system
Install MySQL tutorial under Linux
ERROR 1045 (28000) Access denied for user ‘root‘@‘localhost‘解决方法
HCIP --- 企业网的三层架构
随机推荐
Linux下安装MySQL教程
【MindSpore】用coco2017训练Model_zoo上的 yolov4,迭代了两千多batch_size之后报错,大佬们帮忙看看。
MySQL数据库————视图和索引
Is the iPhone really thirteen incense?The two generations of products are completely compared, perhaps the previous generation is more worth buying
Cesium加载离线地图和离线地形
推荐系统:冷启动问题【用户冷启动、物品冷启动、系统冷启动】
Maxwell 一款简单易上手的实时抓取Mysql数据的软件
利用go制作微信机器人
Zabbix 5.0 监控教程(一)
iPhone真是十三香?两代产品完全对比,或许上一代更值得买
VBA runtime error '-2147217900 (80040e14): Automation error
.eslintrc.js for musicApp
[hbuilder] cannot run some projects, open the terminal and cannot enter commands
Ordinary int main(){} does not write return 0; what will happen?
【MindSpore1.2.0-rc1产品】num_workers问题
el-input can only input integers (including positive numbers, negative numbers, 0) or only integers (including positive numbers, negative numbers, 0) and decimals
MindSpore:【resnet_thor模型】尝试运行resnet_thor时报Could not convert to
并发与并行的区别
[Private Series] All kinds of strange problems encountered in daily PHP
These services can't ali interview?Then don't go to, the basic notification, etc