瑞数5.5逆向:纯算法解密与关键点分析

这篇具有很好参考价值的文章主要介绍了瑞数5.5逆向:纯算法解密与关键点分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

瑞数5解密

通过纯算法解密,我们揭示了如何找到vm入口、hook cookie初始位置、生成cookie函数参数等关键步骤,为开发者提供深入了解瑞数5.5加密机制及解密方法的指南。

首先看请求,请求返回202大概率是(瑞数3,4).返回412是瑞数5

还可以看后缀值 MmEwMD=4xxxxx 就是4代瑞数,bX3Xf9nD=5xxxxx 就是5代瑞数

区别4带上来有1-2个无限debugger,这个直接过掉就好,还会有一个假cookie,5带没有

瑞数5.5纯算法解密,瑞数5.5逆向

1.meta content 动态的每次请求都会变化(在eval执行到第二层js代码会用到)

2.外链js,内容固定的,自执行函数会解密文件内容生成eval执行时需要的JS源码

3.自执行函数,逻辑不会变,但是名称会变,主要是解密外链JS内容,给window添加一些属性如$_ts,会在vm中使用;

像下图这样,JS来源显示为VM+数字的形式,这就说明这些JS代码是后来加载进引擎的。

1.首先找到vm入口call调用的 正则入口:\S{4} = \S{4}[\S{4}[\d{2}]](\S{4}, \S{4})

2.进去hookcooki,找到cookie初始位置

瑞数5.5纯算法解密,瑞数5.5逆向

cookie初始位置 正则入口:return \S{4}[.+] + \S{4} + \S{4}(\S{4}(\S{4}, \S{4}))

瑞数5.5纯算法解密,瑞数5.5逆向

3.找到生成cookie函数的入口

瑞数5.5纯算法解密,瑞数5.5逆向

瑞数5.5纯算法解密,瑞数5.5逆向

下生断点,接着下日志断分析出4个参数的生成逻辑

第一个参数代表瑞数版本,不用分析

第二个参数,下日志断,生成位置

瑞数5.5纯算法解密,瑞数5.5逆向

找到生成参数的逻辑,是由真假时间戳生成4个参数,生成一个16位数组,进行异或运算,转换成字符串来的

瑞数5.5纯算法解密,瑞数5.5逆向

16位数组生成逻辑,正则入口;\S{4} = \S{4}([\S{4}, \S{4}, \S{4}, \S{4}])

瑞数5.5纯算法解密,瑞数5.5逆向

第三个参数生成位置正则入口;return \S{4}[\S{4}[\d+]][\S{4}[\d+]][\S{4}[\d+]]([], \S{4});

瑞数5.5纯算法解密,瑞数5.5逆向

把128位的大数组,去除空值,拆分成一个大数组(核心关键)

第三个参数的参数位置,正则入口\S{4}[\S{4}[\d+]](\S{4}, \S{4}.length - \S{4});

瑞数5.5纯算法解密,瑞数5.5逆向

此处为去除128数组的空值

瑞数5.5纯算法解密,瑞数5.5逆向

此处多开几次分析后得出 就0,1,6,7需要找出其逻辑,其他参数固定不变的,扣出即可

瑞数5.5纯算法解密,瑞数5.5逆向

创建一个128位的空数组,下面表示起始位置0

瑞数5.5纯算法解密,瑞数5.5逆向

128[0]的生成逻辑,_                               5                       x                       就是                       w                       i                       n                       d                       o                       w                       .                            5x就是window.                5x就是window._ts, 赋值层代码后续给出,这个就是window.$_ts的参数生成一个16位数组,是128[0]20位数组中的一部分

瑞数5.5纯算法解密,瑞数5.5逆向

瑞数5.5纯算法解密,瑞数5.5逆向

瑞数5.5纯算法解密,瑞数5.5逆向

此处是取出window.$_ts的四个值生成一个4位数组,是组成128[0]的一部分

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HhbtoCpl-1679590866003)(瑞数5解密.assets/image-20230323232152704.png)]

此处就是,16位数组拼接4位数组,生成128[0]的20位数组,这里面的难点在于4位数组,该4位数组的顺序和值的映射很重要,需要分析出映射关系,当你扣出代码时,会发现window.$_ts的4个值是4个参数,这时候就要跟栈分析出20位参数,找到对应关系.个人感觉这是这里面最难的,麻烦的

瑞数5.5纯算法解密,瑞数5.5逆向

128[1]数组,这里的_$gM就是之前时间戳差值(这里注意一下,这里的插值和第2个参数用的是相同的,需要参数赋值固定)

瑞数5.5纯算法解密,瑞数5.5逆向

128[6]位,找到入口

瑞数5.5纯算法解密,瑞数5.5逆向

下日志段跟进去分析,下段技巧后面在分享

瑞数5.5纯算法解密,瑞数5.5逆向

