JS混淆简单参考

一、 基本原理

混淆主要涉及两种思路:

a.通过正则替换实现的混淆器;

b.通过语法树替换实现的混淆器。

第一种实现成本低,但是效果也一般,适合对混淆要求不高的场景。第二种实现

成本较高,但是更灵活,而且更安全,更适合对抗场景。

二、 工具

2.1 javascriptobfuscator

包含在线版和桌面版,试用了下效果不错,没有发现处理之后报错、异常的情况。

是一个不错的js 混淆工具。

在线版:


桌面版:


2.2  Uglifyjs(开源)

uglifyjs是一个开源的js 压缩工具。这个从社区的评论里来看好像是最常使用

的,在node环境下执行。

Git 地址:https://github.com/mishoo/UglifyJS2

使用方法:http://blog.fens.me/nodejs-uglifyjs2-js/

Uglify混淆主要使用了以下方法(AST指抽象语法树):

  字符串解析成AST

  解析AST,计算出作用域、变量名等

  提供遍历AST的方法,找到你想要修改的节点

  提供把AST打印成源代码的功能

  提供美化代码的功能

  提供定位某个word位置的功能

2.3  jscrambler

jscrambler是一个商业级工具,看了很多社区的评论,这个目前是最好的,需

要付费。

地址:https://jscrambler.com/

2.4  jsfuck(开源)

jsfuck 是一个开源的js 混淆工具,原理比较简单,其实就是通过特定的字符

串加上下标定位字符,再由这些字符替换源代码,从而实现混淆。官网:http://

www.jsfuck.com/,混淆功能看上去比较强大,但是本质上我认为是一种编码:


而且文件体积会受很大影响。

git地址:https://github.com/aemkei/jsfuck

三、 总结

建议:如果要做二次开发,建议使用Uglifyjs,

参考:

1.https://cnodejs.org/topic/5507dbd953ad0efa46bc500b

2.http://www.fly63.com/article/detial/45

3.http://www.lizhiqianduan.com/myblog/#/article/10082

4.https://www.zhihu.com/question/22841206

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,631评论 25 709
  • 【No.213】 春天正是读书天 阳光明媚的春天里,正适合读书。赶巧邮购的书今天到了,所以掩饰不住的欣喜。...
    淡如清风_ld阅读 1,573评论 0 2
  • 神清气爽的时候,每个人都愿意出手相助,唯有精疲力尽时,才能看出一个人的修养。修养越好的人,自控力越强。所谓自控力,...
    一个意外的结尾阅读 1,566评论 0 1
  • 一、前端设计和后端设计(后台系统)的区别 对于产品经理来说,平时的设计工作最主要是以下几种: (1)APP设计; ...
    留白的人生阅读 14,700评论 1 38
  • 在时间的尽头 我是个小丑 用油彩遮住面庞 表演着我认为的喜怒哀愁 我的心酸 从未向人提及 只在舞台的幕后 默默的哭...
    碧波飞龙阅读 1,781评论 0 3