如標題所述,本文用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代碼進行混淆加密,如:
得到的加密代碼如下:
加密后的代碼與之前一樣使用,但從源碼中已看不出其功能,起到了保護源碼的功能。如下圖: