拼夕夕anti_content参数混淆逆向生成过程

该文章主要提供交流学习使用,请勿利用其进行不当行为!
如本篇文章侵犯了贵公司的隐私,请联系我马上删除!

如因滥用解密技术而产生的风险与本人无关html


先了解一下拼多多,如下复制百度百科。python


拼多可能是国内主流的手机购物APP,成立于2015年9月,用户经过发起和朋友、家人、邻居等的拼团,以更低的价格,拼团购买商品。旨在凝聚更多人的力量,用更低的价格买到更好的东西,体会更多的实惠和乐趣。web

2018年7月26日,拼多多在美国上市。  2019年9月7日,中国商业联合会、中华全国商业信息中心发布2018年度中国零售百强名单,拼多多排名第3位。2019年6月11日,拼多多入选“2019福布斯中国最具创新力企业榜”。 json

2019年10月25号(美国当地时间10月24号),拼多多股价报39.96美圆,上涨12.56%,市值增长至464亿美圆,超过京东。数组

2019年12月,拼多多入选2019中国品牌强国盛典榜样100品牌。微信


不得不说。拼多可能是个神话。。。。。
cookie


今天来搞一下拼多多的web页面的anti_content参数。app


为何搞这个参数呢,也是由于我在某论坛看到悬赏。python爬虫



哈哈哈哈,虽然看到的有点晚。
函数

可是不妨碍咱们研究。

毕竟大神太多了。

我搞了两天才把这个参数完成。


人和人差距太特么大了、、、、、



好了,好了,不废话了,,


咱们开干!


打开拼多多的网址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逆向(pythonORjs)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索