Skip to content

Commit

Permalink
Sync issue #26 to blog
Browse files Browse the repository at this point in the history
  • Loading branch information
m2kar committed Mar 25, 2024
1 parent d1a6448 commit 394efb8
Showing 1 changed file with 39 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,45 @@ tags: []
issueId: 26
---

null
# 前言
苹果公司在MacBook这种生产力平台使用无疑是个伟大且大胆的创新,经过几年的软件生态环境的改善,各种常用工具基本都能在mac下运行。但仍有些闭源发布的软件仍需要在amd64架构下的Linux环境中才能运行,比如本文中的IDA Pro 7.6版,因此整理一下踩坑记录,可供相关需求的同学参考。

# 环境和工具
- MacBook with M3 chip
- parallels Desktop 19
- IDA Pro 8.3 for Linux 安装包

# 支持amd64的Linux环境
parallels是Mac生态下非常好用的虚拟机软件,但之前的版本仅支持运行arm架构的虚拟机,不支持amd64的程序。在parallels的v19版本之后,基于[苹果官方提供的支持](https://developer.apple.com/documentation/virtualization/running_intel_binaries_in_linux_vms_with_rosetta), parallels推出了[在arm虚拟机中运行amd64程序的能力](https://kb.parallels.com/en/129871),并提供了一套配置好了的ubuntu 22.04虚拟机镜像。

因此,我们只需要点击创建虚拟机,下载Ubuntu with x86_emulation,即可获得amd64的模拟运行环境。如下图。
<img width="872" alt="image" src="https://github.com/m2kar/m2kar.github.io/assets/16930652/d8e4710c-c9ca-4d28-b9df-d2c1ccac175a">

# 安装IDA pro
打开安装好的虚拟机,把安装包拷贝进来,在终端中运行。

```bash
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目录下。

尝试运行,果然又提示各种库文件缺失

# 修改ldd使其在arm下支持amd64程序
这一步做的

<hr/>

Expand Down

0 comments on commit 394efb8

Please sign in to comment.