首先生成了一个16位数组,扣出即可

瑞数5.5纯算法解密,瑞数5.5逆向

截取16位数组前4位生成128[6]

128[7]位,这里面需要多跟几遍,没啥技巧,我直接给出,我跟的流程,

瑞数5.5纯算法解密,瑞数5.5逆向

这里下日志段找到的,分析找到在哪赋值的,下断点,单步跟进去,进到支循环在跟

瑞数5.5纯算法解密,瑞数5.5逆向

这里面很乱,大小分支,多跟几遍到这里就好了,看下面输出,函数简单扣除即可,这个字符串要找到生成逻辑其实就是瑞数5.5纯算法解密,瑞数5.5逆向瑞数5.5纯算法解密,瑞数5.5逆向

瑞数5.5纯算法解密,瑞数5.5逆向

这里赋的值,扣除即可

参数找齐了

瑞数5.5纯算法解密,瑞数5.5逆向

下面最后一位参数,这个参数是2个16位数组拼接而成

瑞数5.5纯算法解密,瑞数5.5逆向

断点进去跟

瑞数5.5纯算法解密,瑞数5.5逆向

生成一个32位数组

瑞数5.5纯算法解密,瑞数5.5逆向

从32位数组中,抽出一个16位数组,是第4参数中的第一个16位数组

瑞数5.5纯算法解密,瑞数5.5逆向

第二个16位数组

瑞数5.5纯算法解密,瑞数5.5逆向

生成32位数组,参数齐了,有点乱,下面详细分析一遍

下面是赋值层分析

瑞数5.5纯算法解密,瑞数5.5逆向

定义两个数组,下面是向数组赋值,关键,后续要常用

瑞数5.5纯算法解密,瑞数5.5逆向

赋值window.$_ts,并清空,扣代码时,删除即可

瑞数5.5纯算法解密,瑞数5.5逆向

读取content,扣代码时,直接填写进来就行了

瑞数5.5纯算法解密,瑞数5.5逆向

20位key函数的映射关系,128[0]的后四位会用到

KaTeX parse error: Expected group after '_' at position 4: 5x._̲hT = $dY[KaTeX parse error: Expected group after '_' at position 4: 5x._̲hT](KaTeX parse error: Expected group after '_' at position 5: p2, _̲gM);这里是4为参数的生成逻辑,理解下就行了,补环境会用到

我这纯扣算法用不到,理解下就行了

瑞数5.5纯算法解密,瑞数5.5逆向

这个分支生成了一个4位数组,充当第6位就是128[6]

瑞数5.5纯算法解密,瑞数5.5逆向

此分支生成的真假时间戳,懒得放图了,

赋值层分析完毕

逆向分析,下面都是重点

_window.                                                  t                               s                       初始值                       ,                       和经过                       i                       n                       d                       e                       x                       .                       j                       s                                  的                          w                               i                       n                       d                       o                       w                       .                            _ts初始值,和经过index.js的_window.                ts初始值,和经过index.jswindow._ts值

content读取,计算,vm入口

上面的两个大数组

一个填充的20位函数(生成128[0]中的4位数组关键)

一个生成第6位数组的分支,分支后面替换出扣出的代码即可

时间戳的分支(涉及到第二位参数,和128[1]数组)

128位数组

32位数组

下面是扣的一部分关键代码

瑞数5.5纯算法解密,瑞数5.5逆向

需要替换

瑞数5.5纯算法解密,瑞数5.5逆向

扣操作content时需要替换

瑞数5.5纯算法解密,瑞数5.5逆向

瑞数5.5纯算法解密,瑞数5.5逆向

瑞数5.5纯算法解密,瑞数5.5逆向

这些都是之前赋值window.$_ts需要替换,第20位有可坑那个函数需要二次加载在能出来,要不会显示空

瑞数5.5纯算法解密,瑞数5.5逆向

瑞数5.5纯算法解密,瑞数5.5逆向

瑞数5.5纯算法解密,瑞数5.5逆向

瑞数5.5纯算法解密,瑞数5.5逆向

瑞数5.5纯算法解密,瑞数5.5逆向

瑞数5.5纯算法解密,瑞数5.5逆向

最后一点分享

插装输出的前提是,在每生成目标值之前,下日志,然后等执行输出日志结果然后分析

瑞数5.5纯算法解密,瑞数5.5逆向

此图第一个参数是主分支,第二是支分支,后面两个是需要分析的参数,这样的好处是因为有的时候跟着跟着

就会找不到自己处在那个位置很容易跟丢,这样就不会很乱,所以大家下段最好学会用Watch

'索引1_KaTeX parse error: Expected group after '_' at position 5: ZX',_̲ZX,'索引2 _KaTeX parse error: Expected group after '_' at position 6: qQ', _̲qQ,'目标1 KaTeX parse error: Expected group after '_' at position 6: lI', _̲lI,‘参考’,$lE()

