C++,python,热爱算法和机器学习
全部博文(1214)
分类: 网络与安全
2016-10-08 17:09:09
上一篇文章的最后,我们列出来需要解决的一些问题。这些问题基本上都与参数有关,因此从这里开始我们便会开始研究他们。
首先,要用到的工具是浏览器F12 Dev Tool里的Debugger,Chrome和Edge的都可以。
开始之前先确保你对JavaScript有最基础的认知,达到语法上能看懂就好了。
---------------------------------------------------------------------------------------
首先要探究的是1号包里的ts参数,上一篇文章中我们作出了它是随机数的假设。切换到Debugger标签页,在搜索框中输入ts=进行搜索:
可以看到,ts参数的确是随机数没错。这样我们就可以写代码模拟出1号包了。
接着是回调函数名geetest_xxx中的xxx,我们想知道这里的xxx是否也是随机数。在搜索框中寻找callback=",结果有两个,一个是gt.js中的:
s.src = protocol + apiServer + "getfrontlib.php?gt=" + config.gt + "&callback=" + cb;
从这里往上追查cb,找到了这一行:
var cb = "geetest_" + random();
random并不是JS原生函数,在同一页面找到random的定义:
var random = function () { return parseInt(Math.random() * 10000) + (new Date()).valueOf(); };
我们一开始猜测它是单纯的随机数,实际上它是一个0-10000的随机整数加上目前的UNIX时间。这个实际上也非常好模拟。
至此,对于上次留下的5个问题中,第一个问题:
我们得出了答案:
是的,就是这样,这篇文章无耻地在这里结束了????(一天一更就是这样)。原本想把图像还原也开个头的,但是有点累了不想写了。我还得尽快在专栏微软信仰中心里更新之前挖下的必应词典API的坑啊(有兴趣的可以去看看)。
下篇文章里我们将一起探究打乱了的图像是如何被还原的,而在再下一篇文章里,我们将会开始写C#来实现这个还原。
还是那句啦,喜欢我的文章的话记得关注点赞!