mac os X 下安装 objcdump

在 linux 下,用 readelf 来看 ELF(linux 下目标文件的格式) 文件头部或者其它各 section 的内容,用 objdump 来对指定的内容(.text, .data等)进行反汇编。

但是mac os X下没有这两个命令,可以用 brew 来安装。
使用命令

brew install binutils

然后使用 greadelfgobjdump 命令。

安装完成后,出现下列提示

binutils is keg-only, which means it was not symlinked into /usr/local,
because because Apple provides the same tools and binutils is poorly supported on macOS.

If you need to have binutils first in your PATH run:
  echo 'export PATH="/usr/local/opt/binutils/bin:$PATH"' >> ~/.zshrc

For compilers to find binutils you may need to set:
  export LDFLAGS="-L/usr/local/opt/binutils/lib"
  export CPPFLAGS="-I/usr/local/opt/binutils/include"

意思就是 binutils 并没有符号链接,并且 macOS 对他的支持并不好。

在使用之前,首先需要配置的路径,能正确链接,根据提示操作就可以了。

首先

echo 'export PATH="/usr/local/opt/binutils/bin:$PATH"' >> ~/.zshrc

然后执行 source 命令让修改生效。可

source ~/.zshrc

可以打开 .zshrc 文件查看,在文件末尾有可以看到新增
export PATH="/usr/local/opt/binutils/bin:$PATH"

后面依次执行下面的命令就可以了。

export LDFLAGS="-L/usr/local/opt/binutils/lib"
export CPPFLAGS="-I/usr/local/opt/binutils/include"

下面就可以使用 gobjdumpgreadelf 命令了。
或者 objdumpreadelf 也是可行的 😎

➜  ~ gobjdump -v
GNU objdump (GNU Binutils) 2.31.1
Copyright (C) 2018 Free Software Foundation, Inc.
这个程序是自由软件;您可以遵循 GNU 通用公共授权版本 3 或
(您自行选择的) 稍后版本再发布它。
这个程序不含任何担保
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容