diff --git a/lib/shadowsocks.js b/lib/shadowsocks.js index 8d68273..6bd5246 100644 --- a/lib/shadowsocks.js +++ b/lib/shadowsocks.js @@ -22,8 +22,10 @@ exports.getRandomInt = function(min, max) { }; exports.connect = function() { - var port = exports.getRandomInt(49152, 65535); + return; + var port = exports.getRandomInt(49152, 65535); + SHELL.run([ exports.binPath, "-s", diff --git a/lib/system.js b/lib/system.js index 6110138..1bfb504 100644 --- a/lib/system.js +++ b/lib/system.js @@ -35,11 +35,11 @@ exports.createProcess = function(cmd) { }; exports.getEnvString = function(path) { - return WSH.ExpandEnvironmentStrings(path); + return WSH.ExpandEnvironmentStrings('%' + path + '%'); }; exports.get32BitFolder = function() { - var base = exports.getEnvString("%WINDIR%"); + var base = exports.getEnvString("WINDIR"); var syswow64 = base + "\\SysWOW64\\"; if (JPTUDBSTOW.FS.FolderExists(syswow64)) diff --git a/lib/wintap.js b/lib/wintap.js index ab9f8b8..cb75469 100644 --- a/lib/wintap.js +++ b/lib/wintap.js @@ -4,30 +4,42 @@ var SHELL = require("lib/shell"); var SYS = require("lib/system"); +var FILE = require("lib/file"); exports.VERSIONINFO = "WindowsTAP Lib (wintap.js) version 0.1"; exports.global = global; exports.require = global.require; var arch = SYS.getArch(); -if(arch.indexOf("64") > -1) { - exports.binPath = "bin/tap-windows-9.24.2/amd64/tapinstall.exe"; -} else { - exports.binPath = "bin/tap-windows-9.24.2/i386/tapinstall.exe"; -} -exports.install = function(inf, id) { - return SHELL.exec([exports.binPath, "install", inf, id]); +exports.infPath = SYS.getEnvString("PROGRAMFILES") + "/TAP-Windows/driver/OemVista.inf"; +exports.binPath = SYS.getEnvString("PROGRAMFILES") + "/TAP-Windows/bin/tapinstall.exe"; + +exports.before = function() { + if(!FILE.fileExists(exports.binPath)) { + console.log("WindowsTAP dose not installed. Trying to install..."); + return SHELL.exec(["bin/tap-windows-9.24.2-I601-Win7.exe"]); + } else { + return true; + } }; -exports.update = function(inf, id) { - return SHELL.exec([exports.binPath, "update", inf, id]); +exports.install = function(id) { + exports.before(); + return SHELL.exec([exports.binPath, "install", exports.infPath, id]); +}; + +exports.update = function(id) { + exports.before(); + return SHELL.exec([exports.binPath, "update", exports.infPath, id]); }; exports.query = function(id) { + exports.before(); return SHELL.exec([exports.binPath, "hwids", id]); }; exports.remove = function(id) { + exports.before(); return SHELL.exec([exports.binPath, "remove", id]); }; diff --git a/ssloader.js b/ssloader.js new file mode 100644 index 0000000..0eec6c2 --- /dev/null +++ b/ssloader.js @@ -0,0 +1,16 @@ +//////////////////////////////////////////////////////////////////////// +// Socksloader +//////////////////////////////////////////////////////////////////////// + +var SS = require("lib/shadowsocks"); +var WINTAP = require("lib/wintap"); + +exports.main = function() { + console.log("Connecting to shadowsocks..."); + var proxyport = SS.connect(); + console.log(proxyport); + + console.log("Installing new WindowsTAP..."); + console.log(WINTAP.query("tap0901")); + console.log("Done"); +};