JS逆向-常见压缩和混淆之webpack(1)

前言

本文是该专栏的第40篇,后面会持续分享python爬虫干货知识,记得关注。

在web系统发展早期,JS在web系统中承担的相应职责并不多,JS文件比较简单,也不需要任何的保护。而随着JS文件体积的增大和前后端交互增多,为了加快http传输速度并提高接口的安全性,出现了很多压缩工具和混淆加密工具。

对于代码混淆,其本质是对于代码标识符和结构的调整,从而达到不可读不可调试的目的,常用的混淆有字符串,变量名混淆。举个例子,把字符串转换为_0x,把变量重命名等,从结构的混淆包括控制流平坦化,虚假控制流以及指令替换。代码加密主要有通过eval方法去执行字符串函数,通过escape()等方法编码字符串,通过转义字符加密代码,自定义加解密方法,如RSA,base64,AES,MD5等,又或者通过一些开源工具进行加密。

另外目前市面上比较常见的混淆还有ob混淆,特征是定义数组,数组位移。不仅JS中的变量名混淆,运行逻辑等也高度混淆,应对这种混淆可以使用已有的工具ob-decrypt或者AST解混淆或者使用第三方提供的反混淆接口。

平时可以多准备一些工具,在遇到无法识别的JS时,可以直接使用工具来反混淆和解密,要知道,逆向有时候也需要借助运气。

正文

说到webpack,它是

你可能感兴趣的:(爬虫实战进阶,webpack,python,JS逆向,javascript,混淆)