Hook
文章平均质量分 68
HaiJunYa
积极认真 好记忆烂笔头
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
load方法能否被Hook钩挂交换?(下)
名称load方法钩挂Hook的特殊分析*什么时机Hook?上文中解决分析了元类、load的调用顺序等问题,失败了?是不是Hook时机晚了呢?先来了解下名称load方法的调用原理,在ClassA类涉及的load方法调用处打个执行断点,看调用栈:动态链接器dyld完成对二进制文件(动态库,可执行文件)的初始化后将通过回调函数_dyld_objc_notify_register调用load_images和call_load_methods实现名称load方法的方法实例调用:voidload_image原创 2020-10-14 15:25:47 · 420 阅读 · 0 评论 -
load方法能否被hook钩挂交换?(中)
了解元类(Meta Class)。Objc中实例方法的调用是通过给实例对象发消息实现的,对于实例方法是可行的,但类方法呢?类方法的调用没有“实例对象”可以发送消息。所以Objc的设计者引入了元类概念:元类对象是描述类对象的类,每个类都有自己的元类,也就是类的isa指针指向的类,调用类方法实际上是给类的元类对象(isa指针指向的类)发送消息。上文中class_getClassMethod 实现是调用class_getInstanceMethod并且入参 cls->getMeta()获取元类(给类的元类对原创 2020-10-13 17:30:45 · 246 阅读 · 0 评论 -
load方法能否被hook钩挂?(上)
hook钩挂方式分为MethodSwizzle、fishhook、CydiaSubstrate等等多种钩挂方式。以MethodSwizzle为例研究:名称为load成员方法是否支持hook钩挂替换:能不能hook钩挂替换?首先看下Objc语系中成员方法所持有的实例发生交换的原理,下面是一段典型的实现方法交换的代码:什么时机hook:我们经常在load方法中hook其他方法,那hook load方法在什么时机呢?...原创 2020-10-12 23:08:09 · 384 阅读 · 0 评论
分享