阿里231,递归函数字符串解密

前言

在分析fireyejs.js内部的逻辑的时候,碰见个递归函数调用,最终是返回一个字符串,本篇会讲解一下作者是如何从0(一脸懵逼的去跟)到大致理清思路,最终将算法给复现出来的(分析过程偏小白向)。

开始

如图:

在这里插入图片描述

D(44, 2, -1)

初次遇见它时,目前看到它只是为了拿一个toString,具体来讲是将toString这个字符串放入一个数组里,目前观测到的是U这个数组

在这里插入图片描述

再之后从U数组拿出来这个字符串又将值赋给了Ao

在这里插入图片描述

目前看到的字符串不断的挨个字母挨个加的就有Ao,还有Hr

每次拼接都是跟踪一个值,比较另一个值的长度

在这里插入图片描述

当小于它长度时,继续拼接字符串,否则进入下一个分支

即小于的那个长度,就等于字符串的长度

又发现一个

在这里插入图片描述
两次进去都有发现进入这个分支:

在这里插入图片描述

看样子就是最终给了po一个最开始的那个Ao的值

感觉这次像是拼接字符串为最终的performance,po则是上图中根据U数组最后一位来取的一个字符串

在这里插入图片描述

是否终止Lr继续拼接的条件就是no

在这里插入图片描述

拼接完是个 perfor,之后让Ao(原本是个空字符串) 拼接了它的值

在这里插入图片描述

感觉它进去那个之前,push的值,都与最后的字符串有关:

在这里插入图片描述

随后就又进入了63809之前拼接performance拼了一半的分支:

在这里插入图片描述

写代码简单验证一下,下一次拼接的字符串应该是mance:

在这里插入图片描述

确实如此

拼接完之后猜测一波应该要return了

在这里插入图片描述

果然,只不过是对Hr ++ 之后,并且判断是否小于xo之后才进入return分支的

在这里插入图片描述

最终将拼接好的字符串push进了U数组中,然后return,之后pop弹出赋值给其他变量。

在这里插入图片描述

这个便是其中的递归函数字符串解密的流程,还有一些XOR和ASCII 偏移的加密:

在这里插入图片描述

在这里插入图片描述

这些算法我都放在了星球里边了,欢迎大家一起交流学习

目前星球成品:

  • 阿里v2 astkey,最新版2.1.0可用
  • 顶象ac,最新版可用
  • 某验ast反混淆插件 可用
  • 阿里231递归函数,字符串解密 可用
  • 东方航空请求和响应 加密和解密 可用

加入链接(无下载行为支持退款,有下载行为后不支持退款): https://t.zsxq.com/GEIze

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逸A

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值