美团滑块JS分析

仅供学习研究 。请勿用于非法用途,本人将不承担任何法律责任。
说在前面:需要安装NodeJs 8.x以上版本
今天我们来聊一下如何把美团商家后台编译后的JS代码拉到本地跑起来,并利用JS模拟登陆
想看如何分析请点击
这一版的加密逻辑我已经分析出来了分别在这两个文件里slider.js yoda.js里面会有很多无用的代码,因为逻辑比较复杂代码不好扣,所以只有使用笨方法,把代码全部复制下来,复制完成后就开始调试一步步修a改代码,知道运行成功
先来调试yoda.js运行node yoda
美团滑块JS分析_第1张图片
这里报个window对象为定义,因为window是浏览器端的,我们本地是没有的所以需要自己去定义,在代码的最上方定义var window = {}定义好之后再来运行一次
美团滑块JS分析_第2张图片
window对象没问题了,但是又有新的BUG QAQ报的还是未定义,那么再来定义下这个对象,在运行
美团滑块JS分析_第3张图片
果不其然又报错 这次报的是函数未定义 仔细寻找就会发现 babelHelpers这个对象在下面已经定义过了,把这个给干掉就行了
美团滑块JS分析_第4张图片
然后继续,遇到为定义的对象就顶一下,缺少属性的也添加一下
美团滑块JS分析_第5张图片
如上图 如果缺少 clientWidth这个属性就去浏览器里执行document.documentElement.clientWidth就可以拿到对应的值。
如果遇到其他错误例如下图
美团滑块JS分析_第6张图片
PS:红色框内的就是报错具体代码,按住ctrl + 鼠标左键点进去
发现是无用代码就把整段代码都给注释掉(如何判断?:这就需要去浏览器里单步调试了,后面会说到)
全部修改之后会定义如下对象,然后全部放到window对象里
美团滑块JS分析_第7张图片
这个文件就算是全部调试完成了最后需要把window对象暴露出去
美团滑块JS分析_第8张图片
然后开始调试slider.js文件 调试前先把yoda.js文件倒入进来
美团滑块JS分析_第9张图片
执行node slider.js
美团滑块JS分析_第10张图片
发现有个BUG,但是为什么报错呢,我们该怎么改呢,现在就要用到我们之前说的那种方式,浏览器里单步调试,我们复制一段代码去浏览器搜索,然后打个断点刷新页面
美团滑块JS分析_第11张图片
发现 他先是调用createElement函数创建一个dom节点,下面的是设置这个节点的宽高,这些都是浏览里的方法,本地是没有的所以直接注释掉就行,其他同理后面的报错都可以直接注释掉,直到运行无报错
美团滑块JS分析_第12张图片
然后在下面添加上图代码(后面会贴代码链接)config对象就是page_data请求的响应内容,然后运行时如果遇到下图错误 点进框内的代码,直接注释掉即可
美团滑块JS分析_第13张图片
美团滑块JS分析_第14张图片
下图错误信息 可直接把代码替换成一下代码
美团滑块JS分析_第15张图片
美团滑块JS分析_第16张图片

var i = {};
var t = `
  

请向右拖动滑块

3s 未完成验证,请重试。
`
i.innerHTML = t

就是加载滑块验证码,直接注释掉貌似也行
美团滑块JS分析_第17张图片
上图代码都改成 new Function,报错地方在try catch 里的,把异常捕获的代码给注释掉在运行
美团滑块JS分析_第18张图片
上图代码需要改成
美团滑块JS分析_第19张图片
下图报错代码改成window.btoa(a)即可
美团滑块JS分析_第20张图片
当你遇到如下错误信息,就说明已经快完成了

我们只需找到入口函数 改一改
美团滑块JS分析_第21张图片
在运行,意外的发现结果出来了
美团滑块JS分析_第22张图片
是不是以为这样就OK了呢,其实并没有后面还需要改一些,不然加密出来的结果提交会失败
最后需要更改一下代码
美团滑块JS分析_第23张图片
美团滑块JS分析_第24张图片
有些默认值自行浏览器里获取,更改后在运行,没问题之后把get_behavior_token函数暴露出去,我们使用NodeJs里的Koa框架搭建一个Web服务,来获取加密结果
最后在使用python写个测试脚本,我这边测试的网站是美团商家后台,其他的都适用核心加密逻辑都是一样的,无非就是参数不同。
地址 账号密码随便输

如果正常返回了response_code就说明Js破解成功了
点击获取代码

你可能感兴趣的:(美团滑块JS分析)