js逆向JSVMP篇某程算法还原(二)

时光之旅

共 1104字,需浏览 3分钟

 ·

2023-07-03 09:45

提示!本文章仅供学习交流,严禁用于任何商业和非法用途,如有侵权,可联系本文作者删除!


前言:

  前面分析过手机端网页版的sent参数,这一篇是分析的是PC端网页版的testab参数,其实当你看到这两个参数的时候,你会发现它们特征都是一样的,如果你还原过sent参数的算法,大概会想testab参数就是sent参数吧,就会拿sent参数的算法去试一下,然后会发现用不了,用不了就对了嘛,以为某程闹着玩呢,就改个名字就是另外一个参数了?


加密入口定位:

  全局搜索testab,首先有两个js文件,加密位置在第一个js文件中,点击即可跳转,如下:
70e24a78ebc8e36038c30006c6f08f70.webp
这里其实有个坑,上图中的仅仅是加密参数生成的位置,如果从这个地方进去调试vmp,那么到死都拿不到全部的日志信息,因为这里只是将生成的64位数组转为testab参数的地方。不过可以通过这里找到加密的位置,在这个地方断住之后如下:
782e553563195f4b0244e4def510cf6d.webp
上图圈出的位置才是加密参数真正开始生成的位置,所以这里算是一个小坑了,然后直接点击圈出的地方跳转过去即可,如下:
9c76b8cd5e92f88e1dc8c99ec99e3e99.webp
这里的window.eval(n)就是入口了,之后就可以从这里进入vm里面开始分析了。从上图的代码中也能看出,它是做了时间校验的,这里注意下就好了, 加密入口找到了,接下来就是开始进去分析代码了,当然详细的分析过程当然就不写了,主要是不想花这个时间,整个算法其实是和sent参数一样的,最后有改动的只有如下部分:
a0aed49cd9334a3fe7603a7b37d34f3f.webp
上面这部分呢是还原出来的算法的部分,这部分也可以说是整个算法中最重要的部分了,tsteabsent的算法中也就这个地方不一样,还记得在还原sent参数算法那篇文章中,有说到一开始会将b对应的这段字符串通过decode函数转成一个二维数组,可能大家不一定记得,先来看看初始的传参,如下:
6fe36960937879bbd32f7c0383c26218.webp
说的b就是_bot_e9e6c中的,而这里的这一步可理解为是从d中取值,这也就是为啥sent的算法不能直接用于tsteab的原因,主要就是因为这里取的范围不一样,然后下面是整个算法的顺序(只是我还原的算法顺序):
eea9a3ab0971a760be17ef98c18cfacf.webp
最后看一下:
36a74ab5b767cfeba25b0c6fd560669b.webp
7d2f6af8d1560370fc9cfcb2b457135e.webp
542a83f3e9fd9f56c48d29927655bc1c.webp
成功拿到数据。

代码在下方,需要的自取

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.



.

.

.

.

.

.

.

b360460fac21304d38821dcc3c868597.webp

可以,大家都有一颗白嫖的心,不愧是顶尖程序员,代码肯定不可能直接给的啦。

浏览 199
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报