下日志断,不要图省事,写清楚不至于乱,最好弄个参考值,可以是时间戳啥的,这样知道自己是不是在主分支里,不至于跟丢

瑞数5.5纯算法解密,瑞数5.5逆向
推荐无痕模式下,Script,还有在VM中逻辑不变,但是名称会变,这时候最好固定一套在本地分析,扣代码方便文章来源地址https://www.toymoban.com/news/detail-422332.html

到了这里,关于瑞数5.5逆向:纯算法解密与关键点分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 瑞数 6 代逆向纯算法大致流程分析

    aHR0cHM6Ly93d3cudXJidGl4LmhrLw== 第一次请求响应 202,响应内容中有一段 JS 代码会请求一个 JS 文件,Cookie 生成的核心代码由这个文件中的代码生成,并通过 eval 执行。 Cc2838679FS 55tgE9EWzzOxyDeuMRQ8rVOKqNZG4W9awmtpvnl1jpeviOqlzHzrnraSnPN8F2w6OqgnjY6ueb1NAN2kE03ryDG Cc2838679FT 6RifvpbsLR03qqqDtteJ.XqqugbVLuRivnvi

    2024年02月08日
    浏览(50)
  • 2D人脸关键点转3D人脸关键点的映射~头部姿态笔记

    对通过相机参数计算图像上的二维坐标到三维坐标的映射进行简单探讨。         学习的话直接看他们的就好,我仅是拾人牙慧,拿GPT写给自己看的,图也是直接搬运的别人画的,以下链接有很完善的理论研究和代码提供。 https://medium.com/@susanne.thierfelder/head-pose-estimation

    2024年02月04日
    浏览(51)
  • mmpose关键点(四):优化关键点模型(原理与代码讲解,持续更新)

    在工程中,模型的运行速度与精度是同样重要的,本文中,我会运用不同的方法去优化比较模型的性能,希望能给大家带来一些实用的trick与经验。 有关键点检测相关经验的同学应该知道,关键点主流方法分为Heatmap-based与Regression-based。 其主要区别在于监督信息的不同,Hea

    2024年02月08日
    浏览(66)
  • 描述点云关键点提取ISS3D、Harris3D、NARF、SIFT3D算法原理

    ISS3D(Intrinsic Shape Signatures 3D ):ISS3D算法是一种基于曲率变化的点云关键点提取算法。它通过计算每个点与其近邻点的曲率变化,得到该点的稳定性和自适应尺度,从而提取稳定性和尺度合适的关键点。 Harris3D :Harris3D算法是一种基于协方差矩阵的点云关键点提取算法。它通

    2024年01月25日
    浏览(43)
  • 关键点数据增强

    1.关键点平移数据增强 2.关键点旋转数据增强 3.关键点可视化 4.json2txt(用YOLOV8进行关键点训练) 5.划分训练集和验证集

    2024年02月09日
    浏览(41)
  • Mediapipe人脸关键点检测

    MediaPipe是由google制作的开源的、跨平台的机器学习框架,可以将一些模型部署到不同的平台和设备上使用的同时,也能保住检测速度。 从图中可以发现,能在Python上实现的功能包括人脸检测(Face Detection)、人脸关键点(Face Mesh),手部关键点(Hands)等。利用C++能实现更丰富

    2024年02月02日
    浏览(42)
  • opencv-人脸关键点定位

    2024年02月12日
    浏览(54)
  • 解剖学关键点检测方向论文翻译和精读:基于热力图回归的CNN融入空间配置实现关键点定位

    Abstract: In many medical image analysis applications, only a limited amount of training data is available due to the costs of image acquisition and the large manual annotation effort required from experts. Training recent state-of-the-art machine learning methods like convolutional neural networks (CNNs) from small datasets is a challenging task. In this wo

    2024年02月09日
    浏览(106)
  • OpenCV实现人脸关键点检测

    目录 实现过程 1,代码解读 1.1 导入工具包 1.2导入所需图像,以及训练好的人脸预测模型 1.3 将 dlib 的关键点对象转换为 NumPy 数组,以便后续处理 1.4图像上可视化面部关键点 1.5# 读取输入数据,预处理 1.6进行人脸检测 1.7遍历检测到的框 1.8遍历每个面部 2,所有代码 3,结果

    2024年04月23日
    浏览(60)
  • MediaPipe人体姿态、手指关键点检测

    Mediapipe是google的一个开源项目,用于构建机器学习管道 提供了16个预训练模型的案例:人脸检测、Face Mesh、虹膜、手、姿态、人体、人物分割、头发分割、目标检测、Box Tracking、Instant Motion Tracking、3D目标检测、特征匹配、AutoFlip、MediaSequence、YouTube-8M 肢体识别本质上还是分类

    2024年02月08日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包