分析MAC*.a库文件信息

简介:

 一、起因


        在前面的文章中,我尝试在MAC终端上编译构建了可直接用于COCOS2D-X C++开发的Lean Cloud库。于是,接下来制作一个基本的例子去使用这个库中功能。出于类似于windows vc开发时候的好奇吧,我想先瞅瞅(使用mac下的工具)这个.a文件中包含/输出哪些内容。于是,在网络上搜索找到几个基本工具。


二、分析工具

        目前我使用的工具有MAC终端命令行工具(系统本身提供,但是需要安装xcode,我的是version 7.2):


  • ar

  • nm

  • otool

  • file

  • lipo


        还有专业的更强大的mac 反编译工具Hopper Disassembler 。这个暂时不使用了,我目前专门搞破解分析的,暂时不必要安装这个工具。但是,http://www.cnblogs.com/ziyouchutuwenwu/archive/2013/03/16/2963824.html处的几个小小截图已经充分显示了这个工具的强大功能。类似于windows下的那几个东西......我想,如果想研究mac下的汇编语言开发,这个工具肯定是必备的工具之一了。



三、分析我的库文件libavoscloud.a


     1. ar -t *.a



wKiom1cS0caAyFA0AABXBJdAnFQ938.png


        使用命令是:ar -t libavoscloud.a


2. nm libavoscloud.a


        输出内容非常复杂,部分截图如下:

wKiom1cS0nqxtJdCAALXKIYACOQ456.png


    这种信息非常丰富,肯定是前面的Hopper Disassembler这样的工具所要包含的功能之一。

3.otool libavoscloud.a -L


    输出如下图所示结果:

wKioL1cS1GPyYGBHAACSq8Tv_PI211.png


    与上面的ar -t基本是一致的。但是,这个otool还有更细致丰富的功能,在此不赘述,有举趣的朋友可以参考文后参考文献。

4.lipo -detailed_info libavoscloud.a


    输出如下图所示结果:

wKioL1cS1WDCrBF_AAApZvLIjUY886.png


四、参考资料

















本文转自朱先忠老师51CTO博客,原文链接: http://blog.51cto.com/zhuxianzhong/1764666,如需转载请自行联系原作者





目录
打赏
0
0
0
0
143
分享
相关文章
网络抓包分析【IP,ICMP,ARP】以及 IP数据报,MAC帧,ICMP报和ARP报的数据报格式
本文详细介绍了如何使用网络抓包工具Wireshark进行网络抓包分析,包括以太网v2 MAC帧、IP数据报、ICMP报文和ARP报文的格式,以及不同网络通信的过程。文章通过抓包分析展示了IP数据报、ICMP数据报和ARP数据报的具体信息,包括MAC地址、IP地址、ICMP类型和代码、以及ARP的硬件类型、协议类型、操作类型等。通过这些分析,可以更好地理解网络协议的工作机制和数据传输过程。
网络抓包分析【IP,ICMP,ARP】以及 IP数据报,MAC帧,ICMP报和ARP报的数据报格式
Mac使用TCP发送信息nc -l 9000 和 telnet 127.0.0.1 9000
Mac使用TCP发送信息nc -l 9000 和 telnet 127.0.0.1 9000
79 1
|
7月前
【科研技巧】Mac 系统如何给Endnote 20添加某篇文献信息和附加PDF文件
Mac系统下使用Endnote 20添加文献信息和PDF文件的详细步骤,包括下载.enw文件和在Endnote中导入这些文件的方法。
268 6
|
10月前
使用mac版本试用版Beyond过期报错,反复提示要注册的提示信息问题,暂时没有解决方案
使用mac版本试用版Beyond过期报错,反复提示要注册的提示信息问题,暂时没有解决方案
155 1
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)2
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)2
547 2
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)1
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)
617 1
Qt-获取计算机信息(MAC、IP、CPU、主机名等等)
Qt-获取计算机信息(MAC、IP、CPU、主机名等等)
821 0
Qt获取本机IP、MAC、IPV6子网掩码等网络信息
Qt获取本机IP、MAC、IPV6子网掩码等网络信息
392 0
通过ARP协议实验,设置错误的IP和MAC地址的静态绑定项目,会使得两台主机之间无法通信,而删除该项目后可恢复通信,分析其原因。
通过ARP协议实验,设置错误的IP和MAC地址的静态绑定项目,会使得两台主机之间无法通信,而删除该项目后可恢复通信,分析其原因。
307 0
python数据可视化开发(3):使用psutil和socket模块获取电脑系统信息(Mac地址、IP地址、主机名、系统用户、硬盘、CPU、内存、网络)
python数据可视化开发(3):使用psutil和socket模块获取电脑系统信息(Mac地址、IP地址、主机名、系统用户、硬盘、CPU、内存、网络)
345 0