关于 js 的自身加密混淆,还有这骚操作?
- 0次
- 2021-08-09 22:18:51
- idczone
我发现知乎看到了这个 https://www.zhihu.com/question/454938362
第一次见到这种所谓自身加密,看这加密疑似 base64,但不管是编码还是加密混淆,最终是下载到客户端打开的,所以这个加密方式是否能运行?望大佬们解惑
无非就是定义一个变量而已,后面的代码肯定拿来解析,你当它下载一个 zip 文件就是,里面可以是任何数据,图片、样式、脚本都可以。
chromw 打个断点就知道了
chrome
都是提高门槛的操作,可以把代码的抽象语法数进行变换加密
像这种么 aem1k.com/world
简单分析了一下,原数据不是 js 代码,是 JSON 数据。
那个变量名第一个字符是随机的,第二个字符固定是 i,后面跟着的是域名倒序的 MD5 值,变量名这么处理猜测是为了反爬虫。
后面的字符串中 '.' 会先被替换为 't',然后去掉开头 16 个字符,再用非标准的 Base64 解码。
这就只是一个非常简单的编码,依靠算法保密来“保密”,大概只是为了防一些自动化的爬虫,人工分析一下全都出来了。
B 站昨晚崩了 打脸吗
https://www.obfuscator.io/
是这个东西吧,之前用过一两次,能跑,但性能差很多
这不就是加壳
蛮有意思的,这个加密是为了加密啥,资源吗?看起来不像加密代码
防机器人不防小人,对付机器人足够了。
如果对前端闭源感兴趣可以了解一下 WebAssembly 。
我见过这种的劫持代码:
```
['son']["\x66\x69\x6c\x74\x65\x72"]["\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72"](((['son']+[])["\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72"]['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65']['\x61\x70\x70\x6c\x79'](null,"xxxxxxxx...xxx"['\x73\x70\x6c\x69\x74'](/[a-zA-Z]{1,}/))))('son');
```
16 进制转成 string 是以下代码, 依然非常模糊
```
['son']["filter"]["constructor"](((['son'] + [])["constructor"]['fromCharCode']['apply'](null, "xxxxxxxx...xxx"['split'](/[a-zA-Z]{1,}/))))('son');
```
拆解下:
```
(['son'] + [])["constructor"]
```
上面