13.反HOOK防护(一):基于Fishhook
我们需要防护别人的Hook,但是保留自己的Hook。
1.1 在哪里防护
a.Framework里
工程中的
Load
在Framework
里的Load
之后调用别人注入的Hook代码的
Load
在Framework
之后,工程之前有点疑问,这里的
Framework
是动态库么?
1.2 操作一下
a. 创建一个Framework
b. 引入fishhook、objc/message.h
c. 在Framework中创建一个类,防护 method_exchangeImplementations
method_exchangeImplementations
d. 注入
效果:
1.3 缺点
a. 字符串
因为我们用到了method_exchangeImplementations
这样一个字符串,一旦被逆向工程师找到,很容易定位到防护代码。
b. 时间
这个防护方案是基于调用时间来进行防护的,如果找到fishhook
的相关调用,进行相关操作,会被破解掉。
c. get set IMP 没处理
Last updated