Mach-o
Ansel_m
阿里天猫
展开
-
otool 分析Mach-O
otool 查看所有的Methodotool -v -s __TEXT __objc_methname mach-o的pathotool 查看被调用的Methodotool -v -s __DATA __objc_selrefs mach-o的pathotool 查看所有的Classotool -v -s __TEXT __objc_classname mac...原创 2019-06-18 15:24:58 · 1357 阅读 · 0 评论 -
iOS调优 | 深入理解Link Map File
Link Map File初识我们编写的源码需要经过编译、链接,最终生成一个可执行文件。在编译阶段,每个类会生成对应的.o文件(目标文件)。在链接阶段,会把.o文件和动态库链接在一起。Link Map File就是这样一个记录链接相关信息的纯文本文件,里面记录了可执行文件的路径、CPU架构、目标文件、符号等信息。为什么要理解Link Map File理解Link Map File,可以...转载 2019-06-18 10:57:12 · 650 阅读 · 0 评论 -
创建CocoaPods的制作过程
使用CocoaPods来管理第三方库实在是方便,在学会了使用CocoaPods后,开始尝试创建一个自己的版本依赖库,当然,迟早要走到这一步的.创建仓库接下来实现一个首页广告循环播放功能,项目名为CLRollingCycleView本地仓库使用Xcode创建一个CLRollingCycleView项目,项目并添加Classes(核心功能)远程仓库在github上同样创建...转载 2019-05-08 16:20:14 · 231 阅读 · 0 评论 -
iOS微信安装包瘦身
前提微信经过多次版本迭代,产生不少冗余代码和无用资源。之前微信也没有很好的手段知道哪个模块增量多少。另外去年10月微信开始做ARC支持,目的是为了减少野指针带来的Crash,但代价是可执行文件增大20%左右。而苹果规定今年6月提交给Appstore的应用必须支持64位,32位和64位两个架构的存在使得可执行文件增加了一倍多。安装包大小优化迫在眉睫。Appstore安装包是由资源转载 2018-02-02 11:44:17 · 930 阅读 · 0 评论 -
iOS程序启动->dyld加载->runtime初始化(初识)
程序的开始main函数与Coding生涯的开始hello World!iOS开发中,main函数是我们熟知的程序启动入口,但实际上并非真正意义上的入口,因为在我们运行程序,再到main方法被调用之间,程序已经做了许许多多的事情,比如我们熟知的runtime的初始化就发生在main函数调用前,还有程序动态库的加载链接也发生在这阶段,本文主要对从程序启动到main函数中发生的主要事情进行简单介转载 2017-09-19 12:20:13 · 828 阅读 · 0 评论 -
从FBTweak 源码剖析一些中阶知识
从FBTweak 源码剖析一些中阶知识在开发的过程中,我们进场要做一些类似于参数调整之类的琐碎问题。如果每次都通过CMD + R来编译运行查看效果,浪费的时间真是得不偿失。因此,在看到了FBTweak这个项目以后,就感觉比较有意思,让我们来对这个项目一探究竟。晕头转向的宏定义打开项目,整个项目非常简单,抛去UI部分,主要使用的主API就是在FBTweakInline转载 2017-09-18 20:55:12 · 772 阅读 · 0 评论 -
fishhook 源码分析
引用Mac OS X ABI Mach-O File Format Reference前言fishhook 是什么?fishhook 是用于 Mach-O 的符号动态绑定的 facebook 开源维护的的第三方库。当 Mach-O 加载第三方库的时候,可以用 fishhook 进行hook。具体的参考 fishhook 在 GitHub 上的 readme . 原理转载 2017-08-22 12:17:40 · 483 阅读 · 0 评论 -
Mach-O的动态链接相关知识
0x00 摘要通过分析Mach-O的动态链接过程,加深对Mach-O文件结构的理解。对Mach-O文件格式的简单的分析看这里这里。0x01 Mach-O Lazy BindMach-O文件的通过dyld加载的时候并没有确定每一个函数的具体地址在哪里,而是在真正调用该函数的时候通过过程连接表(procedure linkage table),后面简称PLT,来进行一次la转载 2017-08-22 11:41:31 · 460 阅读 · 0 评论 -
趣探 Mach-O:文件格式分析
本文所读的源码,可以从这里找到,这是 Mach-O 系列的第一篇我们的程序想要跑起来,肯定它的可执行文件格式要被操作系统所理解,比如 ELF 是 Linux下可执行文件的格式,PE32/PE32+是windows的可执行文件的格式,那么对于OS X和iOS 来说Mach-O 是其可执行文件的格式。我们平时了解到的可执行文件、库文件、Dsym文件、动态库、动态连接器都是这种格式的转载 2017-08-22 11:17:21 · 246 阅读 · 0 评论