如标题所述,本文用JAVAscript实现一个端口扫描器,用于检测指定IP的电脑哪些端口是开放的,而且扫描速度非常快。
在Node.js中运行,效果如下:
源码:
function scan(host, start, end, callback) {var.NET = require('net');var count = end - start;var result = [];console.time('port scan time');for (var i = start; i <= end; i++) {var item = net.connect({host: host,port: i},function(i) {return function() {result.push(i);this.destroy();};}(i));item.on('error', function(err) {if (err.errno == 'ECONNREFUSED') {this.destroy();}});item.on('close', function() {if (!count--) {console.timeEnd('port scan time');callback(result);}});}}scan('127.0.0.1', 1, 65535, function(result) {for (var i = 0; i < result.length; i++) {console.log('端口:' + result[i]);}});
如果用JShaman对以上JS代码进行混淆加密,如:
得到的加密代码如下:
加密后的代码与之前一样使用,但从源码中已看不出其功能,起到了保护源码的功能。如下图: