首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
我是好宝宝
掘友等级
iOS工程师
|
杭州
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
87
文章 84
沸点 3
赞
87
返回
|
搜索文章
最新
热门
iOS探索 浅尝辄止dyld加载流程
链接:将目标文件链接成可执行文件。这一过程中,链接器将不同的目标文件链接起来,因为不同的目标文件之间可能有相互引用的变量或调用的函数,如我们经常调用Foundation框架和UIKit 框架中的方法和变量,但是这些框架跟我们的代码并不在一个目标文件中,这就需要链接器将它们与我们…
iOS探索 动态方法解析和消息转发机制
使用anInvocation将消息发送到该对象。anInvocation将保存结果,运行时系统将提取结果并将其传递给原始发送者
iOS探索 方法的本质和消息查找流程
①#CACHE是个宏定义表示16个字节,[x16, #CACHE]表示类对象内存地址偏移16字节得到cache。cache一分为二——8字节的buckets存放在p10,两个4字节的occupied和mask存放在p11 防止不断循环的过程中多线程并发,正好缓存更新了。如果bu…
iOS探索 cache_t分析
关于cache_t的内容虽然不多但还是蛮绕的,多读读源码会有更深的理解。下篇文章讲objc_msgsend,作为cache_fill_nolock前置方法,一定程序上会对cache_t的理解有所帮助
iOS探索 类的结构分析
天呐!怎么只有一个nationality了?难道我FXPerson类只配拥有“国籍”不配拥有“姓名”?让我静静... 既然此路不通,那么换条路走走(内心很不情愿) 但是FXPerson的walk类方法又被吃了... 虽然一直碰壁,但是本文最后还是找到了想要的答案,有的时候你离成…
iOS探索 isa初始化&指向分析
有些信息在存储时,并不需要占用一个完整的字节,而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1两种状态,用1位二进位即可。为了节省存储空间并使处理简便,C语言提供了一种数据结构,称为位域或位段 所谓位域就是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的…
iOS探索 内存对齐&malloc源码
内存对齐原则其实可以简单理解为min(m,n)——m为当前开始的位置,n为所占位数。当m是n的整数倍时,条件满足;否则m位空余,m+1,继续min算法。 分析:此时此刻看到这么长的一段代码也不用慌张,if-else只走其一。再仔细想想,我们是带着目的来看源码的——malloc_…
iOS探索 alloc流程
data()->ro->instanceSize就是获取这个类所有属性内存的大小。这里只有继承NSObject的一个属性isa——返回8字节 简单画了个示意图,上边是紧紧挨着,下面是8字节为一格。如果cpu存数据的时候紧紧挨着,读取的时候要不断变化读取长度,所以这时候就采用了空…
iOS逆向 MachO文件
load commands是一张包括区域的位置、符号表、动态符号表等内容的表。 它详细保存着加载指令的内容,告诉链接器如何去加载这个 Mach-O 文件。 系统库的方法由于是公用的,存放在共享缓存中,那么我们的MachO在调用系统方法时,dyld会将MachO里调用存放在共享缓…
iOS逆向 代码注入+Hook
在OC中,SEL和IMP之间的关系,就好像一本书的“目录”。 SEL是方法编号,就像“标题”一样。 IMP是方法实现的真实地址,就像“页码”一样。 他们是一一对应的关系。
下一页
个人成就
优秀创作者
文章被点赞
1,079
文章被阅读
212,335
掘力值
5,880
关注了
30
关注者
4,203
收藏集
3
关注标签
7
加入于
2018-10-29