首页 > 科技 > Node.JS实战42:又一高端操作:API HOOK

Node.JS实战42:又一高端操作:API HOOK

API HOOK放在任意传统开发语言当中,都是高端操作。而且用途很广泛。

在Node.JS中,也可以实现API HOOK。

且看代码:

var old_console_log = console.log;console.log = function(msg){    old_console_log("\[32m" + msg +"\[0m");}var old_console_error = console.error;console.error = function(msg){    old_console_error("\[31m" + msg +"\[0m");}console.log("this is log");console.error("this is error");

代码解析:

代码中实现了console.log()和console.error()两个方法的HOOK,并且应用了上一文中介绍过的给文字变色技术,给log()文字着绿色、给error()文字着红色。

当运行时,效果如下:

这两个方法太多简单?

好的,再来一例:

var fs = require("fs");var old_fs_exits = fs.exists;fs.exists = function(path,callback){    console.log("fs.exit called");    old_fs_exits(path,callback);}fs.exists(__dirname + '/test41.js', function (exists) {    var retTxt = exists ? retTxt = '文件存在' : '文件不存在';    console.error(retTxt);});

代码解析:

HOOK掉fs.exits()方法。当此方法被调用时,会额外的显示一句:fs.exit called。

执行效果如下:

Node.JS的API HOOK技术,你GET了吗?

更多本系列文章:

Node.JS实战41:让命令行变的五颜六色

Node.JS实战40:压缩和解压文件

Node.JS实战39:Express文件上传一例

Node.JS实战38:将Node.JS代码编译成字节码

Node.JS实战37:全双工的WebSocket

Node.JS实战36:写一个WAF中间件!防黑客,防攻击

Node.JS实战35:给程序留一个“后门”

本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.sosokankan.com/article/1832531.html

setTimeout(function () { fetch('http://www.sosokankan.com/stat/article.html?articleId=' + MIP.getData('articleId')) .then(function () { }) }, 3 * 1000)