mirror of
https://github.com/gnh1201/welsonjs.git
synced 2025-05-09 13:16:05 +00:00
fix
This commit is contained in:
parent
8dd76199d8
commit
396bef9abf
16
config.template.json
Normal file
16
config.template.json
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
"server": "",
|
||||||
|
"name_server": "https://1.1.1.1/dns-query",
|
||||||
|
"windivert_filter_string": "outbound and (ip ? ip.DstAddr != 1.2.3.4 and ip.DstAddr != 1.1.1.1 : true)",
|
||||||
|
"ip_cidr_rules": {
|
||||||
|
"proxy": []
|
||||||
|
},
|
||||||
|
"app_rules": {
|
||||||
|
"proxy": []
|
||||||
|
},
|
||||||
|
"domain_rules": {
|
||||||
|
"proxy": [],
|
||||||
|
"direct": [],
|
||||||
|
"blocked": []
|
||||||
|
}
|
||||||
|
}
|
38
lib/ldplayer.js
Normal file
38
lib/ldplayer.js
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
// LDPlayer API
|
||||||
|
///////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
var SHELL = require("lib/shell");
|
||||||
|
var SYS = require("lib/system");
|
||||||
|
|
||||||
|
exports.VERSIONINFO = "LDPlayer (ldplayer.js) version 0.1";
|
||||||
|
exports.global = global;
|
||||||
|
exports.require = global.require;
|
||||||
|
|
||||||
|
exports.getList = function() {
|
||||||
|
var data = [];
|
||||||
|
var cmd = [
|
||||||
|
SYS.getEnvString("SYSTEMDRIVE") + "/LDPlayer/LDPlayer3.0/ldconsole.exe",
|
||||||
|
"list2"
|
||||||
|
];
|
||||||
|
var result = SHELL.exec(cmd);
|
||||||
|
var lines = result.split(/\r?\n/);
|
||||||
|
|
||||||
|
for(var i = 0; i < lines.length; i++) {
|
||||||
|
var row = lines[i].split(',');
|
||||||
|
|
||||||
|
if(row.length == 7) {
|
||||||
|
data.push({
|
||||||
|
index: row[0],
|
||||||
|
title: row[1],
|
||||||
|
topWindowHandle: row[2],
|
||||||
|
binddWindowHandle: row[3],
|
||||||
|
androidStarted: row[4],
|
||||||
|
PID: row[5],
|
||||||
|
PIDVBox: row[6]
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return data;
|
||||||
|
};
|
71
lib/noxplayer.js
Normal file
71
lib/noxplayer.js
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
// LDPlayer API
|
||||||
|
///////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
var SHELL = require("lib/shell");
|
||||||
|
var SYS = require("lib/system");
|
||||||
|
|
||||||
|
exports.VERSIONINFO = "NoxPlayer (noxplayer.js) version 0.1";
|
||||||
|
exports.global = global;
|
||||||
|
exports.require = global.require;
|
||||||
|
|
||||||
|
exports.binPath = SYS.getEnvString("PROGRAMFILES(X86)") + "/Nox/bin/nox_adb.exe";
|
||||||
|
|
||||||
|
exports.getDevices = function() {
|
||||||
|
var data = [];
|
||||||
|
var cmd = [
|
||||||
|
exports.binPath,
|
||||||
|
"devices"
|
||||||
|
]
|
||||||
|
var result = SHELL.exec(cmd);
|
||||||
|
var lines = result.split(/\r?\n/);
|
||||||
|
for(var i = 0; i < lines.length; i++) {
|
||||||
|
var row = lines[i].split(/\s+/);
|
||||||
|
|
||||||
|
if(row.length == 2) {
|
||||||
|
data.push({
|
||||||
|
host: row[0],
|
||||||
|
type: row[1]
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.getHostname = function(host) {
|
||||||
|
return SHELL.exec([
|
||||||
|
exports.binPath,
|
||||||
|
"-s",
|
||||||
|
host,
|
||||||
|
"shell",
|
||||||
|
"getprop",
|
||||||
|
"net.hostname"
|
||||||
|
]).trim();
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.getPID = function(host) {
|
||||||
|
var row = host.split(':');
|
||||||
|
var addr = row[0];
|
||||||
|
var port = row[1];
|
||||||
|
var cmd = "netstat -ano | findstr :" + port + " | findstr :0";
|
||||||
|
var result = SHELL.exec(cmd);
|
||||||
|
return result.substring(result.lastIndexOf(' '));
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.getList = function() {
|
||||||
|
var data = [];
|
||||||
|
var devices = exports.getDevices();
|
||||||
|
|
||||||
|
for(var i = 0; i < devices.length; i++) {
|
||||||
|
var hostname = exports.getHostname(devices[i].host);
|
||||||
|
var pid = exports.getPID(devices[i].host);
|
||||||
|
|
||||||
|
data.push({
|
||||||
|
hostname: hostname,
|
||||||
|
PID: pid
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return data;
|
||||||
|
};
|
121
shadowloader.js
Normal file
121
shadowloader.js
Normal file
|
@ -0,0 +1,121 @@
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
// SSloader
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
var SS = require("lib/shadowsocks");
|
||||||
|
var SYS = require("lib/system");
|
||||||
|
var FILE = require("lib/file");
|
||||||
|
var SHELL = require("lib/shell");
|
||||||
|
var LDPlayer = require("lib/ldplayer");
|
||||||
|
var NoxPlayer = require("lib/noxplayer");
|
||||||
|
var JSON = require("lib/json");
|
||||||
|
|
||||||
|
var PIDList = [];
|
||||||
|
|
||||||
|
var NumSessions = 0;
|
||||||
|
var _NumSessions = 0;
|
||||||
|
var NumBridges = 0;
|
||||||
|
var _NumBridges = 0;
|
||||||
|
|
||||||
|
exports.main = function() {
|
||||||
|
console.info("Waiting new launched");
|
||||||
|
sleep(10000);
|
||||||
|
|
||||||
|
while(true) {
|
||||||
|
sleep(10000);
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////
|
||||||
|
// LDPlayer
|
||||||
|
////////////////////////////////////////////////////////////////
|
||||||
|
var LDPList = LDPlayer.getList();
|
||||||
|
for(var i = 0; i < LDPList.length; i++) {
|
||||||
|
var pid = parseInt(LDPList[i].PIDVBox);
|
||||||
|
var title = LDPList[i].title;
|
||||||
|
if(pid > 0 && PIDList.indexOf(pid) == -1) {
|
||||||
|
console.info("New launched LDPlayer: " + title);
|
||||||
|
|
||||||
|
PIDList.push(pid);
|
||||||
|
|
||||||
|
var listenPort;
|
||||||
|
if(!(title in __config.StaticIP.LDPlayer)) {
|
||||||
|
console.error("Not assigned static IP: " + title);
|
||||||
|
continue;
|
||||||
|
} else {
|
||||||
|
listenPort = SS.connect(__config.StaticIP.LDPlayer[title]);
|
||||||
|
}
|
||||||
|
|
||||||
|
SHELL.run([
|
||||||
|
SYS.getCurrentScriptDirectory() + "/bin/shadow.exe",
|
||||||
|
"-c",
|
||||||
|
SYS.getCurrentScriptDirectory() + "/config.template.json",
|
||||||
|
"-s",
|
||||||
|
"socks://localhost:" + listenPort,
|
||||||
|
"-p",
|
||||||
|
pid
|
||||||
|
]);
|
||||||
|
|
||||||
|
NumSessions = SS.getCountOfSessions();
|
||||||
|
NumBridges = SS.getCountOfBridges();
|
||||||
|
|
||||||
|
if(!(NumSessions > _NumSessions && NumBridges > _NumBridges)) {
|
||||||
|
console.error("Retrying...");
|
||||||
|
PIDList.pop();
|
||||||
|
}
|
||||||
|
|
||||||
|
_NumSessions = NumSessions;
|
||||||
|
_NumBridges = NumBridges;
|
||||||
|
|
||||||
|
console.info("Waiting new launched");
|
||||||
|
sleep(10000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////
|
||||||
|
// NoxPlayer
|
||||||
|
////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
var NoxPList = NoxPlayer.getList();
|
||||||
|
for(var i = 0; i < NoxPList.length; i++) {
|
||||||
|
var pid = parseInt(NoxPList[i].PID);
|
||||||
|
var hostname = NoxPList[i].hostname;
|
||||||
|
if(pid > 0 && PIDList.indexOf(pid) == -1) {
|
||||||
|
console.info("New launched NoxPlayer: " + hostname);
|
||||||
|
|
||||||
|
PIDList.push(pid);
|
||||||
|
|
||||||
|
var listenPort;
|
||||||
|
if(!(hostname in __config.StaticIP.NoxPlayer)) {
|
||||||
|
console.error("Not assigned static IP: " + hostname);
|
||||||
|
continue;
|
||||||
|
} else {
|
||||||
|
listenPort = SS.connect(__config.StaticIP.NoxPlayer[hostname]);
|
||||||
|
}
|
||||||
|
|
||||||
|
SHELL.run([
|
||||||
|
SYS.getCurrentScriptDirectory() + "/bin/shadow.exe",
|
||||||
|
"-c",
|
||||||
|
SYS.getCurrentScriptDirectory() + "/config.template.json",
|
||||||
|
"-s",
|
||||||
|
"socks://localhost:" + listenPort,
|
||||||
|
"-p",
|
||||||
|
pid
|
||||||
|
]);
|
||||||
|
|
||||||
|
NumSessions = SS.getCountOfSessions();
|
||||||
|
NumBridges = SS.getCountOfBridges();
|
||||||
|
|
||||||
|
if(!(NumSessions > _NumSessions && NumBridges > _NumBridges)) {
|
||||||
|
console.error("Retrying...");
|
||||||
|
PIDList.pop();
|
||||||
|
}
|
||||||
|
|
||||||
|
_NumSessions = NumSessions;
|
||||||
|
_NumBridges = NumBridges;
|
||||||
|
|
||||||
|
console.info("Waiting new launched");
|
||||||
|
sleep(10000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
Loading…
Reference in New Issue
Block a user