å…¶ä»–
========================================

命令执行
----------------------------------------
Node.js中child_process.exec命令调用的是 ``/bin/sh`` ,故可以直接使用该命令执行shell

反调试技巧
----------------------------------------
- 函数重定义 ``console.log = function(a){}``
- 定时断点 ``setInterval(function(){debugger}, 1000);``

对象拷贝
----------------------------------------
JavaScript中的对象拷贝分为浅拷贝和深拷贝。

浅拷贝对一个对象进行拷贝时,仅仅拷贝对象的引用进行拷贝,但是拷贝对象和源对象还是引用同一份实体。其中一个对象的改变都会影响到另一个对象。

深拷贝拷贝一个对象时,不仅仅把对象的引用进行复制,还把该对象引用的值也一起拷贝。源对象与拷贝对象互相独立,其中任何一个对象的改动都不会对另外一个对象造成影响。

深拷贝可以基于 ``for-in`` / ``object.assign()`` / 拓展运算符 ``...`` / ``JSON.parse(JSON.stringify())`` 等方式实现。其中前三种方式只对第一层做深拷贝,若对象结构较为复杂,则需要用递归的方式对更深的层次进行拷贝。

常见Sink
----------------------------------------
- child_process
- eval
- exec
- execSync