5.4.12. 其他¶
5.4.12.1. 命令执行¶
Node.js中child_process.exec命令调用的是 /bin/sh
,故可以直接使用该命令执行shell
5.4.12.2. 反调试技巧¶
函数重定义
console.log = function(a){}
定时断点
setInterval(function(){debugger}, 1000);
5.4.12.3. 对象拷贝¶
JavaScript中的对象拷贝分为浅拷贝和深拷贝。
浅拷贝对一个对象进行拷贝时,仅仅拷贝对象的引用进行拷贝,但是拷贝对象和源对象还是引用同一份实体。其中一个对象的改变都会影响到另一个对象。
深拷贝拷贝一个对象时,不仅仅把对象的引用进行复制,还把该对象引用的值也一起拷贝。源对象与拷贝对象互相独立,其中任何一个对象的改动都不会对另外一个对象造成影响。
深拷贝可以基于 for-in
/ object.assign()
/ 拓展运算符 ...
/ JSON.parse(JSON.stringify())
等方式实现。其中前三种方式只对第一层做深拷贝,若对象结构较为复杂,则需要用递归的方式对更深的层次进行拷贝。
5.4.12.4. 常见Sink¶
child_process
eval
exec
execSync