JS逆向 | hook劫持检测与应对策略

搞过某数的朋友应该知道,某数对 eval 函数有劫持检测,虽然说检测与反检测操作实现起来都很简单,但很多朋友还是没有遇到过,所以今天简单的提一下。就不拿 eval 函数举例了, 因为劫持检测思路适用于任何js原生函数。

正如下图所示,一个简单的油猴脚本,用于劫持 JSON.stringify 函数。

JS逆向 | hook劫持检测与应对策略

开启油猴脚本之后, 我们运行一段代码试试。

JS逆向 | hook劫持检测与应对策略

JSON.stringify 函数被hook到了,实际工作中,我们这个时候就可以通过调用栈快速定位加密位置。

JS逆向 | hook劫持检测与应对策略

但是,如果代码是这样写,劫持脚本还能有效吗?

JS逆向 | hook劫持检测与应对策略

确实没有用了,相信各位都能理解,应该知道怎么反检测了吧

JS逆向 | hook劫持检测与应对策略

改写一下油猴脚本,我们再次试试看。
JS逆向 | hook劫持检测与应对策略

这招有点low,但也是一个反调试手段!所以,以后你的油猴脚本,最好加上反检测的代码,万一字符串加密混淆,而你又没注意到呢?

JS逆向 | hook劫持检测与应对策略