14.反HOOK防护(二):Monkey

一、安装:MonkeyDev

GitHub-MonkeyDev

安装完成后,重启Xcode,就可以看到有个MonkeyDev

1

二、重签名

创建一个MonkeyApp,我们看到目录下有个TargetApp,将需要重签名的ipa包或者app文件放进去。 并将Demo给为自己的一个可用的BundleID,运行即可!

2

三、Hook:Logos语法

Logos

1

我们可以看到这个文件,没有高亮。

1

在这里改一下类型为ObjectiveC++Source,切换一下文件就可以了。

3.1 试着Hook上一篇中我们做了防护的项目

这里我们准备HookViewControlleractionA

a. 将编译出的app文件放进TargetApp目录下

b. 用Logos语法写Hook代码

就这么简单!

c. 运行查看Log

虽然我们的防护代码检测到了Hook,但是依然成功了。

d. 思考

这里我们使用反HOOK防护(一)中的技术去进行防护,并没有成功防护到Monkey的Hook。我们大概可以推测出:它使用的是Set和Get进行的Hook!

下面我们针对Set Get进行一下防护验证我们的想法!

四、Set/Get Hook防护

这里我们简单修改下防护代码。

4.1 防护成果

可以看到我们的set/get防护代码被触发了,并且输出了点击按钮输出了正确的Log! 防护成功!也验证了我们的想法:Monkey的Hook是基于Get/Set的

Last updated

Was this helpful?