welsonjs/ssloader.js

64 lines
1.9 KiB
JavaScript
Raw Normal View History

2020-07-29 03:06:49 +00:00
////////////////////////////////////////////////////////////////////////
2020-07-29 03:49:03 +00:00
// SSloader
2020-07-29 03:06:49 +00:00
////////////////////////////////////////////////////////////////////////
var SS = require("lib/shadowsocks");
var WINTAP = require("lib/wintap");
2020-07-29 03:49:03 +00:00
var SYS = require("lib/system");
2020-08-04 09:29:42 +00:00
var FILE = require("lib/file");
2020-08-04 10:38:21 +00:00
var SHELL = require("lib/shell");
2020-08-03 23:42:17 +00:00
var ssConfig = {
2020-08-09 09:14:05 +00:00
"Server": [],
"NameServer": "https://1.1.1.1/dns-query",
"FilterString": "outbound and (ip ? ip.DstAddr != 1.2.3.4 and ip.DstAddr != 1.1.1.1 : true)",
"IPCIDRRules": {
"Proxy": [
"198.18.0.0/16",
"8.8.8.8/32"
]
2020-08-03 23:42:17 +00:00
},
2020-08-09 09:14:05 +00:00
"AppRules": {
"Proxy":[]
2020-08-03 23:42:17 +00:00
},
2020-08-09 09:14:05 +00:00
"DomainRules": {
"Proxy": [],
"Direct": [],
"Blocked": []
2020-08-03 23:42:17 +00:00
}
};
2020-07-29 03:06:49 +00:00
exports.main = function() {
2020-08-04 09:29:42 +00:00
// 내부 포트 결정
console.log("* Connecting to socket proxy...");
2020-07-30 02:55:56 +00:00
var listenPort = SS.connect();
2020-08-09 09:14:05 +00:00
ssConfig.Server.push("socks://localhost:" + listenPort);
2020-08-03 23:42:17 +00:00
console.log("* Local listening port: " + listenPort);
2020-08-04 09:29:42 +00:00
// 앱 규칙 설정
2020-08-04 10:38:21 +00:00
var processNames = __global.processNames;
2020-08-04 09:29:42 +00:00
for (var i in processNames) {
2020-08-09 09:14:05 +00:00
ssConfig.AppRules.Proxy.push(processNames[i]);
2020-08-04 09:29:42 +00:00
}
// 설정 파일 저장
var serialized_ssConfig = JSON.stringify(ssConfig, null, 4);
if (FILE.fileExists("config.json")) {
FILE.deleteFile("config.json");
}
FILE.writeFile("config.json", serialized_ssConfig, "utf-8");
console.info("설정 파일 저장 완료!");
// 앱 프록시 실행
2020-08-09 09:14:05 +00:00
console.info("앱 프록시는 관리자 권한을 필요로 합니다. 권한 요청 시 확인을 눌러주세요.");
2020-08-09 09:47:04 +00:00
SHELL.elevatedRun(SYS.getCurrentScriptDirectory() + "/bin/shadow.exe", [
"-c",
SYS.getCurrentScriptDirectory() + "/config.json"
]);
2020-08-09 10:05:27 +00:00
// 안내
console.info("해당 프로세스를 실행하여 확인하시기 바랍니다.");
2020-07-29 03:06:49 +00:00
};
2020-08-04 09:29:42 +00:00
exports.ssConfig = ssConfig;