• 技术文章 >Web开发 >JavaScript

    js混淆之后如何调用方法

    小妮浅浅小妮浅浅2021-01-28 16:14:25原创2995

    出了对代码安全的考虑,我们在js中进行了混淆的操作。混淆相当于给代码加密,那么我们这时又有了调用的需求,不过很多人想着是先破解再使用。那么有没有可以调用的办法呢?这里我们先对混淆的原理进行了解,然后分析程序执行的原理,在其中找到混淆后的调用方法。

    1.js混淆的原理

    混淆主要涉及两种思路:

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

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

    第一种实现成本低,但是效果也一般,适合对混淆要求不高的场景。第二种实现成本较高,但是更灵活,而且更安全,更适合对抗场景。

    2.js混淆调用方法

    在程序的执行流程中,往往会间接调用函数,攻击者可以在调用某个函数时,不是直接调用,而是经常几次其他无功能函数的调用最终调用该函数,因此可以混淆控制流程。

    在上面的例子中,有五个子程序。在这些子程序中有一个sub5。如果你通过跟踪子程序的调用可以发现子程序最终执行的是sun2。因此,调用任何一个函数都将调用sub2。因此,可以移除sub1,sub3,sun4,和sub5而不是影响程序的执行结果。

    补充:JS代码保护若干技术难点

    1)前端环境的复杂。以安卓端为例,不同版本的安卓系统,对webview的对JS代码调用逻辑也不同,给加密功能的开发带来很大挑战。

    2)JS的标准在不停迭代。类似于python2,3的区别,JS也分成不同版本,保护方案如何能兼容不同的标准。

    3)单线程与异步机制。尽管可以勉强实现前端的多线程,但是绝大部分情况下,浏览器内核单线程执行JS代码,异步编程给安全开发人员提出了新的难题。

    以上就是js混淆后的调用方法,只有对基础的混淆原理有所了解,才能找到调用的思路。学会的小伙伴可以开始动手试验一下啦。

    专题推荐:js混淆之后如何调用方法
    品易云
    上一篇:extjs页面初始化加载 下一篇:js定时器怎么调开关时间

    相关文章推荐

    • js格式化时间戳• extjs框架还有人用吗• js四舍五入保留两位小数公式• extjs页面初始化加载

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网