用zp_token完善补环境框架
用zp_token完善补环境框架
从志远的补环境教程了解到还有补环境框架这个东西后,立刻打开了新思路,从简单的网站开始,逐渐完善自己的补环境框架。在完成了加速乐和hexin-v后,将新目标指向了zp_token.
去年的时候从卷木木的文章里知道了补环境这个东西,那时玩的就是zp_token, 但那时候的补环境还没有形成一个完整的体系,就是缺啥补啥的一种状态,代码写的不够通用;现在学习了补环境框架后,虽然也是缺啥补啥,但代码更通用,针对新的网站只要稍加修改就能跑起来。
相比于加速乐和hexin-v, zp_token的生成需要补充的环境增加不少,从混淆后的代码量也能看出难度。zp_token的混淆代码将近2万5千行,hexin-v就1200左右,加速乐不到1000行。但依然还是对着浏览器,缺啥补啥,只不过zp_token增加了更多的判断。处理完所有缺失的函数和属性后,发现生成的zp_token还是过不了网站的检测,这时就得分析代码。
将近2万5千的混淆代码,用AST去除控制流平坦化后,还有将近2万行,剩下还有好多字符串和花指令可以还原,调试也是能调试,但比较麻烦。手上也没有称手的AST插件来还原这种混淆,过去两年一直忙于业务开发,疲于奔命,在AST还原上,一直只是停留在控制流平坦化的还原,要搞定这种字符串和花指令还是需要花些时间。此时只好请大佬出山,大佬直接将代码还原到了6000行,调试起来方便无比。
有了新代码,对着浏览器进行调试,依然是缺啥补啥,很快就搞好了,生成的zp_token一测试,通过。经过了zp_token的测试,补环境框架完善了好多,下一个目标可以搞搞其它反爬产品。现在发现,做Web反爬是真的不容易,代码客户端都能看到,真的难做。
AST还是值得学习的,这里推荐蔡老板的星球AST入门与实践,另外渔歌的星球Python爬虫应用学习也非常值得学习,渔歌是真大佬,又强又卷,真是没得讲。