前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >去哪儿网pre,__m__,以及headers随里面机参数生成思路讲解

去哪儿网pre,__m__,以及headers随里面机参数生成思路讲解

作者头像
懒py夏洛
发布2022-06-02 08:15:09
6650
发布2022-06-02 08:15:09
举报
文章被收录于专栏:python爬虫与js逆向
该文章主要提供交流学习使用,请勿利用其进行不当行为!
如本篇文章侵犯了贵公司的隐私,请联系我立刻删除!

本来是不想碰js的,但是没办法!!

太无聊了!!!

在家呆到怀疑人生有没有!!

武汉加油!

进入正题!!

一、先从pre开始撒!!!

这个参数是今天的重点,敲黑板,记笔记撒!!!很有意思的这个参数!!

找这个参数找了半天,,没弄清在哪里生成的!!

就看到这个参数绑定在window上。

然后想着用油猴hook一下。。。。。。

然后用fiddler 上重定向????

搞得花里胡哨的!!!

pre的生成方式藏在html页面里。。将近2000行的混淆js。得!!!又是混淆。。。。掉头发接着。。。。。

这里就不直接下断点了。因为并没什么卵用。。。

当前请求的url是没变化,,但是返回的混淆js变了。。。

这里可以通过谷歌插件ReRes进行处理。

也可以通过fildder修改文件进行重定向!

我们这里简单些,,,怎么简单怎么玩!是吧!!

直接把script里面的js全部抠出来撒!!!

放到VSC里面,我们调试调试。

因为复制出来的代码,是被压缩成一行了,暂时我们不格式化,

自定义一个函数,把代码放进去。

因为我们看到这个参数是绑定在window上面的,我们就返回一下window._pt_。

打上断点。

我们运行一下。

然后发现结果出来了,,,,,,,,,,

就这么简单??????

no no no no!!

因为我们的VSC是直接配置的谷歌调试的,也就相当于,浏览器直接运行了这段js。

但是我们要用python去执行。

所以我们上我们的WebStorm。

运行后显示window未定义,,,那我们定义!!

然后,,,竟然是undefined。。。

有没有被vsc调戏的感觉,你能运行出来,为啥我webstorm运行不出来

,哈哈哈哈哈哈!!!!!!!

我们开始格式化代码!!!开始我们的S。B一般的调试环节!

然后内存严重溢出,,又是这玩意,内存爆破。。。。。。

然后我们修改一下!!接着运行!!

经过调试我们发现。。

这里有个捕获异常try。

那我们就懂了呀。

我们根据报错的信息,各种添加,其实就是检测window的属性,document的属性之类的。

这里有个地方检测location里面的href,,

当时我在想,如果真的检查这个href,那为什么我们在VSC里面能运行成功呀。。。

所以呀,这个href形同虚设,随便定义就行。

光这些定义,,,就废了我一个多小时。。。。。。。。里面又经过了一次内存溢出。。。

我们添加完运行!!

这个是不是和VSC和去哪生成的一模一样撒。

我们接着用python运行。

会报gbk的错误。

这里我搜了好多教程,找到了解决办法。

这里直接解决方法是通过修改subprocess.py中的Popen类的构造方法__init__中encoding参数的默认值为utf-8

修改为utf-8即可。

因为我们js代码中含有特殊字符!!

最终我们运行代码!!

pre的生成思路就是这样咯!!

二:__m__的生成思路!!

这里我们直接搜__m__,然后接着下断点就ok了!

这里挑重点讲。

var t =this.getTokenStr()是cookie里面的QN48的生成过程。

那么var n 呢,,这点官方很jian。。

根据cookie,,生成一个和时间戳一模一样的数字。。。。。。

然后接下来更有意思。

r = n % 2。

这是干什么的。。。。

看见这个return的列表没有。。

就相当于里面有两个加密函数,,

如果等于0就运行第一个。

如果等于1就运行第二个。

MD5的32位结果???可是用python怎么写也写不对。。。。

还是扣js吧,

三:headers里面有一个参数名随机的参数。

这里说一下这个参数名怎么生成的,

就在这个函数上面,就是这个参数名的生成结果!!!

至于参数。。就不讲了!!!

因为这个参数的生成过程和__m__的是一样一样的。。。。。。。。。。。。

可以自己动手调试调试。。

三:完!!!

那么今天的分享就到此结束了!!!谢谢大家的支持撒!!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python爬虫与js逆向 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 该文章主要提供交流学习使用,请勿利用其进行不当行为!
  • 如本篇文章侵犯了贵公司的隐私,请联系我立刻删除!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档