声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢!
目标网站:
aHR0cHM6Ly9wcm9maWxlLnpqdXJsLmNuL3JvZ3VlL3VnYy9wcm9maWxlLz91c2VyX2lkPTM2MjMxMjAzNjE=
引言
最新版的某条反爬出来后,难倒了一大片,可谓其系列产品web端反爬检测最严格的。原来的反爬,只需要根据报错,补充环境,使之能运行即可获取到数据。但最新版的我操作过,能运行但无法获取数据。后来我全部模拟出来,只要有一项检测错误,它都不通过,改了那项后马上就通过了,说明这次它真的认真了!
其实它的套路还是原来的套路,只是原来检测了环境,但可能后端校验不严格,现在增加了一些骚操作后,后端的校验也严格了而已。既然套路一样,那我们还是走模拟浏览器环境这条路。
笔者试过利用Proxy
或Object.defineProperty
的方法来监测JS调用了哪些环境,但这种方法监测得不够全面且不够深入,容易漏监测,一旦漏了,那其实前面监测到的可能就全盘无效了,因为不同的环境,它的控制流会走不同的路线,比如canvas的操作无法监测到,或类似下面的代码无法监测到
window.Object.prototype.toString.call.apply(window.Object.prototype.toString, [window])
下面介绍一种简单高效的环境自吐法(笔者自取的名字hhh),直接上几张效果图,前方高能,不要眨眼!!!
可以看到,再难再深入的检测,全部自己吐出来了,连它的算法过程都可以吐出来。有耐心的,甚至可以自己将它翻译还原了。而且这方法是基于浏览器自身环境,且直接在它的页面调用,生成的算法就是它的原生算法,因此只要对照着模拟到位,可以100%获取数据。
想看详细内容,请使用微信浏览:
https://mp.weixin.qq.com/s/595CjegcOLbLIyzR8DxuYw
欢迎关注我的公众号“逆向新手”,逆向系列将持续更新!