[技术分享]套娃之arm架构下的MacBook通过parallels+rosetta安装Linux amd64版本的IDA Pro
前言 苹果公司在MacBook这种生产力平台使用无疑是个伟大且大胆的创新,经过几年的软件生态环境的改善,各种常用工具基本都能在mac下运行。但仍有些闭源发布的软件仍需要在amd64架构下的Linux环境中才能运行,比如本文中的IDA Pro 7.6版,因此整理一下踩坑记录,可供相关需求的同学参考。 划重点:arm环境下运行amd64程序;ldd跨架构运行 环境和工具 MacBook with M3 chip parallels Desktop 19 IDA Pro 8.3 for Linux 安装包 支持amd64的Linux环境 parallels是Mac生态下非常好用的虚拟机软件,但之前的版本仅支持运行arm架构的虚拟机,不支持amd64的程序。在parallels的v19版本之后,基于苹果官方提供的支持, parallels推出了在arm虚拟机中运行amd64程序的能力,并提供了一套配置好了的ubuntu 22.04虚拟机镜像。 因此,我们只需要点击创建虚拟机,下载Ubuntu with x86_emulation,即可获得amd64的模拟运行环境。如下图。 安装IDA pro并解决各种依赖缺失 打开安装好的虚拟机,把安装包拷贝进来,在终端中运行。 sudo idapronl_xxx.run 但直接报错: rosetta error: failed to open elf at /lib64/ld-linux-x86-64.so.2 这是因为parallel提供的虚拟机仅安装了基础了amd64的组件,仍有大量的组件缺失。比如在这里,是缺失了binutils组件。 因此作者安装了amd64架构下的binutils,注意使用:amd64选择安装的目标架构 sudo apt-get update sudo apt-get install binutils:amd64 然后,安装程序顺利进行,作者将idapro安装在/opt/idapro-8.3目录下。 尝试运行ida64,果然又提示各种库文件缺失。 比如以下报错提示: /opt/idapro-8.3/ida64: error while loading shared libraries: libGL.so.1: cannot open shared object file: No such file or directory 表示缺失了libGL.so.1动态链接库,谷歌搜索后发现需要安装libgl1-mesa-glx库,则运行命令sudo apt install libgl1-mesa-glx:amd64安装amd64架构下的libgl1-mesa-glx库。...