MachOView工具

作者: LiuffSunny | 来源:发表于2020-09-16 19:30 被阅读0次

    Mach-O格式全称为Mach Object文件格式的缩写,是mac上可执行文件的格式,类似于windows上的PE格式 (Portable Executable ), linux上的elf格式 (Executable and Linking Format)。
    MachOView下载地址:http://sourceforge.net/projects/machoview/

    MachOView源码地址:https://github.com/gdbinit/MachOView

    mach-o文件类型分为:

    1、Executable:应用的主要二进制

    2、Dylib Library:动态链接库(又称DSO或DLL)

    3、Static Library:静态链接库

    4、Bundle:不能被链接的Dylib,只能在运行时使用dlopen( )加载,可当做macOS的插件

    5、Relocatable Object File :可重定向文件类型

    什么是FatFile/FatBinary?

    简单来说,就是一个由不同的编译架构后的Mach-O产物所合成的集合体。一个架构的mach-O只能在相同架构的机器或者模拟器上用,为了支持不同架构需要一个集合体。

    一、使用方式

    1、MachOView工具概述

    MachOView工具可Mac平台中可查看MachO文件格式信息,IOS系统中可执行程序属于Mach-O文件格式,有必要介绍如何利用工具快速查看Mach-O文件格式。MachOView工具属于免费开源项目,源代码可在https://github.com/gdbinit/MachOView下载,MachOView安装之后文件布局如下图所示:

    image

    点击“MachOView”之后,便在Mac系统左上角出现MachOView工具的操作菜单,对应功能菜单如下图所示:

    image

    将“MachOView”拖到Application文件夹,就可以像其他程序一样启动了

    下面介绍MachOView文件功能使用。

    2、加载Mach-O文件

    点击MachOView工具的主菜单“File”中的“Open”选项便可加载IOS平台可执行文件,对应功能接入如下所示:

    image

    例如加载文件名为“libLDCPCircle.a”的静态库文件,加载成功之后显示的界面如下图所示:

    image

    上图界面出现表明Mach-O文件加载完毕。

    3、文件头信息

    MachOView工具成功加载Mach-O文件之后,每个.o文件对应一个类编译后的文件,展开每个类如下如:

    image

    在左边窗口点击“Mach Header”选项,可以看到每个类的cpu架构信息、load commands数量 、load commandssize 、file type等信息。

    4、查看Fat文件

    我们打开一个Fat文件可以看到:

    image

    可以看到,fat文件只是对各种架构文件的组装,点开 “Fat Header”可以看到支持的架构,图中显示的支持ARM_V7 、ARM_V7S 、ARM_64 、i386 、 X86_64。

    image

    点开每一个Static Library 可以看到,和每一个单独的Static Library的信息一样。

    小命令:

    lipo LoginSDK.a -thin armv7 -output arm/LoginSDK.a 将fat文件拆分得到armv7类型

    lipo -create ibSyncSDKA.i386.a libSyncSDK.arm7.a -output libSyncSDK.a 合成一个i386和armV7架构的fat文件

    转自作者:ITxiansheng
    链接:https://www.jianshu.com/p/175925ab3355

    相关文章

      网友评论

        本文标题:MachOView工具

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