二 壳一代码分析
初步分析
首先一般分析一个js,先将所有代码都压缩,看看总体的架构
可以看到壳1的代码并不多,大概1000行。
主要代码集中在最后一个函数大概700行。
其中几个重点一开始有一个变量,一个数组
看到一个while (1) 循环不出意外就是某数的控制流平坦化了。
仔细看一下这个控制流,对后续做动态转静态有重要的作用
控制流讲解
控制流平坦化主要思想就是不影响代码执行顺序的前提,将代码可读性降低
实际上通过_$Ps 拿到[10, 5, 8, 7, 0, 1, 2, 9, 3, 6, 4]这样一个数组。
就已经拿到了代码的执行顺序。
这里面每一个数字都可以将它看作一行代码。
这样的数组就