如因滥用解密技术而产生的风险与本人无关!
先了解一下拼多多,以下复制百度百科。
拼多多是国内主流的手机购物APP,成立于2015年9月,用户通过发起和朋友、家人、邻居等的拼团,以更低的价格,拼团购买商品。旨在凝聚更多人的力量,用更低的价格买到更好的东西,体会更多的实惠和乐趣。
2018年7月26日,拼多多在美国上市。 2019年9月7日,中国商业联合会、中华全国商业信息中心发布2018年度中国零售百强名单,拼多多排名第3位。2019年6月11日,拼多多入选“2019福布斯中国最具创新力企业榜”。
2019年10月25号(美国当地时间10月24号),拼多多股价报39.96美元,上涨12.56%,市值增加至464亿美元,超过京东。
2019年12月,拼多多入选2019中国品牌强国盛典榜样100品牌。
不得不说。拼多多是个神话。。。。。
今天来搞一下拼多多的web页面的anti_content参数。
为什么搞这个参数呢,也是因为我在某论坛看到悬赏。
哈哈哈哈,虽然看到的有点晚。
但是不妨碍我们研究。
毕竟大神太多了。
我搞了两天才把这个参数完成。
人和人差距太特么大了、、、、、
好了,好了,不废话了,,
我们开干!
打开拼多多的网址http://yangkeduo.com/
然后在搜索接口随便搜个东西。
这里我们找到接口。
然后并未看到anti_content这个参数。
那我们下拉,或者点击销量,价格等。
然后看到这个参数。密密麻麻的一大串的东西。
那就先搜索一下这个参数名吧。
然后和anti_content相关的都看不出个所以然。
那就换xhr调试吧。
可以看到网址的type为xhr。
然后点击价格。。那个都行。。
我们在这里看到了这个参数
根据右边的调用栈定位生成的位置。
逐一分析。
然后在这里看到:
params: r.requestModelParams
打上断点,重新发送请求。
继续跟右边的调用栈查找。
找来找去啥也没找到。。。。。。。。。。。。。
在第三个调用栈中,我们分析到。n就是全部的参数。
i就是anti_content参数。
那继续追。
到这个函数中。t就是我们的anti_content参数,
而且这个函数只有t参数,
而且这个函数小。。
是和我们下断点观察。
打上断点。开始观察。
然后t显示undefined
我们f8执行。
依旧是undefined
继续
还是undefined
然后还是,还是,还是。。。
然后看到
t = kt{}。
然后再次运行,
t就是我们需要的anti_content参数了。
我们可以捋一捋。
先是kt={}
而后就是我们的参数了。
那就是中间发生了不可见人的秘密。
我们f11进入,,然后单步f10到这里。
可以看到PromiseValue。
大家可以搜一下Promise。
看到这个地方,有个一步定位加密的方法,
就是全局搜索Promise。
如果走f11。。能走到天荒地老,才能看到加密的位置。。
这里不废话,就搜索Promise
在这里看到,这个js文件叫风险控制,,
那百分一万就是他呀。
进去瞅瞅。
看到Promise。
我们下个断点撒。
然后打印。
经过分析。
其实Kt()就是加密的结果。
知道加密位置了,那我们就进入这个函数,看看咯!
这个函数有点长。我分两次讲解。
前半部分是给n添加方法。直接复制既可。
加密的过程全都在这里。
混淆得马马虎虎吧。
属于轻度混淆。
讲一下。。
这个R参数,就是随机的,“”和“N”,额,固定下来就行。。
e参数,,,就是个大数组。。。
由十几个小数组搞成的,,
小数组里面验证了鼠标的位置。
后续还验证了元素的高宽。
最后的加密结果。
是两个拼起来的。
加密过程基本上就是这样。
里面涉及到一个位置。
就是这个地方。
这里运行代码不会报错。。。因为没有就是undefined,或者flase。
验证了ua,cookie,location,document,window相关的十几种属性。。。
我是因为有一个时间戳出现了问题,才偶尔发现了这里。
也算是因祸得福。哈哈哈哈哈。
接下来我们再看看整个js文件。
因为谷歌没有折叠代码的功能。
我们拷贝到开发工具里。
可以看到整个js代码。
加密过程就在第二个函数里面。
这里看第二个函数。
额。。换个工具,,,这个折叠有问题。。
可以看到。。。这些函数全在一个大数组里面。。。
这里可以这样搞,因为你要按照缺什么补什么的思路,,,那估计能扣到明年去。。。我们全部复制出来,修改修改,,然后,执行函数,根据错误,调试和网页一起进行。。
那个地方错误了,就会很明显的发现。
我这里写了js接口。。
用python的exejs和js2py执行。。。。实在受不了。。太垃圾了了,听说作者都不维护了。。。。。
参数里的这两个,都可以在html里面找到。
第一页是html。然后返回list_id和flip。
然后后面的页数都是json数据。
flip也在其中。
还有如果写js接口,,
如果你定义了
window.Buffer = undefined;
js会报错。
这里看到执行效果。
本文分享自 python爬虫与js逆向 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!