二 壳一代码分析

初步分析

首先一般分析一个js,先将所有代码都压缩,看看总体的架构

超级反爬学习系列2篇-壳1代码分析,控制流讲解

超级反爬学习系列2篇-壳1代码分析,控制流讲解

可以看到壳1的代码并不多,大概1000行。

主要代码集中在最后一个函数大概700行。

其中几个重点一开始有一个变量,一个数组

看到一个while (1) 循环不出意外就是某数的控制流平坦化了。

仔细看一下这个控制流,对后续做动态转静态有重要的作用
超级反爬学习系列2篇-壳1代码分析,控制流讲解

控制流讲解

控制流平坦化主要思想就是不影响代码执行顺序的前提,将代码可读性降低

实际上通过_$Ps 拿到[10, 5, 8, 7, 0, 1, 2, 9, 3, 6, 4]这样一个数组。

就已经拿到了代码的执行顺序。

这里面每一个数字都可以将它看作一行代码

这样的数组就是一个代码团

而它的执行顺序是不变的,不论中间的数字如何改变,

代表“_$e7 = window, _$lt = String, _$8N = Array;”
这一行代码的数字它一定在这个数组的第二个位置

能得到这个结论主要就是控制流不影响代码执行顺序

所以我们可以通过匹配执行数组,拿到确切某行动态的代码。

相关文章:

  • 2022-12-23
  • 2022-01-30
  • 2021-12-27
  • 2022-02-15
  • 2022-01-14
  • 2021-04-26
猜你喜欢
  • 2021-09-03
  • 2021-11-03
  • 2021-05-10
  • 2021-04-03
  • 2021-05-21
  • 2021-06-20
  • 2021-05-17
相关资源
相似解决方案