美文网首页
mac os X 下安装 objcdump

mac os X 下安装 objcdump

作者: redye | 来源:发表于2018-12-12 15:42 被阅读51次

在 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 或
(您自行选择的) 稍后版本再发布它。
这个程序不含任何担保

相关文章

网友评论

      本文标题:mac os X 下安装 objcdump

      本文链接:https://www.haomeiwen.com/subject/adqphqtx.html