MachO文件和LLDB调试

MachO文件的介绍

常见的格式:
• 1.可执行文件
• 2.objcet
◦ .o 文件(目标文件)
◦ .a 静态库文件.其实就是N个.o文件的集合
• 3.DYLIB: 动态库文件
◦ dylib
◦ framework
• 4.动态连接器
• 5.DSYM(存放崩溃信息)

文件基本架构

文件架构可以分为三部分:1.Header(头部)、2.LoadCommands(加载命令)、3.Data(数据);

加载方法

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


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


上图界面出现表明Mach-O文件加载完毕。FatHeader是一个通用二进制文件。在左边窗口点击“Mach Header”选项,可以看到每个类的cpu架构信息、load commands数量 、load commandssize 、file type等信息。
2.也可以使用otool工具查看Macho文件 otool -f xxx

查看Fat文件

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

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

拆分/整合二进制文件

瘦身/拆分

$ lipo xxx -thin armv7 -output macho_armv7    //xxx是app包的可执行文件
$ lipo xxx -thin armv64 -output macho_armv64

整合

$ lipo -create macho_armv7 macho_arm64 -output machO_v7_64
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Mach-O 概述 和 部分命令介绍 我们知道Windows下的文件都是PE文件,同样在OS X和iOS中可执行文...
    青花瓷的平方阅读 15,107评论 2 52
  • 组成 Mach-O通常有三部分组成头部 (Header): Mach-O文件的架构 比如Mac的 PPC, PPC...
    充满活力的早晨阅读 1,651评论 0 5
  • 这是一篇 WWDC 2016 Session 406 的学习笔记,从原理到实践讲述了如何优化 App 的启动时间。...
    MTDeveloper阅读 767评论 0 1
  • layout: wikititle: iOS逆向分析笔记categories: Reverse_Engineeri...
    超哥__阅读 11,178评论 3 16
  • 年底要和很多人聊,要聊很多话题,事业、家庭、生活、工作、如何做、如何取得认可......很多很多,我忽然发现其实大...
    _水一阅读 452评论 1 4