使用dobbyhook,被检测了。

最近在研究一款app,这个app首先会加载一个防护framework,会检测越狱,重签名,注入等。

解决了上述这些问题后,使用dobby对系统函数open进行hook,hook成功立刻就被检测到了。

目前想法是把自己的代码在防护模块加载之前加载,然后对相应的检测代码做处理。请问大家像这种检测是如何检测到dobby这种inlinehook的?而且应该是全局函数都检测的

inlinehook检测函数头就可以了吧

1 个赞

那如何防止检测到呢

先搞明白到底是怎么检测的,再来研究怎么防检测

不用inline hook,用fishook或者用单指令hook 返回

知道怎么检测,才能对症下药,给你个代码参考

一般都是针对性的进行检测,有的app还会把对应api的被取样汇编代码上传服务器。

个人认为一种方案是是deep hook,但是通用性不好。

1 个赞

什么软件 我想试试

hook method_exchangeImplementations method_setImplementation 这些方法,对这些方法,进行hook

原方法 : xxxxxxa
新方法 : aaaaaaaaaaaaa
hook method_exchangeImplementations 可以拿到 原方法,和新方法,同时,hook 住 新方法

意思是拿到新方法 再hook新方法???

那个不就是 真方法么?只是运行后,才替换掉 常规的显示的方法么

说白了,常规显示的方法,只是个壳子,如果一点不调用的话,那么纯粹就一个 一堆nop。

所以,所有oc的绝大部分方法,在未执行前,都可以是 一堆nop,运行前,利用运行时把他的实现 设置成目标 函数 就ok了。

1,检测当前的函数的地址,是否在安全范围
2,检测堆栈,是否有奇怪的地址的函数
3,检测函数头,是否被修改,比如改成 b…等跳转系列
4,对dobby的特征进行检测…具体分析,具体得结论。
5,对函数的某些地方,做crc校验

还有很多吧…目前我只能想到这么多,你看着撸

好想把大招放出来, 自动 bypass crc 检测的 :rofl:

2 个赞

大佬,快放出来 :grinning:

等待大佬的开源

借楼咨询一下大佬,Dobby 在非越狱的 iPhone 上可不可以在不启动 Xcode debug 的情况下进行 inlinehook?我自己测试了一下好像不行,所以我想请教一下是否支持在非越狱的 iPhone 上没有 debug 情况下进行 inlinehook

这个问题 再问就没意思了?

感谢

开源就不指望了。啥时候放个过crc的成品库也好啊