使用 AST 技术还原混淆代码

在上一节中,我们介绍了 AST 相关的基本知识和基础的操作方法,本节中我们就来实际应用这些方法来还原 JavaScript 混淆后的代码,即一些反混淆的实现。

由于 JavaScript 混淆方式多种多样,这里就介绍一些常见的反混淆方案,如表达式还原、字符串还原、无用代码剔除、反控制流平坦化等。

表达式还原

字符串还原

无用代码剔除

反控制流平坦化

总结

在本节中,我们通过四个案例讲解了利用 AST 还原混淆代码的过程。案例虽然基础,但是其中的思路值得深人研究。有了 AST 的加持,很多混淆代码都有机会被还原得更加简洁、易读,从而能大大降低我们逆向代码的难度。