linux binutils,关于mac binutils
最近,在看《程序员的自我修养》一书,书中提到反汇编,使用到了binutils工具包。手头只有一台mac和一台装有win7的机器,并没有安装有linux的机器可用,想到mac 也属于unix系统,与linux大同小异,何况mac下也是用gcc编译,于是准备在mac下安装binutils试一试。
于是去gun官网下载了最新的binutils-2.22.tar.gz,接着解压,按照其README :1、./configure 2、make 3、make install 安装成功后。
运行objdump -h xxx.o以及readelf -h xxx.o 发现乱码问题,很是郁闷。随后各处查找,终于发现问题之所在,以下为摘抄高手的解释:
“Mach-O为Mach Object文件格式的缩写,它是一种用于可执行文件,目标代码,动态库,内核转储的文件格式。作为a.out格式的替代,Mach-O提供了更强的扩展性,并提升了符号表中信息的访问速度。Mach-O曾经为大部分基于Mach核心的操作系统所使用。NeXTSTEP,Darwin和Mac OS X等系统使用这种格式作为其原生可执行文件,库和目标代码的格式。而同样使用GNU Mach作为其微内核的GNU Hurd系统则使用ELF而非Mach-O作为其标准的二进制文件格式。”
在linux环境下,/usr/include目录下有elf.h文件,会有针对elf文件格式的结构体定义,在mac下,则有一个对应的mac-o目录,里面也有类似的文件。
mac下要查看可执行文件或者动态库的一些信息,就只能通过otool这样的工具来进行,不如readelf这样的熟悉和方便,另外mac也不用so这样的名称,而使用dylib,mac系统终究是来源于bsd。 主要意思是说linux和mac中的elf文件格式不太一样导致部分出现乱码,mac下只能采用otool
Uage: otool [-fahlLDtdorSTMRIHvVcXm] ... -f print the fat headers -a print the archive header -h print the mach header -l print the load commands -L print shared libraries used -D print shared library id name -t print the text section (disassemble with -v) -p start dissassemble from routine name -s print contents of section -d print the data section -o print the Objective-C segment -r print the relocation entries -S print the table of contents of a library -T print the table of contents of a dynamic shared library -M print the module table of a dynamic shared library -R print the reference table of a dynamic shared library -I print the indirect symbol table -H print the two-level hints table -v print verbosely (symbolically) when possible -V print disassembled operands symbolically -c print argument strings of a core file -X print no leading addresses or headers -m don't use archive(member) syntax -B force Thumb disassembly (ARM objects only)
linux binutils,关于mac binutils相关推荐
- Linux下修改MAC地址总结
偶尔会用到这个知识点,久了不用又会记不住,所以记之,方便以后查询. Linux下修改MAC地址 方法一: 1.关闭网卡设备 ifconfig eth0 down 2.修改MAC地址 ifconfig ...
- linux桌面环境 mac os,在Windows或Linux桌面上使用Mac OS Dashboard Widget | MOS86
Windows Vista中引入了 Gadgets,并在Windows 7中继续使用.它们允许您从最新的新闻更新到月球的各个阶段查看各种信息,并在桌面上使用一些有用的实用程序.我们以前写过一个程序,允 ...
- (转)Windows系统、Linux系统 和 Mac OS操作系统 历史由来 与 区别?
目录 1 UNIX 由来 2 Linux 由来 3 Windows与Linux的主要区别 4 关于Linux的一些疑惑 参考资料 目前常见的三大操作系统:Windows系统.Linux系统 和 Mac ...
- 网关屏蔽mac地址,linux下修改mac地址方法
局域网里有一台机器,同一网段内的机器,只有部分能够ping通,也无法ping通网关,现象很奇怪,尝试过修改IP,重启网络服务,都无法解决问题. 最后怀疑是不是网关将该机器mac地址给屏蔽掉了,因此修改 ...
- linux重启网卡命令_如何在 Linux 中更改 MAC 地址 | Linux 中国
在向你展示如何在 Linux 中更改 Mac 地址之前,让我们首先讨论为什么要更改它.-- Dimitrios Savvopoulos 在向你展示如何在 Linux 中更改 MAC 地址之前,让我们首 ...
- linux如何查看mac地址_查看mac地址 linux_linux查看mac地址
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XNXpHnwK-1660924515521)(http://img2.nlrsq.com/upfile/b13fd480 ...
- 透明加密支持linux吗,IP-guard文档透明加密软件|文档防泄密|数据加密|Linux系统加密|Mac苹果系统文档加密...
IP-guard文档透明加密软件|文档防泄密|数据加密|Linux系统加密|Mac苹果系统文档加密 发布日期:2018-06-02 IP-guard全向文档加密,采用高强度的加密算法,将各种格式的电子 ...
- Linux调整网卡MAC地址(指令)
Linux调整网卡MAC地址(指令) 有的时候需要使用欺骗的方法为电脑设置新的mac,比如存在上网网卡限制,或者想要隐藏自己的真实mac地址.这里列举三种修改mac的方法,适用于Debian系的Lin ...
- linux内核设置mac地址,Linux下如何修改网卡MAC地址
Red Hat Linux下如何修改网卡MAC地址 OS版本:Red Hat Enterprise Linux AS4 核心:Kernel 2.6.9-42 网上有很多关于linux下修改MAC地址的 ...
最新文章
- C# 调用python
- xargs -i和-I的区别【转】
- ai python 面试_面试分享系列 | 17道Python面试题,让你在求职中无往不利
- linux 延展集群如何设置,OCaml 4.11.0 发布,将函数式语言 Caml 在面向对象上进行延展...
- 技术文件服务器搭建,搭建文件服务器_mob604756e49326的技术博客_51CTO博客
- InDesign 教程,如何创建沉浸式文档?
- 单列变双列css_css – 右对齐双列布局丢失水平滚动条
- python版植物大战僵尸源码_『原创』植物大战僵尸分析及Python辅助实现
- Spyder 运行时kernels启动报错
- bootloader学习笔记---第二篇
- ICPC 2017 Daejeon-Slot Machines
- 利好消息再释放 重卡自动驾驶的智慧物流“掘金”计划
- Ubuntu 14.04 LTS 的安装和配置以及各种问题的解决
- 200行Perl 语言实现 VCD 转ATE测试pattern ---pattern的解析
- 文字图片居中html代码,文字和图片居中的HTML代码怎么写?
- 基于android平台的出题软件---- 每日30题
- 人造大理石行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
- grads环境变量的设置
- 华为OD两轮技术面试
- 网站优化问题:雅虎网站优化35条