又来练手了,需求在这:
想想有点激动:
分析请求
用浏览器抓一波登陆包:
可以看到有 _abr_
和 beibeitoken
两个加密参数。
我们再找找发现beibeitoken
是上一个请求返回的:
好像难度一下减少了一半。
定位加密位置
还是老套路,搜就完事了:
通过关键字就找到一个相关文件,先进去看看。
先打上断点,重新登录一下,成功进入断点说明位置十有八九是找到了,F11进去看看里面的加密逻辑是什么样的。
看上去逻辑还蛮简单的,就是先这样再那样然后拼接在一起返回回来,完事儿~
分析加密
我们一个个跟进去研究下:
u,d,a,e,s
这几个加密都可以通过上图的方法追踪到对应的加密。
这里我们主要研究f
与m
的加密逻辑。
先看看f
的加密逻辑:
var f = d.length ? (0,l["default"])(d.join("&")) : ""
这里跟进去看看l["default"]
是什么:
这里的e
是初始化加密算法,我们再跟进去看看:
到这里就可以看到比较有标志性的内容了,包括下面的m
变量都可以参考这样追进去的操作,一直定位到加密定义的地方。
很多新手朋友是不太能追到上面这个位置,所以我有一个摸鱼的办法,把大致的代码复制到编辑器里,用编辑器自带的提示功能帮助我们快速定位这个是什么加密。
取巧的方法(不适用于其他的加密)
上面的代码是不是长得有点像,为了验证这个想法我把js里关于加密的代码扣下来look look
不得不说好的编辑器可以让你事半功倍,看到图中划线的地方这个参数的加密方法就一目了然了。
接下来继续分析m
的加密方法
m = (0,c["default"])(g, "ytU7vwqIx2UXQNsi");
有了上面的铺垫,我们继续追进去分析一波:
接下里就是编辑器表演的时候了好了,到这里就破案了。
其实上面使用编辑器提示的方法只能算是一种取巧,在简单的加密里使用是可以起到一丢丢的作用,但是还是建议你自己追到目标位置去发现加密算法到底是什么。