网址:aHR0cHM6Ly93d3cuanZpYy5lZHUuY24vemJiLzcwOS9saXN0OC5odG0=
前言:文章依旧只提供学习使用,不做其他用途
打开fiddler,使用hook直接定位到cookie加密的位置
跟到加密位置,发现是高度混淆的代码
打上断点以后发现断点不在原来位置断,此时就能发现这个JS是动态的,我这边选择的是本地替换,因为这个站会检测到油猴,fiddler,不能使用他们来进行替换
再次重复之前的操作,然后断到我们想要的位置,简单分析一下,发现这边我们只需要扣出三个函数就行
var R$iM = R$lh();
var R$kh = R$a0();
var R$f1 = R$ec();
这一步就很简单了,我们直接跟进去这三个函数,然后缺哪个补哪个
第一个函数跟第二个扣法完全一样,没什么技术含量。第三个函数就是个简单的时间戳
扣完这个时候我们就会发现他们的是随机变动的
这里感谢李成功大佬给的思路,全局看一下,这种值一般都是接口返回的,我们整个JS大概走一遍,发现有几处可疑的地方
全局发现这三个位置返回的函数是变动的,这种情况不确定的话,就都下上断点,一点一点跟进去看,最好发现只有这个R$dI函数生成我们要想的东西。
再次进行跟栈,最好跟到R$mq这个函数。发现这里就是遍历生成我们想要的数据
我一开始跟到这里我就很奇怪,我发现为什么是一个数组,而不是明文。李成功大佬让我去搜一下
fromCharCode这个函数 ,这时我才发现,他是直接把fromCharCode函数直接使用apply立即执行了,也怪我扣的时候不仔细,没有去查看这个关键函数
最后一步,使用这个函数打印一下数组里面的信息,发现就是我们想要的数据,就此,整个cookie加密算法扣出来了。
结尾:我第一次扣这种cookie加密并且混淆的代码,对我来说异常艰辛,再次李成功感谢大佬给提供的思路。我也希望我有一天能赶上大佬们的步伐。