某数新五代(11-21,js逆向)

发布时间:2022-06-29 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了某数新五代(11-21,js逆向)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

首先 到目前为止,我对某数的了解还是不够的,一些环境检测啥的我也没完全弄明白,以下分析的只是我的个人思路,可能分析得不够准确,见谅啦

参考文章:
https://mp.weixin.qq.com/s/r3FXjvT5Mm9Ikg_bDEadcw
https://mp.weixin.qq.com/s/IZUY2VHAKsFb_DXmvpSbrg
https://mp.weixin.qq.com/s/UYPnanAHnVYBh2t6f-UkPA
https://mp.weixin.qq.com/s/YaChHGaIxA13xE03KYD-Sg

一、判断一个站是某数

当一个站首页源码有这个

某数新五代(11-21,js逆向)

并且他的cookie长这个样

某数新五代(11-21,js逆向)

那基本就可以确定这是某数了(判断是几代某数的,可以看他cookie的首位数字)

二、找到进入第二层入口 无痕模式,打上script,然后就是跳过,来到这里

某数新五代(11-21,js逆向)

这个js会被加载进html,且给window.$_ts赋值

继续跳过,进到这里

某数新五代(11-21,js逆向)

因为这是新五代没办法搜call,这时候可以hook cookie或者eval找到第二层的入口,也可以搜 “]](_”,有16个,找到跟这个_$nX = _$NJ[_$yP[30]](_$JG, _$rr);结构相似的就是入口了,然后就是单步进去

注:这里widnow.$_ts的值第二层会用到

某数新五代(11-21,js逆向)

三、第二层分析

接下来要扣代码,因为网站是动态的,得静态调试才行,可以用fiddler进行本地替换,把html和那个js文件替换掉。

第二层其实用ast解混淆会好分析很多,奈何我ast基本功比较拉,不管了,大力出奇迹

接着分析… 首先是初始化

某数新五代(11-21,js逆向)

某数新五代(11-21,js逆向)

第二张图箭头处var _$fM = _$_A(889);是生成一个16位数组,然后取后四位,这四位数组后面会用到

接着进入主流程… 搜(938, 1

某数新五代(11-21,js逆向)

单步进来,然后就是硬刚混淆代码了,一直一直一直一直一直一直一直单步,会走到这里

某数新五代(11-21,js逆向)

某数新五代(11-21,js逆向)

这里的_$Di_$Df后面会用到,并且_$Df的值会给他换一个变量存起来,一定要注意这里的时间戳

某数新五代(11-21,js逆向)

然后又是一直一直一直单步,中间会有很多环境检测(如selenium,navigator这些),我这里跳过

直接来到128位数组开始的地方

某数新五代(11-21,js逆向)

首先第一个push的是20位数组(前16位是对window.$_ts[21]进行加密的,后四位是重中之重,是经过多次映射关系匹配的,一定注意这四个数字的顺序,不然过不了的

某数新五代(11-21,js逆向)

接着是对上面提到的_$Df进行一些操作后加密,生成8位数组

某数新五代(11-21,js逆向)

接着是两个固定数字和两个固定数组

某数新五代(11-21,js逆向)

接着是初始化的时候提到的四位数组

_$Yq[number++] = _$fM; //初始化的时候生成16位数组的后四位

接着是固定数组和固定的数字

某数新五代(11-21,js逆向)

接着会先占位,等到最后生成14位数组的时候,这里会再添加四位数组

_$Yq[number++] =undefined;

接着会生成三个20位数组(或者四个20位数组),这是根据LocalStorage加密生成,但这些数组偶尔会出不来,这个问题请教了nanda老哥,这是他的解答,太顶了,nanda yyds

某数新五代(11-21,js逆向)

还有LocalStorage里面的参数一般可以写死除非某些站检测严格,也可以不写,虽然最后生成的cookie短了些,但也能获取200页面

接着就是有些固定的值和14位数组了

某数新五代(11-21,js逆向)

接着就是concat操作,到此128数组就结束了

某数新五代(11-21,js逆向)

写到这已经没啥力气…下面是生成32位数组的,就直接放笔记出来了…

某数新五代(11-21,js逆向)

接着…终于开始生成cookie了

这里拿到window.$_ts[22]

某数新五代(11-21,js逆向)

然后之前生成的128数组和这个数字进行拼接,再加密,最终生成一个数字

某数新五代(11-21,js逆向)

接着会对上一步生成的数字进行加密生成四位数组,最后再拼接

然后对之前生成的时间戳进行检测,最后会生成一个16位数组

某数新五代(11-21,js逆向)

然后最终的cookie就生成了

var cookie=_$Xz[643] + _$7e + _$e_(_$7K(all_arr, new_32_arr));

啊,终于结束了

总结一下:单步,单步,单步,刚开始跟的时候会一脸懵逼毫无思路的,这时候一定要耐心单步哈哈哈,和那些变量、函数混个脸熟,大概知道这个变量代表什么,这个函数大概做了什么操作。
整个流程还有很多细节,没法一一说全,只能靠自己去踩坑啦

接下来的话有时间打算用python还原整个算法,如果最后做不出来就是我太菜了哈哈,还得努力呀

最后最后,谢谢nadna和smartpang的解答

某数新五代(11-21,js逆向)

脚本宝典总结

以上是脚本宝典为你收集整理的某数新五代(11-21,js逆向)全部内容,希望文章能够帮你解决某数新五代(11-21,js逆向)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: