声明:本文只作学习研究,禁止用于非法用途,否则后果自负。如果侵权到了您的权益,请立即联系我删除!
前言
vmp学习也有段时间了,正好利用一些案例网站来实战一下
一、
案例网站:aHR0cHM6Ly9tYWlsLnFxLmNvbS8=
我这里是输错一位自己的账号,就出滑块了,随便划一下,出现xhr请求
目标分析
collect: 主要逆向参数
tlg: collect参数长度
eks: js文件中某动态变量的值
sess: 前置链接中的值
ans: 滑块坐标信息
pow_answer: 密码密文
pow_calc_time: 不清楚是啥,写死就行,也许滑动时间?
ok,看起来只要看看collect的值怎么生成的就ok了,直接上全局搜索大法
定位到此处,滑动滑块断住,参数由o.getTdcData()而来,继续跟入,a其实等window.TDC.setData({ ft: “qf_7P___H”}),然后由window.TDC.getData(!0)得出最后结果
继续跟入,来到单独的js文件,是个vmp,全部扣下来,放在本地开始补环境,主要思路为:
1,找到插桩点,尽可能多,详细,不怕数据太多看花眼,就怕漏掉关键信息,可以稍微改造一下插桩点,因为信息实在是有点多,这里是只打印出现setLocalDescription环境之后的内容,可以省掉很多执行时间,可以根据补环境的进度,进行改变
2,基于vmp的原理,主要插桩为函数执行(比如apply),堆栈数组更改,typeof,==undefined等类似检测的操作
3,环境检测呢,一些简单参数属性就不说了,说一些比较印象深刻的,我是自己简单实现了一些dom操作的功能,比如
经典的canvas操作也是有检测,比较掉头发的就是outerHTML,innerHTML的转化操作,给一段标签文本,给一段style文本,求文本指定标签的样式,花费最多的就是这些dom操作了,到最后好像得有30+的标签都用过,
再就是RTC,前段时间才听说RTC提交本机ip,后脚就看见有这个属性,也是注意了一下
然后就嗖了一下,600行的样子,出结果了,我是没用代理对象补的环境,然后有些多余的环境是其他项目复制过来的,虽然有些没检测到,但是以防万一
接下来就是验证阶段,流程代码写好,xpath写好,ddddocr识别缺口写好,嗖的一下
总结
听大佬说就算errorcode为0也不一定是过了,但是由于太懒了,就不去继续验证了