From 1551f74637acc496bb906cc8a5250e818e344a96 Mon Sep 17 00:00:00 2001 From: Ylian Saint-Hilaire Date: Sat, 29 Dec 2018 15:24:33 -0800 Subject: [PATCH] Added meshcore minification support. --- MeshCentralServer.njsproj | 48 + agents/MeshCmd-signed.exe | Bin 3459848 -> 3373480 bytes agents/MeshCmd64-signed.exe | Bin 3445512 -> 3359144 bytes agents/compressModules.bat | 5 + agents/meshcmd.js | 2 +- agents/meshcmd.min.js | 1 + agents/meshcore-OldTerminal.js | 1894 ----------------- agents/meshcore.js | 18 +- agents/meshcore.min.js | 1 + agents/modules_meshcmd_min/amt-lme.min.js | 1 + agents/modules_meshcmd_min/amt-mei.min.js | 1 + agents/modules_meshcmd_min/amt-scanner.min.js | 1 + agents/modules_meshcmd_min/amt-script.min.js | 1 + .../modules_meshcmd_min/amt-wsman-duk.min.js | 1 + agents/modules_meshcmd_min/amt-wsman.min.js | 1 + agents/modules_meshcmd_min/amt-xml.min.js | 1 + agents/modules_meshcmd_min/amt.min.js | 1 + .../process-manager.min.js | 1 + .../modules_meshcmd_min/service-host.min.js | 1 + .../service-manager.min.js | 1 + agents/modules_meshcmd_min/smbios.min.js | 1 + .../modules_meshcmd_min/user-sessions.min.js | 1 + agents/modules_meshcore_min/amt-lme.min.js | 1 + agents/modules_meshcore_min/amt-mei.min.js | 1 + .../modules_meshcore_min/amt-scanner.min.js | 1 + .../modules_meshcore_min/amt-wsman-duk.min.js | 1 + agents/modules_meshcore_min/amt-wsman.min.js | 1 + agents/modules_meshcore_min/amt-xml.min.js | 1 + agents/modules_meshcore_min/amt.min.js | 1 + agents/modules_meshcore_min/linux-dbus.min.js | 1 + .../monitor-border.min.js | 1 + .../modules_meshcore_min/monitor-info.min.js | 1 + .../modules_meshcore_min/power-monitor.min.js | 1 + .../process-manager.min.js | 1 + .../service-manager.min.js | 1 + agents/modules_meshcore_min/smbios.min.js | 1 + agents/modules_meshcore_min/toaster.min.js | 1 + .../modules_meshcore_min/user-sessions.min.js | 1 + .../wifi-scanner-windows.min.js | 1 + .../modules_meshcore_min/wifi-scanner.min.js | 1 + .../modules_meshcore_min/win-console.min.js | 1 + .../win-message-pump.min.js | 1 + .../modules_meshcore_min/win-registry.min.js | 1 + .../modules_meshcore_min/win-terminal.min.js | 1 + meshagent.js | 29 +- meshcentral.js | 140 +- public/compress.bat | 49 +- 47 files changed, 233 insertions(+), 1989 deletions(-) create mode 100644 agents/compressModules.bat create mode 100644 agents/meshcmd.min.js delete mode 100644 agents/meshcore-OldTerminal.js create mode 100644 agents/meshcore.min.js create mode 100644 agents/modules_meshcmd_min/amt-lme.min.js create mode 100644 agents/modules_meshcmd_min/amt-mei.min.js create mode 100644 agents/modules_meshcmd_min/amt-scanner.min.js create mode 100644 agents/modules_meshcmd_min/amt-script.min.js create mode 100644 agents/modules_meshcmd_min/amt-wsman-duk.min.js create mode 100644 agents/modules_meshcmd_min/amt-wsman.min.js create mode 100644 agents/modules_meshcmd_min/amt-xml.min.js create mode 100644 agents/modules_meshcmd_min/amt.min.js create mode 100644 agents/modules_meshcmd_min/process-manager.min.js create mode 100644 agents/modules_meshcmd_min/service-host.min.js create mode 100644 agents/modules_meshcmd_min/service-manager.min.js create mode 100644 agents/modules_meshcmd_min/smbios.min.js create mode 100644 agents/modules_meshcmd_min/user-sessions.min.js create mode 100644 agents/modules_meshcore_min/amt-lme.min.js create mode 100644 agents/modules_meshcore_min/amt-mei.min.js create mode 100644 agents/modules_meshcore_min/amt-scanner.min.js create mode 100644 agents/modules_meshcore_min/amt-wsman-duk.min.js create mode 100644 agents/modules_meshcore_min/amt-wsman.min.js create mode 100644 agents/modules_meshcore_min/amt-xml.min.js create mode 100644 agents/modules_meshcore_min/amt.min.js create mode 100644 agents/modules_meshcore_min/linux-dbus.min.js create mode 100644 agents/modules_meshcore_min/monitor-border.min.js create mode 100644 agents/modules_meshcore_min/monitor-info.min.js create mode 100644 agents/modules_meshcore_min/power-monitor.min.js create mode 100644 agents/modules_meshcore_min/process-manager.min.js create mode 100644 agents/modules_meshcore_min/service-manager.min.js create mode 100644 agents/modules_meshcore_min/smbios.min.js create mode 100644 agents/modules_meshcore_min/toaster.min.js create mode 100644 agents/modules_meshcore_min/user-sessions.min.js create mode 100644 agents/modules_meshcore_min/wifi-scanner-windows.min.js create mode 100644 agents/modules_meshcore_min/wifi-scanner.min.js create mode 100644 agents/modules_meshcore_min/win-console.min.js create mode 100644 agents/modules_meshcore_min/win-message-pump.min.js create mode 100644 agents/modules_meshcore_min/win-registry.min.js create mode 100644 agents/modules_meshcore_min/win-terminal.min.js diff --git a/MeshCentralServer.njsproj b/MeshCentralServer.njsproj index 4aacbfe3..06ac071e 100644 --- a/MeshCentralServer.njsproj +++ b/MeshCentralServer.njsproj @@ -21,7 +21,9 @@ + + @@ -35,6 +37,19 @@ + + + + + + + + + + + + + @@ -57,6 +72,28 @@ + + + + + + + + + + + + + + + + + + + + + + @@ -97,7 +134,11 @@ + + + + @@ -113,8 +154,11 @@ + + + @@ -125,6 +169,8 @@ + + @@ -232,7 +278,9 @@ + + diff --git a/agents/MeshCmd-signed.exe b/agents/MeshCmd-signed.exe index d21efbe71c9c3b5d6dd72690a58cd903dcedf6cb..deae5027057ac5495bf5ca9f2487e09f61b6f6ac 100644 GIT binary patch delta 294432 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®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%0A{*S@exMEK_JHcb!SNPdqgmQY5ln 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

r|tr=|H54IJGq7w~t(vwZZ7qB7*!r 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

qPl952;*EC_euX;k3`Arw8rw~t_Z`yscfQuv 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

hwUF+r8*^-Qs$2p>yq+CSRKrU*%h8gt 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 G|NcL?ooT)R diff --git a/agents/compressModules.bat b/agents/compressModules.bat new file mode 100644 index 00000000..888f7ed8 --- /dev/null +++ b/agents/compressModules.bat @@ -0,0 +1,5 @@ +"..\..\WebSiteCompiler\bin\Debug\WebSiteCompiler.exe" compressalljs "modules_meshcore" "modules_meshcore_min" +"..\..\WebSiteCompiler\bin\Debug\WebSiteCompiler.exe" compressalljs "modules_meshcmd" "modules_meshcmd_min" +"..\..\WebSiteCompiler\bin\Debug\WebSiteCompiler.exe" meshcore.js +"..\..\WebSiteCompiler\bin\Debug\WebSiteCompiler.exe" meshcmd.js +pause \ No newline at end of file diff --git a/agents/meshcmd.js b/agents/meshcmd.js index 22ec6bcf..e505e285 100644 --- a/agents/meshcmd.js +++ b/agents/meshcmd.js @@ -1522,7 +1522,7 @@ function parseUrlArguments(url) { // Remove a element from a array function removeItemFromArray(array, element) { - const index = array.indexOf(element); + var index = array.indexOf(element); if (index !== -1) { array.splice(index, 1); } } diff --git a/agents/meshcmd.min.js b/agents/meshcmd.min.js new file mode 100644 index 00000000..14d12b83 --- /dev/null +++ b/agents/meshcmd.min.js @@ -0,0 +1 @@ +var fs=require("fs");var os=require("os");var net=require("net");var http=require("http");var dgram=require("dgram");var httpHeaders=require("http-headers");var tcpserver=null;var broadcastSockets={};var multicastSockets={};var discoveryInterval=null;var membershipIPv4="239.255.255.235";var membershipIPv6="FF02:0:0:0:0:0:0:FE";var settings=null;var meshCmdVersion="***Mesh*Cmd*Version***";var amtLms=null,amtMei=null,amtMeiState=null;var wsstack=null,amtstack=null;var oswsstack=null,osamtstack=null;var amtMeiTmpState=null;var SMBiosTables=null;var Small_IntelAmtWebApp="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";var Medium_IntelAmtWebApp="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";var Large_IntelAmtWebApp="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";function onVerifyServer(b,a){if(a==null){a=b}try{for(var d in a){if(a[d].fingerprint.replace(/:/g,"")==settings.serverHttpsHash){return}}}catch(c){}if(serverhash!=null){console.log("Error: Failed to verify server certificate.");throw"Invalid server certificate"}}function debug(a,b){if((settings.debugLevel!=null)&&(settings.debugLevel>=a)){console.log(b)}}function exit(b){if(b==null){b=0}try{process.exit(b)}catch(a){}}function getInstance(b,c){for(var a in b){if(b[a]["InstanceID"]==c){return b[a]}}return null}function md5hex(a){return require("MD5Stream").create().syncHash(a).toString("hex")}function guidToStr(a){return a.substring(6,8)+a.substring(4,6)+a.substring(2,4)+a.substring(0,2)+"-"+a.substring(10,12)+a.substring(8,10)+"-"+a.substring(14,16)+a.substring(12,14)+"-"+a.substring(16,20)+"-"+a.substring(20)}function parceArguments(a){var d={};for(var b in a){b=parseInt(b);if(a[b].startsWith("--")==true){var c=a[b].substring(2).toLowerCase(),e=true;if(((b+1)8){return"[...]"}if(e==undefined){return"[undefined]"}if(typeof e=="string"){if(b==0){return e}return'"'+(e.split("\0")[0])+'"'}if(typeof e=="buffer"){return"[buffer]"}if(typeof e!="object"){return e}var c="{"+(d?"\r\n":" ");for(var a in e){if(a!="_ObjectID"){c+=(addPad(b+2,d)+a+": "+objToString(e[a],b+2,d)+(d?"\r\n":" "))}}return c+addPad(b,d)+"}"}function addPad(b,d){var c="";for(var a=0;a=2){settings={action:j[1]}}}if(settings==null){settings={}}if((typeof h.action)=="string"){settings.action=h.action}if((typeof h.localport)=="string"){settings.localport=parseInt(h.localport)}if((typeof h.remotenodeid)=="string"){settings.remoteNodeId=h.remotenodeid}if((typeof h.username)=="string"){settings.username=h.username}if((typeof h.password)=="string"){settings.password=h.password}if((typeof h.user)=="string"){settings.username=h.user}if((typeof h.pass)=="string"){settings.password=h.pass}if((typeof h.host)=="string"){settings.hostname=h.host}if((typeof h.hostname)=="string"){settings.hostname=h.hostname}if((typeof h.serverid)=="string"){settings.serverId=h.serverid}if((typeof h.serverhttpshash)=="string"){settings.serverHttpsHash=h.serverhttpshash}if((typeof h.remoteport)=="string"){settings.remotePort=parseInt(h.remoteport)}if((typeof h.out)=="string"){settings.output=h.out}if((typeof h.output)=="string"){settings.output=h.output}if((typeof h.debug)=="string"){settings.debugLevel=parseInt(h.debug)}if((typeof h.script)=="string"){settings.script=h.script}if((typeof h.agent)=="string"){settings.agent=h.agent}if(h.debug){try{waitForDebugger()}catch(k){}}if(h.noconsole){settings.noconsole=true}if(h.nocommander){settings.noconsole=true}if(h.lmsdebug){settings.lmsdebug=true}if(h.tls){settings.tls=true}if((j.length>1)&&(d.indexOf(j[1].toUpperCase())>=0)){settings.action=j[1]}if(settings.action==null){console.log("MeshCentral Command (MeshCmd) "+meshCmdVersion);console.log("No action specified, use MeshCmd like this:\r\n");console.log(" meshcmd [action] [arguments...]\r\n");console.log("Valid MeshCentral actions:");console.log(" Route - Map a local TCP port to a remote computer.");console.log("\r\nValid local actions:");console.log(" SMBios - Display System Management BIOS tables for this computer.");console.log(" RawSMBios - Display RAW System Management BIOS tables for this computer.");console.log(" MicroLMS - Run MicroLMS, allowing local access to Intel AMT.");console.log(" AmtInfo - Show Intel AMT version and activation state.");console.log(" AmtVersions - Show all Intel ME version information.");console.log(" AmtHashes - Show all Intel AMT trusted activation hashes.");console.log(" AmtCCM - Activate Intel AMT into Client Control Mode.");console.log(" AmtDeactivate - Deactivate Intel AMT if activated in Client Control mode.");console.log("\r\nValid local or remote actions:");console.log(" MeshCommander - Launch a local MeshCommander web server.");console.log(" AmtUUID - Show Intel AMT unique identifier.");console.log(" AmtAuditLog - Show the Intel AMT audit log.");console.log(" AmtLoadWebApp - Load MeshCommander in Intel AMT 11.6+ firmware.");console.log(" AmtClearWebApp - Clear everything from Intel AMT web storage.");console.log(" AmtStorageState - Show contents of the Intel AMT web storage.");console.log(" AmtSaveState - Save all Intel AMT WSMAN object to file.");console.log(" AmtPresence - Heartbeat a local Intel AMT watchdog agent.");console.log(" AmtScript - Run .mescript on Intel AMT.");console.log("\r\nHelp on a specific action using:\r\n");console.log(" meshcmd help [action]");exit(1);return}if(settings.action=="help"){if(j.length<=2){d.shift();console.log("Help usage:\r\n\r\n MeshCmd help [action]\r\n\r\nValid actions are: "+d.join(", ")+".");exit(1);return}var a=j[2].toLowerCase();if(a=="route"){console.log("The route action is used along with a MeshCentral account to map a local TCP port to a remote port on any computer on your MeshCentral account. This action requires many arguments, to avoid specifying them all it's best to download the meshaction.txt file from the web site and place it in the current folder. Example usage:\r\n\r\n (Place meshaction.txt file in current folder)\r\n meshcmd route --pass myAccountPassword")}else{if(a=="smbios"){console.log("SMBios action will display this computer's system management BIOS information. Example usage:\r\n\r\n meshcmd smbios --out smbios.txt\r\n");console.log("\rOptional arguments:\r\n");console.log(" --output [filename] Optional filename to write the results to.")}else{if(a=="rawsmbios"){console.log("RawSMBios action will display this computer's system management BIOS information in raw hexdecimal form. Example usage:\r\n\r\n meshcmd rawsmbios --out smbios.txt\r\n");console.log("\rOptional arguments:\r\n");console.log(" --output [filename] Optional filename to write the results to.")}else{if(a=="amtinfo"){console.log("AmtInfo action will get the version and activation state of Intel AMT on this computer. The command must be run on a computer with Intel AMT, must run as administrator and the Intel management driver must be installed. Example usage:\r\n\r\n meshcmd amtinfo")}else{if((a=="amtversion")||(a=="amtversions")){console.log("AmtVersions will display all version information about Intel AMT on this computer. The command must be run on a computer with Intel AMT, must run as administrator and the Intel management driver must be installed. Example usage:\r\n\r\n meshcmd amtversions")}else{if(a=="amthashes"){console.log("Amthashes will display all trusted activations hashes for Intel AMT on this computer. The command must be run on a computer with Intel AMT, must run as administrator and the Intel management driver must be installed. These certificates hashes are used by Intel AMT when performing activation into ACM mode. Example usage:\r\n\r\n meshcmd amthashes")}else{if((a=="microlms")||(a=="lms")||(a=="amtlms")){console.log("Starts MicroLMS on this computer, allowing local access to Intel AMT on TCP ports 16992 and 16993 when applicable. The command must be run on a computer with Intel AMT, must run as administrator and the Intel management driver must be installed. These certificates hashes are used by Intel AMT when performing activation into ACM mode. Example usage:\r\n\r\n meshcmd microlms");console.log("\r\nPossible arguments:\r\n");console.log(" --noconsole MeshCommander for LMS will no be available on port 16994.");console.log("\r\nRun as a background service:\r\n");console.log(" microlms install/uninstall/start/stop.")}else{if(a=="amtccm"){console.log('AmtCCM will attempt to activate Intel AMT on this computer into client control mode (CCM). The command must be run on a computer with Intel AMT, must run as administrator and the Intel management driver must be installed. Intel AMT must be in "pre-provisioning" state for this command to work and a administrator password must be provided. Example usage:\r\n\r\n meshcmd amtccm --pass mypassword')}else{if(a=="amtdeactivate"){console.log("AmtDeactivate will attempt to deactivate Intel AMT on this computer when in client control mode (CCM). The command must be run on a computer with Intel AMT, must run as administrator and the Intel management driver must be installed. Intel AMT must be activated in client control mode for this command to work. Example usage:\r\n\r\n meshcmd amtdeactivate")}else{if(a=="amtuuid"){console.log("AmtUUID action will get the unique identifier of the local or remote Intel AMT computer. By default, the local UUID is obtained unless a host is specified. Intel AMT must be activated for this command to work. Example usage:\r\n\r\n meshcmd amtuuid --host 1.2.3.4 --user admin --pass mypassword --tls");console.log("\r\nPossible arguments:\r\n");console.log(" --host [hostname] The IP address or DNS name of Intel AMT, 127.0.0.1 is default.");console.log(" --user [username] The Intel AMT login username, admin is default.");console.log(" --pass [password] The Intel AMT login password.");console.log(" --tls Specifies that TLS must be used.")}else{if((a=="amtloadwebapp")||(a=="amtloadsmallwebapp")||(a=="amtloadlargewebapp")||(a=="amtclearwebapp")||(a=="amtstoragestate")){console.log('AmtLoadWebApp action will load MeshCommander into Intel AMT 11.6 or higher. If the computer is in ACM mode, MeshCommander will replace the default index.htm on HTTP/16992 or HTTPS/16993. If Intel AMT is in CCM mode, MeshCommander will be installed alongside the default web page and will be accessible in the "Web Applications" section. This action works on Intel AMT 11.6 and higher only. Example usage:\r\n\r\n meshcmd amtloadwebapp --host 1.2.3.4 --user admin --pass mypassword --tls');console.log("\r\nPossible arguments:\r\n");console.log(" --host [hostname] The IP address or DNS name of Intel AMT, 127.0.0.1 is default.");console.log(" --user [username] The Intel AMT login username, admin is default.");console.log(" --pass [password] The Intel AMT login password.");console.log(" --tls Specifies that TLS must be used.")}else{if(a=="amtclearwebstorage"){console.log("AmtClearWebStorage will clear the web storage of Intel AMT, removing any loaded firmware version of MeshCommander. This command can clear the local or a remote Intel AMT computer. By default, the local computer storage is cleared unless a host is specified. Intel AMT must be activated for this command to work. This action works on Intel AMT 11.6 and higher only. Example usage:\r\n\r\n meshcmd amtclearwebstorage --host 1.2.3.4 --user admin --pass mypassword --tls");console.log("\r\nPossible arguments:\r\n");console.log(" --host [hostname] The IP address or DNS name of Intel AMT, 127.0.0.1 is default.");console.log(" --user [username] The Intel AMT login username, admin is default.");console.log(" --pass [password] The Intel AMT login password.");console.log(" --tls Specifies that TLS must be used.")}else{if(a=="amtstoragestate"){console.log("AmtStorageState will display the content of the web storage of Intel AMT including any loaded firmware version of MeshCommander. This command can read the storage state of a local or remote Intel AMT computer. By default, the local computer storage state is displayed unless a host is specified. Intel AMT must be activated for this command to work. This action works on Intel AMT 11.6 and higher only. Example usage:\r\n\r\n meshcmd amtstoragestate --host 1.2.3.4 --user admin --pass mypassword --tls");console.log("\r\nPossible arguments:\r\n");console.log(" --host [hostname] The IP address or DNS name of Intel AMT, 127.0.0.1 is default.");console.log(" --user [username] The Intel AMT login username, admin is default.");console.log(" --pass [password] The Intel AMT login password.");console.log(" --tls Specifies that TLS must be used.")}else{if(a=="amtsavestate"){console.log("AmtSaveState action will fetch all the entire state of Intel AMT and save it as a JSON file. This action will take multiple minutes to perform. The command will fetch the local computer state unless host is specified. Intel AMT must be ativated for this command to work. Example usage:\r\n\r\n meshcmd amtsavestate --host 1.2.3.4 --user admin --pass mypassword --tls --output state.json");console.log("\r\nPossible arguments:\r\n");console.log(" --output [filename] The output file for the Intel AMT state in JSON format.");console.log(" --host [hostname] The IP address or DNS name of Intel AMT, 127.0.0.1 is default.");console.log(" --user [username] The Intel AMT login username, admin is default.");console.log(" --pass [password] The Intel AMT login password.");console.log(" --tls Specifies that TLS must be used.")}else{if(a=="amtpresence"){console.log("AmtPresence will heartbeat a local Intel AMT watchdog agent. Example usage:\r\n\r\n meshcmd amtpresence --agent B4B6A24C-255E-A75C-F5E8-B00B4D946AA7");console.log("\r\nPossible arguments:\r\n");console.log(" --user [username] The Intel AMT login username, admin is default.");console.log(" --pass [password] The Intel AMT login password.");console.log(" --agent [uuid] The unique identifier of the watchdog agent.")}else{if(a=="amtscript"){console.log("AmtScript will run a .mescript file on the local or remote Intel AMT. Script files can be built using the MeshCommander script editor and be used to setup or perform actions on Intel AMT. Example usage:\r\n\r\n meshcmd amtscript --script myscript.mescript --host 1.2.3.4 --user admin --pass mypassword --tls");console.log("\r\nPossible arguments:\r\n");console.log(" --script [filename] The script file to run on Intel AMT.");console.log(" --host [hostname] The IP address or DNS name of Intel AMT, 127.0.0.1 is default.");console.log(" --user [username] The Intel AMT login username, admin is default.");console.log(" --pass [password] The Intel AMT login password.");console.log(" --tls Specifies that TLS must be used.")}else{if(a=="meshcommander"){console.log("This action launched a local web server that hosts MeshCommander, a Intel AMT management console.");console.log("\r\nPossible arguments:\r\n");console.log(" --localport [port] Local port used for the web server, 3000 is default.");console.log("\r\nRun as a background service:\r\n");console.log(" meshcommander install/uninstall/start/stop.")}else{if(a=="amtauditlog"){console.log("AmtAuditLog action will fetch the local or remote audit log. If used localy, no username/password is required. Example usage:\r\n\r\n meshcmd amtauditlog --host 1.2.3.4 --user admin --pass mypassword --tls --output audit.json");console.log("\r\nPossible arguments:\r\n");console.log(" --output [filename] The output file for the Intel AMT state in JSON format.");console.log(" --host [hostname] The IP address or DNS name of Intel AMT, 127.0.0.1 is default.");console.log(" --user [username] The Intel AMT login username, admin is default.");console.log(" --pass [password] The Intel AMT login password.");console.log(" --tls Specifies that TLS must be used.")}else{d.shift();console.log("Invalid action, usage:\r\n\r\n meshcmd help [action]\r\n\r\nValid actions are: "+d.join(", ")+".")}}}}}}}}}}}}}}}}}}exit(1);return}settings.action=settings.action.toLowerCase();debug(1,"Settings: "+JSON.stringify(settings));if(settings.action=="smbios"){SMBiosTables=require("smbios");SMBiosTables.get(function(e){var n=SMBiosTables.parse(e);var m=objToString(n,0,"\r\n");if(settings.output==null){console.log(m)}else{var l=fs.openSync(settings.output,"w");fs.writeSync(l,new Buffer(m,"utf8"));fs.closeSync(l)}exit(1)})}else{if(settings.action=="rawsmbios"){SMBiosTables=require("smbios");SMBiosTables.get(function(e){var p="";for(var n in e){var m=false;for(var o in e[n]){if(e[n][o].length>0){if(m==false){p+=("Table type #"+n+((SMBiosTables.smTableTypes[n]==null)?"":(", "+SMBiosTables.smTableTypes[n])))+"\r\n";m=true}p+=(" "+e[n][o].toString("hex"))+"\r\n"}}}if(settings.output==null){console.log(p)}else{var l=fs.openSync(settings.output,"w");fs.writeSync(l,new Buffer(p,"utf8"));fs.closeSync(l)}exit(1)})}else{if(settings.action=="route"){if((settings.localPort==null)||(typeof settings.localPort!="number")||(settings.localPort<0)||(settings.localPort>65535)){console.log('No or invalid "localPort" specified, use --localport [localport].');exit(1);return}if((settings.remoteNodeId==null)||(typeof settings.remoteNodeId!="string")){console.log('No or invalid "remoteNodeId" specified.');exit(1);return}if((settings.username==null)||(typeof settings.username!="string")||(settings.username=="")){console.log('No or invalid "username" specified, use --username [username].');exit(1);return}if((settings.password==null)||(typeof settings.password!="string")||(settings.password=="")){console.log('No or invalid "password" specified, use --password [password].');exit(1);return}if((settings.serverId==null)||(typeof settings.serverId!="string")||(settings.serverId.length!=96)){console.log('No or invalid "serverId" specified.');exit(1);return}if((settings.serverHttpsHash==null)||(typeof settings.serverHttpsHash!="string")||(settings.serverHttpsHash.length!=96)){console.log('No or invalid "serverHttpsHash" specified.');exit(1);return}if((settings.remotePort==null)||(typeof settings.remotePort!="number")||(settings.remotePort<0)||(settings.remotePort>65535)){console.log('No or invalid "remotePort" specified, use --remoteport [remoteport].');exit(1);return}if(settings.serverUrl!=null){startRouter()}else{discoverMeshServer()}}else{if((settings.action=="amtloadwebapp")||(settings.action=="amtloadsmallwebapp")||(settings.action=="amtloadlargewebapp")||(settings.action=="amtclearwebapp")||(settings.action=="amtstoragestate")){if((settings.password==null)||(typeof settings.password!="string")||(settings.password=="")){console.log('No or invalid "password" specified, use --password [password].');exit(1);return}if((settings.hostname==null)||(typeof settings.hostname!="string")||(settings.hostname=="")){settings.hostname="127.0.0.1"}if((settings.username==null)||(typeof settings.username!="string")||(settings.username=="")){settings.username="admin"}settings.protocol="http:";settings.localport=16992;debug(1,"Settings: "+JSON.stringify(settings));digest=require("http-digest").create(settings.username,settings.password);digest.http=require("http");if(settings.action=="amtstoragestate"){getAmtStorage(function(l,e){if(l==200){console.log("Storage State: "+JSON.stringify(e,null,2));exit();return}else{console.log("Unable to read storage state.");exit();return}})}else{if(settings.action=="amtloadwebapp"){settings.webapp=Medium_IntelAmtWebApp}else{if(settings.action=="amtloadsmallwebapp"){settings.webapp=Small_IntelAmtWebApp}else{if(settings.action=="amtloadlargewebapp"){settings.webapp=Large_IntelAmtWebApp}else{if(settings.action=="amtclearwebapp"){settings.webapp=null}}}}nextStepStorageUpload()}}else{if((settings.action=="amtversion")||(settings.action=="amtversions")||(settings.action=="amtver")){var g=require("amt-mei");var f=new g();f.on("error",function(l){console.log("ERROR: "+l);exit(1);return});f.getVersion(function(e){console.log("MEI Version = "+e.BiosVersion.toString());for(var l in e.Versions){console.log(e.Versions[l].Description+" = "+e.Versions[l].Version)}exit(1);return})}else{if(settings.action=="amthashes"){var g=require("amt-mei");var f=new g();f.on("error",function(l){console.log("ERROR: "+l);exit(1);return});f.getHashHandles(function(e){exitOnCount=e.length;for(var l=0;l100){lmsNotifications.shift()}var l=Buffer.concat([Buffer.from("0900","hex"),Buffer.from(JSON.stringify(k))]);for(var j in lmsControlSockets){lmsControlSockets[j].write(l)}}}});amtLms.on("connect",function(){console.log("LMS Connected");amtLms.connected=true;if(settings.noconsole!==true){amtLms.meshCommander=e.createServer();amtLms.meshCommander.listen(16994);amtLms.meshCommander.on("upgrade",function(j,k,g){switch(j.url.split("?")[0]){case"/lms.ashx":k.ws=k.upgradeWebSocket();k.ws.on("data",processLmsControlData);k.ws.on("end",function(){if(lmsControlSockets[this.id]){delete lmsControlSockets[this.id]}});var h=lmsControlSocketsNextId++;lmsControlSockets[h]=k.ws;k.ws.id=h;break;case"/webrelay.ashx":k.ws=k.upgradeWebSocket();amtLms.bindDuplexStream(k.ws,"IPv4",16992);break;default:k.end();break}});amtLms.meshCommander.on("request",function(j,k){switch(j.url.split("?")[0]){case"/":var h=null;try{h=fs.readFileSync("lmscommander.htm")}catch(g){}if(h!=null){k.writeHead(200,"OK",{Server:"JSLMS","Cache-Control":"max-age=0, no-cache","X-Frame-Options":"DENY","Content-Type":"text/html","Transfer-Encoding":"chunked"});k.end(h)}else{k.writeHead(200,"OK",{Server:"JSLMS","Cache-Control":"max-age=0, no-cache","X-Frame-Options":"DENY","Content-Type":"text/html","Content-Encoding":"gzip","Transfer-Encoding":"chunked",ETag:b});k.end(Buffer.from(a,"base64"))}break;default:k.statusCode=404;k.statusMessage="Not Found";k.end();break}});tempTimer=setTimeout(function(){delete tempTimer;setupMeiOsAdmin(d,2)},100)}else{tempTimer=setTimeout(function(){delete tempTimer;setupMeiOsAdmin(d,1)},100)}})}function setupMeiOsAdmin(a,b){amtMei.getLocalSystemAccount(function(f){var d=require("amt-wsman-duk");var e=require("amt-wsman");var c=require("amt");oswsstack=new e(d,"127.0.0.1",16992,f.user,f.pass,false);osamtstack=new c(oswsstack);if(a){a(b)}amtMei.getVersion(function(k){var g=null;try{for(var j in k.Versions){if(k.Versions[j].Description=="AMT"){g=parseInt(k.Versions[j].Version.split(".")[0])}}}catch(h){}if((g!=null)&&(g>=12)){kvmGetData("skip");tempTimer=setInterval(function(){kvmGetData()},2000);kvmSetData(JSON.stringify({action:"restart",ver:1}))}})})}function kvmGetData(a){osamtstack.IPS_KVMRedirectionSettingData_DataChannelRead(kvmDataGetResponse,a)}function kvmDataGetResponse(d,b,c,f,g){if((g!="skip")&&(f==200)&&(c.Body.ReturnValue==0)){var h=null;try{h=Buffer.from(c.Body.DataMessage,"base64").toString()}catch(a){return}if(h!=null){kvmProcessData(c.Body.RealmsBitmap,c.Body.MessageId,h)}}}var webRtcDesktop=null;function kvmProcessData(d,c,g){var a=null;try{a=JSON.parse(g)}catch(b){}if((a!=null)&&(a.action)){if(a.action=="present"){kvmSetData(JSON.stringify({action:"present",ver:1,platform:process.platform}))}if(a.action=="offer"){webRtcDesktop={};var f=require("ILibWebRTC");webRtcDesktop.webrtc=f.createConnection();webRtcDesktop.webrtc.on("connected",function(){});webRtcDesktop.webrtc.on("disconnected",function(){webRtcCleanUp()});webRtcDesktop.webrtc.on("dataChannel",function(h){webRtcDesktop.rtcchannel=h;var e=require("meshDesktop");webRtcDesktop.kvm=e.getRemoteDesktopStream();webRtcDesktop.kvm.pipe(webRtcDesktop.rtcchannel,{dataTypeSkip:1,end:false});webRtcDesktop.rtcchannel.on("end",function(){webRtcCleanUp()});webRtcDesktop.rtcchannel.on("data",function(j){kvmCtrlData(this,j)});webRtcDesktop.rtcchannel.pipe(webRtcDesktop.kvm,{dataTypeSkip:1,end:false})});kvmSetData(JSON.stringify({action:"answer",ver:1,sdp:webRtcDesktop.webrtc.setOffer(a.sdp)}))}}}var path={join:function(){var c=[];for(var a in arguments){var b=arguments[a];if(b!=null){while(b.endsWith("/")||b.endsWith("\\")){b=b.substring(0,b.length-1)}if(a!=0){while(b.startsWith("/")||b.startsWith("\\")){b=b.substring(1)}}c.push(b)}}if(c.length==0){return"/"}return c.join("/")}};function getDirectoryInfo(f){var g={path:f,dir:[]};if(((f==undefined)||(f==""))&&(process.platform=="win32")){var h=null;try{h=fs.readDrivesSync()}catch(b){}if(h!=null){for(var c=0;c0&&c.charCodeAt(0)!=123){if(this.fileupload!=null){c=Buffer.from(c,"base64");var k=c.readUInt32BE(0);if((k==16777216)||(k==16777217)){fs.writeSync(this.fileupload.fp,c.slice(4));b.write({action:"upload",sub:"ack",reqid:this.fileupload.reqid});if(k==16777217){fs.closeSync(this.fileupload.fp);this.fileupload=null}}}return}try{c=JSON.parse(c)}catch(g){console.error("Invalid JSON: "+c);return}if((c.path!=null)&&(process.platform!="win32")&&(c.path[0]!="/")){c.path="/"+c.path}switch(c.action){case"ping":b.write({action:"pong"});break;case"ls":var p=getDirectoryInfo(c.path);if(c.reqid!=undefined){p.reqid=c.reqid}b.write(p);break;case"mkdir":fs.mkdirSync(c.path);break;case"rm":for(var l in c.delfiles){var j=path.join(c.path,c.delfiles[l]);try{fs.unlinkSync(j)}catch(f){console.log(f)}}break;case"rename":var o=path.join(c.path,c.oldname);var n=path.join(c.path,c.newname);try{fs.renameSync(o,n)}catch(f){console.log(f)}break;case"download":var r=0;if(c.sub=="start"){if(this.filedownload!=null){b.write({action:"download",sub:"cancel",id:this.filedownload.id});delete this.filedownload}this.filedownload={id:c.id,path:c.path,ptr:0};try{this.filedownload.f=fs.openSync(this.filedownload.path,"rbN")}catch(f){b.write({action:"download",sub:"cancel",id:this.filedownload.id});delete this.filedownload}if(this.filedownload){b.write({action:"download",sub:"start",id:c.id})}}else{if((this.filedownload!=null)&&(c.id==this.filedownload.id)){if(c.sub=="startack"){r=8}else{if(c.sub=="stop"){delete this.filedownload}else{if(c.sub=="ack"){r=1}}}}}while(r>0){r--;var a=new Buffer(4096);var m=fs.readSync(this.filedownload.f,a,4,4092,null);this.filedownload.ptr+=m;if(m<4092){a.writeInt32BE(16777217,0);fs.closeSync(this.filedownload.f);delete this.filedownload;r=0}else{a.writeInt32BE(16777216,0)}b.write(a.slice(0,m+4).toString("base64"))}break;case"upload":if(c.sub=="start"){if(this.fileupload!=null){fs.closeSync(this.fileupload.fp)}if(!c.path||!c.name){break}this.fileupload={reqid:c.reqid};var h=path.join(c.path,c.name);try{this.fileupload.fp=fs.openSync(h,"wbN")}catch(f){}if(this.fileupload.fp){b.write({action:"upload",sub:"start",reqid:this.fileupload.reqid})}else{this.fileupload=null;b.write({action:"upload",sub:"error",reqid:this.fileupload.reqid})}}else{if(c.sub=="cancel"){if(this.fileupload!=null){fs.closeSync(this.fileupload.fp);this.fileupload=null}}}break;case"copy":for(var l in c.names){var q=path.join(c.scpath,c.names[l]),d=path.join(c.dspath,c.names[l]);if(q!=d){try{fs.copyFileSync(q,d)}catch(f){}}}break;case"move":for(var l in c.names){var q=path.join(c.scpath,c.names[l]),d=path.join(c.dspath,c.names[l]);if(q!=d){try{fs.copyFileSync(q,d);fs.unlinkSync(q)}catch(f){}}}break}}function webRtcCleanUp(){if(webRtcDesktop==null){return}if(webRtcDesktop.rtcchannel){try{webRtcDesktop.rtcchannel.close()}catch(a){}try{webRtcDesktop.rtcchannel.removeAllListeners("data")}catch(a){}try{webRtcDesktop.rtcchannel.removeAllListeners("end")}catch(a){}delete webRtcDesktop.rtcchannel}if(webRtcDesktop.webrtc){try{webRtcDesktop.webrtc.close()}catch(a){}try{webRtcDesktop.webrtc.removeAllListeners("connected")}catch(a){}try{webRtcDesktop.webrtc.removeAllListeners("disconnected")}catch(a){}try{webRtcDesktop.webrtc.removeAllListeners("dataChannel")}catch(a){}delete webRtcDesktop.webrtc}if(webRtcDesktop.kvm){try{webRtcDesktop.kvm.end()}catch(a){}delete webRtcDesktop.kvm}webRtcDesktop=null}function kvmSetData(a){osamtstack.IPS_KVMRedirectionSettingData_DataChannelWrite(Buffer.from(a).toString("base64"),function(){})}function startLmsWsmanResponse(d,b,c,e){if(e==600){console.log("ERROR: Unable to connect to Intel(R) AMT.")}else{if(e!=200){console.log("ERROR: Unable to get object from Intel(R) AMT, status = "+e+".")}else{var a=c.CIM_SoftwareIdentity.responses;if(a.length>0){var f=getInstance(a,"AMT")["VersionString"];amtversion=parseInt(f.split(".")[0]);amtversionmin=parseInt(f.split(".")[1])}}}}function processLmsControlData(b){if(b.length<2){return}var a=b.readUInt16LE(0);switch(a){case 1:getAmtInfo(function(c,d){c.LoginMode=2;d.write(Buffer.concat([Buffer.from("0100","hex"),Buffer.from(JSON.stringify(c))]))},this);break;case 2:if(b.length<6){break}amtMei.unprovision(b.readUInt32LE(2),function(e,d){var c=new Buffer(6);c.writeUInt16LE(2,0);c.writeUInt32LE(e,2);d.write(c)},this);break;case 3:amtMei.getLocalSystemAccount(function(c,d){d.write(Buffer.concat([Buffer.from("030000000000","hex"),c.raw]))},this);break;case 4:amtMei.startConfiguration(function(e,d){var c=new Buffer(6);c.writeUInt16LE(7,0);c.writeUInt32LE(e,2);d.write(c)},this);break;case 5:amtMei.stopConfiguration(function(e,d){var c=new Buffer(6);c.writeUInt16LE(7,0);c.writeUInt32LE(e,2);d.write(c)},this);break;case 6:amtMei.openUserInitiatedConnection(function(e,d){var c=new Buffer(6);c.writeUInt16LE(7,0);c.writeUInt32LE(e,2);d.write(c)},this);break;case 7:amtMei.closeUserInitiatedConnection(function(e,d){var c=new Buffer(6);c.writeUInt16LE(7,0);c.writeUInt32LE(e,2);d.write(c)},this);break;case 8:amtMei.getRemoteAccessConnectionStatus(function(e,d){var c=new Buffer(6);c.writeUInt16LE(8,0);c.writeUInt32LE(e.status,2);d.write(Buffer.concat([c,e.raw]))},this);break}}function startRouter(){tcpserver=net.createServer(OnTcpClientConnected);tcpserver.on("error",function(a){console.log("ERROR: "+JSON.stringify(a));exit(0);return});tcpserver.listen(settings.localPort,function(){if(settings.remoteName==null){console.log("Redirecting local port "+settings.localPort+" to remote port "+settings.remotePort+".")}else{console.log("Redirecting local port "+settings.localPort+" to "+settings.remoteName+":"+settings.remotePort+".")}console.log("Press ctrl-c to exit.")})}function OnTcpClientConnected(a){try{debug(1,"Client connected");a.on("end",function(){disconnectTunnel(this,this.websocket,"Client closed")});a.pause();try{options=http.parseUri(settings.serverUrl+"?user="+settings.username+"&pass="+settings.password+"&nodeid="+settings.remoteNodeId+"&tcpport="+settings.remotePort)}catch(b){console.log('Unable to parse "serverUrl".');process.exit(1);return}options.checkServerIdentity=onVerifyServer;options.rejectUnauthorized=false;a.websocket=http.request(options);a.websocket.tcp=a;a.websocket.tunneling=false;a.websocket.upgrade=OnWebSocket;a.websocket.on("error",function(c){console.log("ERROR: "+JSON.stringify(c))});a.websocket.end()}catch(b){debug(2,b)}}function disconnectTunnel(c,d,b){if(d!=null){try{d.end()}catch(a){debug(2,a)}}if(c!=null){try{c.end()}catch(a){debug(2,a)}}debug(1,"Tunnel disconnected: "+b)}function OnWebSocket(b,c,a){debug(1,"Websocket connected");c.on("data",function(d){if(this.parent.tunneling==false){d=d.toString();if(d=="c"){this.parent.tunneling=true;this.pipe(this.parent.tcp);this.parent.tcp.pipe(this);debug(1,"Tunnel active")}else{if((d.length>6)&&(d.substring(0,6)=="error:")){console.log(d.substring(6));disconnectTunnel(this.tcp,this,d.substring(6))}}}});c.on("error",function(d){disconnectTunnel(this.tcp,this,"Websocket error")});c.on("close",function(d){disconnectTunnel(this.tcp,this,"Websocket closed")});c.parent=this}function discoverMeshServer(){console.log("Looking for server...");discoveryInterval=setInterval(discoverMeshServerOnce,5000);discoverMeshServerOnce()}function discoverMeshServerOnce(){var f=os.networkInterfaces();for(var a in f){if(f.hasOwnProperty(a)){for(var d=0;d0)?"":"Content-Encoding:gzipContent-Type:text/html"+((e!=null)?(""+e+""):"")+"";var a=((b.length-g)>(7000-d.length))?(7000-d.length):(b.length-g);h.write(Buffer.concat([new Buffer(d),b.slice(g,g+a)]));g+=a;h.end()}function verifyStorage(c,a,b){var d=digest.request({protocol:settings.protocol,method:"GET",host:settings.hostname,path:("/amt-storage/"+c),port:settings.localport});d.on("error",function(f){console.log("Verify error occured: "+JSON.stringify(f));if(b!=null){b(null)}});d.on("response",function(e){e.ptr=0;e.ok=true;e.on("data",function(f){if(f.toString("hex")!=a.slice(e.ptr,e.ptr+f.length).toString("hex")){e.ok=false;console.log("Verifiy failed ("+e.ptr+", "+f.length+").")}e.ptr+=f.length});e.on("end",function(){if(b!=null){b(e.ok)}})});d.end()}function deleteStorage(b,a,c){var d=digest.request({protocol:settings.protocol,method:"DELETE",host:settings.hostname,path:"/amt-storage/"+b,port:settings.localport});d.on("error",function(f){if((f=="Error: Socket was unexpectedly closed")&&(c!=true)){deleteStorage(b,a,true)}else{if(a!=null){if(f.statusCode){a(f.statusCode)}else{a(null)}}}});d.on("response",function(e){if(a!=null){a(e.statusCode)}});d.end()}function parseUrlArguments(d){var c={},e=d.split("?");if(e.length<2){return c}e=e[1].split("&");for(var a in e){var b=e[a].indexOf("=");if(b>0){c[e[a].substring(0,b).toLowerCase()]=e[a].substring(b+1)}}return c}function removeItemFromArray(a,b){var c=a.indexOf(b);if(c!==-1){a.splice(c,1)}}var serviceName=null;var serviceOpSpecified=0;var serviceInstall=0;for(var i in process.argv){if(process.argv[i].toLowerCase()=="install"){serviceInstall=1}else{if(process.argv[i].toLowerCase()=="uninstall"){serviceInstall=-1}}if((process.argv[i].toLowerCase()=="microlms")||(process.argv[i].toLowerCase()=="amtlms")||(process.argv[i].toLowerCase()=="lms")){serviceName="MicroLMS";break}if((process.argv[i].toLowerCase()=="meshcommander")||(process.argv[i].toLowerCase()=="commander")){serviceName="MeshCommander";break}}if(serviceName==null){for(var i in process.argv){if((process.argv[i].toLowerCase()=="install")||(process.argv[i].toLowerCase()=="uninstall")){console.log("In order to install/uninstall, a service type must be specified.");process.exit()}}if(process.execPath.includes("MicroLMS")){serviceName="MicroLMS"}else{if(process.execPath.includes("MeshCommander")){serviceName="MeshCommander"}else{serviceName="not_a_service"}}}if(serviceInstall==0){run(process.argv)}else{var serviceHost=require("service-host");var meshcmdService=new serviceHost({name:serviceName,startType:"AUTO_START"});meshcmdService.on("serviceStart",function onStart(){console.setDestination(console.Destinations.DISABLED);if(process.execPath.includes("MicroLMS")){run([process.execPath,"microlms"])}else{if(process.execPath.includes("MeshCommander")){run([process.execPath,"meshcommander"])}else{console.log("Aborting Service Start, because unknown binary: "+process.execPath);process.exit(1)}}});meshcmdService.on("serviceStop",function onStop(){console.log("Stopping service");process.exit()});meshcmdService.on("normalStart",function onNormalStart(){try{run(process.argv)}catch(a){console.log("ERROR: "+a)}});meshcmdService.run()}; \ No newline at end of file diff --git a/agents/meshcore-OldTerminal.js b/agents/meshcore-OldTerminal.js deleted file mode 100644 index 0f3f086d..00000000 --- a/agents/meshcore-OldTerminal.js +++ /dev/null @@ -1,1894 +0,0 @@ -/* -Copyright 2018 Intel Corporation - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - - -process.on('uncaughtException', function (ex) { - require('MeshAgent').SendCommand({ "action": "msg", "type": "console", "value": "uncaughtException1: " + ex }); -}); - -// NOTE: This seems to cause big problems, don't enable the debugger in the server's meshcore. -//attachDebugger({ webport: 9999, wait: 1 }).then(function (prt) { console.log('Point Browser for Debug to port: ' + prt); }); - -// Mesh Rights -const MESHRIGHT_EDITMESH = 1; -const MESHRIGHT_MANAGEUSERS = 2; -const MESHRIGHT_MANAGECOMPUTERS = 4; -const MESHRIGHT_REMOTECONTROL = 8; -const MESHRIGHT_AGENTCONSOLE = 16; -const MESHRIGHT_SERVERFILES = 32; -const MESHRIGHT_WAKEDEVICE = 64; -const MESHRIGHT_SETNOTES = 128; -const MESHRIGHT_REMOTEVIEW = 256; - -function createMeshCore(agent) { - var obj = {}; - - /* - function borderController() { - this.container = null; - this.Start = function Start(user) { - if (this.container == null) { - if (process.platform == 'win32') { - try { - this.container = require('ScriptContainer').Create({ processIsolation: 1, sessionId: user.SessionId }); - } catch (ex) { - this.container = require('ScriptContainer').Create({ processIsolation: 1 }); - } - } else { - this.container = require('ScriptContainer').Create({ processIsolation: 1, sessionId: user.uid }); - } - this.container.parent = this; - this.container.addModule('monitor-info', getJSModule('monitor-info')); - this.container.addModule('monitor-border', getJSModule('monitor-border')); - this.container.addModule('promise', getJSModule('promise')); - this.container.once('exit', function (code) { sendConsoleText('Border Process Exited with code: ' + code); this.parent.container = this.parent._container = null; }); - this.container.ExecuteString("var border = require('monitor-border'); border.Start();"); - } - } - this.Stop = function Stop() { - if (this.container != null) { - this._container = this.container; - this._container.parent = this; - this.container = null; - this._container.exit(); - } - } - } - obj.borderManager = new borderController(); - */ - - // MeshAgent JavaScript Core Module. This code is sent to and running on the mesh agent. - var meshCoreObj = { "action": "coreinfo", "value": "MeshCore v6", "caps": 14 }; // Capability bitmask: 1 = Desktop, 2 = Terminal, 4 = Files, 8 = Console, 16 = JavaScript - - // Get the operating system description string - try { require('os').name().then(function (v) { meshCoreObj.osdesc = v; }); } catch (ex) { } - - var meshServerConnectionState = 0; - var tunnels = {}; - var lastMeInfo = null; - var lastNetworkInfo = null; - var lastPublicLocationInfo = null; - var selfInfoUpdateTimer = null; - var http = require('http'); - var net = require('net'); - var fs = require('fs'); - var rtc = require('ILibWebRTC'); - var processManager = require('process-manager'); - var amtMei = null, amtLms = null, amtLmsState = 0; - var amtMeiConnected = 0, amtMeiTmpState = null; - var wifiScannerLib = null; - var wifiScanner = null; - var networkMonitor = null; - var amtscanner = null; - var nextTunnelIndex = 1; - - // If we are running in Duktape, agent will be null - if (agent == null) { - // Running in native agent, Import libraries - db = require('SimpleDataStore').Shared(); - sha = require('SHA256Stream'); - mesh = require('MeshAgent'); - childProcess = require('child_process'); - if (mesh.hasKVM == 1) { // if the agent is compiled with KVM support - // Check if this computer supports a desktop - try { if ((process.platform == 'win32') || (process.platform == 'darwin') || (require('monitor-info').kvm_x11_support)) { meshCoreObj.caps |= 1; } } catch (ex) { } - } - } else { - // Running in nodejs - meshCoreObj.value += '-NodeJS'; - meshCoreObj.caps = 8; - mesh = agent.getMeshApi(); - } - - /* - var AMTScanner = require("AMTScanner"); - var scan = new AMTScanner(); - - scan.on("found", function (data) { - if (typeof data === 'string') { - console.log(data); - } else { - console.log(JSON.stringify(data, null, " ")); - } - }); - scan.scan("10.2.55.140", 1000); - scan.scan("10.2.55.139-10.2.55.145", 1000); - scan.scan("10.2.55.128/25", 2000); - */ - - /* - // Try to load up the network monitor - try { - networkMonitor = require('NetworkMonitor'); - networkMonitor.on('change', function () { sendNetworkUpdateNagle(); }); - networkMonitor.on('add', function (addr) { sendNetworkUpdateNagle(); }); - networkMonitor.on('remove', function (addr) { sendNetworkUpdateNagle(); }); - } catch (e) { networkMonitor = null; } - */ - - // Try to load up the Intel AMT scanner - try { - var AMTScannerModule = require('amt-scanner'); - amtscanner = new AMTScannerModule(); - //amtscanner.on('found', function (data) { if (typeof data != 'string') { data = JSON.stringify(data, null, " "); } sendConsoleText(data); }); - } catch (ex) { amtscanner = null; } - - // Fetch the SMBios Tables - var SMBiosTables = null; - var SMBiosTablesRaw = null; - try { - require('smbios').get(function (data) { - if (data != null) { - SMBiosTablesRaw = data; - SMBiosTables = require('smbios').parse(data) - if (mesh.isControlChannelConnected) { mesh.SendCommand({ "action": "smbios", "value": SMBiosTablesRaw }); } - - // If SMBios tables say that AMT is present, try to connect MEI - if (SMBiosTables.amtInfo && (SMBiosTables.amtInfo.AMT == true)) { - // Try to load up the MEI module - try { - var amtMeiLib = require('amt-mei'); - amtMei = new amtMeiLib(); - amtMei.on('error', function (e) { amtMeiLib = null; amtMei = null; amtMeiConnected = -1; }); - amtMeiConnected = 2; - sendPeriodicServerUpdate(1); - } catch (ex) { amtMeiLib = null; amtMei = null; amtMeiConnected = -1; } - } - } - }); - } catch (ex) { sendConsoleText(ex); } - - // Try to load up the WIFI scanner - try { - var wifiScannerLib = require('wifi-scanner'); - wifiScanner = new wifiScannerLib(); - wifiScanner.on('accessPoint', function (data) { sendConsoleText(data); }); - } catch (ex) { wifiScannerLib = null; wifiScanner = null; } - - // Get our location (lat/long) using our public IP address - var getIpLocationDataExInProgress = false; - var getIpLocationDataExCounts = [0, 0]; - function getIpLocationDataEx(func) { - if (getIpLocationDataExInProgress == true) { return false; } - try { - getIpLocationDataExInProgress = true; - getIpLocationDataExCounts[0]++; - var options = http.parseUri("http://ipinfo.io/json"); - options.method = 'GET'; - http.request(options, function (resp) { - if (resp.statusCode == 200) { - var geoData = ''; - resp.data = function (geoipdata) { geoData += geoipdata; }; - resp.end = function () { - var location = null; - try { - if (typeof geoData == 'string') { - var result = JSON.parse(geoData); - if (result.ip && result.loc) { location = result; } - } - } catch (e) { } - if (func) { getIpLocationDataExCounts[1]++; func(location); } - } - } else { func(null); } - getIpLocationDataExInProgress = false; - }).end(); - return true; - } - catch (e) { return false; } - } - - // Remove all Gateway MAC addresses for interface list. This is useful because the gateway MAC is not always populated reliably. - function clearGatewayMac(str) { - if (str == null) return null; - var x = JSON.parse(str); - for (var i in x.netif) { if (x.netif[i].gatewaymac) { delete x.netif[i].gatewaymac } } - return JSON.stringify(x); - } - - function getIpLocationData(func) { - // Get the location information for the cache if possible - var publicLocationInfo = db.Get('publicLocationInfo'); - if (publicLocationInfo != null) { publicLocationInfo = JSON.parse(publicLocationInfo); } - if (publicLocationInfo == null) { - // Nothing in the cache, fetch the data - getIpLocationDataEx(function (locationData) { - if (locationData != null) { - publicLocationInfo = {}; - publicLocationInfo.netInfoStr = lastNetworkInfo; - publicLocationInfo.locationData = locationData; - var x = db.Put('publicLocationInfo', JSON.stringify(publicLocationInfo)); // Save to database - if (func) func(locationData); // Report the new location - } else { - if (func) func(null); // Report no location - } - }); - } else { - // Check the cache - if (clearGatewayMac(publicLocationInfo.netInfoStr) == clearGatewayMac(lastNetworkInfo)) { - // Cache match - if (func) func(publicLocationInfo.locationData); - } else { - // Cache mismatch - getIpLocationDataEx(function (locationData) { - if (locationData != null) { - publicLocationInfo = {}; - publicLocationInfo.netInfoStr = lastNetworkInfo; - publicLocationInfo.locationData = locationData; - var x = db.Put('publicLocationInfo', JSON.stringify(publicLocationInfo)); // Save to database - if (func) func(locationData); // Report the new location - } else { - if (func) func(publicLocationInfo.locationData); // Can't get new location, report the old location - } - }); - } - } - } - - // Polyfill String.endsWith - if (!String.prototype.endsWith) { - String.prototype.endsWith = function (searchString, position) { - var subjectString = this.toString(); - if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) { position = subjectString.length; } - position -= searchString.length; - var lastIndex = subjectString.lastIndexOf(searchString, position); - return lastIndex !== -1 && lastIndex === position; - }; - } - - // Polyfill path.join - obj.path = { - join: function () { - var x = []; - for (var i in arguments) { - var w = arguments[i]; - if (w != null) { - while (w.endsWith('/') || w.endsWith('\\')) { w = w.substring(0, w.length - 1); } - if (i != 0) { - while (w.startsWith('/') || w.startsWith('\\')) { w = w.substring(1); } - } - x.push(w); - } - } - if (x.length == 0) return '/'; - return x.join('/'); - } - }; - - // Replace a string with a number if the string is an exact number - function toNumberIfNumber(x) { if ((typeof x == 'string') && (+parseInt(x) === x)) { x = parseInt(x); } return x; } - - // Convert decimal to hex - function char2hex(i) { return (i + 0x100).toString(16).substr(-2).toUpperCase(); } - - // Convert a raw string to a hex string - function rstr2hex(input) { var r = '', i; for (i = 0; i < input.length; i++) { r += char2hex(input.charCodeAt(i)); } return r; } - - // Convert a buffer into a string - function buf2rstr(buf) { var r = ''; for (var i = 0; i < buf.length; i++) { r += String.fromCharCode(buf[i]); } return r; } - - // Convert a hex string to a raw string // TODO: Do this using Buffer(), will be MUCH faster - function hex2rstr(d) { - if (typeof d != "string" || d.length == 0) return ''; - var r = '', m = ('' + d).match(/../g), t; - while (t = m.shift()) r += String.fromCharCode('0x' + t); - return r - } - - // Convert an object to string with all functions - function objToString(x, p, pad, ret) { - if (ret == undefined) ret = ''; - if (p == undefined) p = 0; - if (x == null) { return '[null]'; } - if (p > 8) { return '[...]'; } - if (x == undefined) { return '[undefined]'; } - if (typeof x == 'string') { if (p == 0) return x; return '"' + x + '"'; } - if (typeof x == 'buffer') { return '[buffer]'; } - if (typeof x != 'object') { return x; } - var r = '{' + (ret ? '\r\n' : ' '); - for (var i in x) { if (i != '_ObjectID') { r += (addPad(p + 2, pad) + i + ': ' + objToString(x[i], p + 2, pad, ret) + (ret ? '\r\n' : ' ')); } } - return r + addPad(p, pad) + '}'; - } - - // Return p number of spaces - function addPad(p, ret) { var r = ''; for (var i = 0; i < p; i++) { r += ret; } return r; } - - // Split a string taking into account the quoats. Used for command line parsing - function splitArgs(str) { - var myArray = [], myRegexp = /[^\s"]+|"([^"]*)"/gi; - do { var match = myRegexp.exec(str); if (match != null) { myArray.push(match[1] ? match[1] : match[0]); } } while (match != null); - return myArray; - } - - // Parse arguments string array into an object - function parseArgs(argv) { - var results = { '_': [] }, current = null; - for (var i = 1, len = argv.length; i < len; i++) { - var x = argv[i]; - if (x.length > 2 && x[0] == '-' && x[1] == '-') { - if (current != null) { results[current] = true; } - current = x.substring(2); - } else { - if (current != null) { results[current] = toNumberIfNumber(x); current = null; } else { results['_'].push(toNumberIfNumber(x)); } - } - } - if (current != null) { results[current] = true; } - return results; - } - - // Get server target url with a custom path - function getServerTargetUrl(path) { - var x = mesh.ServerUrl; - //sendConsoleText("mesh.ServerUrl: " + mesh.ServerUrl); - if (x == null) { return null; } - if (path == null) { path = ''; } - x = http.parseUri(x); - if (x == null) return null; - return x.protocol + '//' + x.host + ':' + x.port + '/' + path; - } - - // Get server url. If the url starts with "*/..." change it, it not use the url as is. - function getServerTargetUrlEx(url) { - if (url.substring(0, 2) == '*/') { return getServerTargetUrl(url.substring(2)); } - return url; - } - - // Send a wake-on-lan packet - function sendWakeOnLan(hexMac) { - var count = 0; - try { - var interfaces = require('os').networkInterfaces(); - var magic = 'FFFFFFFFFFFF'; - for (var x = 1; x <= 16; ++x) { magic += hexMac; } - var magicbin = Buffer.from(magic, 'hex'); - - for (var adapter in interfaces) { - if (interfaces.hasOwnProperty(adapter)) { - for (var i = 0; i < interfaces[adapter].length; ++i) { - var addr = interfaces[adapter][i]; - if ((addr.family == 'IPv4') && (addr.mac != '00:00:00:00:00:00')) { - var socket = require('dgram').createSocket({ type: "udp4" }); - socket.bind({ address: addr.address }); - socket.setBroadcast(true); - socket.send(magicbin, 7, "255.255.255.255"); - count++; - } - } - } - } - } catch (e) { } - return count; - } - - // Handle a mesh agent command - function handleServerCommand(data) { - if (typeof data == 'object') { - // If this is a console command, parse it and call the console handler - switch (data.action) { - case 'msg': { - switch (data.type) { - case 'console': { // Process a console command - if (data.value && data.sessionid) { - var args = splitArgs(data.value); - processConsoleCommand(args[0].toLowerCase(), parseArgs(args), data.rights, data.sessionid); - } - break; - } - case 'tunnel': { - if (data.value != null) { // Process a new tunnel connection request - // Create a new tunnel object - var xurl = getServerTargetUrlEx(data.value); - if (xurl != null) { - var woptions = http.parseUri(xurl); - woptions.rejectUnauthorized = 0; - //sendConsoleText(JSON.stringify(woptions)); - var tunnel = http.request(woptions); - tunnel.upgrade = onTunnelUpgrade; - tunnel.onerror = function (e) { sendConsoleText('ERROR: ' + JSON.stringify(e)); } - tunnel.sessionid = data.sessionid; - tunnel.rights = data.rights; - tunnel.state = 0; - tunnel.url = xurl; - tunnel.protocol = 0; - tunnel.tcpaddr = data.tcpaddr; - tunnel.tcpport = data.tcpport; - tunnel.end(); - // Put the tunnel in the tunnels list - var index = nextTunnelIndex++; - tunnel.index = index; - tunnels[index] = tunnel; - - //sendConsoleText('New tunnel connection #' + index + ': ' + tunnel.url + ', rights: ' + tunnel.rights, data.sessionid); - } - } - break; - } - case 'ps': { - // Return the list of running processes - if (data.sessionid) { - processManager.getProcesses(function (plist) { mesh.SendCommand({ "action": "msg", "type": "ps", "value": JSON.stringify(plist), "sessionid": data.sessionid }); }); - } - break; - } - case 'pskill': { - // Kill a process - if (data.value) { - try { process.kill(data.value); } catch (e) { sendConsoleText(JSON.stringify(e)); } - } - break; - } - case 'openUrl': { - // Open a local web browser and return success/fail - sendConsoleText('OpenURL: ' + data.url); - if (data.url) { mesh.SendCommand({ "action": "msg", "type":"openUrl", "url": data.url, "sessionid": data.sessionid, "success": (openUserDesktopUrl(data.url) != null) }); } - break; - } - } - break; - } - case 'wakeonlan': { - // Send wake-on-lan on all interfaces for all MAC addresses in data.macs array. The array is a list of HEX MAC addresses. - sendConsoleText('Server requesting wake-on-lan for: ' + data.macs.join(', ')); - for (var i in data.macs) { sendWakeOnLan(data.macs[i]); } - break; - } - case 'poweraction': { - // Server telling us to execute a power action - if ((mesh.ExecPowerState != undefined) && (data.actiontype)) { - var forced = 0; - if (data.forced == 1) { forced = 1; } - data.actiontype = parseInt(data.actiontype); - sendConsoleText('Performing power action=' + data.actiontype + ', forced=' + forced + '.'); - var r = mesh.ExecPowerState(data.actiontype, forced); - sendConsoleText('ExecPowerState returned code: ' + r); - } - break; - } - case 'iplocation': { - // Update the IP location information of this node. Only do this when requested by the server since we have a limited amount of time we can call this per day - getIpLocationData(function (location) { mesh.SendCommand({ "action": "iplocation", "type": "publicip", "value": location }); }); - break; - } - case 'toast': { - // Display a toast message - if (data.title && data.msg) { require('toaster').Toast(data.title, data.msg); } - break; - } - case 'openUrl': { - // Open a local web browser and return success/fail - sendConsoleText('OpenURL: ' + data.url); - if (data.url) { mesh.SendCommand({ "action": "openUrl", "url": data.url, "sessionid": data.sessionid, "success": (openUserDesktopUrl(data.url) != null) }); } - break; - } - } - } - } - - // Called when a file changed in the file system - /* - function onFileWatcher(a, b) { - console.log('onFileWatcher', a, b, this.path); - var response = getDirectoryInfo(this.path); - if ((response != undefined) && (response != null)) { this.tunnel.s.write(JSON.stringify(response)); } - } - */ - - // Get a formated response for a given directory path - function getDirectoryInfo(reqpath) { - var response = { path: reqpath, dir: [] }; - if (((reqpath == undefined) || (reqpath == '')) && (process.platform == 'win32')) { - // List all the drives in the root, or the root itself - var results = null; - try { results = fs.readDrivesSync(); } catch (e) { } // TODO: Anyway to get drive total size and free space? Could draw a progress bar. - if (results != null) { - for (var i = 0; i < results.length; ++i) { - var drive = { n: results[i].name, t: 1 }; - if (results[i].type == 'REMOVABLE') { drive.dt = 'removable'; } // TODO: See if this is USB/CDROM or something else, we can draw icons. - response.dir.push(drive); - } - } - } else { - // List all the files and folders in this path - if (reqpath == '') { reqpath = '/'; } - var results = null, xpath = obj.path.join(reqpath, '*'); - //if (process.platform == "win32") { xpath = xpath.split('/').join('\\'); } - try { results = fs.readdirSync(xpath); } catch (e) { } - if (results != null) { - for (var i = 0; i < results.length; ++i) { - if ((results[i] != '.') && (results[i] != '..')) { - var stat = null, p = obj.path.join(reqpath, results[i]); - //if (process.platform == "win32") { p = p.split('/').join('\\'); } - try { stat = fs.statSync(p); } catch (e) { } // TODO: Get file size/date - if ((stat != null) && (stat != undefined)) { - if (stat.isDirectory() == true) { - response.dir.push({ n: results[i], t: 2, d: stat.mtime }); - } else { - response.dir.push({ n: results[i], t: 3, s: stat.size, d: stat.mtime }); - } - } - } - } - } - } - return response; - } - - // Tunnel callback operations - function onTunnelUpgrade(response, s, head) { - this.s = s; - s.httprequest = this; - s.end = onTunnelClosed; - s.tunnel = this; - - if (this.tcpport != null) { - // This is a TCP relay connection, pause now and try to connect to the target. - s.pause(); - s.data = onTcpRelayServerTunnelData; - var connectionOptions = { port: parseInt(this.tcpport) }; - if (this.tcpaddr != null) { connectionOptions.host = this.tcpaddr; } else { connectionOptions.host = '127.0.0.1'; } - s.tcprelay = net.createConnection(connectionOptions, onTcpRelayTargetTunnelConnect); - s.tcprelay.peerindex = this.index; - } else { - // This is a normal connect for KVM/Terminal/Files - s.data = onTunnelData; - } - } - - // Called when the TCP relay target is connected - function onTcpRelayTargetTunnelConnect() { - var peerTunnel = tunnels[this.peerindex]; - this.pipe(peerTunnel.s); // Pipe Target --> Server - peerTunnel.s.first = true; - peerTunnel.s.resume(); - } - - // Called when we get data from the server for a TCP relay (We have to skip the first received 'c' and pipe the rest) - function onTcpRelayServerTunnelData(data) { - if (this.first == true) { this.first = false; this.pipe(this.tcprelay); } // Pipe Server --> Target - } - - function onTunnelClosed() { - if (tunnels[this.httprequest.index] == null) return; // Stop duplicate calls. - //sendConsoleText("Tunnel #" + this.httprequest.index + " closed.", this.httprequest.sessionid); - delete tunnels[this.httprequest.index]; - - /* - // Close the watcher if required - if (this.httprequest.watcher != undefined) { - //console.log('Closing watcher: ' + this.httprequest.watcher.path); - //this.httprequest.watcher.close(); // TODO: This line causes the agent to crash!!!! - delete this.httprequest.watcher; - } - */ - - // If there is a upload or download active on this connection, close the file - if (this.httprequest.uploadFile) { fs.closeSync(this.httprequest.uploadFile); this.httprequest.uploadFile = undefined; } - if (this.httprequest.downloadFile) { fs.closeSync(this.httprequest.downloadFile); this.httprequest.downloadFile = undefined; } - - // Clean up WebRTC - if (this.webrtc != null) { - if (this.webrtc.rtcchannel) { try { this.webrtc.rtcchannel.close(); } catch (e) { } this.webrtc.rtcchannel.removeAllListeners('data'); this.webrtc.rtcchannel.removeAllListeners('end'); delete this.webrtc.rtcchannel; } - if (this.webrtc.websocket) { delete this.webrtc.websocket; } - try { this.webrtc.close(); } catch (e) { } - this.webrtc.removeAllListeners('connected'); - this.webrtc.removeAllListeners('disconnected'); - this.webrtc.removeAllListeners('dataChannel'); - delete this.webrtc; - } - - // Clean up WebSocket - this.removeAllListeners('data'); - } - function onTunnelSendOk() { /*sendConsoleText("Tunnel #" + this.index + " SendOK.", this.sessionid);*/ } - function onTunnelData(data) { - //console.log("OnTunnelData"); - //sendConsoleText('OnTunnelData, ' + data.length + ', ' + typeof data + ', ' + data); - - // If this is upload data, save it to file - if (this.httprequest.uploadFile) { - try { fs.writeSync(this.httprequest.uploadFile, data); } catch (e) { this.write(new Buffer(JSON.stringify({ action: 'uploaderror' }))); return; } // Write to the file, if there is a problem, error out. - this.write(new Buffer(JSON.stringify({ action: 'uploadack', reqid: this.httprequest.uploadFileid }))); // Ask for more data - return; - } - /* - // If this is a download, send more of the file - if (this.httprequest.downloadFile) { - var buf = new Buffer(4096); - var len = fs.readSync(this.httprequest.downloadFile, buf, 0, 4096, null); - this.httprequest.downloadFilePtr += len; - if (len > 0) { this.write(buf.slice(0, len)); } else { fs.closeSync(this.httprequest.downloadFile); this.httprequest.downloadFile = undefined; this.end(); } - return; - } - */ - - if (this.httprequest.state == 0) { - // Check if this is a relay connection - if (data == 'c') { this.httprequest.state = 1; /*sendConsoleText("Tunnel #" + this.httprequest.index + " now active", this.httprequest.sessionid);*/ } - } else { - // Handle tunnel data - if (this.httprequest.protocol == 0) { // 1 = SOL, 2 = KVM, 3 = IDER, 4 = Files, 5 = FileTransfer - // Take a look at the protocol - this.httprequest.protocol = parseInt(data); - if (typeof this.httprequest.protocol != 'number') { this.httprequest.protocol = 0; } - if (this.httprequest.protocol == 1) { - // Check user access rights - if ((this.httprequest.rights & MESHRIGHT_REMOTECONTROL) == 0) { - // Disengage this tunnel, user does not have the rights to do this!! - this.httprequest.protocol = 999999; - sendConsoleText('Error: No Remote Control Rights.'); - return; - } - - // Remote terminal using native pipes - if (process.platform == "win32") { - this.httprequest.process = childProcess.execFile("%windir%\\system32\\cmd.exe"); - } else { - this.httprequest.process = childProcess.execFile("/bin/sh", ["sh"], { type: childProcess.SpawnTypes.TERM }); - } - - this.httprequest.process.tunnel = this; - this.httprequest.process.on('exit', function (ecode, sig) { this.tunnel.end(); }); - this.httprequest.process.stderr.on('data', function (chunk) { this.parent.tunnel.write(chunk); }); - this.httprequest.process.stdout.pipe(this, { dataTypeSkip: 1 }); // 0 = Binary, 1 = Text. - this.pipe(this.httprequest.process.stdin, { dataTypeSkip: 1, end: false }); // 0 = Binary, 1 = Text. - this.prependListener('end', function () { this.httprequest.process.kill(); }); - this.removeAllListeners('data'); - this.on('data', onTunnelControlData); - //this.write('MeshCore Terminal Hello'); - if (process.platform == 'linux') { this.httprequest.process.stdin.write("stty erase ^H\nalias ls='ls --color=auto'\nclear\n"); } - } else if (this.httprequest.protocol == 2) - { - // Check user access rights - if (((this.httprequest.rights & MESHRIGHT_REMOTECONTROL) == 0) && ((this.httprequest.rights & MESHRIGHT_REMOTEVIEW) == 0)) { - // Disengage this tunnel, user does not have the rights to do this!! - this.httprequest.protocol = 999999; - sendConsoleText('Error: No Remote Control Rights.'); - return; - } - - // Remote desktop using native pipes - this.httprequest.desktop = { state: 0, kvm: mesh.getRemoteDesktopStream(), tunnel: this }; - this.httprequest.desktop.kvm.parent = this.httprequest.desktop; - this.desktop = this.httprequest.desktop; - - // Display a toast message - //require('toaster').Toast('MeshCentral', 'Remote Desktop Control Started.'); - - this.end = function () { - --this.desktop.kvm.connectionCount; - this.unpipe(this.httprequest.desktop.kvm); - this.httprequest.desktop.kvm.unpipe(this); - if (this.desktop.kvm.connectionCount == 0) { - // Display a toast message - //require('toaster').Toast('MeshCentral', 'Remote Desktop Control Ended.'); - this.httprequest.desktop.kvm.end(); - } - }; - if (this.httprequest.desktop.kvm.hasOwnProperty("connectionCount")) { this.httprequest.desktop.kvm.connectionCount++; } else { this.httprequest.desktop.kvm.connectionCount = 1; } - - //sendConsoleText('KVM Rights: ' + this.httprequest.rights); - if ((this.httprequest.rights & MESHRIGHT_REMOTECONTROL) != 0) { - // If we have remote control rights, pipe the KVM input - this.pipe(this.httprequest.desktop.kvm, { dataTypeSkip: 1, end: false }); // 0 = Binary, 1 = Text. Pipe the Browser --> KVM input. - } else { - // We need to only pipe non-mouse & non-keyboard inputs. - // TODO!!! - } - - this.httprequest.desktop.kvm.pipe(this, { dataTypeSkip: 1 }); // 0 = Binary, 1 = Text. Pipe the KVM --> Browser images. - this.removeAllListeners('data'); - this.on('data', onTunnelControlData); - //this.write('MeshCore KVM Hello!1'); - } else if (this.httprequest.protocol == 5) { - // Check user access rights - if ((this.httprequest.rights & MESHRIGHT_REMOTECONTROL) == 0) { - // Disengage this tunnel, user does not have the rights to do this!! - this.httprequest.protocol = 999999; - sendConsoleText('Error: No Remote Control Rights.'); - return; - } - - // Setup files - // NOP - } - } else if (this.httprequest.protocol == 1) { - // Send data into terminal stdin - //this.write(data); // Echo back the keys (Does not seem to be a good idea) - this.httprequest.process.write(data); - } else if (this.httprequest.protocol == 2) { - // Send data into remote desktop - if (this.httprequest.desktop.state == 0) { - this.write(new Buffer(String.fromCharCode(0x11, 0xFE, 0x00, 0x00, 0x4D, 0x45, 0x53, 0x48, 0x00, 0x00, 0x00, 0x00, 0x02))); - this.httprequest.desktop.state = 1; - } else { - this.httprequest.desktop.write(data); - } - } else if (this.httprequest.protocol == 5) { - // Process files commands - var cmd = null; - try { cmd = JSON.parse(data); } catch (e) { }; - if (cmd == null) { return; } - if ((cmd.ctrlChannel == '102938') || ((cmd.type == 'offer') && (cmd.sdp != null))) { onTunnelControlData(cmd, this); return; } // If this is control data, handle it now. - if (cmd.action == undefined) { return; } - //sendConsoleText('CMD: ' + JSON.stringify(cmd)); - - if ((cmd.path != null) && (process.platform != 'win32') && (cmd.path[0] != '/')) { cmd.path = '/' + cmd.path; } // Add '/' to paths on non-windows - //console.log(objToString(cmd, 0, ' ')); - switch (cmd.action) { - case 'ls': { - /* - // Close the watcher if required - var samepath = ((this.httprequest.watcher != undefined) && (cmd.path == this.httprequest.watcher.path)); - if ((this.httprequest.watcher != undefined) && (samepath == false)) { - //console.log('Closing watcher: ' + this.httprequest.watcher.path); - //this.httprequest.watcher.close(); // TODO: This line causes the agent to crash!!!! - delete this.httprequest.watcher; - } - */ - - // Send the folder content to the browser - var response = getDirectoryInfo(cmd.path); - if (cmd.reqid != undefined) { response.reqid = cmd.reqid; } - this.write(new Buffer(JSON.stringify(response))); - - /* - // Start the directory watcher - if ((cmd.path != '') && (samepath == false)) { - var watcher = fs.watch(cmd.path, onFileWatcher); - watcher.tunnel = this.httprequest; - watcher.path = cmd.path; - this.httprequest.watcher = watcher; - //console.log('Starting watcher: ' + this.httprequest.watcher.path); - } - */ - break; - } - case 'mkdir': { - // Create a new empty folder - fs.mkdirSync(cmd.path); - break; - } - case 'rm': { - // Delete, possibly recursive delete - for (var i in cmd.delfiles) { - try { deleteFolderRecursive(obj.path.join(cmd.path, cmd.delfiles[i]), cmd.rec); } catch (e) { } - } - break; - } - case 'rename': { - // Rename a file or folder - var oldfullpath = obj.path.join(cmd.path, cmd.oldname); - var newfullpath = obj.path.join(cmd.path, cmd.newname); - try { fs.renameSync(oldfullpath, newfullpath); } catch (e) { console.log(e); } - break; - } - case 'download': { - // Download a file - var sendNextBlock = 0; - if (cmd.sub == 'start') { // Setup the download - if (this.filedownload != null) { this.write({ action: 'download', sub: 'cancel', id: this.filedownload.id }); delete this.filedownload; } - this.filedownload = { id: cmd.id, path: cmd.path, ptr: 0 } - try { this.filedownload.f = fs.openSync(this.filedownload.path, 'rbN'); } catch (e) { this.write({ action: 'download', sub: 'cancel', id: this.filedownload.id }); delete this.filedownload; } - if (this.filedownload) { this.write({ action: 'download', sub: 'start', id: cmd.id }); } - } else if ((this.filedownload != null) && (cmd.id == this.filedownload.id)) { // Download commands - if (cmd.sub == 'startack') { sendNextBlock = 8; } else if (cmd.sub == 'stop') { delete this.filedownload; } else if (cmd.sub == 'ack') { sendNextBlock = 1; } - } - // Send the next download block(s) - while (sendNextBlock > 0) { - sendNextBlock--; - var buf = new Buffer(4096); - var len = fs.readSync(this.filedownload.f, buf, 4, 4092, null); - this.filedownload.ptr += len; - if (len < 4092) { buf.writeInt32BE(0x01000001, 0); fs.closeSync(this.filedownload.f); delete this.filedownload; sendNextBlock = 0; } else { buf.writeInt32BE(0x01000000, 0); } - this.write(buf.slice(0, len + 4)); // Write as binary - } - break; - } - /* - case 'download': { - // Packet download of a file, agent to browser - if (cmd.path == undefined) break; - var filepath = cmd.name ? obj.path.join(cmd.path, cmd.name) : cmd.path; - //console.log('Download: ' + filepath); - try { this.httprequest.downloadFile = fs.openSync(filepath, 'rbN'); } catch (e) { this.write(new Buffer(JSON.stringify({ action: 'downloaderror', reqid: cmd.reqid }))); break; } - this.httprequest.downloadFileId = cmd.reqid; - this.httprequest.downloadFilePtr = 0; - if (this.httprequest.downloadFile) { this.write(new Buffer(JSON.stringify({ action: 'downloadstart', reqid: this.httprequest.downloadFileId }))); } - break; - } - case 'download2': { - // Stream download of a file, agent to browser - if (cmd.path == undefined) break; - var filepath = cmd.name ? obj.path.join(cmd.path, cmd.name) : cmd.path; - try { this.httprequest.downloadFile = fs.createReadStream(filepath, { flags: 'rbN' }); } catch (e) { console.log(e); } - this.httprequest.downloadFile.pipe(this); - this.httprequest.downloadFile.end = function () { } - break; - } - */ - case 'upload': { - // Upload a file, browser to agent - if (this.httprequest.uploadFile != undefined) { fs.closeSync(this.httprequest.uploadFile); this.httprequest.uploadFile = undefined; } - if (cmd.path == undefined) break; - var filepath = cmd.name ? obj.path.join(cmd.path, cmd.name) : cmd.path; - try { this.httprequest.uploadFile = fs.openSync(filepath, 'wbN'); } catch (e) { this.write(new Buffer(JSON.stringify({ action: 'uploaderror', reqid: cmd.reqid }))); break; } - this.httprequest.uploadFileid = cmd.reqid; - if (this.httprequest.uploadFile) { this.write(new Buffer(JSON.stringify({ action: 'uploadstart', reqid: this.httprequest.uploadFileid }))); } - break; - } - case 'copy': { - // Copy a bunch of files from scpath to dspath - for (var i in cmd.names) { - var sc = obj.path.join(cmd.scpath, cmd.names[i]), ds = obj.path.join(cmd.dspath, cmd.names[i]); - if (sc != ds) { try { fs.copyFileSync(sc, ds); } catch (e) { } } - } - break; - } - case 'move': { - // Move a bunch of files from scpath to dspath - for (var i in cmd.names) { - var sc = obj.path.join(cmd.scpath, cmd.names[i]), ds = obj.path.join(cmd.dspath, cmd.names[i]); - if (sc != ds) { try { fs.copyFileSync(sc, ds); fs.unlinkSync(sc); } catch (e) { } } - } - break; - } - } - } - //sendConsoleText("Got tunnel #" + this.httprequest.index + " data: " + data, this.httprequest.sessionid); - } - } - - // Called when receiving control data on WebRTC - function onTunnelWebRTCControlData(data) { - if (typeof data != 'string') return; - var obj; - try { obj = JSON.parse(data); } catch (e) { sendConsoleText('Invalid control JSON on WebRTC: ' + data); return; } - if (obj.type == 'close') { - //sendConsoleText('Tunnel #' + this.xrtc.websocket.tunnel.index + ' WebRTC control close'); - try { this.close(); } catch (e) { } - try { this.xrtc.close(); } catch (e) { } - } - } - - // Called when receiving control data on websocket - function onTunnelControlData(data, ws) { - var obj; - if (ws == null) { ws = this; } - if (typeof data == 'string') { try { obj = JSON.parse(data); } catch (e) { sendConsoleText('Invalid control JSON: ' + data); return; } } - else if (typeof data == 'object') { obj = data; } else { return; } - //sendConsoleText('onTunnelControlData(' + ws.httprequest.protocol + '): ' + JSON.stringify(data)); - //console.log('onTunnelControlData: ' + JSON.stringify(data)); - - if (obj.action) { - switch (obj.action) { - case 'lock': { - // Lock the current user out of the desktop - try { - if (process.platform == 'win32') { - var child = require('child_process'); - child.execFile(process.env['windir'] + '\\system32\\cmd.exe', ['/c', 'RunDll32.exe user32.dll,LockWorkStation'], { type: 1 }); - } - } catch (e) { } - break; - } - } - return; - } - - if (obj.type == 'close') { - // We received the close on the websocket - //sendConsoleText('Tunnel #' + ws.tunnel.index + ' WebSocket control close'); - try { ws.close(); } catch (e) { } - } else if (obj.type == 'webrtc0') { // Browser indicates we can start WebRTC switch-over. - if (ws.httprequest.protocol == 1) { // Terminal - // This is a terminal data stream, unpipe the terminal now and indicate to the other side that terminal data will no longer be received over WebSocket - ws.httprequest.process.stdout.unpipe(ws); - ws.httprequest.process.stderr.unpipe(ws); - } else if (ws.httprequest.protocol == 2) { // Desktop - // This is a KVM data stream, unpipe the KVM now and indicate to the other side that KVM data will no longer be received over WebSocket - ws.httprequest.desktop.kvm.unpipe(ws); - } else { - // Switch things around so all WebRTC data goes to onTunnelData(). - ws.rtcchannel.httprequest = ws.httprequest; - ws.rtcchannel.removeAllListeners('data'); - ws.rtcchannel.on('data', onTunnelData); - } - ws.write("{\"ctrlChannel\":\"102938\",\"type\":\"webrtc1\"}"); // End of data marker - } else if (obj.type == 'webrtc1') { - if (ws.httprequest.protocol == 1) { // Terminal - // Switch the user input from websocket to webrtc at this point. - ws.unpipe(ws.httprequest.process.stdin); - ws.rtcchannel.pipe(ws.httprequest.process.stdin, { dataTypeSkip: 1 }); // 0 = Binary, 1 = Text. - ws.resume(); // Resume the websocket to keep receiving control data - } else if (ws.httprequest.protocol == 2) { // Desktop - // Switch the user input from websocket to webrtc at this point. - ws.unpipe(ws.httprequest.desktop.kvm); - try { ws.webrtc.rtcchannel.pipe(ws.httprequest.desktop.kvm, { dataTypeSkip: 1, end: false }); } catch (e) { sendConsoleText('EX2'); } // 0 = Binary, 1 = Text. - ws.resume(); // Resume the websocket to keep receiving control data - } - ws.write("{\"ctrlChannel\":\"102938\",\"type\":\"webrtc2\"}"); // Indicates we will no longer get any data on websocket, switching to WebRTC at this point. - } else if (obj.type == 'webrtc2') { - // Other side received websocket end of data marker, start sending data on WebRTC channel - if (ws.httprequest.protocol == 1) { // Terminal - ws.httprequest.process.stdout.pipe(ws.webrtc.rtcchannel, { dataTypeSkip: 1, end: false }); // 0 = Binary, 1 = Text. - ws.httprequest.process.stderr.pipe(ws.webrtc.rtcchannel, { dataTypeSkip: 1, end: false }); // 0 = Binary, 1 = Text. - } else if (ws.httprequest.protocol == 2) { // Desktop - ws.httprequest.desktop.kvm.pipe(ws.webrtc.rtcchannel, { dataTypeSkip: 1 }); // 0 = Binary, 1 = Text. - } - } else if (obj.type == 'offer') { - // This is a WebRTC offer. - ws.webrtc = rtc.createConnection(); - ws.webrtc.websocket = ws; - ws.webrtc.on('connected', function () { /*sendConsoleText('Tunnel #' + this.websocket.tunnel.index + ' WebRTC connected');*/ }); - ws.webrtc.on('disconnected', function () { /*sendConsoleText('Tunnel #' + this.websocket.tunnel.index + ' WebRTC disconnected');*/ }); - ws.webrtc.on('dataChannel', function (rtcchannel) { - //sendConsoleText('WebRTC Datachannel open, protocol: ' + this.websocket.httprequest.protocol); - rtcchannel.xrtc = this; - rtcchannel.websocket = this.websocket; - this.rtcchannel = rtcchannel; - this.websocket.rtcchannel = rtcchannel; - this.websocket.rtcchannel.on('data', onTunnelWebRTCControlData); - this.websocket.rtcchannel.on('end', function () { /*sendConsoleText('Tunnel #' + this.websocket.tunnel.index + ' WebRTC data channel closed');*/ }); - this.websocket.write("{\"ctrlChannel\":\"102938\",\"type\":\"webrtc0\"}"); // Indicate we are ready for WebRTC switch-over. - }); - var sdp = null; - try { sdp = ws.webrtc.setOffer(obj.sdp); } catch (ex) { } - if (sdp != null) { ws.write({ type: 'answer', ctrlChannel: '102938', sdp: sdp }); } - } - } - - // Console state - var consoleWebSockets = {}; - var consoleHttpRequest = null; - - // Console HTTP response - function consoleHttpResponse(response) { - response.data = function (data) { sendConsoleText(rstr2hex(buf2rstr(data)), this.sessionid); consoleHttpRequest = null; } - response.close = function () { sendConsoleText('httprequest.response.close', this.sessionid); consoleHttpRequest = null; } - }; - - // Open a web browser to a specified URL on current user's desktop - function openUserDesktopUrl(url) { - var child = null; - try { - switch (process.platform) { - case 'win32': - child = require('child_process').execFile(process.env['windir'] + '\\system32\\cmd.exe', ["/c", "start", url], { type: childProcess.SpawnTypes.USER }); - break; - case 'linux': - child = require('child_process').execFile('/usr/bin/xdg-open', ['xdg-open', url], { type: require('child_process').SpawnTypes.DETACHED, uid: require('user-sessions').consoleUid() }); - break; - case 'darwin': - child = require('child_process').execFile('/usr/bin/open', ['open', url], { uid: require('user-sessions').consoleUid() }); - break; - } - } catch (ex) { } - return child; - } - - // Process a mesh agent console command - function processConsoleCommand(cmd, args, rights, sessionid) { - try { - var response = null; - switch (cmd) { - case 'help': { // Displays available commands - response = 'Available commands: help, info, osinfo,args, print, type, dbget, dbset, dbcompact, eval, parseuri, httpget,\r\nwslist, wsconnect, wssend, wsclose, notify, ls, ps, kill, amt, netinfo, location, power, wakeonlan, scanwifi,\r\nscanamt, setdebug, smbios, rawsmbios, toast, lock, users, sendcaps, openurl.'; - break; - } - /* - case 'border': - { - if ((args['_'].length == 1) && (args['_'][0] == 'on')) { - if (meshCoreObj.users.length > 0) { - obj.borderManager.Start(meshCoreObj.users[0]); - response = 'Border blinking is on.'; - } else { - response = 'Cannot turn on border blinking, no logged in users.'; - } - } else if ((args['_'].length == 1) && (args['_'][0] == 'off')) { - obj.borderManager.Stop(); - response = 'Border blinking is off.'; - } else { - response = 'Proper usage: border "on|off"'; // Display correct command usage - } - } - break; - */ - case 'openurl': { - if (args['_'].length != 1) { response = 'Proper usage: openurl (url)'; } // Display usage - else { if (openUserDesktopUrl(args['_'][0]) == null) { response = 'Failed.'; } else { response = 'Success.'; } } - break; - } - case 'users': { - if (meshCoreObj.users == null) { response = 'Active users are unknown.'; } else { response = 'Active Users: ' + meshCoreObj.users.join(', ') + '.'; } - break; - } - case 'toast': { - if (process.platform == 'win32') { - if (args['_'].length < 1) { response = 'Proper usage: toast "message"'; } else { - require('toaster').Toast('MeshCentral', args['_'][0]); - response = 'ok'; - } - } else { - response = 'Only supported on Windows.'; - } - break; - } - case 'setdebug': { - if (args['_'].length < 1) { response = 'Proper usage: setdebug (target), 0 = Disabled, 1 = StdOut, 2 = This Console, * = All Consoles, 4 = WebLog, 8 = Logfile'; } // Display usage - else { if (args['_'][0] == '*') { console.setDestination(2); } else { console.setDestination(parseInt(args['_'][0]), sessionid); } } - break; - } - case 'ps': { - processManager.getProcesses(function (plist) { - var x = ''; - for (var i in plist) { x += i + ', ' + plist[i].cmd + ((plist[i].user) ? (', ' + plist[i].user):'') + '\r\n'; } - sendConsoleText(x, sessionid); - }); - break; - } - case 'kill': { - if ((args['_'].length < 1)) { - response = 'Proper usage: kill [pid]'; // Display correct command usage - } else { - process.kill(parseInt(args['_'][0])); - response = 'Killed process ' + args['_'][0] + '.'; - } - break; - } - case 'smbios': { - if (SMBiosTables == null) { response = 'SMBios tables not available.'; } else { response = objToString(SMBiosTables, 0, ' ', true); } - break; - } - case 'rawsmbios': { - if (SMBiosTablesRaw == null) { response = 'SMBios tables not available.'; } else { - response = ''; - for (var i in SMBiosTablesRaw) { - var header = false; - for (var j in SMBiosTablesRaw[i]) { - if (SMBiosTablesRaw[i][j].length > 0) { - if (header == false) { response += ('Table type #' + i + ((require('smbios').smTableTypes[i] == null) ? '' : (', ' + require('smbios').smTableTypes[i]))) + '\r\n'; header = true; } - response += (' ' + SMBiosTablesRaw[i][j].toString('hex')) + '\r\n'; - } - } - } - } - break; - } - case 'eval': { // Eval JavaScript - if (args['_'].length < 1) { - response = 'Proper usage: eval "JavaScript code"'; // Display correct command usage - } else { - response = JSON.stringify(mesh.eval(args['_'][0])); - } - break; - } - case 'notify': { // Send a notification message to the mesh - if (args['_'].length != 1) { - response = 'Proper usage: notify "message" [--session]'; // Display correct command usage - } else { - var notification = { "action": "msg", "type": "notify", "value": args['_'][0], "tag": "console" }; - if (args.session) { notification.sessionid = sessionid; } // If "--session" is specified, notify only this session, if not, the server will notify the mesh - mesh.SendCommand(notification); // no sessionid or userid specified, notification will go to the entire mesh - response = 'ok'; - } - break; - } - case 'info': { // Return information about the agent and agent core module - response = 'Current Core: ' + meshCoreObj.value + '.\r\nAgent Time: ' + Date() + '.\r\nUser Rights: 0x' + rights.toString(16) + '.\r\nPlatform: ' + process.platform + '.\r\nCapabilities: ' + meshCoreObj.caps + '.\r\nServer URL: ' + mesh.ServerUrl + '.'; - if (amtLmsState >= 0) { response += '\r\nBuilt-in LMS: ' + ['Disabled', 'Connecting..', 'Connected'][amtLmsState] + '.'; } - if (meshCoreObj.osdesc) { response += '\r\nOS: ' + meshCoreObj.osdesc + '.'; } - response += '\r\nModules: ' + addedModules.join(', ') + '.'; - response += '\r\nServer Connection: ' + mesh.isControlChannelConnected + ', State: ' + meshServerConnectionState + '.'; - response += '\r\lastMeInfo: ' + lastMeInfo + '.'; - var oldNodeId = db.Get('OldNodeId'); - if (oldNodeId != null) { response += '\r\nOldNodeID: ' + oldNodeId + '.'; } - if (process.platform != 'win32') { response += '\r\nX11 support: ' + require('monitor-info').kvm_x11_support + '.'; } - break; - } - case 'osinfo': { // Return the operating system information - var i = 1; - if (args['_'].length > 0) { i = parseInt(args['_'][0]); if (i > 8) { i = 8; } response = 'Calling ' + i + ' times.'; } - for (var j = 0; j < i; j++) { - var pr = require('os').name(); - pr.sessionid = sessionid; - pr.then(function (v) { sendConsoleText("OS: " + v, this.sessionid); }); - } - break; - } - case 'sendcaps': { // Send capability flags to the server - if (args['_'].length == 0) { - response = 'Proper usage: sendcaps (number)'; // Display correct command usage - } else { - meshCoreObj.caps = parseInt(args['_'][0]); - mesh.SendCommand(meshCoreObj); - response = JSON.stringify(meshCoreObj); - } - break; - } - case 'sendosdesc': { // Send OS description - if (args['_'].length > 0) { - meshCoreObj.osdesc = args['_'][0]; - mesh.SendCommand(meshCoreObj); - response = JSON.stringify(meshCoreObj); - } else { - response = 'Proper usage: sendosdesc [os description]'; // Display correct command usage - } - break; - } - case 'args': { // Displays parsed command arguments - response = 'args ' + objToString(args, 0, ' ', true); - break; - } - case 'print': { // Print a message on the mesh agent console, does nothing when running in the background - var r = []; - for (var i in args['_']) { r.push(args['_'][i]); } - console.log(r.join(' ')); - response = 'Message printed on agent console.'; - break; - } - case 'type': { // Returns the content of a file - if (args['_'].length == 0) { - response = 'Proper usage: type (filepath) [maxlength]'; // Display correct command usage - } else { - var max = 4096; - if ((args['_'].length > 1) && (typeof args['_'][1] == 'number')) { max = args['_'][1]; } - if (max > 4096) max = 4096; - var buf = new Buffer(max), fd = fs.openSync(args['_'][0], "r"), r = fs.readSync(fd, buf, 0, max); // Read the file content - response = buf.toString(); - var i = response.indexOf('\n'); - if ((i > 0) && (response[i - 1] != '\r')) { response = response.split('\n').join('\r\n'); } - if (r == max) response += '...'; - fs.closeSync(fd); - } - break; - } - case 'dbkeys': { // Return all data store keys - response = JSON.stringify(db.Keys); - break; - } - case 'dbget': { // Return the data store value for a given key - if (db == null) { response = 'Database not accessible.'; break; } - if (args['_'].length != 1) { - response = 'Proper usage: dbget (key)'; // Display the value for a given database key - } else { - response = db.Get(args['_'][0]); - } - break; - } - case 'dbset': { // Set a data store key and value pair - if (db == null) { response = 'Database not accessible.'; break; } - if (args['_'].length != 2) { - response = 'Proper usage: dbset (key) (value)'; // Set a database key - } else { - var r = db.Put(args['_'][0], args['_'][1]); - response = 'Key set: ' + r; - } - break; - } - case 'dbcompact': { // Compact the data store - if (db == null) { response = 'Database not accessible.'; break; } - var r = db.Compact(); - response = 'Database compacted: ' + r; - break; - } - case 'httpget': { - if (consoleHttpRequest != null) { - response = 'HTTP operation already in progress.'; - } else { - if (args['_'].length != 1) { - response = 'Proper usage: httpget (url)'; - } else { - var options = http.parseUri(args['_'][0]); - options.method = 'GET'; - if (options == null) { - response = 'Invalid url.'; - } else { - try { consoleHttpRequest = http.request(options, consoleHttpResponse); } catch (e) { response = 'Invalid HTTP GET request'; } - consoleHttpRequest.sessionid = sessionid; - if (consoleHttpRequest != null) { - consoleHttpRequest.end(); - response = 'HTTPGET ' + options.protocol + '//' + options.host + ':' + options.port + options.path; - } - } - } - } - break; - } - case 'wslist': { // List all web sockets - response = ''; - for (var i in consoleWebSockets) { - var httprequest = consoleWebSockets[i]; - response += 'Websocket #' + i + ', ' + httprequest.url + '\r\n'; - } - if (response == '') { response = 'no websocket sessions.'; } - break; - } - case 'wsconnect': { // Setup a web socket - if (args['_'].length == 0) { - response = 'Proper usage: wsconnect (url)\r\nFor example: wsconnect wss://localhost:443/meshrelay.ashx?id=abc'; // Display correct command usage - } else { - var httprequest = null; - try { - var options = http.parseUri(args['_'][0]); - options.rejectUnauthorized = 0; - httprequest = http.request(options); - } catch (e) { response = 'Invalid HTTP websocket request'; } - if (httprequest != null) { - httprequest.upgrade = onWebSocketUpgrade; - httprequest.onerror = function (e) { sendConsoleText('ERROR: ' + JSON.stringify(e)); } - - var index = 1; - while (consoleWebSockets[index]) { index++; } - httprequest.sessionid = sessionid; - httprequest.index = index; - httprequest.url = args['_'][0]; - consoleWebSockets[index] = httprequest; - response = 'New websocket session #' + index; - } - } - break; - } - case 'wssend': { // Send data on a web socket - if (args['_'].length == 0) { - response = 'Proper usage: wssend (socketnumber)\r\n'; // Display correct command usage - for (var i in consoleWebSockets) { - var httprequest = consoleWebSockets[i]; - response += 'Websocket #' + i + ', ' + httprequest.url + '\r\n'; - } - } else { - var i = parseInt(args['_'][0]); - var httprequest = consoleWebSockets[i]; - if (httprequest != undefined) { - httprequest.s.write(args['_'][1]); - response = 'ok'; - } else { - response = 'Invalid web socket number'; - } - } - break; - } - case 'wsclose': { // Close a websocket - if (args['_'].length == 0) { - response = 'Proper usage: wsclose (socketnumber)'; // Display correct command usage - } else { - var i = parseInt(args['_'][0]); - var httprequest = consoleWebSockets[i]; - if (httprequest != undefined) { - if (httprequest.s != null) { httprequest.s.end(); } else { httprequest.end(); } - response = 'ok'; - } else { - response = 'Invalid web socket number'; - } - } - break; - } - case 'tunnels': { // Show the list of current tunnels - response = ''; - for (var i in tunnels) { response += 'Tunnel #' + i + ', ' + tunnels[i].url + '\r\n'; } - if (response == '') { response = 'No websocket sessions.'; } - break; - } - case 'ls': { // Show list of files and folders - response = ''; - var xpath = '*'; - if (args['_'].length > 0) { xpath = obj.path.join(args['_'][0], '*'); } - response = 'List of ' + xpath + '\r\n'; - var results = fs.readdirSync(xpath); - for (var i = 0; i < results.length; ++i) { - var stat = null, p = obj.path.join(args['_'][0], results[i]); - try { stat = fs.statSync(p); } catch (e) { } - if ((stat == null) || (stat == undefined)) { - response += (results[i] + "\r\n"); - } else { - response += (results[i] + " " + ((stat.isDirectory()) ? "(Folder)" : "(File)") + "\r\n"); - } - } - break; - } - case 'lsx': { // Show list of files and folders - response = objToString(getDirectoryInfo(args['_'][0]), 0, ' ', true); - break; - } - case 'lock': { // Lock the current user out of the desktop - if (process.platform == 'win32') { var child = require('child_process'); child.execFile(process.env['windir'] + '\\system32\\cmd.exe', ['/c', 'RunDll32.exe user32.dll,LockWorkStation'], { type: 1 }); response = 'Ok'; } - else { response = 'Not supported on the platform'; } - break; - } - case 'amt': { // Show Intel AMT status - getAmtInfo(function (state) { - var resp = 'Intel AMT not detected.'; - if (state != null) { resp = objToString(state, 0, ' ', true); } - sendConsoleText(resp, sessionid); - }); - break; - } - case 'netinfo': { // Show network interface information - //response = objToString(mesh.NetInfo, 0, ' '); - var interfaces = require('os').networkInterfaces(); - response = objToString(interfaces, 0, ' ', true); - break; - } - case 'netinfo2': { // Show network interface information - response = objToString(mesh.NetInfo, 0, ' ', true); - break; - } - case 'wakeonlan': { // Send wake-on-lan - if ((args['_'].length != 1) || (args['_'][0].length != 12)) { - response = 'Proper usage: wakeonlan [mac], for example "wakeonlan 010203040506".'; - } else { - var count = sendWakeOnLan(args['_'][0]); - response = 'Sent wake-on-lan on ' + count + ' interface(s).'; - } - break; - } - case 'sendall': { // Send a message to all consoles on this mesh - sendConsoleText(args['_'].join(' ')); - break; - } - case 'power': { // Execute a power action on this computer - if (mesh.ExecPowerState == undefined) { - response = 'Power command not supported on this agent.'; - } else { - if ((args['_'].length == 0) || (typeof args['_'][0] != 'number')) { - response = 'Proper usage: power (actionNumber), where actionNumber is:\r\n LOGOFF = 1\r\n SHUTDOWN = 2\r\n REBOOT = 3\r\n SLEEP = 4\r\n HIBERNATE = 5\r\n DISPLAYON = 6\r\n KEEPAWAKE = 7\r\n BEEP = 8\r\n CTRLALTDEL = 9\r\n VIBRATE = 13\r\n FLASH = 14'; // Display correct command usage - } else { - var r = mesh.ExecPowerState(args['_'][0], args['_'][1]); - response = 'Power action executed with return code: ' + r + '.'; - } - } - break; - } - case 'location': { - getIpLocationData(function (location) { - sendConsoleText(objToString({ "action": "iplocation", "type": "publicip", "value": location }, 0, ' ')); - }); - break; - } - case 'parseuri': { - response = JSON.stringify(http.parseUri(args['_'][0])); - break; - } - case 'scanwifi': { - if (wifiScanner != null) { - var wifiPresent = wifiScanner.hasWireless; - if (wifiPresent) { response = "Perfoming Wifi scan..."; wifiScanner.Scan(); } else { response = "Wifi absent."; } - } else { response = "Wifi module not present."; } - break; - } - case 'scanamt': { - if (amtscanner != null) { - if (args['_'].length != 1) { - response = 'Usage examples:\r\n scanamt 1.2.3.4\r\n scanamt 1.2.3.0-1.2.3.255\r\n scanamt 1.2.3.0/24\r\n'; // Display correct command usage - } else { - response = 'Scanning: ' + args['_'][0] + '...'; - amtscanner.scan(args['_'][0], 2000, function (data) { - if (data.length > 0) { - var r = '', pstates = ['NotActivated', 'InActivation', 'Activated']; - for (var i in data) { - var x = data[i]; - if (r != '') { r += '\r\n'; } - r += x.address + ' - Intel AMT v' + x.majorVersion + '.' + x.minorVersion; - if (x.provisioningState < 3) { r += (', ' + pstates[x.provisioningState]); } - if (x.provisioningState == 2) { r += (', ' + x.openPorts.join(', ')); } - r += '.'; - } - } else { - r = 'No Intel AMT found.'; - } - sendConsoleText(r); - }); - } - } else { response = "Intel AMT scanner module not present."; } - break; - } - case 'modules': { - response = JSON.stringify(addedModules); - break; - } - default: { // This is an unknown command, return an error message - response = 'Unknown command \"' + cmd + '\", type \"help\" for list of avaialble commands.'; - break; - } - } - } catch (e) { response = 'Command returned an exception error: ' + e; console.log(e); } - if (response != null) { sendConsoleText(response, sessionid); } - } - - // Send a mesh agent console command - function sendConsoleText(text, sessionid) { - if (typeof text == 'object') { text = JSON.stringify(text); } - mesh.SendCommand({ "action": "msg", "type": "console", "value": text, "sessionid": sessionid }); - } - - // Called before the process exits - //process.exit = function (code) { console.log("Exit with code: " + code.toString()); } - - // Called when the server connection state changes - function handleServerConnection(state) { - meshServerConnectionState = state; - if (meshServerConnectionState == 0) { - // Server disconnected - if (selfInfoUpdateTimer != null) { clearInterval(selfInfoUpdateTimer); selfInfoUpdateTimer = null; } - lastSelfInfo = null; - } else { - // Server connected, send mesh core information - var oldNodeId = db.Get('OldNodeId'); - if (oldNodeId != null) { mesh.SendCommand({ action: 'mc1migration', oldnodeid: oldNodeId }); } - - // Update the server with basic info, logged in users and more. - mesh.SendCommand(meshCoreObj); - - // Send SMBios tables if present - if (SMBiosTablesRaw != null) { mesh.SendCommand({ "action": "smbios", "value": SMBiosTablesRaw }); } - - // Update the server on more advanced stuff, like Intel ME and Network Settings - meInfoStr = null; - sendPeriodicServerUpdate(); - //if (selfInfoUpdateTimer == null) { selfInfoUpdateTimer = setInterval(sendPeriodicServerUpdate, 1200000); } // 20 minutes - } - } - - // Update the server with the latest network interface information - var sendNetworkUpdateNagleTimer = null; - function sendNetworkUpdateNagle() { if (sendNetworkUpdateNagleTimer != null) { clearTimeout(sendNetworkUpdateNagleTimer); sendNetworkUpdateNagleTimer = null; } sendNetworkUpdateNagleTimer = setTimeout(sendNetworkUpdate, 5000); } - function sendNetworkUpdate(force) { - sendNetworkUpdateNagleTimer = null; - - // Update the network interfaces information data - var netInfo = mesh.NetInfo; - netInfo.action = 'netinfo'; - var netInfoStr = JSON.stringify(netInfo); - if ((force == true) || (clearGatewayMac(netInfoStr) != clearGatewayMac(lastNetworkInfo))) { mesh.SendCommand(netInfo); lastNetworkInfo = netInfoStr; } - } - - // Called periodically to check if we need to send updates to the server - function sendPeriodicServerUpdate(flags) { - if (meshServerConnectionState == 0) return; // Not connected to server, do nothing. - if (!flags) { flags = 0xFFFFFFFF; } - - if (flags & 1) { - // If we have a connected MEI, get Intel ME information - getAmtInfo(function (meinfo) { - try { - if (meinfo == null) return; - var intelamt = {}, p = false; - if (meinfo.Versions && meinfo.Versions.AMT) { intelamt.ver = meinfo.Versions.AMT; p = true; } - if (meinfo.ProvisioningState) { intelamt.state = meinfo.ProvisioningState; p = true; } - if (meinfo.Flags) { intelamt.flags = meinfo.Flags; p = true; } - if (meinfo.OsHostname) { intelamt.host = meinfo.OsHostname; p = true; } - if (meinfo.UUID) { intelamt.uuid = meinfo.UUID; p = true; } - if (p == true) { - var meInfoStr = JSON.stringify(intelamt); - if (meInfoStr != lastMeInfo) { - meshCoreObj.intelamt = intelamt; - mesh.SendCommand(meshCoreObj); - lastMeInfo = meInfoStr; - } - } - } catch (ex) { } - }); - } - - if (flags & 2) { - // Update network information - sendNetworkUpdateNagle(false); - } - } - - // Get Intel AMT information using MEI - function getAmtInfo(func) { - if (amtMei == null || amtMeiConnected != 2) { if (func != null) { func(null); } return; } - try { - amtMeiTmpState = { Flags: 0 }; // Flags: 1=EHBC, 2=CCM, 4=ACM - amtMei.getProtocolVersion(function (result) { if (result != null) { amtMeiTmpState.MeiVersion = result; } }); - amtMei.getVersion(function (result) { if (result) { amtMeiTmpState.Versions = {}; for (var version in result.Versions) { amtMeiTmpState.Versions[result.Versions[version].Description] = result.Versions[version].Version; } } }); - amtMei.getProvisioningMode(function (result) { if (result) { amtMeiTmpState.ProvisioningMode = result.mode; } }); - amtMei.getProvisioningState(function (result) { if (result) { amtMeiTmpState.ProvisioningState = result.state; } }); - amtMei.getEHBCState(function (result) { if ((result != null) && (result.EHBC == true)) { amtMeiTmpState.Flags += 1; } }); - amtMei.getControlMode(function (result) { if (result != null) { if (result.controlMode == 1) { amtMeiTmpState.Flags += 2; } if (result.controlMode == 2) { amtMeiTmpState.Flags += 4; } } }); - amtMei.getUuid(function (result) { if ((result != null) && (result.uuid != null)) { amtMeiTmpState.UUID = result.uuid; } }); - //amtMei.getMACAddresses(function (result) { amtMeiTmpState.mac = result; }); - amtMei.getDnsSuffix(function (result) { if (result != null) { amtMeiTmpState.dns = result; } if (func != null) { func(amtMeiTmpState); } }); - } catch (e) { if (func != null) { func(null); } return; } - } - - // Called on MicroLMS Intel AMT user notification - function handleAmtNotification(notifyMsg) { - if ((notifyMsg == null) || (notifyMsg.Body == null) || (notifyMsg.Body.MessageID == null) || (notifyMsg.Body.MessageArguments == null)) return null; - var amtMessage = notifyMsg.Body.MessageID, amtMessageArg = notifyMsg.Body.MessageArguments[0], notify = null; - - switch (amtMessage) { - case 'iAMT0050': { if (amtMessageArg == '48') { notify = 'Intel® AMT Serial-over-LAN connected'; } else if (amtMessageArg == '49') { notify = 'Intel® AMT Serial-over-LAN disconnected'; } break; } // SOL - case 'iAMT0052': { if (amtMessageArg == '1') { notify = 'Intel® AMT KVM connected'; } else if (amtMessageArg == '2') { notify = 'Intel® AMT KVM disconnected'; } break; } // KVM - } - - // Send to the entire mesh, no sessionid or userid specified. - if (notify != null) { mesh.SendCommand({ "action": "msg", "type": "notify", "value": notify, "tag": "general" }); } - } - - // Starting function - obj.start = function () { - // Setup the mesh agent event handlers - mesh.AddCommandHandler(handleServerCommand); - mesh.AddConnectHandler(handleServerConnection); - - // Parse input arguments - //var args = parseArgs(process.argv); - //console.log(args); - - // Launch LMS - try { - var lme_heci = require('amt-lme'); - amtLmsState = 1; - amtLms = new lme_heci(); - amtLms.on('error', function (e) { amtLmsState = 0; amtLms = null; obj.setupMeiOsAdmin(null, 1); }); - amtLms.on('connect', function () { amtLmsState = 2; obj.setupMeiOsAdmin(null, 2); }); - //amtLms.on('bind', function (map) { }); - amtLms.on('notify', function (data, options, str, code) { - if (code == 'iAMT0052-3') { - obj.kvmGetData(); - } else { - //if (str != null) { sendConsoleText('Intel AMT LMS: ' + str); } - handleAmtNotification(data); - } - }); - } catch (e) { amtLmsState = -1; amtLms = null; } - - // Setup logged in user monitoring // TODO: This causes a problem on Windows7 - /* - try { - var userSession = require('user-sessions'); - userSession.on('changed', function onUserSessionChanged() { - userSession.enumerateUsers().then(function (users) { - var u = [], a = users.Active; - for (var i = 0; i < a.length; i++) { - var un = a[i].Domain ? (a[i].Domain + '\\' + a[i].Username) : (a[i].Username); - if (u.indexOf(un) == -1) { u.push(un); } // Only push users in the list once. - } - meshCoreObj.users = u; - mesh.SendCommand(meshCoreObj); - }); - }); - userSession.emit('changed'); - //userSession.on('locked', function (user) { sendConsoleText('[' + (user.Domain ? user.Domain + '\\' : '') + user.Username + '] has LOCKED the desktop'); }); - //userSession.on('unlocked', function (user) { sendConsoleText('[' + (user.Domain ? user.Domain + '\\' : '') + user.Username + '] has UNLOCKED the desktop'); }); - } catch (ex) { } - */ - } - - obj.stop = function () { - mesh.AddCommandHandler(null); - mesh.AddConnectHandler(null); - } - - function onWebSocketClosed() { sendConsoleText("WebSocket #" + this.httprequest.index + " closed.", this.httprequest.sessionid); delete consoleWebSockets[this.httprequest.index]; } - function onWebSocketData(data) { sendConsoleText("Got WebSocket #" + this.httprequest.index + " data: " + data, this.httprequest.sessionid); } - function onWebSocketSendOk() { sendConsoleText("WebSocket #" + this.index + " SendOK.", this.sessionid); } - - function onWebSocketUpgrade(response, s, head) { - sendConsoleText("WebSocket #" + this.index + " connected.", this.sessionid); - this.s = s; - s.httprequest = this; - s.end = onWebSocketClosed; - s.data = onWebSocketData; - } - - - // - // KVM Data Channel - // - - obj.setupMeiOsAdmin = function (func, state) { - if ((amtMei == null) || (amtMeiConnected != 2)) { return; } // If there is no MEI, don't bother with this. - amtMei.getLocalSystemAccount(function (x) { - if (x == null) return; - var transport = require('amt-wsman-duk'); - var wsman = require('amt-wsman'); - var amt = require('amt'); - oswsstack = new wsman(transport, '127.0.0.1', 16992, x.user, x.pass, false); - obj.osamtstack = new amt(oswsstack); - if (func) { func(state); } - //var AllWsman = "CIM_SoftwareIdentity,IPS_SecIOService,IPS_ScreenSettingData,IPS_ProvisioningRecordLog,IPS_HostBasedSetupService,IPS_HostIPSettings,IPS_IPv6PortSettings".split(','); - //obj.osamtstack.BatchEnum(null, AllWsman, startLmsWsmanResponse, null, true); - //************************************* - // Setup KVM data channel if this is Intel AMT 12 or above - amtMei.getVersion(function (x) { - if (x == null) return; - var amtver = null; - try { for (var i in x.Versions) { if (x.Versions[i].Description == 'AMT') amtver = parseInt(x.Versions[i].Version.split('.')[0]); } } catch (e) { } - if ((amtver != null) && (amtver >= 12)) { - obj.kvmGetData('skip'); // Clear any previous data, this is a dummy read to about handling old data. - obj.kvmTempTimer = setInterval(function () { obj.kvmGetData(); }, 2000); // Start polling for KVM data. - obj.kvmSetData(JSON.stringify({ action: 'restart', ver: 1 })); // Send a restart command to advise the console if present that MicroLMS just started. - } - }); - }); - } - - obj.kvmGetData = function (tag) { - obj.osamtstack.IPS_KVMRedirectionSettingData_DataChannelRead(obj.kvmDataGetResponse, tag); - } - - obj.kvmDataGetResponse = function (stack, name, response, status, tag) { - if ((tag != 'skip') && (status == 200) && (response.Body.ReturnValue == 0)) { - var val = null; - try { val = Buffer.from(response.Body.DataMessage, 'base64').toString(); } catch (e) { return } - if (val != null) { obj.kvmProcessData(response.Body.RealmsBitmap, response.Body.MessageId, val); } - } - } - - var webRtcDesktop = null; - obj.kvmProcessData = function (realms, messageId, val) { - var data = null; - try { data = JSON.parse(val) } catch (e) { } - if ((data != null) && (data.action)) { - if (data.action == 'present') { obj.kvmSetData(JSON.stringify({ action: 'present', ver: 1, platform: process.platform })); } - if (data.action == 'offer') { - webRtcDesktop = {}; - var rtc = require('ILibWebRTC'); - webRtcDesktop.webrtc = rtc.createConnection(); - webRtcDesktop.webrtc.on('connected', function () { }); - webRtcDesktop.webrtc.on('disconnected', function () { webRtcCleanUp(); }); - webRtcDesktop.webrtc.on('dataChannel', function (rtcchannel) { - webRtcDesktop.rtcchannel = rtcchannel; - webRtcDesktop.kvm = mesh.getRemoteDesktopStream(); - webRtcDesktop.kvm.pipe(webRtcDesktop.rtcchannel, { dataTypeSkip: 1, end: false }); - webRtcDesktop.rtcchannel.on('end', function () { obj.webRtcCleanUp(); }); - webRtcDesktop.rtcchannel.on('data', function (x) { obj.kvmCtrlData(this, x); }); - webRtcDesktop.rtcchannel.pipe(webRtcDesktop.kvm, { dataTypeSkip: 1, end: false }); - //webRtcDesktop.kvm.on('end', function () { console.log('WebRTC DataChannel closed2'); webRtcCleanUp(); }); - //webRtcDesktop.rtcchannel.on('data', function (data) { console.log('WebRTC data: ' + data); }); - }); - obj.kvmSetData(JSON.stringify({ action: 'answer', ver: 1, sdp: webRtcDesktop.webrtc.setOffer(data.sdp) })); - } - } - } - - // Polyfill path.join - var path = { - join: function () { - var x = []; - for (var i in arguments) { - var w = arguments[i]; - if (w != null) { - while (w.endsWith('/') || w.endsWith('\\')) { w = w.substring(0, w.length - 1); } - if (i != 0) { while (w.startsWith('/') || w.startsWith('\\')) { w = w.substring(1); } } - x.push(w); - } - } - if (x.length == 0) return '/'; - return x.join('/'); - } - }; - - // Process KVM control channel data - obj.kvmCtrlData = function(channel, cmd) { - if (cmd.length > 0 && cmd.charCodeAt(0) != 123) { - // This is upload data - if (this.fileupload != null) { - cmd = Buffer.from(cmd, 'base64'); - var header = cmd.readUInt32BE(0); - if ((header == 0x01000000) || (header == 0x01000001)) { - fs.writeSync(this.fileupload.fp, cmd.slice(4)); - channel.write({ action: 'upload', sub: 'ack', reqid: this.fileupload.reqid }); - if (header == 0x01000001) { fs.closeSync(this.fileupload.fp); this.fileupload = null; } // Close the file - } - } - return; - } - //console.log('KVM Ctrl Data', cmd); - //sendConsoleText('KVM Ctrl Data: ' + cmd); - - try { cmd = JSON.parse(cmd); } catch (ex) { console.error('Invalid JSON: ' + cmd); return; } - if ((cmd.path != null) && (process.platform != 'win32') && (cmd.path[0] != '/')) { cmd.path = '/' + cmd.path; } // Add '/' to paths on non-windows - switch (cmd.action) { - case 'ping': { - // This is a keep alive - channel.write({ action: 'pong' }); - break; - } - case 'lock': { - // Lock the current user out of the desktop - if (process.platform == 'win32') { var child = require('child_process'); child.execFile(process.env['windir'] + '\\system32\\cmd.exe', ['/c', 'RunDll32.exe user32.dll,LockWorkStation'], { type: 1 }); } - break; - } - case 'ls': { - /* - // Close the watcher if required - var samepath = ((this.httprequest.watcher != undefined) && (cmd.path == this.httprequest.watcher.path)); - if ((this.httprequest.watcher != undefined) && (samepath == false)) { - //console.log('Closing watcher: ' + this.httprequest.watcher.path); - //this.httprequest.watcher.close(); // TODO: This line causes the agent to crash!!!! - delete this.httprequest.watcher; - } - */ - - // Send the folder content to the browser - var response = getDirectoryInfo(cmd.path); - if (cmd.reqid != undefined) { response.reqid = cmd.reqid; } - channel.write(response); - - /* - // Start the directory watcher - if ((cmd.path != '') && (samepath == false)) { - var watcher = fs.watch(cmd.path, onFileWatcher); - watcher.tunnel = this.httprequest; - watcher.path = cmd.path; - this.httprequest.watcher = watcher; - //console.log('Starting watcher: ' + this.httprequest.watcher.path); - } - */ - break; - } - case 'mkdir': { - // Create a new empty folder - fs.mkdirSync(cmd.path); - break; - } - case 'rm': { - // Remove many files or folders - for (var i in cmd.delfiles) { - var fullpath = path.join(cmd.path, cmd.delfiles[i]); - try { fs.unlinkSync(fullpath); } catch (e) { console.log(e); } - } - break; - } - case 'rename': { - // Rename a file or folder - try { fs.renameSync(path.join(cmd.path, cmd.oldname), path.join(cmd.path, cmd.newname)); } catch (e) { console.log(e); } - break; - } - case 'download': { - // Download a file, to browser - var sendNextBlock = 0; - if (cmd.sub == 'start') { // Setup the download - if (this.filedownload != null) { channel.write({ action: 'download', sub: 'cancel', id: this.filedownload.id }); delete this.filedownload; } - this.filedownload = { id: cmd.id, path: cmd.path, ptr: 0 } - try { this.filedownload.f = fs.openSync(this.filedownload.path, 'rbN'); } catch (e) { channel.write({ action: 'download', sub: 'cancel', id: this.filedownload.id }); delete this.filedownload; } - if (this.filedownload) { channel.write({ action: 'download', sub: 'start', id: cmd.id }); } - } else if ((this.filedownload != null) && (cmd.id == this.filedownload.id)) { // Download commands - if (cmd.sub == 'startack') { sendNextBlock = 8; } else if (cmd.sub == 'stop') { delete this.filedownload; } else if (cmd.sub == 'ack') { sendNextBlock = 1; } - } - // Send the next download block(s) - while (sendNextBlock > 0) { - sendNextBlock--; - var buf = new Buffer(4096); - var len = fs.readSync(this.filedownload.f, buf, 4, 4092, null); - this.filedownload.ptr += len; - if (len < 4092) { buf.writeInt32BE(0x01000001, 0); fs.closeSync(this.filedownload.f); delete this.filedownload; sendNextBlock = 0; } else { buf.writeInt32BE(0x01000000, 0); } - channel.write(buf.slice(0, len + 4).toString('base64')); // Write as Base64 - } - break; - } - case 'upload': { - // Upload a file, from browser - if (cmd.sub == 'start') { // Start the upload - if (this.fileupload != null) { fs.closeSync(this.fileupload.fp); } - if (!cmd.path || !cmd.name) break; - this.fileupload = { reqid: cmd.reqid }; - var filepath = path.join(cmd.path, cmd.name); - try { this.fileupload.fp = fs.openSync(filepath, 'wbN'); } catch (e) { } - if (this.fileupload.fp) { channel.write({ action: 'upload', sub: 'start', reqid: this.fileupload.reqid }); } else { this.fileupload = null; channel.write({ action: 'upload', sub: 'error', reqid: this.fileupload.reqid }); } - } - else if (cmd.sub == 'cancel') { // Stop the upload - if (this.fileupload != null) { fs.closeSync(this.fileupload.fp); this.fileupload = null; } - } - break; - } - case 'copy': { - // Copy a bunch of files from scpath to dspath - for (var i in cmd.names) { - var sc = path.join(cmd.scpath, cmd.names[i]), ds = path.join(cmd.dspath, cmd.names[i]); - if (sc != ds) { try { fs.copyFileSync(sc, ds); } catch (e) { } } - } - break; - } - case 'move': { - // Move a bunch of files from scpath to dspath - for (var i in cmd.names) { - var sc = path.join(cmd.scpath, cmd.names[i]), ds = path.join(cmd.dspath, cmd.names[i]); - if (sc != ds) { try { fs.copyFileSync(sc, ds); fs.unlinkSync(sc); } catch (e) { } } - } - break; - } - } - } - - obj.webRtcCleanUp = function() { - if (webRtcDesktop == null) return; - if (webRtcDesktop.rtcchannel) { - try { webRtcDesktop.rtcchannel.close(); } catch (e) { } - try { webRtcDesktop.rtcchannel.removeAllListeners('data'); } catch (e) { } - try { webRtcDesktop.rtcchannel.removeAllListeners('end'); } catch (e) { } - delete webRtcDesktop.rtcchannel; - } - if (webRtcDesktop.webrtc) { - try { webRtcDesktop.webrtc.close(); } catch (e) { } - try { webRtcDesktop.webrtc.removeAllListeners('connected'); } catch (e) { } - try { webRtcDesktop.webrtc.removeAllListeners('disconnected'); } catch (e) { } - try { webRtcDesktop.webrtc.removeAllListeners('dataChannel'); } catch (e) { } - delete webRtcDesktop.webrtc; - } - if (webRtcDesktop.kvm) { - try { webRtcDesktop.kvm.end(); } catch (e) { } - delete webRtcDesktop.kvm; - } - webRtcDesktop = null; - } - - obj.kvmSetData = function(x) { - obj.osamtstack.IPS_KVMRedirectionSettingData_DataChannelWrite(Buffer.from(x).toString('base64'), function () { }); - } - - // Delete a directory with a files and directories within it - function deleteFolderRecursive(path, rec) { - if (fs.existsSync(path)) { - if (rec == true) { - fs.readdirSync(obj.path.join(path, '*')).forEach(function (file, index) { - var curPath = obj.path.join(path, file); - if (fs.statSync(curPath).isDirectory()) { // recurse - deleteFolderRecursive(curPath, true); - } else { // delete file - fs.unlinkSync(curPath); - } - }); - } - fs.unlinkSync(path); - } - }; - - return obj; -} - -// -// Module startup -// - -try { - var xexports = null, mainMeshCore = null; - try { xexports = module.exports; } catch (e) { } - - if (xexports != null) { - // If we are running within NodeJS, export the core - module.exports.createMeshCore = createMeshCore; - } else { - // If we are not running in NodeJS, launch the core - mainMeshCore = createMeshCore(); - mainMeshCore.start(null); - } -} catch (ex) { - require('MeshAgent').SendCommand({ "action": "msg", "type": "console", "value": "uncaughtException2: " + ex }); -} \ No newline at end of file diff --git a/agents/meshcore.js b/agents/meshcore.js index 9bc1199a..7cb07b3b 100644 --- a/agents/meshcore.js +++ b/agents/meshcore.js @@ -22,15 +22,15 @@ process.on('uncaughtException', function (ex) { //attachDebugger({ webport: 9999, wait: 1 }).then(function (prt) { console.log('Point Browser for Debug to port: ' + prt); }); // Mesh Rights -const MESHRIGHT_EDITMESH = 1; -const MESHRIGHT_MANAGEUSERS = 2; -const MESHRIGHT_MANAGECOMPUTERS = 4; -const MESHRIGHT_REMOTECONTROL = 8; -const MESHRIGHT_AGENTCONSOLE = 16; -const MESHRIGHT_SERVERFILES = 32; -const MESHRIGHT_WAKEDEVICE = 64; -const MESHRIGHT_SETNOTES = 128; -const MESHRIGHT_REMOTEVIEW = 256; +var MESHRIGHT_EDITMESH = 1; +var MESHRIGHT_MANAGEUSERS = 2; +var MESHRIGHT_MANAGECOMPUTERS = 4; +var MESHRIGHT_REMOTECONTROL = 8; +var MESHRIGHT_AGENTCONSOLE = 16; +var MESHRIGHT_SERVERFILES = 32; +var MESHRIGHT_WAKEDEVICE = 64; +var MESHRIGHT_SETNOTES = 128; +var MESHRIGHT_REMOTEVIEW = 256; function createMeshCore(agent) { var obj = {}; diff --git a/agents/meshcore.min.js b/agents/meshcore.min.js new file mode 100644 index 00000000..535e6ed1 --- /dev/null +++ b/agents/meshcore.min.js @@ -0,0 +1 @@ +process.on("uncaughtException",function(a){require("MeshAgent").SendCommand({action:"msg",type:"console",value:"uncaughtException1: "+a})});var MESHRIGHT_EDITMESH=1;var MESHRIGHT_MANAGEUSERS=2;var MESHRIGHT_MANAGECOMPUTERS=4;var MESHRIGHT_REMOTECONTROL=8;var MESHRIGHT_AGENTCONSOLE=16;var MESHRIGHT_SERVERFILES=32;var MESHRIGHT_WAKEDEVICE=64;var MESHRIGHT_SETNOTES=128;var MESHRIGHT_REMOTEVIEW=256;function createMeshCore(agent){var obj={};var meshCoreObj={action:"coreinfo",value:"MeshCore v6",caps:14};try{require("os").name().then(function(v){meshCoreObj.osdesc=v})}catch(ex){}var meshServerConnectionState=0;var tunnels={};var lastMeInfo=null;var lastNetworkInfo=null;var lastPublicLocationInfo=null;var selfInfoUpdateTimer=null;var http=require("http");var net=require("net");var fs=require("fs");var rtc=require("ILibWebRTC");var processManager=require("process-manager");var amtMei=null,amtLms=null,amtLmsState=0;var amtMeiConnected=0,amtMeiTmpState=null;var wifiScannerLib=null;var wifiScanner=null;var networkMonitor=null;var amtscanner=null;var nextTunnelIndex=1;var oswsstack=null;var osamtstack=null;if(agent==null){db=require("SimpleDataStore").Shared();sha=require("SHA256Stream");mesh=require("MeshAgent");childProcess=require("child_process");if(mesh.hasKVM==1){try{if((process.platform=="win32")||(process.platform=="darwin")||(require("monitor-info").kvm_x11_support)){meshCoreObj.caps|=1}}catch(ex){}}}else{meshCoreObj.value+="-NodeJS";meshCoreObj.caps=8;mesh=agent.getMeshApi()}try{var AMTScannerModule=require("amt-scanner");amtscanner=new AMTScannerModule()}catch(ex){amtscanner=null}var SMBiosTables=null;var SMBiosTablesRaw=null;try{require("smbios").get(function(data){if(data!=null){SMBiosTablesRaw=data;SMBiosTables=require("smbios").parse(data);if(mesh.isControlChannelConnected){mesh.SendCommand({action:"smbios",value:SMBiosTablesRaw})}if(SMBiosTables.amtInfo&&(SMBiosTables.amtInfo.AMT==true)){resetMei()}}})}catch(ex){sendConsoleText(ex)}try{var wifiScannerLib=require("wifi-scanner");wifiScanner=new wifiScannerLib();wifiScanner.on("accessPoint",function(data){sendConsoleText(data)})}catch(ex){wifiScannerLib=null;wifiScanner=null}function resetMei(){try{var amtMeiLib=require("amt-mei");amtMei=new amtMeiLib();amtMei.on("error",function(e){amtMeiLib=null;amtMei=null;amtMeiConnected=-1;sendConsoleText("MEI Error.")});amtMeiConnected=2;sendPeriodicServerUpdate(1)}catch(ex){amtMeiLib=null;amtMei=null;amtMeiConnected=-1}}var getIpLocationDataExInProgress=false;var getIpLocationDataExCounts=[0,0];function getIpLocationDataEx(func){if(getIpLocationDataExInProgress==true){return false}try{getIpLocationDataExInProgress=true;getIpLocationDataExCounts[0]++;var options=http.parseUri("http://ipinfo.io/json");options.method="GET";http.request(options,function(resp){if(resp.statusCode==200){var geoData="";resp.data=function(geoipdata){geoData+=geoipdata};resp.end=function(){var location=null;try{if(typeof geoData=="string"){var result=JSON.parse(geoData);if(result.ip&&result.loc){location=result}}}catch(e){}if(func){getIpLocationDataExCounts[1]++;func(location)}}}else{func(null)}getIpLocationDataExInProgress=false}).end();return true}catch(e){return false}}function clearGatewayMac(str){if(str==null){return null}var x=JSON.parse(str);for(var i in x.netif){if(x.netif[i].gatewaymac){delete x.netif[i].gatewaymac}}return JSON.stringify(x)}function getIpLocationData(func){var publicLocationInfo=db.Get("publicLocationInfo");if(publicLocationInfo!=null){publicLocationInfo=JSON.parse(publicLocationInfo)}if(publicLocationInfo==null){getIpLocationDataEx(function(locationData){if(locationData!=null){publicLocationInfo={};publicLocationInfo.netInfoStr=lastNetworkInfo;publicLocationInfo.locationData=locationData;var x=db.Put("publicLocationInfo",JSON.stringify(publicLocationInfo));if(func){func(locationData)}}else{if(func){func(null)}}})}else{if(clearGatewayMac(publicLocationInfo.netInfoStr)==clearGatewayMac(lastNetworkInfo)){if(func){func(publicLocationInfo.locationData)}}else{getIpLocationDataEx(function(locationData){if(locationData!=null){publicLocationInfo={};publicLocationInfo.netInfoStr=lastNetworkInfo;publicLocationInfo.locationData=locationData;var x=db.Put("publicLocationInfo",JSON.stringify(publicLocationInfo));if(func){func(locationData)}}else{if(func){func(publicLocationInfo.locationData)}}})}}}if(!String.prototype.endsWith){String.prototype.endsWith=function(searchString,position){var subjectString=this.toString();if(typeof position!=="number"||!isFinite(position)||Math.floor(position)!==position||position>subjectString.length){position=subjectString.length}position-=searchString.length;var lastIndex=subjectString.lastIndexOf(searchString,position);return lastIndex!==-1&&lastIndex===position}}obj.path={join:function(){var x=[];for(var i in arguments){var w=arguments[i];if(w!=null){while(w.endsWith("/")||w.endsWith("\\")){w=w.substring(0,w.length-1)}if(i!=0){while(w.startsWith("/")||w.startsWith("\\")){w=w.substring(1)}}x.push(w)}}if(x.length==0){return"/"}return x.join("/")}};function toNumberIfNumber(x){if((typeof x=="string")&&(+parseInt(x)===x)){x=parseInt(x)}return x}function char2hex(i){return(i+256).toString(16).substr(-2).toUpperCase()}function rstr2hex(input){var r="",i;for(i=0;i8){return"[...]"}if(x==undefined){return"[undefined]"}if(typeof x=="string"){if(p==0){return x}return'"'+x+'"'}if(typeof x=="buffer"){return"[buffer]"}if(typeof x!="object"){return x}var r="{"+(ret?"\r\n":" ");for(var i in x){if(i!="_ObjectID"){r+=(addPad(p+2,pad)+i+": "+objToString(x[i],p+2,pad,ret)+(ret?"\r\n":" "))}}return r+addPad(p,pad)+"}"}function addPad(p,ret){var r="";for(var i=0;i2&&x[0]=="-"&&x[1]=="-"){if(current!=null){results[current]=true}current=x.substring(2)}else{if(current!=null){results[current]=toNumberIfNumber(x);current=null}else{results._.push(toNumberIfNumber(x))}}}if(current!=null){results[current]=true}return results}function getServerTargetUrl(path){var x=mesh.ServerUrl;if(x==null){return null}if(path==null){path=""}x=http.parseUri(x);if(x==null){return null}return x.protocol+"//"+x.host+":"+x.port+"/"+path}function getServerTargetUrlEx(url){if(url.substring(0,2)=="*/"){return getServerTargetUrl(url.substring(2))}return url}function sendWakeOnLan(hexMac){var count=0;try{var interfaces=require("os").networkInterfaces();var magic="FFFFFFFFFFFF";for(var x=1;x<=16;++x){magic+=hexMac}var magicbin=Buffer.from(magic,"hex");for(var adapter in interfaces){if(interfaces.hasOwnProperty(adapter)){for(var i=0;i0){sendNextBlock--;var buf=new Buffer(4096);var len=fs.readSync(this.filedownload.f,buf,4,4092,null);this.filedownload.ptr+=len;if(len<4092){buf.writeInt32BE(16777217,0);fs.closeSync(this.filedownload.f);delete this.filedownload;sendNextBlock=0}else{buf.writeInt32BE(16777216,0)}this.write(buf.slice(0,len+4))}break;case"upload":if(this.httprequest.uploadFile!=undefined){fs.closeSync(this.httprequest.uploadFile);this.httprequest.uploadFile=undefined}if(cmd.path==undefined){break}var filepath=cmd.name?obj.path.join(cmd.path,cmd.name):cmd.path;try{this.httprequest.uploadFile=fs.openSync(filepath,"wbN")}catch(e){this.write(new Buffer(JSON.stringify({action:"uploaderror",reqid:cmd.reqid})));break}this.httprequest.uploadFileid=cmd.reqid;if(this.httprequest.uploadFile){this.write(new Buffer(JSON.stringify({action:"uploadstart",reqid:this.httprequest.uploadFileid})))}break;case"copy":for(var i in cmd.names){var sc=obj.path.join(cmd.scpath,cmd.names[i]),ds=obj.path.join(cmd.dspath,cmd.names[i]);if(sc!=ds){try{fs.copyFileSync(sc,ds)}catch(e){}}}break;case"move":for(var i in cmd.names){var sc=obj.path.join(cmd.scpath,cmd.names[i]),ds=obj.path.join(cmd.dspath,cmd.names[i]);if(sc!=ds){try{fs.copyFileSync(sc,ds);fs.unlinkSync(sc)}catch(e){}}}break}}}}}}}function onTunnelWebRTCControlData(data){if(typeof data!="string"){return}var obj;try{obj=JSON.parse(data)}catch(e){sendConsoleText("Invalid control JSON on WebRTC: "+data);return}if(obj.type=="close"){try{this.close()}catch(e){}try{this.xrtc.close()}catch(e){}}}function onTunnelControlData(data,ws){var obj;if(ws==null){ws=this}if(typeof data=="string"){try{obj=JSON.parse(data)}catch(e){sendConsoleText("Invalid control JSON: "+data);return}}else{if(typeof data=="object"){obj=data}else{return}}if(obj.action){switch(obj.action){case"lock":try{if(process.platform=="win32"){var child=require("child_process");child.execFile(process.env.windir+"\\system32\\cmd.exe",["/c","RunDll32.exe user32.dll,LockWorkStation"],{type:1})}}catch(e){}break}return}if(obj.type=="close"){try{ws.close()}catch(e){}}else{if(obj.type=="webrtc0"){if(ws.httprequest.protocol==1){if(process.platform=="win32"){ws.httprequest._term.unpipe(ws)}else{ws.httprequest.process.stdout.unpipe(ws);ws.httprequest.process.stderr.unpipe(ws)}}else{if(ws.httprequest.protocol==2){ws.httprequest.desktop.kvm.unpipe(ws)}else{ws.rtcchannel.httprequest=ws.httprequest;ws.rtcchannel.removeAllListeners("data");ws.rtcchannel.on("data",onTunnelData)}}ws.write('{"ctrlChannel":"102938","type":"webrtc1"}')}else{if(obj.type=="webrtc1"){if(ws.httprequest.protocol==1){if(process.platform=="win32"){ws.unpipe(ws.httprequest._term);ws.rtcchannel.pipe(ws.httprequest._term,{dataTypeSkip:1})}else{ws.unpipe(ws.httprequest.process.stdin);ws.rtcchannel.pipe(ws.httprequest.process.stdin,{dataTypeSkip:1})}ws.resume()}else{if(ws.httprequest.protocol==2){ws.unpipe(ws.httprequest.desktop.kvm);try{ws.webrtc.rtcchannel.pipe(ws.httprequest.desktop.kvm,{dataTypeSkip:1,end:false})}catch(e){sendConsoleText("EX2")}ws.resume()}}ws.write('{"ctrlChannel":"102938","type":"webrtc2"}')}else{if(obj.type=="webrtc2"){if(ws.httprequest.protocol==1){if(process.platform=="win32"){ws.httprequest._term.pipe(ws.webrtc.rtcchannel,{dataTypeSkip:1,end:false})}else{ws.httprequest.process.stdout.pipe(ws.webrtc.rtcchannel,{dataTypeSkip:1,end:false});ws.httprequest.process.stderr.pipe(ws.webrtc.rtcchannel,{dataTypeSkip:1,end:false})}}else{if(ws.httprequest.protocol==2){ws.httprequest.desktop.kvm.pipe(ws.webrtc.rtcchannel,{dataTypeSkip:1})}}}else{if(obj.type=="offer"){ws.webrtc=rtc.createConnection();ws.webrtc.websocket=ws;ws.webrtc.on("connected",function(){});ws.webrtc.on("disconnected",function(){});ws.webrtc.on("dataChannel",function(rtcchannel){rtcchannel.xrtc=this;rtcchannel.websocket=this.websocket;this.rtcchannel=rtcchannel;this.websocket.rtcchannel=rtcchannel;this.websocket.rtcchannel.on("data",onTunnelWebRTCControlData);this.websocket.rtcchannel.on("end",function(){});this.websocket.write('{"ctrlChannel":"102938","type":"webrtc0"}')});var sdp=null;try{sdp=ws.webrtc.setOffer(obj.sdp)}catch(ex){}if(sdp!=null){ws.write({type:"answer",ctrlChannel:"102938",sdp:sdp})}}}}}}}var consoleWebSockets={};var consoleHttpRequest=null;function consoleHttpResponse(response){response.data=function(data){sendConsoleText(rstr2hex(buf2rstr(data)),this.sessionid);consoleHttpRequest=null};response.close=function(){sendConsoleText("httprequest.response.close",this.sessionid);consoleHttpRequest=null}}function openUserDesktopUrl(url){var child=null;try{switch(process.platform){case"win32":child=require("child_process").execFile(process.env.windir+"\\system32\\cmd.exe",["/c","start",url],{type:childProcess.SpawnTypes.USER});break;case"linux":child=require("child_process").execFile("/usr/bin/xdg-open",["xdg-open",url],{type:require("child_process").SpawnTypes.DETACHED,uid:require("user-sessions").consoleUid()});break;case"darwin":child=require("child_process").execFile("/usr/bin/open",["open",url],{uid:require("user-sessions").consoleUid()});break}}catch(ex){}return child}function processConsoleCommand(cmd,args,rights,sessionid){try{var response=null;switch(cmd){case"help":response="Available commands: help, info, osinfo,args, print, type, dbget, dbset, dbcompact, eval, parseuri, httpget,\r\nwslist, wsconnect, wssend, wsclose, notify, ls, ps, kill, amt, netinfo, location, power, wakeonlan, scanwifi,\r\nscanamt, setdebug, smbios, rawsmbios, toast, lock, users, sendcaps, openurl, amtreset, amtccm, amtdeactivate.";break;case"amtreset":resetMei();resetMicroLms();response="Done.";break;case"amtccm":if(amtMei==null){response="Intel AMT not supported."}else{if(args._.length!=1){response="Proper usage: amtccm (adminPassword)"}else{activeToCCM(args._[0])}}break;case"amtdeactivate":if(amtMei==null){response="Intel AMT not supported."}else{deactivateCCM()}break;case"openurl":if(args._.length!=1){response="Proper usage: openurl (url)"}else{if(openUserDesktopUrl(args._[0])==null){response="Failed."}else{response="Success."}}break;case"users":if(meshCoreObj.users==null){response="Active users are unknown."}else{response="Active Users: "+meshCoreObj.users.join(", ")+"."}require("user-sessions").enumerateUsers().then(function(u){for(var i in u){sendConsoleText(u[i])}});break;case"toast":if(process.platform=="win32"){if(args._.length<1){response='Proper usage: toast "message"'}else{require("toaster").Toast("MeshCentral",args._[0]);response="ok"}}else{response="Only supported on Windows."}break;case"setdebug":if(args._.length<1){response="Proper usage: setdebug (target), 0 = Disabled, 1 = StdOut, 2 = This Console, * = All Consoles, 4 = WebLog, 8 = Logfile"}else{if(args._[0]=="*"){console.setDestination(2)}else{console.setDestination(parseInt(args._[0]),sessionid)}}break;case"ps":processManager.getProcesses(function(plist){var x="";for(var i in plist){x+=i+", "+plist[i].cmd+((plist[i].user)?(", "+plist[i].user):"")+"\r\n"}sendConsoleText(x,sessionid)});break;case"kill":if((args._.length<1)){response="Proper usage: kill [pid]"}else{process.kill(parseInt(args._[0]));response="Killed process "+args._[0]+"."}break;case"smbios":if(SMBiosTables==null){response="SMBios tables not available."}else{response=objToString(SMBiosTables,0," ",true)}break;case"rawsmbios":if(SMBiosTablesRaw==null){response="SMBios tables not available."}else{response="";for(var i in SMBiosTablesRaw){var header=false;for(var j in SMBiosTablesRaw[i]){if(SMBiosTablesRaw[i][j].length>0){if(header==false){response+=("Table type #"+i+((require("smbios").smTableTypes[i]==null)?"":(", "+require("smbios").smTableTypes[i])))+"\r\n";header=true}response+=(" "+SMBiosTablesRaw[i][j].toString("hex"))+"\r\n"}}}}break;case"eval":if(args._.length<1){response='Proper usage: eval "JavaScript code"'}else{response=JSON.stringify(mesh.eval(args._[0]))}break;case"notify":if(args._.length!=1){response='Proper usage: notify "message" [--session]'}else{var notification={action:"msg",type:"notify",value:args._[0],tag:"console"};if(args.session){notification.sessionid=sessionid}mesh.SendCommand(notification);response="ok"}break;case"info":response="Current Core: "+meshCoreObj.value+".\r\nAgent Time: "+Date()+".\r\nUser Rights: 0x"+rights.toString(16)+".\r\nPlatform: "+process.platform+".\r\nCapabilities: "+meshCoreObj.caps+".\r\nServer URL: "+mesh.ServerUrl+".";if(amtLmsState>=0){response+="\r\nBuilt-in LMS: "+["Disabled","Connecting..","Connected"][amtLmsState]+"."}if(meshCoreObj.osdesc){response+="\r\nOS: "+meshCoreObj.osdesc+"."}response+="\r\nModules: "+addedModules.join(", ")+".";response+="\r\nServer Connection: "+mesh.isControlChannelConnected+", State: "+meshServerConnectionState+".";response+="\rlastMeInfo: "+lastMeInfo+".";var oldNodeId=db.Get("OldNodeId");if(oldNodeId!=null){response+="\r\nOldNodeID: "+oldNodeId+"."}if(process.platform!="win32"){response+="\r\nX11 support: "+require("monitor-info").kvm_x11_support+"."}break;case"osinfo":var i=1;if(args._.length>0){i=parseInt(args._[0]);if(i>8){i=8}response="Calling "+i+" times."}for(var j=0;j0){meshCoreObj.osdesc=args._[0];mesh.SendCommand(meshCoreObj);response=JSON.stringify(meshCoreObj)}else{response="Proper usage: sendosdesc [os description]"}break;case"args":response="args "+objToString(args,0," ",true);break;case"print":var r=[];for(var i in args._){r.push(args._[i])}console.log(r.join(" "));response="Message printed on agent console.";break;case"type":if(args._.length==0){response="Proper usage: type (filepath) [maxlength]"}else{var max=4096;if((args._.length>1)&&(typeof args._[1]=="number")){max=args._[1]}if(max>4096){max=4096}var buf=new Buffer(max),fd=fs.openSync(args._[0],"r"),r=fs.readSync(fd,buf,0,max);response=buf.toString();var i=response.indexOf("\n");if((i>0)&&(response[i-1]!="\r")){response=response.split("\n").join("\r\n")}if(r==max){response+="..."}fs.closeSync(fd)}break;case"dbkeys":response=JSON.stringify(db.Keys);break;case"dbget":if(db==null){response="Database not accessible.";break}if(args._.length!=1){response="Proper usage: dbget (key)"}else{response=db.Get(args._[0])}break;case"dbset":if(db==null){response="Database not accessible.";break}if(args._.length!=2){response="Proper usage: dbset (key) (value)"}else{var r=db.Put(args._[0],args._[1]);response="Key set: "+r}break;case"dbcompact":if(db==null){response="Database not accessible.";break}var r=db.Compact();response="Database compacted: "+r;break;case"httpget":if(consoleHttpRequest!=null){response="HTTP operation already in progress."}else{if(args._.length!=1){response="Proper usage: httpget (url)"}else{var options=http.parseUri(args._[0]);options.method="GET";if(options==null){response="Invalid url."}else{try{consoleHttpRequest=http.request(options,consoleHttpResponse)}catch(e){response="Invalid HTTP GET request"}consoleHttpRequest.sessionid=sessionid;if(consoleHttpRequest!=null){consoleHttpRequest.end();response="HTTPGET "+options.protocol+"//"+options.host+":"+options.port+options.path}}}}break;case"wslist":response="";for(var i in consoleWebSockets){var httprequest=consoleWebSockets[i];response+="Websocket #"+i+", "+httprequest.url+"\r\n"}if(response==""){response="no websocket sessions."}break;case"wsconnect":if(args._.length==0){response="Proper usage: wsconnect (url)\r\nFor example: wsconnect wss://localhost:443/meshrelay.ashx?id=abc"}else{var httprequest=null;try{var options=http.parseUri(args._[0]);options.rejectUnauthorized=0;httprequest=http.request(options)}catch(e){response="Invalid HTTP websocket request"}if(httprequest!=null){httprequest.upgrade=onWebSocketUpgrade;httprequest.onerror=function(e){sendConsoleText("ERROR: "+JSON.stringify(e))};var index=1;while(consoleWebSockets[index]){index++}httprequest.sessionid=sessionid;httprequest.index=index;httprequest.url=args._[0];consoleWebSockets[index]=httprequest;response="New websocket session #"+index}}break;case"wssend":if(args._.length==0){response="Proper usage: wssend (socketnumber)\r\n";for(var i in consoleWebSockets){var httprequest=consoleWebSockets[i];response+="Websocket #"+i+", "+httprequest.url+"\r\n"}}else{var i=parseInt(args._[0]);var httprequest=consoleWebSockets[i];if(httprequest!=undefined){httprequest.s.write(args._[1]);response="ok"}else{response="Invalid web socket number"}}break;case"wsclose":if(args._.length==0){response="Proper usage: wsclose (socketnumber)"}else{var i=parseInt(args._[0]);var httprequest=consoleWebSockets[i];if(httprequest!=undefined){if(httprequest.s!=null){httprequest.s.end()}else{httprequest.end()}response="ok"}else{response="Invalid web socket number"}}break;case"tunnels":response="";for(var i in tunnels){response+="Tunnel #"+i+", "+tunnels[i].url+"\r\n"}if(response==""){response="No websocket sessions."}break;case"ls":response="";var xpath="*";if(args._.length>0){xpath=obj.path.join(args._[0],"*")}response="List of "+xpath+"\r\n";var results=fs.readdirSync(xpath);for(var i=0;i0){var r="",pstates=["NotActivated","InActivation","Activated"];for(var i in data){var x=data[i];if(r!=""){r+="\r\n"}r+=x.address+" - Intel AMT v"+x.majorVersion+"."+x.minorVersion;if(x.provisioningState<3){r+=(", "+pstates[x.provisioningState])}if(x.provisioningState==2){r+=(", "+x.openPorts.join(", "))}r+="."}}else{r="No Intel AMT found."}sendConsoleText(r)})}}else{response="Intel AMT scanner module not present."}break;case"modules":response=JSON.stringify(addedModules);break;default:response='Unknown command "'+cmd+'", type "help" for list of avaialble commands.';break}}catch(e){response="Command returned an exception error: "+e;console.log(e)}if(response!=null){sendConsoleText(response,sessionid)}}function sendConsoleText(text,sessionid){if(typeof text=="object"){text=JSON.stringify(text)}mesh.SendCommand({action:"msg",type:"console",value:text,sessionid:sessionid})}function handleServerConnection(state){meshServerConnectionState=state;if(meshServerConnectionState==0){if(selfInfoUpdateTimer!=null){clearInterval(selfInfoUpdateTimer);selfInfoUpdateTimer=null}lastSelfInfo=null}else{var oldNodeId=db.Get("OldNodeId");if(oldNodeId!=null){mesh.SendCommand({action:"mc1migration",oldnodeid:oldNodeId})}mesh.SendCommand(meshCoreObj);if(SMBiosTablesRaw!=null){mesh.SendCommand({action:"smbios",value:SMBiosTablesRaw})}meInfoStr=null;sendPeriodicServerUpdate()}}var sendNetworkUpdateNagleTimer=null;function sendNetworkUpdateNagle(){if(sendNetworkUpdateNagleTimer!=null){clearTimeout(sendNetworkUpdateNagleTimer);sendNetworkUpdateNagleTimer=null}sendNetworkUpdateNagleTimer=setTimeout(sendNetworkUpdate,5000)}function sendNetworkUpdate(force){sendNetworkUpdateNagleTimer=null;var netInfo=mesh.NetInfo;netInfo.action="netinfo";var netInfoStr=JSON.stringify(netInfo);if((force==true)||(clearGatewayMac(netInfoStr)!=clearGatewayMac(lastNetworkInfo))){mesh.SendCommand(netInfo);lastNetworkInfo=netInfoStr}}function sendPeriodicServerUpdate(flags){if(meshServerConnectionState==0){return}if(!flags){flags=4294967295}if(flags&1){getAmtInfo(function(meinfo){try{if(meinfo==null){return}var intelamt={},p=false;if(meinfo.Versions&&meinfo.Versions.AMT){intelamt.ver=meinfo.Versions.AMT;p=true}if(meinfo.ProvisioningState){intelamt.state=meinfo.ProvisioningState;p=true}if(meinfo.Flags){intelamt.flags=meinfo.Flags;p=true}if(meinfo.OsHostname){intelamt.host=meinfo.OsHostname;p=true}if(meinfo.UUID){intelamt.uuid=meinfo.UUID;p=true}if(p==true){var meInfoStr=JSON.stringify(intelamt);if(meInfoStr!=lastMeInfo){meshCoreObj.intelamt=intelamt;mesh.SendCommand(meshCoreObj);lastMeInfo=meInfoStr}}}catch(ex){}})}if(flags&2){sendNetworkUpdateNagle(false)}}function getAmtInfo(func){if(amtMei==null||amtMeiConnected!=2){if(func!=null){func(null)}return}try{amtMeiTmpState={Flags:0};amtMei.getProtocolVersion(function(result){if(result!=null){amtMeiTmpState.MeiVersion=result}});amtMei.getVersion(function(result){if(result){amtMeiTmpState.Versions={};for(var version in result.Versions){amtMeiTmpState.Versions[result.Versions[version].Description]=result.Versions[version].Version}}});amtMei.getProvisioningMode(function(result){if(result){amtMeiTmpState.ProvisioningMode=result.mode}});amtMei.getProvisioningState(function(result){if(result){amtMeiTmpState.ProvisioningState=result.state}});amtMei.getEHBCState(function(result){if((result!=null)&&(result.EHBC==true)){amtMeiTmpState.Flags+=1}});amtMei.getControlMode(function(result){if(result!=null){if(result.controlMode==1){amtMeiTmpState.Flags+=2}if(result.controlMode==2){amtMeiTmpState.Flags+=4}}});amtMei.getLanInterfaceSettings(0,function(result){if(result){amtMeiTmpState.net0=result}});amtMei.getLanInterfaceSettings(1,function(result){if(result){amtMeiTmpState.net1=result}});amtMei.getUuid(function(result){if((result!=null)&&(result.uuid!=null)){amtMeiTmpState.UUID=result.uuid}});amtMei.getDnsSuffix(function(result){if(result!=null){amtMeiTmpState.dns=result}if(func!=null){func(amtMeiTmpState)}})}catch(e){if(func!=null){func(null)}return}}function handleAmtNotification(notifyMsg){if((notifyMsg==null)||(notifyMsg.Body==null)||(notifyMsg.Body.MessageID==null)||(notifyMsg.Body.MessageArguments==null)){return null}var amtMessage=notifyMsg.Body.MessageID,amtMessageArg=notifyMsg.Body.MessageArguments[0],notify=null;switch(amtMessage){case"iAMT0050":if(amtMessageArg=="48"){notify="Intel® AMT Serial-over-LAN connected"}else{if(amtMessageArg=="49"){notify="Intel® AMT Serial-over-LAN disconnected"}}break;case"iAMT0052":if(amtMessageArg=="1"){notify="Intel® AMT KVM connected"}else{if(amtMessageArg=="2"){notify="Intel® AMT KVM disconnected"}}break}if(notify!=null){mesh.SendCommand({action:"msg",type:"notify",value:notify,tag:"general"})}}function resetMicroLms(){try{var lme_heci=require("amt-lme");amtLmsState=1;amtLms=new lme_heci();amtLms.on("error",function(e){amtLmsState=0;amtLms=null;sendConsoleText("LMS Error.");obj.setupMeiOsAdmin(null,1)});amtLms.on("connect",function(){amtLmsState=2;obj.setupMeiOsAdmin(null,2)});amtLms.on("notify",function(data,options,str,code){if(code=="iAMT0052-3"){obj.kvmGetData()}else{handleAmtNotification(data)}})}catch(e){amtLmsState=-1;amtLms=null}}obj.start=function(){mesh.AddCommandHandler(handleServerCommand);mesh.AddConnectHandler(handleServerConnection);resetMicroLms();try{var userSession=require("user-sessions");userSession.on("changed",function onUserSessionChanged(){userSession.enumerateUsers().then(function(users){var u=[],a=users.Active;for(var i=0;i=12)){obj.kvmGetData("skip");obj.kvmTempTimer=setInterval(function(){obj.kvmGetData()},2000);obj.kvmSetData(JSON.stringify({action:"restart",ver:1}))}})})};obj.kvmGetData=function(tag){obj.osamtstack.IPS_KVMRedirectionSettingData_DataChannelRead(obj.kvmDataGetResponse,tag)};obj.kvmDataGetResponse=function(stack,name,response,status,tag){if((tag!="skip")&&(status==200)&&(response.Body.ReturnValue==0)){var val=null;try{val=Buffer.from(response.Body.DataMessage,"base64").toString()}catch(e){return}if(val!=null){obj.kvmProcessData(response.Body.RealmsBitmap,response.Body.MessageId,val)}}};var webRtcDesktop=null;obj.kvmProcessData=function(realms,messageId,val){var data=null;try{data=JSON.parse(val)}catch(e){}if((data!=null)&&(data.action)){if(data.action=="present"){obj.kvmSetData(JSON.stringify({action:"present",ver:1,platform:process.platform}))}if(data.action=="offer"){webRtcDesktop={};var rtc=require("ILibWebRTC");webRtcDesktop.webrtc=rtc.createConnection();webRtcDesktop.webrtc.on("connected",function(){});webRtcDesktop.webrtc.on("disconnected",function(){webRtcCleanUp()});webRtcDesktop.webrtc.on("dataChannel",function(rtcchannel){webRtcDesktop.rtcchannel=rtcchannel;webRtcDesktop.kvm=mesh.getRemoteDesktopStream();webRtcDesktop.kvm.pipe(webRtcDesktop.rtcchannel,{dataTypeSkip:1,end:false});webRtcDesktop.rtcchannel.on("end",function(){obj.webRtcCleanUp()});webRtcDesktop.rtcchannel.on("data",function(x){obj.kvmCtrlData(this,x)});webRtcDesktop.rtcchannel.pipe(webRtcDesktop.kvm,{dataTypeSkip:1,end:false})});obj.kvmSetData(JSON.stringify({action:"answer",ver:1,sdp:webRtcDesktop.webrtc.setOffer(data.sdp)}))}}};var path={join:function(){var x=[];for(var i in arguments){var w=arguments[i];if(w!=null){while(w.endsWith("/")||w.endsWith("\\")){w=w.substring(0,w.length-1)}if(i!=0){while(w.startsWith("/")||w.startsWith("\\")){w=w.substring(1)}}x.push(w)}}if(x.length==0){return"/"}return x.join("/")}};obj.kvmCtrlData=function(channel,cmd){if(cmd.length>0&&cmd.charCodeAt(0)!=123){if(this.fileupload!=null){cmd=Buffer.from(cmd,"base64");var header=cmd.readUInt32BE(0);if((header==16777216)||(header==16777217)){fs.writeSync(this.fileupload.fp,cmd.slice(4));channel.write({action:"upload",sub:"ack",reqid:this.fileupload.reqid});if(header==16777217){fs.closeSync(this.fileupload.fp);this.fileupload=null}}}return}try{cmd=JSON.parse(cmd)}catch(ex){console.error("Invalid JSON: "+cmd);return}if((cmd.path!=null)&&(process.platform!="win32")&&(cmd.path[0]!="/")){cmd.path="/"+cmd.path}switch(cmd.action){case"ping":channel.write({action:"pong"});break;case"lock":if(process.platform=="win32"){var child=require("child_process");child.execFile(process.env.windir+"\\system32\\cmd.exe",["/c","RunDll32.exe user32.dll,LockWorkStation"],{type:1})}break;case"ls":var response=getDirectoryInfo(cmd.path);if(cmd.reqid!=undefined){response.reqid=cmd.reqid}channel.write(response);break;case"mkdir":fs.mkdirSync(cmd.path);break;case"rm":for(var i in cmd.delfiles){var fullpath=path.join(cmd.path,cmd.delfiles[i]);try{fs.unlinkSync(fullpath)}catch(e){console.log(e)}}break;case"rename":try{fs.renameSync(path.join(cmd.path,cmd.oldname),path.join(cmd.path,cmd.newname))}catch(e){console.log(e)}break;case"download":var sendNextBlock=0;if(cmd.sub=="start"){if(this.filedownload!=null){channel.write({action:"download",sub:"cancel",id:this.filedownload.id});delete this.filedownload}this.filedownload={id:cmd.id,path:cmd.path,ptr:0};try{this.filedownload.f=fs.openSync(this.filedownload.path,"rbN")}catch(e){channel.write({action:"download",sub:"cancel",id:this.filedownload.id});delete this.filedownload}if(this.filedownload){channel.write({action:"download",sub:"start",id:cmd.id})}}else{if((this.filedownload!=null)&&(cmd.id==this.filedownload.id)){if(cmd.sub=="startack"){sendNextBlock=8}else{if(cmd.sub=="stop"){delete this.filedownload}else{if(cmd.sub=="ack"){sendNextBlock=1}}}}}while(sendNextBlock>0){sendNextBlock--;var buf=new Buffer(4096);var len=fs.readSync(this.filedownload.f,buf,4,4092,null);this.filedownload.ptr+=len;if(len<4092){buf.writeInt32BE(16777217,0);fs.closeSync(this.filedownload.f);delete this.filedownload;sendNextBlock=0}else{buf.writeInt32BE(16777216,0)}channel.write(buf.slice(0,len+4).toString("base64"))}break;case"upload":if(cmd.sub=="start"){if(this.fileupload!=null){fs.closeSync(this.fileupload.fp)}if(!cmd.path||!cmd.name){break}this.fileupload={reqid:cmd.reqid};var filepath=path.join(cmd.path,cmd.name);try{this.fileupload.fp=fs.openSync(filepath,"wbN")}catch(e){}if(this.fileupload.fp){channel.write({action:"upload",sub:"start",reqid:this.fileupload.reqid})}else{this.fileupload=null;channel.write({action:"upload",sub:"error",reqid:this.fileupload.reqid})}}else{if(cmd.sub=="cancel"){if(this.fileupload!=null){fs.closeSync(this.fileupload.fp);this.fileupload=null}}}break;case"copy":for(var i in cmd.names){var sc=path.join(cmd.scpath,cmd.names[i]),ds=path.join(cmd.dspath,cmd.names[i]);if(sc!=ds){try{fs.copyFileSync(sc,ds)}catch(e){}}}break;case"move":for(var i in cmd.names){var sc=path.join(cmd.scpath,cmd.names[i]),ds=path.join(cmd.dspath,cmd.names[i]);if(sc!=ds){try{fs.copyFileSync(sc,ds);fs.unlinkSync(sc)}catch(e){}}}break}};obj.webRtcCleanUp=function(){if(webRtcDesktop==null){return}if(webRtcDesktop.rtcchannel){try{webRtcDesktop.rtcchannel.close()}catch(e){}try{webRtcDesktop.rtcchannel.removeAllListeners("data")}catch(e){}try{webRtcDesktop.rtcchannel.removeAllListeners("end")}catch(e){}delete webRtcDesktop.rtcchannel}if(webRtcDesktop.webrtc){try{webRtcDesktop.webrtc.close()}catch(e){}try{webRtcDesktop.webrtc.removeAllListeners("connected")}catch(e){}try{webRtcDesktop.webrtc.removeAllListeners("disconnected")}catch(e){}try{webRtcDesktop.webrtc.removeAllListeners("dataChannel")}catch(e){}delete webRtcDesktop.webrtc}if(webRtcDesktop.kvm){try{webRtcDesktop.kvm.end()}catch(e){}delete webRtcDesktop.kvm}webRtcDesktop=null};obj.kvmSetData=function(x){obj.osamtstack.IPS_KVMRedirectionSettingData_DataChannelWrite(Buffer.from(x).toString("base64"),function(){})};function deleteFolderRecursive(path,rec){if(fs.existsSync(path)){if(rec==true){fs.readdirSync(obj.path.join(path,"*")).forEach(function(file,index){var curPath=obj.path.join(path,file);if(fs.statSync(curPath).isDirectory()){deleteFolderRecursive(curPath,true)}else{fs.unlinkSync(curPath)}})}fs.unlinkSync(path)}}function deactivateCCM(){amtMei.unprovision(1,function(status){if(status==0){sendConsoleText("Success deactivating Intel AMT CCM.")}else{sendConsoleText("Intel AMT CCM deactivation error: "+status)}})}function activeToCCM(adminpass){amtMei.getLocalSystemAccount(function(x){if(x.user&&x.pass){var transport=require("amt-wsman-duk");var wsman=require("amt-wsman");var amt=require("amt");oswsstack=new wsman(transport,"127.0.0.1",16992,x.user,x.pass,false);osamtstack=new amt(oswsstack);osamtstack.BatchEnum(null,["*AMT_GeneralSettings","*IPS_HostBasedSetupService"],activeToCCMEx2,adminpass)}else{sendConsoleText("Unable to get $$OsAdmin password.")}})}function activeToCCMEx2(stack,name,responses,status,adminpass){if(status!=200){sendConsoleText("Failed to fetch activation status, status "+status)}else{if(responses.IPS_HostBasedSetupService.response.AllowedControlModes.length!=2){sendConsoleText("Client control mode activation not allowed")}else{stack.IPS_HostBasedSetupService_Setup(2,md5hex("admin:"+responses.AMT_GeneralSettings.response.DigestRealm+":"+adminpass).substring(0,32),null,null,null,null,activeToCCMEx3)}}}function activeToCCMEx3(stack,name,responses,status){if(status!=200){sendConsoleText("Failed to activate, status "+status)}else{if(responses.Body.ReturnValue!=0){sendConsoleText("Client control mode activation failed: "+responses.Body.ReturnValueStr)}else{sendConsoleText("Intel AMT CCM activation success")}}}function md5hex(str){return require("MD5Stream").create().syncHash(str).toString("hex")}return obj}try{var xexports=null,mainMeshCore=null;try{xexports=module.exports}catch(e){}if(xexports!=null){module.exports.createMeshCore=createMeshCore}else{mainMeshCore=createMeshCore();mainMeshCore.start(null)}}catch(ex){require("MeshAgent").SendCommand({action:"msg",type:"console",value:"uncaughtException2: "+ex})}; \ No newline at end of file diff --git a/agents/modules_meshcmd_min/amt-lme.min.js b/agents/modules_meshcmd_min/amt-lme.min.js new file mode 100644 index 00000000..1d43678a --- /dev/null +++ b/agents/modules_meshcmd_min/amt-lme.min.js @@ -0,0 +1 @@ +var MemoryStream=require("MemoryStream");var lme_id=0;var lme_port_offset=0;var xmlParser=require("amt-xml");var APF_DISCONNECT=1;var APF_SERVICE_REQUEST=5;var APF_SERVICE_ACCEPT=6;var APF_USERAUTH_REQUEST=50;var APF_USERAUTH_FAILURE=51;var APF_USERAUTH_SUCCESS=52;var APF_GLOBAL_REQUEST=80;var APF_REQUEST_SUCCESS=81;var APF_REQUEST_FAILURE=82;var APF_CHANNEL_OPEN=90;var APF_CHANNEL_OPEN_CONFIRMATION=91;var APF_CHANNEL_OPEN_FAILURE=92;var APF_CHANNEL_WINDOW_ADJUST=93;var APF_CHANNEL_DATA=94;var APF_CHANNEL_CLOSE=97;var APF_PROTOCOLVERSION=192;function lme_object(){this.ourId=++lme_id;this.amtId=-1;this.LME_CHANNEL_STATUS="LME_CS_FREE";this.txWindow=0;this.rxWindow=0;this.localPort=0;this.errorCount=0}function stream_bufferedWrite(){var a=require("events").inherits(this);this.buffer=[];this._readCheckImmediate=undefined;this._ObjectID="bufferedWriteStream";a.createEvent("close");a.createEvent("drain");a.createEvent("error");a.createEvent("finish");a.createEvent("pipe");a.createEvent("unpipe");a.createEvent("readable");this.isEmpty=function(){return(this.buffer.length==0)};this.isWaiting=function(){return(this._readCheckImmediate==undefined)};this.write=function(c){for(var b in arguments){if(typeof(arguments[b])=="function"){this.once("drain",arguments[b]);break}}var d=Buffer.alloc(c.length);c.copy(d);this.buffer.push({offset:0,data:d});this.emit("readable");return(this.buffer.length==0?true:false)};this.read=function(){var f=arguments.length==0?undefined:arguments[0];var b=0;var d=[];while((f==undefined||b0){var c=this.buffer[0].data.length-this.buffer[0].offset;var e=this.buffer[0].offset;if(c>(f-b)){d.push(this.buffer[0].data.slice(e,e+f-b));this.buffer[0].offset+=(f-b);b+=(f-b)}else{d.push(this.buffer[0].data.slice(e));b+=c;this.buffer.shift()}}this._readCheckImmediate=setImmediate(function(g){g._readCheckImmediate=undefined;if(g.buffer.length==0){g.emit("drain")}else{g.emit("readable")}},this);return(Buffer.concat(d))}}function lme_heci(c){var a=require("events").inherits(this);a.createEvent("error");a.createEvent("connect");a.createEvent("notify");a.createEvent("bind");if((c!=null)&&(c.debug==true)){lme_port_offset=-100}var b=require("heci");this.INITIAL_RXWINDOW_SIZE=4096;this._ObjectID="lme";this._LME=b.create();this._LME._binded={};this._LME.LMS=this;this._LME.on("error",function(d){this.LMS.emit("error",d)});this._LME.on("connect",function(){this.on("data",function(k){var l=k.readUInt8(0);switch(l){default:console.log("Unhandled LME Command "+l+", "+k.length+" byte(s).");break;case APF_SERVICE_REQUEST:var z=k.readUInt32BE(1);var y=k.slice(5,z+5);if(y=="pfwd@amt.intel.com"||y=="auth@amt.intel.com"){var F=Buffer.alloc(5+z);F.writeUInt8(6,0);F.writeUInt32BE(z,1);F.write(y.toString(),5);this.write(F)}else{}break;case APF_GLOBAL_REQUEST:var z=k.readUInt32BE(1);var y=k.slice(5,z+5).toString();switch(y){case"tcpip-forward":var v=k.readUInt32BE(z+6);var G=k.readUInt32BE(z+10+v);if(this[y]==undefined){this[y]={}}if(this[y][G]!=null){for(var s in this.sockets){var h=this.sockets[s];if(h.localPort==G){this.sockets[s].end();delete this.sockets[s]}}}if(this[y][G]==null){this[y][G]=require("net").createServer();this[y][G].HECI=this;if(lme_port_offset==0){this[y][G].listen({port:G,host:"127.0.0.1"})}else{this[y][G].listen({port:(G+lme_port_offset)})}this[y][G].on("connection",function(e){this.HECI.LMS.bindDuplexStream(e,e.remoteFamily,e.localPort-lme_port_offset)});this._binded[G]=true;this.LMS.emit("bind",this._binded)}var F=Buffer.alloc(5);F.writeUInt8(81,0);F.writeUInt32BE(G,1);this.write(F);break;case"cancel-tcpip-forward":var F=Buffer.alloc(1);F.writeUInt8(APF_REQUEST_SUCCESS,0);this.write(F);break;case"udp-send-to@amt.intel.com":var F=Buffer.alloc(1);F.writeUInt8(APF_REQUEST_FAILURE,0);this.write(F);break;default:break}break;case APF_CHANNEL_OPEN_CONFIRMATION:var I=k.readUInt32BE(1);var M=k.readUInt32BE(5);var N=k.readUInt32BE(9);if(this.sockets[I]!=undefined){this.sockets[I].lme.amtId=M;this.sockets[I].lme.rxWindow=N;this.sockets[I].lme.txWindow=N;this.sockets[I].lme.LME_CHANNEL_STATUS="LME_CS_CONNECTED";this.sockets[I].bufferedStream=new stream_bufferedWrite();this.sockets[I].bufferedStream.socket=this.sockets[I];this.sockets[I].bufferedStream.on("readable",function(){if(this.socket.lme.txWindow>0){var e=this.read(this.socket.lme.txWindow);var i=Buffer.alloc(9+e.length);i.writeUInt8(APF_CHANNEL_DATA,0);i.writeUInt32BE(this.socket.lme.amtId,1);i.writeUInt32BE(e.length,5);e.copy(i,9);this.socket.lme.txWindow-=e.length;this.socket.HECI.write(i)}});this.sockets[I].bufferedStream.on("drain",function(){this.socket.resume()});this.sockets[I].on("data",function(e){if(!this.bufferedStream.write(e)){this.pause()}});this.sockets[I].on("end",function(){var e=Buffer.alloc(5);e.writeUInt8(APF_CHANNEL_CLOSE,0);e.writeUInt32BE(this.lme.amtId,1);this.HECI.write(e)});this.sockets[I].resume()}break;case APF_PROTOCOLVERSION:var w=k.readUInt32BE(1);var x=k.readUInt32BE(5);var K=k.readUInt32BE(9);var F=Buffer.alloc(93);F.writeUInt8(192,0);F.writeUInt32BE(1,1);F.writeUInt32BE(0,5);F.writeUInt32BE(K,9);this.write(F);break;case APF_CHANNEL_WINDOW_ADJUST:var J=k.readUInt32BE(1);var g=k.readUInt32BE(5);if(this.sockets[J]!=undefined){this.sockets[J].lme.txWindow+=g;if(!this.sockets[J].bufferedStream.isEmpty()&&this.sockets[J].bufferedStream.isWaiting()){this.sockets[J].bufferedStream.emit("readable")}}else{console.log("Unknown Recipient ID/"+J+" for APF_CHANNEL_WINDOW_ADJUST")}break;case APF_CHANNEL_DATA:var J=k.readUInt32BE(1);var n=k.readUInt32BE(5);var m=k.slice(9,9+n);if((this.sockets!=null)&&(this.sockets[J]!=undefined)){this.sockets[J].pendingBytes.push(m.length);this.sockets[J].write(m,function(){var i=this.pendingBytes.shift();var e=Buffer.alloc(9);e.writeUInt8(APF_CHANNEL_WINDOW_ADJUST,0);e.writeUInt32BE(this.lme.amtId,1);e.writeUInt32BE(i,5);this.HECI.write(e)})}else{if((this.insockets!=null)&&(this.insockets[J]!=undefined)){var h=this.insockets[J];if(h.data==null){h.data=m.toString()}else{h.data+=m.toString()}h.rxWindow+=n;var r=parseHttp(h.data);if((r!=null)||(h.data.length>=8000)){var A=null;try{A=xmlParser.ParseWsman(r)}catch(o){}if(A!=null){this.LMS.emit("notify",A,h.options,_lmsNotifyToString(A),_lmsNotifyToCode(A))}var f=Buffer.alloc(5);f.writeUInt8(APF_CHANNEL_CLOSE,0);f.writeUInt32BE(d,1);this.write(f)}else{if(h.rxWindow>6000){var f=Buffer.alloc(9);f.writeUInt8(APF_CHANNEL_WINDOW_ADJUST,0);f.writeUInt32BE(h.amtId,1);f.writeUInt32BE(h.rxWindow,5);this.write(f);h.rxWindow=0}}}else{console.log("Unknown Recipient ID/"+J+" for APF_CHANNEL_DATA")}}break;case APF_CHANNEL_OPEN_FAILURE:var J=k.readUInt32BE(1);var L=k.readUInt32BE(5);if((this.sockets!=null)&&(this.sockets[J]!=undefined)){this.sockets[J].end();delete this.sockets[J]}else{if((this.insockets!=null)&&(this.insockets[J]!=undefined)){delete this.insockets[J]}else{console.log("Unknown Recipient ID/"+J+" for APF_CHANNEL_OPEN_FAILURE")}}break;case APF_CHANNEL_CLOSE:var J=k.readUInt32BE(1);if((this.sockets!=null)&&(this.sockets[J]!=undefined)){this.sockets[J].end();var d=this.sockets[J].lme.amtId;var f=Buffer.alloc(5);delete this.sockets[J];f.writeUInt8(APF_CHANNEL_CLOSE,0);f.writeUInt32BE(d,1);this.write(f)}else{if((this.insockets!=null)&&(this.insockets[J]!=undefined)){delete this.insockets[J]}else{console.log("Unknown Recipient ID/"+J+" for APF_CHANNEL_CLOSE")}}break;case APF_CHANNEL_OPEN:var z=k.readUInt32BE(1);var y=k.slice(5,z+5).toString();var j=k.readUInt32BE(z+5);var t=k.readUInt32BE(z+9);var q=k.readUInt32BE(z+17);var p=k.slice(z+21,z+21+q).toString();var H=k.readUInt32BE(z+21+q);var C=k.readUInt32BE(z+25+q);var B=k.slice(z+29+q,z+29+q+C).toString();var D=k.readUInt32BE(z+29+q+C);if(this.insockets==null){this.insockets={}}var E=++lme_id;var u=new lme_object();u.ourId=E;u.amtId=j;u.txWindow=t;u.rxWindow=0;u.options={target:p,targetPort:H,source:B,sourcePort:D};this.insockets[E]=u;var f=Buffer.alloc(17);f.writeUInt8(APF_CHANNEL_OPEN_CONFIRMATION,0);f.writeUInt32BE(j,1);f.writeUInt32BE(E,5);f.writeUInt32BE(4000,9);f.writeUInt32BE(4294967295,13);this.write(f);break}});this.LMS.emit("connect");this.resume()});this.bindDuplexStream=function(e,h,g){var j=e;j.pendingBytes=[];j.HECI=this._LME;j.LMS=this;j.lme=new lme_object();j.lme.Socket=j;j.localPort=g;var d=new MemoryStream();d.writeUInt8(90);d.writeUInt32BE(15);d.write("forwarded-tcpip");d.writeUInt32BE(j.lme.ourId);d.writeUInt32BE(this.INITIAL_RXWINDOW_SIZE);d.writeUInt32BE(4294967295);for(var f=0;f<2;++f){if(h=="IPv6"){d.writeUInt32BE(3);d.write("::1")}else{d.writeUInt32BE(9);d.write("127.0.0.1")}d.writeUInt32BE(g)}this._LME.write(d.buffer);if(this._LME.sockets==undefined){this._LME.sockets={}}this._LME.sockets[j.lme.ourId]=j;j.pause()};this._LME.connect(b.GUIDS.LME,{noPipeline:0})}function parseHttp(c){var d=c.indexOf("\r\n\r\n");if((d==-1)||(c.length<(d+2))){return null}var b=require("http-headers")(c.substring(0,d),true);var a=parseInt(b["content-length"]);if(c.length>=a+d+4){return c.substring(d+4,d+4+a)}return null}function _lmsNotifyToCode(c){if((c==null)||(c.Body==null)||(c.Body.MessageID==null)){return null}var b=c.Body.MessageID;try{b+="-"+c.Body.MessageArguments[0]}catch(a){}return b}function _lmsNotifyToString(c){if((c==null)||(c.Body==null)||(c.Body.MessageID==null)){return null}var b=c.Body.MessageID;try{b+="-"+c.Body.MessageArguments[0]}catch(a){}if(lmsEvents[b]){return lmsEvents[b]}return null}var lmsEvents={iAMT0001:"System Defense Policy %1s triggered.",iAMT0002:"Agent Presence Agent %1s not started.",iAMT0003:"Agent Presence Agent %1s stopped.",iAMT0004:"Agent Presence Agent %1s running.",iAMT0005:"Agent Presence Agent %1s expired.",iAMT0006:"Agent Presence Agent %1s suspended.",iAMT0007:"Host software attempt to disable AMT Network link detected.",iAMT0008:"Host software attempt to disable AMT Network link detected -- Host Network link blocked.",iAMT0009:"AMT clock or FLASH wear-out protection disabled.",iAMT0010:"Intel(R) AMT Network Interface %1s heuristics defense slow threshold trespassed.",iAMT0011:"Intel(R) AMT Network Interface %1s heuristics defense fast threshold trespassed.",iAMT0012:"Intel(R) AMT Network Interface %1s heuristics defense factory defined threshold trespassed.",iAMT0013:"Intel(R) AMT Network Interface %1s heuristics defense Encounter timeout expired.",iAMT0014:"General certificate error.",iAMT0015:"Certificate expired.",iAMT0016:"No trusted root certificate.",iAMT0017:"Not configured to work with server certificate.",iAMT0018:"Certificate revoked.",iAMT0019:"RSA exponent too large.",iAMT0020:"RSA modulus too large.",iAMT0021:"Unsupported digest.",iAMT0022:"Distinguished name too long.",iAMT0023:"Key usage missing.",iAMT0024:"General SSL handshake error.",iAMT0025:"General 802.1x error.",iAMT0026:"AMT Diagnostic AlertEAC error - General NAC error.",iAMT0027:"AMT Diagnostic AlertEAC error - attempt to get a NAC posture while AMT NAC is disabled.",iAMT0028:"AMT Diagnostic AlertEAC error - attempt to get a posture of an unsupported type.",iAMT0029:"Audit log storage is 50% full.",iAMT0030:"Audit log storage is 75% full.",iAMT0031:"Audit log storage is 85% full.",iAMT0032:"Audit log storage is 95% full.",iAMT0033:"Audit log storage is full.",iAMT0034:"Firmware Update Event - Partial.",iAMT0035:"Firmware Update Event - Failure.",iAMT0036:"Remote connectivity initiated.",iAMT0037:"ME Presence event.","iAMT0038-0":"AMT is being unprovisioned using BIOS command.","iAMT0038-1":"AMT is being unprovisioned using Local MEI command.","iAMT0038-2":"AMT is being unprovisioned using Local WS-MAN/SOAP command.","iAMT0038-3":"AMT is being unprovisioned using Remote WS-MAN/SOAP command.",iAMT0039:"HW Asset Error.",iAMT0050:"User Notification Alert - General Notification.","iAMT0050-16":"User Notification Alert - Circuit Breaker notification (CB Drop TX filter hit.).","iAMT0050-17":"User Notification Alert - Circuit Breaker notification (CB Rate Limit TX filter hit.).","iAMT0050-18":"User Notification Alert - Circuit Breaker notification (CB Drop RX filter hit.).","iAMT0050-19":"User Notification Alert - Circuit Breaker notification (CB Rate Limit RX filter hit.).","iAMT0050-32":"User Notification Alert - EAC notification.","iAMT0050-48":"User Notification Alert - Remote diagnostics - (Remote Redirection session started - SOL).","iAMT0050-49":"User Notification Alert - Remote diagnostics - (Remote Redirection session stopped - SOL).","iAMT0050-50":"User Notification Alert - Remote diagnostics. (Remote Redirection session started - IDE-R).","iAMT0050-51":"User Notification Alert - Remote diagnostics. (Remote Redirection session stopped - IDE-R).","iAMT0050-66":"User Notification Alert - WLAN notification (Host profile mismatch - Management Interface ignored).","iAMT0050-67":"User Notification Alert - WLAN notification (Management device overrides host radio).","iAMT0050-68":"User Notification Alert - WLAN notification (Host profile security mismatch).","iAMT0050-69":"User Notification Alert - WLAN notification (Management device relinquishes control over host Radio).",iAMT0051:"User Notification Alert - SecIo event.","iAMT0051-0":"User Notification Alert - SecIo event semaphore at host.","iAMT0051-1":"User Notification Alert - semaphore at ME.","iAMT0051-2":"User Notification Alert - SecIo event - semaphore timeout.",iAMT0052:"User Notification Alert - KVM session event.","iAMT0052-0":"User Notification Alert - KVM session requested.","iAMT0052-1":"User Notification Alert - KVM session started.","iAMT0052-2":"User Notification Alert - KVM session stopped.","iAMT0052-3":"User Notification Alert - KVM data channel.",iAMT0053:"User Notification Alert - RCS notification.","iAMT0053-50":"User Notification Alert - RCS notification (HW button pressed. Connection initiated automatically).","iAMT0053-52":"User Notification Alert - RCS notification (HW button pressed. Connection wasn't initiated automatically).","iAMT0053-53":"User Notification Alert - RCS notification (Contracts updated).",iAMT0054:"User Notification Alert - WLAN notification. Wireless Profile sync enablement state changed.",iAMT0055:"User Notification Alert - Provisioning state change notification.","iAMT0055-0":"User Notification Alert - Provisioning state change notification - Pre-configuration.","iAMT0055-1":"User Notification Alert - Provisioning state change notification - In configuration.","iAMT0055-2":"User Notification Alert - Provisioning state change notification - Post-configuration.","iAMT0055-3":"User Notification Alert - Provisioning state change notification - Unprovision process has started.",iAMT0056:"User Notification Alert - System Defense change notification.",iAMT0057:"User Notification Alert - Network State change notification.",iAMT0058:"User Notification Alert - Remote Access change notification.","iAMT0058-1":"User Notification Alert - Remote Access change notification - tunnel is closed.",iAMT0059:"User Notification Alert - KVM enabled event.","iAMT0059-0":"User Notification Alert - KVM enabled event - KVM disabled.","iAMT0059-1":"User Notification Alert - KVM enabled event - KVM enabled (both from MEBx and PTNI).",iAMT0060:"User Notification Alert - SecIO configuration event.",iAMT0061:"ME FW reset occurred.",iAMT0062:"User Notification Alert - IpSyncEnabled event.","iAMT0062-0":"User Notification Alert - IpSyncEnabled event - IpSync disabled.","iAMT0062-1":"User Notification Alert - IpSyncEnabled event - IpSync enabled.",iAMT0063:"User Notification Alert - HTTP Proxy sync enabled event.","iAMT0063-0":"User Notification Alert - HTTP Proxy sync enabled event - HTTP Proxy Sync disabled.","iAMT0063-1":"User Notification Alert - HTTP Proxy sync enabled event - HTTP Proxy Sync enabled.",iAMT0064:"User Notification Alert - User Consent event.","iAMT0064-1":"User Notification Alert - User Consent event - User Consent granted.","iAMT0064-2":"User Notification Alert - User Consent event - User Consent ended.","iAMT0067-0":"Graceful Remote Control Operation - Shutdown.","iAMT0067-1":"Graceful Remote Control Operation - Reset.","iAMT0067-2":"Graceful Remote Control Operation - Hibernate.","iAMT0068-0":"Link Protection Notification - No link protection.","iAMT0068-1":"Link Protection Notification - Passive link protection.","iAMT0068-2":"Link Protection Notification - High link protection.","iAMT0069-0":"Local Time Sync Enablement Notification - Local Time Sync Disabled.","iAMT0069-1":"Local Time Sync Enablement Notification - Local Time Sync Enabled.",iAMT0070:"Host Reset Triggered by WD Expiration Notification.",PLAT0004:"The chassis %1s was opened.",PLAT0005:"The chassis %1s was closed.",PLAT0006:"The drive bay %1s was opened.",PLAT0007:"The drive bay %1s was closed.",PLAT0008:"The I/O card area %1s was opened.",PLAT0009:"The I/O card area %1s was closed.",PLAT0010:"The processor area %1s was opened.",PLAT0011:"The processor area %1s was closed.",PLAT0012:"The LAN %1s has been disconnected.",PLAT0013:"The LAN %1s has been connected.",PLAT0016:"The permission to insert package %1s has been granted.",PLAT0017:"The permission to insert package %1s has been removed.",PLAT0018:"The fan card area %1s is open.",PLAT0019:"The fan card area %1s is closed.",PLAT0022:"The computer system %1s has detected a secure mode violation.",PLAT0024:"The computer system %1s has detected a pre-boot user password violation.",PLAT0026:"The computer system %1s has detected a pre-boot setup password violation.",PLAT0028:"The computer system %1s has detected a network boot password violation.",PLAT0030:"The computer system %1s has detected a password violation.",PLAT0032:"The management controller %1s has detected an out-of-band password violation.",PLAT0034:"The processor %1s has been added.",PLAT0035:"The processor %1s has been removed.",PLAT0036:"An over-temperature condition has been detected on the processor %1s.",PLAT0037:"An over-temperature condition has been removed on the processor %1s.",PLAT0038:"The processor %1s is operating in a degraded State.",PLAT0039:"The processor %1s is no longer operating in a degraded State.",PLAT0040:"The processor %1s has failed.",PLAT0042:"The processor %1s has failed.",PLAT0044:"The processor %1s has failed.",PLAT0046:"The processor %1s has failed.",PLAT0048:"The processor %1s has failed.",PLAT0060:"The processor %1s has been enabled.",PLAT0061:"The processor %1s has been disabled.",PLAT0062:"The processor %1s has a configuration mismatch.",PLAT0064:"A terminator has been detected on the processor %1s.",PLAT0084:"The Power Supply %1s has been added.",PLAT0085:"The Power Supply %1s has been removed.",PLAT0086:"The Power Supply %1s has failed.",PLAT0088:"Failure predicted on power supply %1s.",PLAT0096:"The input to power supply %1s has been lost or fallen out of range.",PLAT0098:"The power supply %1s is operating in an input state that is out of range.",PLAT0099:"The power supply %1s has returned to a normal input state.",PLAT0100:"The power supply %1s has lost input.",PLAT0104:"The power supply %1s has a configuration mismatch.",PLAT0106:"Power supply %1s has been disabled.",PLAT0107:"Power supply %1s has been enabled.",PLAT0108:"Power supply %1s has been power cycled.",PLAT0110:"Power supply %1s has encountered an error during power down.",PLAT0112:"Power supply %1s has lost power.",PLAT0114:"Soft power control has failed for power supply %1s.",PLAT0116:"Power supply %1s has failed.",PLAT0118:"Failure predicted on power supply %1s.",PLAT0120:"Memory subsystem failure.",PLAT0122:"DIMM missing.",PLAT0124:"Memory error detected & corrected for DIMM %1s.",PLAT0128:"Memory DIMM %1s added.",PLAT0129:"Memory DIMM %1s removed.",PLAT0130:"Memory DIMM %1s enabled.",PLAT0131:"Memory DIMM %1s disabled.",PLAT0134:"Memory parity error for DIMM %1s.",PLAT0136:"Memory scrub failure for DIMM %1s.",PLAT0138:"Memory uncorrectable error detected for DIMM %1s.",PLAT0140:"Memory sparing initiated for DIMM %1s.",PLAT0141:"Memory sparing concluded for DIMM %1s.",PLAT0142:"Memory DIMM %1s Throttled.",PLAT0144:"Memory logging limit reached for DIMM %1s.",PLAT0145:"Memory logging limit removed for DIMM %1s.",PLAT0146:"An over-temperature condition has been detected on the Memory DIMM %1s.",PLAT0147:"An over-temperature condition has been removed on the Memory DIMM %1s.",PLAT0162:"The drive %1s has been added.",PLAT0163:"The drive %1s has been removed.",PLAT0164:"The drive %1s has been disabled due to a detected fault.",PLAT0167:"The drive %1s has been enabled.",PLAT0168:"Failure predicted on drive %1s.",PLAT0170:"Hot spare enabled for %1s.",PLAT0171:"Hot spare disabled for %1s.",PLAT0172:"Consistency check has begun for %1s.",PLAT0173:"Consistency check completed for %1s.",PLAT0174:"Array %1s is in critical condition.",PLAT0176:"Array %1s has failed.",PLAT0177:"Array %1s has been restored.",PLAT0178:"Rebuild in progress for array %1s.",PLAT0179:"Rebuild completed for array %1s.",PLAT0180:"Rebuild Aborted for array %1s.",PLAT0184:"The system %1s encountered a POST error.",PLAT0186:"The system %1s encountered a firmware hang.",PLAT0188:"The system %1s encountered firmware progress.",PLAT0192:"The log %1s has been disabled.",PLAT0193:"The log %1s has been enabled.",PLAT0194:"The log %1s has been disabled.",PLAT0195:"The log %1s has been enabled.",PLAT0196:"The log %1s has been disabled.",PLAT0198:"The log %1s has been enabled.",PLAT0200:"The log %1s has been cleared.",PLAT0202:"The log %1s is full.",PLAT0203:"The log %1s is no longer full.",PLAT0204:"The log %1s is almost full.",PLAT0208:"The log %1s has a configuration error.",PLAT0210:"The system %1s has been reconfigured.",PLAT0212:"The system %1s has encountered an OEM system boot event.",PLAT0214:"The system %1s has encountered an unknown system hardware fault.",PLAT0216:"The system %1s has generated an auxiliary log entry.",PLAT0218:"The system %1s has executed a PEF action.",PLAT0220:"The system %1s has synchronized the system clock.",PLAT0222:"A diagnostic interrupt has occurred on system %1s.",PLAT0224:"A bus timeout has occurred on system %1s.",PLAT0226:"An I/O channel check NMI has occurred on system %1s.",PLAT0228:"A software NMI has occurred on system %1s.",PLAT0230:"System %1s has recovered from an NMI.",PLAT0232:"A PCI PERR has occurred on system %1s.",PLAT0234:"A PCI SERR has occurred on system %1s.",PLAT0236:"An EISA fail safe timeout occurred on system %1s.",PLAT0238:"A correctable bus error has occurred on system %1s.",PLAT0240:"An uncorrectable bus error has occurred on system %1s.",PLAT0242:"A fatal NMI error has occurred on system %1s.",PLAT0244:"A fatal bus error has occurred on system %1s.",PLAT0246:"A bus on system %1s is operating in a degraded state.",PLAT0247:"A bus on system %1s is no longer operating in a degraded state.",PLAT0248:"The power button %1s has been pressed.",PLAT0249:"The power button %1s has been released.",PLAT0250:"The sleep button %1s has been pressed.",PLAT0251:"The sleep button %1s has been released.",PLAT0252:"The reset button %1s has been pressed.",PLAT0253:"The reset button %1s has been released.",PLAT0254:"The latch to %1s has been opened.",PLAT0255:"The latch to %1s has been closed.",PLAT0256:"The service request %1s has been enabled.",PLAT0257:"The service request %1s has been completed.",PLAT0258:"Power control of system %1s has failed.",PLAT0262:"The network port %1s has been connected.",PLAT0263:"The network port %1s has been disconnected.",PLAT0266:"The connector %1s has encountered a configuration error.",PLAT0267:"The connector %1s configuration error has been repaired.",PLAT0272:"Power on for system %1s.",PLAT0274:"Power cycle hard requested for system %1s.",PLAT0276:"Power cycle soft requested for system %1s.",PLAT0278:"PXE boot requested for system %1s.",PLAT0280:"Diagnostics boot requested for system %1s.",PLAT0282:"System restart requested for system %1s.",PLAT0284:"System restart begun for system %1s.",PLAT0286:"No bootable media available for system %1s.",PLAT0288:"Non-bootable media selected for system %1s.",PLAT0290:"PXE server not found for system %1s.",PLAT0292:"User timeout on boot for system %1s.",PLAT0296:"System %1s boot from floppy initiated.",PLAT0298:"System %1s boot from local drive initiated.",PLAT0300:"System %1s boot from PXE on network port initiated.",PLAT0302:"System %1s boot diagnostics initiated.",PLAT0304:"System %1s boot from CD initiated.",PLAT0306:"System %1s boot from ROM initiated.",PLAT0312:"System %1s boot initiated.",PLAT0320:"Critical stop during OS load on system %1s.",PLAT0322:"Run-time critical stop on system %1s.",PLAT0324:"OS graceful stop on system %1s.",PLAT0326:"OS graceful shutdown begun on system %1s.",PLAT0327:"OS graceful shutdown completed on system %1s.",PLAT0328:"Agent not responding on system %1s.",PLAT0329:"Agent has begun responding on system %1s.",PLAT0330:"Fault in slot on system %1s.",PLAT0331:"Fault condition removed on system %1s.",PLAT0332:"Identifying slot on system %1s.",PLAT0333:"Identify stopped on slot for system %1s.",PLAT0334:"Package installed in slot for system %1s.",PLAT0336:"Slot empty system %1s.",PLAT0338:"Slot in system %1s is ready for installation.",PLAT0340:"Slot in system %1s is ready for removal.",PLAT0342:"Power is off on slot of system %1s.",PLAT0344:"Power is on for slot of system %1s.",PLAT0346:"Removal requested for slot of system %1s.",PLAT0348:"Interlock activated on slot of system %1s.",PLAT0349:"Interlock de-asserted on slot of system %1s.",PLAT0350:"Slot disabled on system %1s.",PLAT0351:"Slot enabled on system %1s.",PLAT0352:"Slot of system %1s holds spare.",PLAT0353:"Slot of system %1s no longer holds spare.",PLAT0354:"Computer system %1s enabled.",PLAT0356:"Computer system %1s is in sleep - light mode.",PLAT0358:"Computer system %1s is in hibernate.",PLAT0360:"Computer system %1s is in standby.",PLAT0362:"Computer system %1s is in soft off mode.",PLAT0364:"Computer system %1s is in hard off mode.",PLAT0366:"Computer system %1s is sleeping.",PLAT0368:"Watchdog timer expired for %1s.",PLAT0370:"Reboot of system initiated by watchdog %1s.",PLAT0372:"Powering off system initiated by watchdog %1s.",PLAT0374:"Power cycle of system initiated by watchdog %1s.",PLAT0376:"Watchdog timer interrupt occurred for %1s.",PLAT0378:"A page alert has been generated for system %1s.",PLAT0380:"A LAN alert has been generated for system %1s.",PLAT0382:"An event trap has been generated for system %1s.",PLAT0384:"An SNMP trap has been generated for system %1s.",PLAT0390:"%1s detected as present.",PLAT0392:"%1s detected as absent.",PLAT0394:"%1s has been disabled.",PLAT0395:"%1s has been enabled.",PLAT0396:"Heartbeat lost for LAN %1s.",PLAT0397:"Heartbeat detected for LAN %1s.",PLAT0398:"Sensor %1s is unavailable or degraded on management system.",PLAT0399:"Sensor %1s has returned to normal on management system.",PLAT0400:"Controller %1s is unavailable or degraded on management system.",PLAT0401:"Controller %1s has returned to normal on management system.",PLAT0402:"Management system %1s is off-line.",PLAT0404:"Management system %1s is disabled.",PLAT0405:"Management system %1s is enabled.",PLAT0406:"Sensor %1s has failed on management system.",PLAT0408:"FRU %1s has failed on management system.",PLAT0424:"The battery %1s is critically low.",PLAT0427:"The battery %1s is no longer critically low.",PLAT0430:"The battery %1s has been removed from unit.",PLAT0431:"The battery %1s has been added.",PLAT0432:"The battery %1s has failed.",PLAT0434:"Session audit is deactivated on system %1s.",PLAT0435:"Session audit is activated on system %1s.",PLAT0436:"A hardware change occurred on system %1s.",PLAT0438:"A firmware or software change occurred on system %1s.",PLAT0440:"A hardware incompatibility was detected on system %1s.",PLAT0442:"A firmware or software incompatibility was detected on system %1s.",PLAT0444:"Invalid or unsupported hardware was detected on system %1s.",PLAT0446:"Invalid or unsupported firmware or software was detected on system %1s.",PLAT0448:"A successful hardware change was detected on system %1s.",PLAT0450:"A successful software or firmware change was detected on system %1s.",PLAT0464:"FRU %1s not installed on system.",PLAT0465:"FRU %1s installed on system.",PLAT0466:"Activation requested for FRU %1s on system.",PLAT0467:"FRU %1s on system is active.",PLAT0468:"Activation in progress for FRU %1s on system.",PLAT0470:"Deactivation request for FRU %1s on system.",PLAT0471:'FRU %1s on system is in standby or "hot spare" state.',PLAT0472:"Deactivation in progress for FRU %1s on system.",PLAT0474:"Communication lost with FRU %1s on system.",PLAT0476:"Numeric sensor %1s going low (lower non-critical).",PLAT0478:"Numeric sensor %1s going high (lower non-critical).",PLAT0480:"Numeric sensor %1s going low (lower critical).",PLAT0482:"Numeric sensor %1s going high (lower critical).",PLAT0484:"Numeric sensor %1s going low (lower non-recoverable).",PLAT0486:"Numeric sensor %1s going high (lower non-critical).",PLAT0488:"Numeric sensor %1s going low (upper non-critical).",PLAT0490:"Numeric sensor %1s going high (upper non-critical).",PLAT0492:"Numeric sensor %1s going low (upper critical).",PLAT0494:"Numeric sensor %1s going high (upper critical).",PLAT0496:"Numeric sensor %1s going low (upper non-recoverable).",PLAT0498:"Numeric sensor %1s going high (upper non-recoverable).",PLAT0500:"Sensor %1s has transitioned to idle.",PLAT0502:"Sensor %1s has transitioned to active.",PLAT0504:"Sensor %1s has transitioned to busy.",PLAT0508:"Sensor %1s has asserted.",PLAT0509:"Sensor %1s has de-asserted.",PLAT0510:"Sensor %1s is asserting predictive failure.",PLAT0511:"Sensor %1s is de-asserting predictive failure.",PLAT0512:"Sensor %1s has indicated limit exceeded.",PLAT0513:"Sensor %1s has indicated limit no longer exceeded.",PLAT0514:"Sensor %1s has indicated performance met.",PLAT0516:"Sensor %1s has indicated performance lags.",PLAT0518:"Sensor %1s has transitioned to normal state.",PLAT0520:"Sensor %1s has transitioned from normal to non-critical state.",PLAT0522:"Sensor %1s has transitioned to critical from a less severe state.",PLAT0524:"Sensor %1s has transitioned to non-recoverable from a less severe state.",PLAT0526:"Sensor %1s has transitioned to non-critical from a more severe state.",PLAT0528:"Sensor %1s has transitioned to critical from a non-recoverable state.",PLAT0530:"Sensor %1s has transitioned to non-recoverable.",PLAT0532:"Sensor %1s indicates a monitor state.",PLAT0534:"Sensor %1s has an informational state.",PLAT0536:"Device %1s has been added.",PLAT0537:"Device %1s has been removed from unit.",PLAT0538:"Device %1s has been enabled.",PLAT0539:"Device %1s has been disabled.",PLAT0540:"Sensor %1s has indicated a running state.",PLAT0544:"Sensor %1s has indicated a power off state.",PLAT0546:"Sensor %1s has indicated an on-line state.",PLAT0548:"Sensor %1s has indicated an off-line state.",PLAT0550:"Sensor %1s has indicated an off-duty state.",PLAT0552:"Sensor %1s has indicated a degraded state.",PLAT0554:"Sensor %1s has indicated a power save state.",PLAT0556:"Sensor %1s has indicated an install error.",PLAT0558:"Redundancy %1s has been lost.",PLAT0560:"Redundancy %1s has been reduced.",PLAT0561:"Redundancy %1s has been restored.",PLAT0562:"%1s has transitioned to a D0 power state.",PLAT0564:"%1s has transitioned to a D1 power state.",PLAT0566:"%1s has transitioned to a D2 power state.",PLAT0568:"%1s has transitioned to a D3 power state.",PLAT0720:"The System %1s encountered firmware progress - memory initialization entry.",PLAT0721:"The System %1s encountered firmware progress - memory initialization exit.",PLAT0722:"The System %1s encountered firmware progress - hard drive initialization entry.",PLAT0723:"The System %1s encountered firmware progress - hard drive initialization exit.",PLAT0724:"The System %1s encountered firmware progress - user authentication.",PLAT0728:"The System %1s encountered firmware progress - USR resource configuration entry.",PLAT0729:"The System %1s encountered firmware progress - USR resource configuration exit.",PLAT0730:"The System %1s encountered firmware progress - PCI recource configuration entry.",PLAT0731:"The System %1s encountered firmware progress - PCI recource configuration exit.",PLAT0732:"The System %1s encountered firmware progress - Option ROM initialization entry.",PLAT0733:"The System %1s encountered firmware progress - Option ROM initialization entry exit.",PLAT0734:"The System %1s encountered firmware progress -video initialization entry entry.",PLAT0735:"The System %1s encountered firmware progress - video initialization entry exit.",PLAT0736:"The System %1s encountered firmware progress - cache initialization entry.",PLAT0737:"The System %1s encountered firmware progress - cache initialization exit.",PLAT0738:"The System %1s encountered firmware progress - keyboard controller initialization entry.",PLAT0739:"The System %1s encountered firmware progress - keyboard controller initialization exit.",PLAT0740:"The System %1s encountered firmware progress - motherboard initialization entry.",PLAT0741:"The System %1s encountered firmware progress - motherboard initialization exit.",PLAT0742:"The System %1s encountered firmware progress - floppy disk initialization entry.",PLAT0743:"The System %1s encountered firmware progress - floppy disk initialization exit.",PLAT0744:"The System %1s encountered firmware progress - keyboard test entry.",PLAT0745:"The System %1s encountered firmware progress - keyboard test exit.",PLAT0746:"The System %1s encountered firmware progress - pointing device test entry.",PLAT0747:"The System %1s encountered firmware progress - pointing device test exit.",PLAT0750:"The System %1s encountered firmware progress - dock enable entry.",PLAT0751:"The System %1s encountered firmware progress - dock enable exit.",PLAT0752:"The System %1s encountered firmware progress - dock disable entry.",PLAT0753:"The System %1s encountered firmware progress - dock disable exit.",PLAT0760:"The System %1s encountered firmware progress - start OS boot process.",PLAT0762:"The System %1s encountered firmware progress - call OS wake vector.",PLAT0764:"The System %1s encountered firmware progress - unrecoverable keyboard failure.",PLAT0766:"The System %1s encountered firmware progress - no video device detected.",PLAT0768:"The System %1s encountered firmware progress - SMART alert detected on drive.",PLAT0770:"The System %1s encountered firmware progress - unrecoverable boot device failure.",PLAT0789:"Corrupt BIOS detected.",PLAT0790:"The System %1s encountered PCI configuration failure.",PLAT0791:"The System %1s encountered a video subsystem failure.",PLAT0792:"The System %1s encountered a storage subsystem failure.",PLAT0793:"The System %1s encountered a USB subsystem failure.",PLAT0794:"The System %1s has detected no memory in the system.",PLAT0795:"The System %1s encountered a motherboard failure.",PLAT0796:"The System %1s encountered a memory Regulator Voltage Bad.",PLAT0797:"%1s PCI reset is not deasserting.",PLAT0798:"%1s Non-Motherboard Regulator Failure.",PLAT0799:"%1s Power Supply Cable failure.",PLAT0800:"%1s Motherboard regulator failure.",PLAT0801:"%1s System component compatibility mismatch."};module.exports=lme_heci; \ No newline at end of file diff --git a/agents/modules_meshcmd_min/amt-mei.min.js b/agents/modules_meshcmd_min/amt-mei.min.js new file mode 100644 index 00000000..dc89c2cf --- /dev/null +++ b/agents/modules_meshcmd_min/amt-mei.min.js @@ -0,0 +1 @@ +var Q=require("queue");function amt_heci(){var d=require("events").inherits(this);d.createEvent("error");var u=require("heci");this._ObjectID="pthi";this._rq=new Q();this._setupPTHI=function b(){this._amt=u.create();this._amt.BiosVersionLen=65;this._amt.UnicodeStringLen=20;this._amt.Parent=this;this._amt.on("error",function E(G){if(this.Parent._rq.isEmpty()){this.Parent.emit("error",G)}else{var I=this.Parent._rq.deQueue();var H=I.optional;var F=I.func;H.unshift({Status:-1});F.apply(this.Parent,H);if(!this.Parent._rq.isEmpty()){this.connect(u.GUIDS.AMT,{noPipeline:1})}}});this._amt.on("connect",function D(){this.on("data",function F(H){var I=this.Parent.getCommand(H);var K=this.Parent._rq.deQueue();var J=K.optional;var G=K.func;J.unshift(I);G.apply(this.Parent,J);if(this.Parent._rq.isEmpty()){this.Parent._amt.disconnect();this.Parent._amt=null}else{this.write(this.Parent._rq.peekQueue().send)}});this.write(this.Parent._rq.peekQueue().send)})};function A(D){var E=D.indexOf("\0");if(E>=0){return D.substring(0,E)}else{return D}}this.getCommand=function g(D){var E=D.length==0?(this._rq.peekQueue().cmd|8388608):D.readUInt32LE(4);var F={IsResponse:(E&8388608)==8388608?true:false,Command:(E&8388607),Status:D.length!=0?D.readUInt32LE(12):-1,Data:D.length!=0?D.slice(16):null};return(F)};this.sendCommand=function x(){if(arguments.length<3||typeof(arguments[0])!="number"||typeof(arguments[1])!="object"||typeof(arguments[2])!="function"){throw ("invalid parameters")}var D=[];for(var F=3;F0){M.BiosVersion=M.BiosVersion.substring(0,M.BiosVersion.indexOf("\0"))}K.unshift(M)}else{K.unshift(null)}H.apply(this,K)},D,F)};function C(F,E){if((E==null)&&(typeof(E)!="number")){return null}if(F==null){F=""}var G="";for(var D=0;D0){I.unshift(H.Data.slice(2,2+J).toString())}else{I.unshift(null)}}else{I.unshift(null)}G.apply(this,I)},D,F)};this.getHashHandles=function k(D){var F=[];for(var E=1;E0){this.getCertHashEntry(F.shift(),this._getHashEntrySink,E,G,D,F)}else{G.unshift(D);E.apply(this,G)}};this.getLocalSystemAccount=function m(D){var F=[];for(var E=1;E>24)&255)+"."+((J>>16)&255)+"."+((J>>8)&255)+"."+(J&255);N.unshift(M);K.apply(this,N)}else{N.unshift(null);K.apply(this,N)}},D,I)};this.unprovision=function B(G,D){var H=[];for(var F=2;F>4)&15;f.provisioningState=b[19]&3;var e=(b[16]*256)+b[17];var c=((b[19]&4)!=0)?true:false;f.openPorts=[e];f.address=g.address;if(c==true){f.openPorts=[16992,16993]}if(d!==undefined){d(h,f)}}};this.parseIPv4Range=function(f){if(f==undefined||f==null){return null}var g=f.split("-");if(g.length==2){return{min:this.parseIpv4Addr(g[0]),max:this.parseIpv4Addr(g[1])}}g=f.split("/");if(g.length==2){var c=this.parseIpv4Addr(g[0]),e=parseInt(g[1]),d=0;if(e<=16||e>32){return null}e=32-e;for(var b=0;b>24)&255)+"."+((b>>16)&255)+"."+((b>>8)&255)+"."+(b&255)};this.scan=function(d,g){var c=this.parseIPv4Range(d);var e=this.buildRmcpPing(0);var f=this.dgram.createSocket({type:"udp4"});f.parent=this;f.scanResults=[];f.on("error",function(i){console.log("Error:"+i)});f.on("message",function(i,j){if(j.size>4){this.parent.parseRmcpPacket(this,i,j,function(l,k){l.scanResults.push(k)})}});f.on("listening",function(){for(var j=c.min;j<=c.max;j++){f.send(e,623,f.parent.IPv4NumToStr(j))}});f.bind({address:"0.0.0.0",port:0,exclusive:true});var h=setTimeout(function b(){f.close();f.parent.emit("found",f.scanResults);delete f},g)}}module.exports=AMTScanner; \ No newline at end of file diff --git a/agents/modules_meshcmd_min/amt-script.min.js b/agents/modules_meshcmd_min/amt-script.min.js new file mode 100644 index 00000000..244ee297 --- /dev/null +++ b/agents/modules_meshcmd_min/amt-script.min.js @@ -0,0 +1 @@ +script_functionTable1=["nop","jump","set","print","dialog","getitem","substr","indexof","split","join","length","jsonparse","jsonstr","add","substract","parseint","wsbatchenum","wsput","wscreate","wsdelete","wsexec","scriptspeed","wssubscribe","wsunsubscribe","readchar","signwithdummyca"];script_functionTable2=["encodeuri","decodeuri","passwordcheck","atob","btoa","hex2str","str2hex","random","md5","maketoarray","readshort","readshortx","readint","readsint","readintx","shorttostr","shorttostrx","inttostr","inttostrx"];script_functionTableX2=[encodeURI,decodeURI,passwordcheck,atob,btoa,hex2rstr,rstr2hex,random,rstr_md5,MakeToArray,ReadShort,ReadShortX,ReadInt,ReadSInt,ReadIntX,ShortToStr,ShortToStrX,IntToStr,IntToStrX];function MakeToArray(a){if(!a||a==null||typeof a=="object"){return a}return[a]}function ReadShort(b,a){return(b[a]<<8)+b[a+1]}function ReadShortX(b,a){return(b[a+1]<<8)+b[a]}function ReadInt(b,a){return(b[a]*16777216)+(b[a+1]<<16)+(b[a+2]<<8)+b[a+3]}function ReadSInt(b,a){return(b[a]<<24)+(b[a+1]<<16)+(b[a+2]<<8)+b[a+3]}function ReadIntX(b,a){return(b[a+3]*16777216)+(b[a+2]<<16)+(b[a+1]<<8)+b[a]}function ShortToStr(a){return String.fromCharCode((a>>8)&255,a&255)}function ShortToStrX(a){return String.fromCharCode(a&255,(a>>8)&255)}function IntToStr(a){return String.fromCharCode((a>>24)&255,(a>>16)&255,(a>>8)&255,a&255)}function IntToStrX(a){return String.fromCharCode(a&255,(a>>8)&255,(a>>16)&255,(a>>24)&255)}function btoa(a){return Buffer.from(a).toString("base64")}function atob(b){var c=null;try{c=Buffer.from(b,"base64").toString()}catch(a){console.log(a)}return c}function passwordcheck(g){if(g.length<8){return false}var h=0,d=0,f=0,e=0;for(var b in g){var a=g.charCodeAt(b);if((a>64)&&(a<91)){h=1}else{if((a>96)&&(a<123)){d=1}else{if((a>47)&&(a<58)){f=1}else{e=1}}}}return((h+d+f+e)==4)}function hex2rstr(a){Buffer.from(a,"hex").toString()}function rstr2hex(a){Buffer.from(a).toString("hex")}function random(){return Math.floor(Math.random()*max)}function rstr_md5(a){return hex2rstr(hex_md5(a))}function getItem(b,c,d){for(var a in b){if(b[a][c]==d){return b[a]}}return null}var httpErrorTable={200:"OK",401:"Authentication Error",408:"Timeout Error",601:"WSMAN Parsing Error",602:"Unable to parse HTTP response header",603:"Unexpected HTTP enum response",604:"Unexpected HTTP pull response",998:"Invalid TLS certificate"};module.exports.setup=function(a,c){var b={startvars:c,onCompleted:null};if(a.length<6){console.error("Invalid script length");return null}if(ReadInt(a,0)!=612182341){console.error("Invalid binary script");return null}if(ReadShort(a,4)>1){console.error("Unsupported script version");return null}b.script=a.slice(6);b.reset=function(d){b.stop();b.ip=0;b.variables=c;b.state=1};b.start=function(d){b.stop();if(d==null){b.stepspeed=10}else{b.stepspeed=d}if(b.stepspeed>0){b.timer=setInterval(function(){b.step()},b.stepspeed)}};b.stop=function(){if(b.timer!=null){clearInterval(b.timer)}b.timer=null;b.stepspeed=0};b.getVar=function(d){if(d==undefined){return undefined}return b.getVarEx(d.split("."),b.variables)};b.getVarEx=function(f,g){try{if(f==undefined){return undefined}if(f.length==0){return g}return b.getVarEx(f.slice(1),g[f[0]])}catch(d){return null}};b.setVar=function(d,e){b.setVarEx(d.split("."),b.variables,e)};b.setVarEx=function(d,f,e){if(d.length==1){f[d[0]]=e}else{b.setVarEx(d.slice(1),f[d[0]],e)}};b.step=function(){if(b.state!=1){return}if(b.ip1){var r=l.split("{").pop().split("}").shift();l=l.replace("{"+r+"}",b.getVar(r))}if(k==1){b.variables["__"+p]=decodeURI(l);l="__"+p}h.push(l)}if(k==2||k==3){b.variables["__"+p]=ReadSInt(l,0);h.push("__"+p)}g+=(2+f)}b.ip+=n;var j=[];for(var p=0;p<10;p++){j.push(b.getVar(h[p]))}var q;try{if(m<10000){switch(m){case 0:break;case 1:if(j[2]){if((j[2]=="<"&&j[1]="&&j[1]>=j[3])||(j[2]==">"&&j[1]>j[3])){b.ip=j[0]}}else{b.ip=j[0]}break;case 2:if(h[1]==undefined){delete b.variables[h[0]]}else{b.setVar(h[0],j[1])}break;case 3:var s=b.toString(j[0]);if(s.indexOf("INFO: ")==0){s=s.substring(6)}if(s.indexOf("SUCCESS: ")==0){s=s.substring(9)}if(b.onConsole){b.onConsole(s,b)}else{console.log(s)}break;case 4:b.state=2;b.dialog=true;setDialogMode(11,j[0],j[2],b.xxStepDialogOk,j[1],b);break;case 5:for(var p in j[1]){if(j[1][p][j[2]]==j[3]){q=p}}break;case 6:q=j[1].substr(j[2],j[3]);break;case 7:q=j[1].indexOf(j[2]);break;case 8:q=j[1].split(j[2]);break;case 9:q=j[1].join(j[2]);break;case 10:if(j[1]==null){q=0}else{q=j[1].length}break;case 11:q=JSON.parse(j[1]);break;case 12:q=JSON.stringify(j[1]);break;case 13:q=(j[1]+j[2]);break;case 14:q=(j[1]-j[2]);break;case 15:q=parseInt(j[1]);break;case 16:b.state=2;b.amtstack.BatchEnum(j[0],j[1],b.xxWsmanReturn,b);break;case 17:b.state=2;b.amtstack.Put(j[0],j[1],b.xxWsmanReturn,b);break;case 18:b.state=2;b.amtstack.Create(j[0],j[1],b.xxWsmanReturn,b);break;case 19:b.state=2;b.amtstack.Delete(j[0],j[1],b.xxWsmanReturn,b);break;case 20:b.state=2;b.amtstack.Exec(j[0],j[1],j[2],b.xxWsmanReturn,b,0,j[3]);break;case 21:b.stepspeed=j[0];if(b.timer!=null){clearInterval(b.timer);b.timer=setInterval(function(){b.step()},b.stepspeed)}break;case 22:b.state=2;b.amtstack.Subscribe(j[0],j[1],j[2],b.xxWsmanReturn,b,0,j[3],j[4],j[5],j[6]);break;case 23:b.state=2;b.amtstack.UnSubscribe(j[0],b.xxWsmanReturn,b,0,j[1]);break;case 24:console.log(j[1],j[2],j[1].charCodeAt(j[2]));q=j[1].charCodeAt(j[2]);break;case 25:break;default:b.state=9;console.error("Script Error, unknown command: "+m)}}else{if(m<20000){q=script_functionTableX2[m-10000](j[1],j[2],j[3],j[4],j[5],j[6])}else{}}if(q!=undefined){b.setVar(h[0],q)}}catch(o){if(typeof o=="object"){o=o.message}b.setVar("_exception",o)}}if(b.state==1&&b.ip>=b.script.length){b.state=0;b.stop();if(b.onCompleted){b.onCompleted()}}if(b.onStep){b.onStep(b)}return b};b.xxStepDialogOk=function(d){b.variables.DialogSelect=d;b.state=1;b.dialog=false;if(b.onStep){b.onStep(b)}};b.xxWsmanReturn=function(f,d,e,g){b.setVar(d,e);b.setVar("wsman_result",g);b.setVar("wsman_result_str",((httpErrorTable[g])?(httpErrorTable[g]):("Error #"+g)));b.state=1;if(b.onStep){b.onStep(b)}};b.toString=function(d){if(typeof d=="object"){return JSON.stringify(d)}return d};b.reset();return b};module.exports.compile=function(o,l){var n="",q=o.split("\n"),h={},k=[],s=[];for(var d in q){var p=q[d];if(p.startsWith("##SWAP ")){var u=p.split(" ");if(u.length==3){s[u[1]]=u[2]}}if(p[0]=="#"||p.length==0){continue}for(var u in s){p=p.split(u).join(s[u])}var f=p.match(/"[^"]*"|[^\s"]+/g);if(f.length==0){continue}if(p[0]==":"){h[f[0].toUpperCase()]=n.length;continue}var c=script_functionTable1.indexOf(f[0].toLowerCase());if(c==-1){c=script_functionTable2.indexOf(f[0].toLowerCase());if(c>=0){c+=10000}}if(c==-1){if(l){l("Unabled to compile, unknown command: "+f[0])}return""}var b=ShortToStr(f.length-1);for(var e in f){if(e==0){continue}if(f[e][0]==":"){k.push([f[e],n.length+b.length+7]);b+=ShortToStr(5)+String.fromCharCode(3)+IntToStr(4294967295)}else{var a=parseInt(f[e]);if(a==f[e]){b+=ShortToStr(5)+String.fromCharCode(2)+IntToStr(a)}else{if(f[e][0]=='"'&&f[e][f[e].length-1]=='"'){b+=ShortToStr(f[e].length-1)+String.fromCharCode(1)+f[e].substring(1,f[e].length-1)}else{b+=ShortToStr(f[e].length+1)+String.fromCharCode(0)+f[e]}}}}b=ShortToStr(c)+ShortToStr(b.length+4)+b;n+=b}for(d in k){var g=k[d][0].toUpperCase(),m=k[d][1],t=h[g];if(t==undefined){if(l){l("Unabled to compile, unknown label: "+g)}return""}n=n.substr(0,m)+IntToStr(t)+n.substr(m+4)}return IntToStr(612182341)+ShortToStr(1)+n};module.exports.decompile=function(g,q){var t="",s=6,m=0,n={};if(q>=0){s=q}else{if(g.length<6){return"# Invalid script length"}var p=ReadInt(g,0);var w=ReadShort(g,4);if(p!=612182341){return"# Invalid binary script: "+p}if(w!=1){return"# Invalid script version"}}while(s=0)){t+=":label"+(s-6)+"\n"}for(var k=0;k=10000)&&(h<10000)){t+=script_functionTable2[h-10000]+d+"\n"}}s+=j;if(q>=0){return t}}var u=t.split("\n");t="";for(var k in u){var o=u[k];if(o[0]!=":"){t+=o+"\n"}else{if(n[o]){t+=o+"\n"}}}return t}; \ No newline at end of file diff --git a/agents/modules_meshcmd_min/amt-wsman-duk.min.js b/agents/modules_meshcmd_min/amt-wsman-duk.min.js new file mode 100644 index 00000000..b12434af --- /dev/null +++ b/agents/modules_meshcmd_min/amt-wsman-duk.min.js @@ -0,0 +1 @@ +function CreateWsmanComm(){var a={};a.PendingAjax=[];a.ActiveAjaxCount=0;a.MaxActiveAjaxCount=1;a.FailAllError=0;a.digest=null;a.RequestCount=0;if(arguments.length==1&&typeof(arguments[0]=="object")){a.host=arguments[0].host;a.port=arguments[0].port;a.authToken=arguments[0].authToken;a.tls=arguments[0].tls}else{a.host=arguments[0];a.port=arguments[1];a.user=arguments[2];a.pass=arguments[3];a.tls=arguments[4]}a.PerformAjax=function(d,c,f,e,g,b){if((a.ActiveAjaxCount==0||((a.ActiveAjaxCount=a.MaxActiveAjaxCount||a.PendingAjax.length==0){return}var b=a.PendingAjax.shift();a.PerformAjaxEx(b[0],b[1],b[2],b[3],b[4]);a.PerformNextAjax()};a.PerformAjaxEx=function(d,c,g,h,b){if(a.FailAllError!=0){if(a.FailAllError!=999){a.gotNextMessagesError({status:a.FailAllError},"error",null,[d,c,g])}return}if(!d){d=""}if(a.digest==null){if(a.authToken){a.digest=require("http-digest").create({authToken:a.authToken})}else{a.digest=require("http-digest").create(a.user,a.pass)}a.digest.http=require("http")}var f={protocol:(a.tls==1?"https:":"http:"),method:"POST",host:a.host,path:"/wsman",port:a.port,rejectUnauthorized:false,checkServerIdentity:function(i){console.log("checkServerIdentity",JSON.stringify(i))}};var e=a.digest.request(f);e.on("error",function(i){a.gotNextMessagesError({status:600},"error",null,[d,c,g])});e.on("response",function(i){if(i.statusCode!=200){a.gotNextMessagesError({status:i.statusCode},"error",null,[d,c,g])}else{i.acc="";i.on("data",function(j){this.acc+=j});i.on("end",function(){a.gotNextMessages(i.acc,"success",{status:i.statusCode},[d,c,g])})}});e.end(d);a.ActiveAjaxCount++;return e};a.pendingAjaxCall=[];a.gotNextMessages=function(c,e,d,b){a.ActiveAjaxCount--;if(a.FailAllError==999){return}if(a.FailAllError!=0){b[1](null,a.FailAllError,b[2]);return}if(d.status!=200){b[1](null,d.status,b[2]);return}b[1](c,200,b[2]);a.PerformNextAjax()};a.gotNextMessagesError=function(d,e,c,b){a.ActiveAjaxCount--;if(a.FailAllError==999){return}if(a.FailAllError!=0){b[1](null,a.FailAllError,b[2]);return}if(a.FailAllError!=999){b[1]({Header:{HttpError:d.status}},d.status,b[2])}a.PerformNextAjax()};a.CancelAllQueries=function(b){while(a.PendingAjax.length>0){var c=a.PendingAjax.shift();c[1](null,b,c[2])}};return a}module.exports=CreateWsmanComm; \ No newline at end of file diff --git a/agents/modules_meshcmd_min/amt-wsman.min.js b/agents/modules_meshcmd_min/amt-wsman.min.js new file mode 100644 index 00000000..5508d86f --- /dev/null +++ b/agents/modules_meshcmd_min/amt-wsman.min.js @@ -0,0 +1 @@ +function WsmanStackCreateService(){var p={_ObjectID:"WSMAN"};p.NextMessageId=1;p.Address="/wsman";p.xmlParser=require("amt-xml");if(arguments.length==1&&typeof(arguments[0]=="object")){var e=arguments[0].transport;if(e){p.comm=new e(arguments[0])}}else{var e=arguments[0];if(e){p.comm=new e(arguments[1],arguments[2],arguments[3],arguments[4],arguments[5],arguments[6])}}p.PerformAjax=function q(t,r,v,u,s){if(s==null){s=""}p.comm.PerformAjax('

"+t,function(w,x,y){if(x!=200){r(p,null,{Header:{HttpError:x}},x,y);return}var z=p.xmlParser.ParseWsman(w);if(!z||z==null){r(p,null,{Header:{HttpError:x}},601,y)}else{r(p,z.Header.ResourceURI,z,200,y)}},v,u)};p.CancelAllQueries=function d(r){p.comm.CancelAllQueries(r)};p.GetNameFromUrl=function(r){var s=r.lastIndexOf("/");return(s==-1)?r:r.substring(s+1)};p.ExecSubscribe=function n(z,t,C,r,B,y,A,w,D,x){var u="",v="",w="";if(D!=null&&x!=null){u='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken'+D+''+x+"";v=''}if(w!=null){w=""+w+""}if(t=="PushWithAck"){t="dmtf.org/wbem/wsman/1/wsman/PushWithAck"}else{if(t=="Push"){t="xmlsoap.org/ws/2004/08/eventing/DeliveryModes/Push"}}var s="http://schemas.xmlsoap.org/ws/2004/08/eventing/Subscribe"+p.Address+""+z+""+(p.NextMessageId++)+"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous"+c(A)+u+'
'+C+""+w+""+v+"";p.PerformAjax(s+"",r,B,y,'xmlns:e="http://schemas.xmlsoap.org/ws/2004/08/eventing" xmlns:m="http://x.com"')};p.ExecUnSubscribe=function o(u,r,w,t,v){var s="http://schemas.xmlsoap.org/ws/2004/08/eventing/Unsubscribe"+p.Address+""+u+""+(p.NextMessageId++)+"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous"+c(v)+"";p.PerformAjax(s+"",r,w,t,'xmlns:e="http://schemas.xmlsoap.org/ws/2004/08/eventing"')};p.ExecPut=function m(v,u,r,x,t,w){var s="http://schemas.xmlsoap.org/ws/2004/09/transfer/Put"+p.Address+""+v+""+(p.NextMessageId++)+"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60.000S"+c(w)+""+b(v,u);p.PerformAjax(s+"",r,x,t)};p.ExecCreate=function f(x,w,r,z,v,y){var u=p.GetNameFromUrl(x);var s="http://schemas.xmlsoap.org/ws/2004/09/transfer/Create"+p.Address+""+x+""+(p.NextMessageId++)+"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S"+c(y)+"';for(var t in w){s+=""+w[t]+""}p.PerformAjax(s+"",r,z,v)};p.ExecDelete=function g(v,u,r,w,t){var s="http://schemas.xmlsoap.org/ws/2004/09/transfer/Delete"+p.Address+""+v+""+(p.NextMessageId++)+"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S"+c(u)+"";p.PerformAjax(s,r,w,t)};p.ExecGet=function i(t,r,u,s){p.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/transfer/Get"+p.Address+""+t+""+(p.NextMessageId++)+"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S",r,u,s)};p.ExecMethod=function j(y,v,r,t,A,w,z){var s="";for(var u in r){if(r[u]!=null){if(Array.isArray(r[u])){for(var B in r[u]){s+=""+r[u][B]+""}}else{s+=""+r[u]+""}}}p.ExecMethodXml(y,v,s,t,A,w,z)};p.ExecMethodXml=function k(v,t,r,s,x,u,w){p.PerformAjax(v+"/"+t+""+p.Address+""+v+""+(p.NextMessageId++)+"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S"+c(w)+"'+r+"",s,x,u)};p.ExecEnum=function h(t,r,u,s){p.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/enumeration/Enumerate"+p.Address+""+t+""+(p.NextMessageId++)+'http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S',r,u,s)};p.ExecPull=function l(u,s,r,v,t){p.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/enumeration/Pull"+p.Address+""+u+""+(p.NextMessageId++)+'http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S'+s+"99999999",r,v,t)};function b(w,u){if(!w||u==null){return""}var s=p.GetNameFromUrl(w);var v="';for(var t in u){if(!u.hasOwnProperty(t)||t.indexOf("__")===0||t.indexOf("@")===0){continue}if(u[t]==null||typeof u[t]==="function"){continue}if(typeof u[t]==="object"&&u[t]["ReferenceParameters"]){v+=""+u[t].Address+""+u[t]["ReferenceParameters"]["ResourceURI"]+"";var x=u[t]["ReferenceParameters"]["SelectorSet"]["Selector"];if(Array.isArray(x)){for(var r=0;r"+x[r]["Value"]+""}}else{v+=""+x.Value+""}v+=""}else{if(Array.isArray(u[t])){for(var r=0;r"+u[t][r].toString()+""}}else{v+=""+u[t].toString()+""}}}v+="";return v}function a(r){if(!r){return""}var t=" ";for(var s in r){if(!r.hasOwnProperty(s)||s.indexOf("@")!==0){continue}t+=s.substring(1)+'="'+r[s]+'" '}return t}function c(v){if(!v){return""}if(typeof v=="string"){return v}if(v.InstanceID){return''+v.InstanceID+""}var t="";for(var s in v){if(!v.hasOwnProperty(s)){continue}t+='';if(v[s]["ReferenceParameters"]){t+="";t+=""+v[s]["Address"]+""+v[s]["ReferenceParameters"]["ResourceURI"]+"";var u=v[s]["ReferenceParameters"]["SelectorSet"]["Selector"];if(Array.isArray(u)){for(var r=0;r"+u[r]["Value"]+""}}else{t+=""+u.Value+""}t+=""}else{t+=v[s]}t+=""}t+="";return t}return p}module.exports=WsmanStackCreateService; \ No newline at end of file diff --git a/agents/modules_meshcmd_min/amt-xml.min.js b/agents/modules_meshcmd_min/amt-xml.min.js new file mode 100644 index 00000000..821a1dd7 --- /dev/null +++ b/agents/modules_meshcmd_min/amt-xml.min.js @@ -0,0 +1 @@ +try{Object.defineProperty(Array.prototype,"peek",{value:function(){return(this.length>0?this[this.length-1]:undefined)}})}catch(e){}module.exports.ParseWsman=function(j){try{if(!j.childNodes){j=_turnToXml(j)}var g={Header:{}},d=j.getElementsByTagName("Header")[0],h;if(!d){d=j.getElementsByTagName("a:Header")[0]}if(!d){return null}for(var f=0;f0){h=a.childNodes[0].localName;if(h.indexOf("_OUTPUT")==h.length-7){h=h.substring(0,h.length-7)}g.Header.Method=h;g.Body=_ParseWsmanRec(a.childNodes[0])}return g}catch(c){console.error("Unable to parse XML: "+j,c);return null}};function _ParseWsmanRec(g){var c,h={};for(var d=0;d0)){b={Value:c};for(var f=0;f';for(var c in d){if(!d.hasOwnProperty(c)||c.indexOf("__")===0||c.indexOf("@")===0){continue}if(d[c]==null||typeof d[c]==="function"){continue}if(typeof d[c]==="object"&&d[c]["ReferenceParameters"]){f+=""+d[c].Address+""+d[c]["ReferenceParameters"]["ResourceURI"]+"";var h=d[c]["ReferenceParameters"]["SelectorSet"]["Selector"];if(Array.isArray(h)){for(var a=0;a"+h[a]["Value"]+""}}else{f+=""+h.Value+""}f+=""}else{if(Array.isArray(d[c])){for(var a=0;a"+d[c][a].toString()+""}}else{f+=""+d[c].toString()+""}}}f+="";return f}function _treeBuilder(){this.tree=[];this.push=function(a){this.tree.push(a)};this.pop=function(){var a=this.tree.pop();if(this.tree.length>0){var b=this.tree.peek();b.childNodes.push(a);b.childElementCount=b.childNodes.length}return(a)};this.peek=function(){return(this.tree.peek())};this.addNamespace=function(g,d){this.tree.peek().nsTable[g]=d;if(this.tree.peek().attributes.length>0){for(var c=0;c=0;--a){if(this.tree[a].nsTable[b]!=null){return(this.tree[a].nsTable[b])}}return null}}function _turnToXml(a){if(a==null){return null}return({childNodes:[_turnToXmlRec(a)],getElementsByTagName:_getElementsByTagName,getChildElementsByTagName:_getChildElementsByTagName,getElementsByTagNameNS:_getElementsByTagNameNS})}function _getElementsByTagNameNS(b,a){var c=[];_xmlTraverseAllRec(this.childNodes,function(d){if(d.localName==a&&(d.namespace==b||b=="*")){c.push(d)}});return c}function _getElementsByTagName(a){var b=[];_xmlTraverseAllRec(this.childNodes,function(c){if(c.localName==a){b.push(c)}});return b}function _getChildElementsByTagName(a){var c=[];if(this.childNodes!=null){for(var b in this.childNodes){if(this.childNodes[b].localName==a){c.push(this.childNodes[b])}}}return(c)}function _getChildElementsByTagNameNS(c,a){var d=[];if(this.childNodes!=null){for(var b in this.childNodes){if(this.childNodes[b].localName==a&&(c=="*"||this.childNodes[b].namespace==c)){d.push(this.childNodes[b])}}}return(d)}function _xmlTraverseAllRec(c,a){for(var b in c){a(c[b]);if(c[b].childNodes){_xmlTraverseAllRec(c[b].childNodes,a)}}}function _turnToXmlRec(v){var m=new _treeBuilder(),q=null,y=v.split("<"),t=[],h=null,g=null;for(var n in y){var z=y[n].split(">"),A=z[0].split(" "),l=A[0];if((l.length>0)&&(l[0]!="?")){if(l[0]!="/"){var a=[],r,s=l.split(" ")[0].split(":"),r=(s.length>1)?s[1]:s[0];Object.defineProperty(a,"get",{value:function(){if(arguments.length==1){for(var i in this){if(this[i].name==arguments[0]){return(this[i])}}}else{if(arguments.length==2){for(var i in this){if(this[i].name==arguments[1]&&(arguments[0]=="*"||this[i].namespace==arguments[0])){return(this[i])}}}else{throw ("attributes.get(): Invalid number of parameters")}}}});m.push({name:l,localName:r,getChildElementsByTagName:_getChildElementsByTagName,getElementsByTagNameNS:_getElementsByTagNameNS,getChildElementsByTagNameNS:_getChildElementsByTagNameNS,attributes:a,childNodes:[],nsTable:{}});if(A.length>0){var u=false;for(var o in A){if(A[o]=="/"){m.peek().namespace=m.peek().name==m.peek().localName?m.getNamespace("*"):m.getNamespace(m.peek().name.substring(0,m.peek().name.indexOf(":")));m.peek().textContent="";q=m.pop();u=true;break}var p=A[o].indexOf("=");if(p>0){var b=A[o].substring(0,p);var d=A[o].substring(p+2,A[o].length-1);var c=m.getNamespace("*");if(b=="xmlns"){m.addNamespace("*",d);c=d}else{if(b.startsWith("xmlns:")){m.addNamespace(b.substring(6),d)}else{var f=b.split(":");if(f.length==2){b=f[1];c=m.getNamespace(f[0])}}}var w={name:b,value:d};if(c!=null){w.namespace=c}m.peek().attributes.push(w)}}if(u){continue}}m.peek().namespace=m.peek().name==m.peek().localName?m.getNamespace("*"):m.getNamespace(m.peek().name.substring(0,m.peek().name.indexOf(":")));if(z[1]){m.peek().textContent=z[1]}}else{q=m.pop()}}}return q}; \ No newline at end of file diff --git a/agents/modules_meshcmd_min/amt.min.js b/agents/modules_meshcmd_min/amt.min.js new file mode 100644 index 00000000..eaf2d73a --- /dev/null +++ b/agents/modules_meshcmd_min/amt.min.js @@ -0,0 +1 @@ +function AmtStackCreateService(R){var J=new Object();J._ObjectID="AMT";J.wsman=R;J.pfx=["http://intel.com/wbem/wscim/1/amt-schema/1/","http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/","http://intel.com/wbem/wscim/1/ips-schema/1/"];J.PendingEnums=[];J.PendingBatchOperations=0;J.ActiveEnumsCount=0;J.MaxActiveEnumsCount=1;J.onProcessChanged=null;var n=0;var m=0;J.GetPendingActions=function(){return(J.PendingEnums.length*2)+(J.ActiveEnumsCount)+J.wsman.comm.PendingAjax.length+J.wsman.comm.ActiveAjaxCount+J.PendingBatchOperations};function r(){var S=J.GetPendingActions();if(n=J.MaxActiveEnumsCount||J.PendingEnums.length==0){return}var T=J.PendingEnums.shift();J.Enum(T[0],T[1],T[2]);d(0)}J.BatchEnum=function(S,V,T,X,U,W){J.PendingBatchOperations+=(V.length*2);b(S,x(V),T,X,{},U,W);r()};function x(S){return JSON.parse(JSON.stringify(S))}function b(S,X,T,aa,Z,U,Y){J.PendingBatchOperations-=2;var W=X.shift(),V=J.Enum;if(W[0]=="*"){V=J.Get;W=W.substring(1)}V(W,function(ad,ab,ac,ae,af){af[2][ab]={response:(ac==null?null:ac.Body),responses:ac,status:ae};if(af[1].length==0||ae==401||(U!=true&&ae!=200&&ae!=400)){J.PendingBatchOperations-=(X.length*2);r();T.call(J,J,S,af[2],ae,aa)}else{r();b(S,X,T,aa,af[2],Y)}},[S,X,Z],Y);r()}J.BatchGet=function(S,U,T,W,V){h({name:S,names:U,callback:T,current:0,responses:{},tag:W,pri:V});r()};function h(S){if(S.names.length<=S.current){S.callback.call(J,J,S.name,S.responses,200,S.tag)}else{J.wsman.ExecGet(J.CompleteName(S.names[S.current]),function(V,U,T,W){g(S,T,W)},S.pri);S.current++}r()}function g(S,T,U){if(T==null||U!=200){S.callback.call(J,J,S.name,null,U,S.tag)}else{S.responses[T.Header.Method]=T;h(S)}}J.CompleteName=function(S){if(S.indexOf("AMT_")==0){return J.pfx[0]+S}if(S.indexOf("CIM_")==0){return J.pfx[1]+S}if(S.indexOf("IPS_")==0){return J.pfx[2]+S}};J.CompleteExecResponse=function(S){if(S&&S!=null&&S.Body&&(S.Body.ReturnValue!=undefined)){S.Body.ReturnValueStr=J.AmtStatusToStr(S.Body.ReturnValue)}return S};J.RequestPowerStateChange=function(T,S){J.CIM_PowerManagementService_RequestPowerStateChange(T,'
http://schemas.xmlsoap.org/ws/2004/08/addressing
http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ComputerSystemCIM_ComputerSystemManagedSystem',null,null,S)};J.SetBootConfigRole=function(T,S){J.CIM_BootService_SetBootConfigRole('
http://schemas.xmlsoap.org/ws/2004/08/addressing
http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_BootConfigSettingIntel(r) AMT: Boot Configuration 0',T,S)};J.CancelAllQueries=function(S){J.wsman.CancelAllQueries(S)};J.AMT_AgentPresenceWatchdog_RegisterAgent=function(S,V,T,U){J.Exec("AMT_AgentPresenceWatchdog","RegisterAgent",{},S,V,T,U)};J.AMT_AgentPresenceWatchdog_AssertPresence=function(V,S,W,T,U){J.Exec("AMT_AgentPresenceWatchdog","AssertPresence",{SequenceNumber:V},S,W,T,U)};J.AMT_AgentPresenceWatchdog_AssertShutdown=function(V,S,W,T,U){J.Exec("AMT_AgentPresenceWatchdog","AssertShutdown",{SequenceNumber:V},S,W,T,U)};J.AMT_AgentPresenceWatchdog_AddAction=function(X,W,V,T,S,U,aa,Y,Z){J.Exec("AMT_AgentPresenceWatchdog","AddAction",{OldState:X,NewState:W,EventOnTransition:V,ActionSd:T,ActionEac:S},U,aa,Y,Z)};J.AMT_AgentPresenceWatchdog_DeleteAllActions=function(S,V,T,U){J.Exec("AMT_AgentPresenceWatchdog","DeleteAllActions",{},S,V,T,U)};J.AMT_AgentPresenceWatchdogAction_GetActionEac=function(S){J.Exec("AMT_AgentPresenceWatchdogAction","GetActionEac",{},S)};J.AMT_AgentPresenceWatchdogVA_RegisterAgent=function(S){J.Exec("AMT_AgentPresenceWatchdogVA","RegisterAgent",{},S)};J.AMT_AgentPresenceWatchdogVA_AssertPresence=function(T,S){J.Exec("AMT_AgentPresenceWatchdogVA","AssertPresence",{SequenceNumber:T},S)};J.AMT_AgentPresenceWatchdogVA_AssertShutdown=function(T,S){J.Exec("AMT_AgentPresenceWatchdogVA","AssertShutdown",{SequenceNumber:T},S)};J.AMT_AgentPresenceWatchdogVA_AddAction=function(X,W,V,T,S,U){J.Exec("AMT_AgentPresenceWatchdogVA","AddAction",{OldState:X,NewState:W,EventOnTransition:V,ActionSd:T,ActionEac:S},U)};J.AMT_AgentPresenceWatchdogVA_DeleteAllActions=function(S,T){J.Exec("AMT_AgentPresenceWatchdogVA","DeleteAllActions",{_method_dummy:S},T)};J.AMT_AlarmClockService_AddAlarm=function s(S,T){var V=S.InstanceID;var X=S.ElementName;var Y=S.StartTime.Datetime;var W=S.Interval?S.Interval.Datetime:undefined;var U=S.DeleteOnCompletion;var Z=''+V+""+X+''+Y+""+((W!=undefined)?(''+W+""):"")+""+U+"";J.wsman.ExecMethodXml(J.CompleteName("AMT_AlarmClockService"),"AddAlarm",Z,T)};J.AMT_AuditLog_ClearLog=function(S){J.Exec("AMT_AuditLog","ClearLog",{},S)};J.AMT_AuditLog_RequestStateChange=function(T,U,S){J.Exec("AMT_AuditLog","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.AMT_AuditLog_ReadRecords=function(T,S,U){J.Exec("AMT_AuditLog","ReadRecords",{StartIndex:T},S,U)};J.AMT_AuditLog_SetAuditLock=function(V,T,U,S){J.Exec("AMT_AuditLog","SetAuditLock",{LockTimeoutInSeconds:V,Flag:T,Handle:U},S)};J.AMT_AuditLog_ExportAuditLogSignature=function(T,S){J.Exec("AMT_AuditLog","ExportAuditLogSignature",{SigningMechanism:T},S)};J.AMT_AuditLog_SetSigningKeyMaterial=function(W,V,U,T,S){J.Exec("AMT_AuditLog","SetSigningKeyMaterial",{SigningMechanismType:W,SigningKey:V,LengthOfCertificates:U,Certificates:T},S)};J.AMT_AuditPolicyRule_SetAuditPolicy=function(U,S,V,W,T){J.Exec("AMT_AuditPolicyRule","SetAuditPolicy",{Enable:U,AuditedAppID:S,EventID:V,PolicyType:W},T)};J.AMT_AuditPolicyRule_SetAuditPolicyBulk=function(U,S,V,W,T){J.Exec("AMT_AuditPolicyRule","SetAuditPolicyBulk",{Enable:U,AuditedAppID:S,EventID:V,PolicyType:W},T)};J.AMT_AuthorizationService_AddUserAclEntryEx=function(V,U,W,S,X,T){J.Exec("AMT_AuthorizationService","AddUserAclEntryEx",{DigestUsername:V,DigestPassword:U,KerberosUserSid:W,AccessPermission:S,Realms:X},T)};J.AMT_AuthorizationService_EnumerateUserAclEntries=function(T,S){J.Exec("AMT_AuthorizationService","EnumerateUserAclEntries",{StartIndex:T},S)};J.AMT_AuthorizationService_GetUserAclEntryEx=function(T,S,U){J.Exec("AMT_AuthorizationService","GetUserAclEntryEx",{Handle:T},S,U)};J.AMT_AuthorizationService_UpdateUserAclEntryEx=function(W,V,U,X,S,Y,T){J.Exec("AMT_AuthorizationService","UpdateUserAclEntryEx",{Handle:W,DigestUsername:V,DigestPassword:U,KerberosUserSid:X,AccessPermission:S,Realms:Y},T)};J.AMT_AuthorizationService_RemoveUserAclEntry=function(T,S){J.Exec("AMT_AuthorizationService","RemoveUserAclEntry",{Handle:T},S)};J.AMT_AuthorizationService_SetAdminAclEntryEx=function(U,T,S){J.Exec("AMT_AuthorizationService","SetAdminAclEntryEx",{Username:U,DigestPassword:T},S)};J.AMT_AuthorizationService_GetAdminAclEntry=function(S){J.Exec("AMT_AuthorizationService","GetAdminAclEntry",{},S)};J.AMT_AuthorizationService_GetAdminAclEntryStatus=function(S){J.Exec("AMT_AuthorizationService","GetAdminAclEntryStatus",{},S)};J.AMT_AuthorizationService_GetAdminNetAclEntryStatus=function(S){J.Exec("AMT_AuthorizationService","GetAdminNetAclEntryStatus",{},S)};J.AMT_AuthorizationService_SetAclEnabledState=function(U,T,S,V){J.Exec("AMT_AuthorizationService","SetAclEnabledState",{Handle:U,Enabled:T},S,V)};J.AMT_AuthorizationService_GetAclEnabledState=function(T,S,U){J.Exec("AMT_AuthorizationService","GetAclEnabledState",{Handle:T},S,U)};J.AMT_EndpointAccessControlService_RequestStateChange=function(T,U,S){J.Exec("AMT_EndpointAccessControlService","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.AMT_EndpointAccessControlService_GetPosture=function(T,S){J.Exec("AMT_EndpointAccessControlService","GetPosture",{PostureType:T},S)};J.AMT_EndpointAccessControlService_GetPostureHash=function(T,S){J.Exec("AMT_EndpointAccessControlService","GetPostureHash",{PostureType:T},S)};J.AMT_EndpointAccessControlService_UpdatePostureState=function(T,S){J.Exec("AMT_EndpointAccessControlService","UpdatePostureState",{UpdateType:T},S)};J.AMT_EndpointAccessControlService_GetEacOptions=function(S){J.Exec("AMT_EndpointAccessControlService","GetEacOptions",{},S)};J.AMT_EndpointAccessControlService_SetEacOptions=function(T,U,S){J.Exec("AMT_EndpointAccessControlService","SetEacOptions",{EacVendors:T,PostureHashAlgorithm:U},S)};J.AMT_EnvironmentDetectionSettingData_SetSystemDefensePolicy=function(T,S){J.Exec("AMT_EnvironmentDetectionSettingData","SetSystemDefensePolicy",{Policy:T},S)};J.AMT_EnvironmentDetectionSettingData_EnableVpnRouting=function(T,S){J.Exec("AMT_EnvironmentDetectionSettingData","EnableVpnRouting",{Enable:T},S)};J.AMT_EthernetPortSettings_SetLinkPreference=function(T,U,S){J.Exec("AMT_EthernetPortSettings","SetLinkPreference",{LinkPreference:T,Timeout:U},S)};J.AMT_HeuristicPacketFilterStatistics_ResetSelectedStats=function(T,S){J.Exec("AMT_HeuristicPacketFilterStatistics","ResetSelectedStats",{SelectedStatistics:T},S)};J.AMT_KerberosSettingData_GetCredentialCacheState=function(S){J.Exec("AMT_KerberosSettingData","GetCredentialCacheState",{},S)};J.AMT_KerberosSettingData_SetCredentialCacheState=function(T,S){J.Exec("AMT_KerberosSettingData","SetCredentialCacheState",{Enable:T},S)};J.AMT_MessageLog_CancelIteration=function(T,S){J.Exec("AMT_MessageLog","CancelIteration",{IterationIdentifier:T},S)};J.AMT_MessageLog_RequestStateChange=function(T,U,S){J.Exec("AMT_MessageLog","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.AMT_MessageLog_ClearLog=function(S){J.Exec("AMT_MessageLog","ClearLog",{},S)};J.AMT_MessageLog_GetRecords=function(T,U,S,V){J.Exec("AMT_MessageLog","GetRecords",{IterationIdentifier:T,MaxReadRecords:U},S,V)};J.AMT_MessageLog_GetRecord=function(T,U,S){J.Exec("AMT_MessageLog","GetRecord",{IterationIdentifier:T,PositionToNext:U},S)};J.AMT_MessageLog_PositionAtRecord=function(T,U,V,S){J.Exec("AMT_MessageLog","PositionAtRecord",{IterationIdentifier:T,MoveAbsolute:U,RecordNumber:V},S)};J.AMT_MessageLog_PositionToFirstRecord=function(S,T){J.Exec("AMT_MessageLog","PositionToFirstRecord",{},S,T)};J.AMT_MessageLog_FreezeLog=function(T,S){J.Exec("AMT_MessageLog","FreezeLog",{Freeze:T},S)};J.AMT_PublicKeyManagementService_AddCRL=function(U,T,S){J.Exec("AMT_PublicKeyManagementService","AddCRL",{Url:U,SerialNumbers:T},S)};J.AMT_PublicKeyManagementService_ResetCRLList=function(S,T){J.Exec("AMT_PublicKeyManagementService","ResetCRLList",{_method_dummy:S},T)};J.AMT_PublicKeyManagementService_AddCertificate=function(T,S,U){J.Exec("AMT_PublicKeyManagementService","AddCertificate",{CertificateBlob:T},S,U)};J.AMT_PublicKeyManagementService_AddTrustedRootCertificate=function(T,S){J.Exec("AMT_PublicKeyManagementService","AddTrustedRootCertificate",{CertificateBlob:T},S)};J.AMT_PublicKeyManagementService_AddKey=function(T,S){J.Exec("AMT_PublicKeyManagementService","AddKey",{KeyBlob:T},S)};J.AMT_PublicKeyManagementService_GeneratePKCS10Request=function(U,T,V,S){J.Exec("AMT_PublicKeyManagementService","GeneratePKCS10Request",{KeyPair:U,DNName:T,Usage:V},S)};J.AMT_PublicKeyManagementService_GeneratePKCS10RequestEx=function(T,V,U,S){J.Exec("AMT_PublicKeyManagementService","GeneratePKCS10RequestEx",{KeyPair:T,SigningAlgorithm:V,NullSignedCertificateRequest:U},S)};J.AMT_PublicKeyManagementService_GenerateKeyPair=function(T,U,S){J.Exec("AMT_PublicKeyManagementService","GenerateKeyPair",{KeyAlgorithm:T,KeyLength:U},S)};J.AMT_RedirectionService_RequestStateChange=function(T,S){J.Exec("AMT_RedirectionService","RequestStateChange",{RequestedState:T},S)};J.AMT_RedirectionService_TerminateSession=function(T,S){J.Exec("AMT_RedirectionService","TerminateSession",{SessionType:T},S)};J.AMT_RemoteAccessService_AddMpServer=function(S,X,Z,T,V,aa,Y,W,U){J.Exec("AMT_RemoteAccessService","AddMpServer",{AccessInfo:S,InfoFormat:X,Port:Z,AuthMethod:T,Certificate:V,Username:aa,Password:Y,CN:W},U)};J.AMT_RemoteAccessService_AddRemoteAccessPolicyRule=function(V,W,T,U,S){J.Exec("AMT_RemoteAccessService","AddRemoteAccessPolicyRule",{Trigger:V,TunnelLifeTime:W,ExtendedData:T,MpServer:U},S)};J.AMT_RemoteAccessService_CloseRemoteAccessConnection=function(S,T){J.Exec("AMT_RemoteAccessService","CloseRemoteAccessConnection",{_method_dummy:S},T)};J.AMT_SetupAndConfigurationService_CommitChanges=function(S,T,U){J.Exec("AMT_SetupAndConfigurationService","CommitChanges",{_method_dummy:S},T,U)};J.AMT_SetupAndConfigurationService_Unprovision=function(T,S){J.Exec("AMT_SetupAndConfigurationService","Unprovision",{ProvisioningMode:T},S)};J.AMT_SetupAndConfigurationService_PartialUnprovision=function(S,T){J.Exec("AMT_SetupAndConfigurationService","PartialUnprovision",{_method_dummy:S},T)};J.AMT_SetupAndConfigurationService_ResetFlashWearOutProtection=function(S,T){J.Exec("AMT_SetupAndConfigurationService","ResetFlashWearOutProtection",{_method_dummy:S},T)};J.AMT_SetupAndConfigurationService_ExtendProvisioningPeriod=function(T,S){J.Exec("AMT_SetupAndConfigurationService","ExtendProvisioningPeriod",{Duration:T},S)};J.AMT_SetupAndConfigurationService_SetMEBxPassword=function(T,S){J.Exec("AMT_SetupAndConfigurationService","SetMEBxPassword",{Password:T},S)};J.AMT_SetupAndConfigurationService_SetTLSPSK=function(T,U,S){J.Exec("AMT_SetupAndConfigurationService","SetTLSPSK",{PID:T,PPS:U},S)};J.AMT_SetupAndConfigurationService_GetProvisioningAuditRecord=function(S){J.Exec("AMT_SetupAndConfigurationService","GetProvisioningAuditRecord",{},S)};J.AMT_SetupAndConfigurationService_GetUuid=function(S){J.Exec("AMT_SetupAndConfigurationService","GetUuid",{},S)};J.AMT_SetupAndConfigurationService_GetUnprovisionBlockingComponents=function(S){J.Exec("AMT_SetupAndConfigurationService","GetUnprovisionBlockingComponents",{},S)};J.AMT_SetupAndConfigurationService_GetProvisioningAuditRecordV2=function(S){J.Exec("AMT_SetupAndConfigurationService","GetProvisioningAuditRecordV2",{},S)};J.AMT_SystemDefensePolicy_GetTimeout=function(S){J.Exec("AMT_SystemDefensePolicy","GetTimeout",{},S)};J.AMT_SystemDefensePolicy_SetTimeout=function(T,S){J.Exec("AMT_SystemDefensePolicy","SetTimeout",{Timeout:T},S)};J.AMT_SystemDefensePolicy_UpdateStatistics=function(T,V,S,X,U,W){J.Exec("AMT_SystemDefensePolicy","UpdateStatistics",{NetworkInterface:T,ResetOnRead:V},S,X,U,W)};J.AMT_SystemPowerScheme_SetPowerScheme=function(S,T,U){J.Exec("AMT_SystemPowerScheme","SetPowerScheme",{},S,U,0,{InstanceID:T})};J.AMT_TimeSynchronizationService_GetLowAccuracyTimeSynch=function(S,T){J.Exec("AMT_TimeSynchronizationService","GetLowAccuracyTimeSynch",{},S,T)};J.AMT_TimeSynchronizationService_SetHighAccuracyTimeSynch=function(T,V,W,S,U){J.Exec("AMT_TimeSynchronizationService","SetHighAccuracyTimeSynch",{Ta0:T,Tm1:V,Tm2:W},S,U)};J.AMT_TLSCredentialContext_Create=function t(T,U,S,V){J.Create("AMT_TLSCredentialContext",{ElementInContext:T,ElementProvidingContext:U},S,V)};J.AMT_UserInitiatedConnectionService_RequestStateChange=function(T,U,S){J.Exec("AMT_UserInitiatedConnectionService","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.AMT_WebUIService_RequestStateChange=function(T,V,S,U){J.Exec("AMT_WebUIService","RequestStateChange",{RequestedState:T,TimeoutPeriod:V},S,U)};J.AMT_WiFiPortConfigurationService_AddWiFiSettings=function(W,X,V,U,S,T){J.ExecWithXml("AMT_WiFiPortConfigurationService","AddWiFiSettings",{WiFiEndpoint:W,WiFiEndpointSettingsInput:X,IEEE8021xSettingsInput:V,ClientCredential:U,CACredential:S},T)};J.AMT_WiFiPortConfigurationService_UpdateWiFiSettings=function(W,X,V,U,S,T){J.ExecWithXml("AMT_WiFiPortConfigurationService","UpdateWiFiSettings",{WiFiEndpointSettings:W,WiFiEndpointSettingsInput:X,IEEE8021xSettingsInput:V,ClientCredential:U,CACredential:S},T)};J.AMT_WiFiPortConfigurationService_DeleteAllITProfiles=function(S,T){J.Exec("AMT_WiFiPortConfigurationService","DeleteAllITProfiles",{_method_dummy:S},T)};J.AMT_WiFiPortConfigurationService_DeleteAllUserProfiles=function(S,T){J.Exec("AMT_WiFiPortConfigurationService","DeleteAllUserProfiles",{_method_dummy:S},T)};J.CIM_Account_RequestStateChange=function(T,U,S){J.Exec("CIM_Account","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.CIM_AccountManagementService_CreateAccount=function(U,S,T){J.Exec("CIM_AccountManagementService","CreateAccount",{System:U,AccountTemplate:S},T)};J.CIM_BootConfigSetting_ChangeBootOrder=function(T,S){J.Exec("CIM_BootConfigSetting","ChangeBootOrder",{Source:T},S)};J.CIM_BootService_SetBootConfigRole=function(S,U,T){J.Exec("CIM_BootService","SetBootConfigRole",{BootConfigSetting:S,Role:U},T,0,1)};J.CIM_Card_ConnectorPower=function(T,U,S){J.Exec("CIM_Card","ConnectorPower",{Connector:T,PoweredOn:U},S)};J.CIM_Card_IsCompatible=function(T,S){J.Exec("CIM_Card","IsCompatible",{ElementToCheck:T},S)};J.CIM_Chassis_IsCompatible=function(T,S){J.Exec("CIM_Chassis","IsCompatible",{ElementToCheck:T},S)};J.CIM_Fan_SetSpeed=function(T,S){J.Exec("CIM_Fan","SetSpeed",{DesiredSpeed:T},S)};J.CIM_KVMRedirectionSAP_RequestStateChange=function(T,U,S){J.Exec("CIM_KVMRedirectionSAP","RequestStateChange",{RequestedState:T},S)};J.CIM_MediaAccessDevice_LockMedia=function(T,S){J.Exec("CIM_MediaAccessDevice","LockMedia",{Lock:T},S)};J.CIM_MediaAccessDevice_SetPowerState=function(T,U,S){J.Exec("CIM_MediaAccessDevice","SetPowerState",{PowerState:T,Time:U},S)};J.CIM_MediaAccessDevice_Reset=function(S){J.Exec("CIM_MediaAccessDevice","Reset",{},S)};J.CIM_MediaAccessDevice_EnableDevice=function(T,S){J.Exec("CIM_MediaAccessDevice","EnableDevice",{Enabled:T},S)};J.CIM_MediaAccessDevice_OnlineDevice=function(T,S){J.Exec("CIM_MediaAccessDevice","OnlineDevice",{Online:T},S)};J.CIM_MediaAccessDevice_QuiesceDevice=function(T,S){J.Exec("CIM_MediaAccessDevice","QuiesceDevice",{Quiesce:T},S)};J.CIM_MediaAccessDevice_SaveProperties=function(S){J.Exec("CIM_MediaAccessDevice","SaveProperties",{},S)};J.CIM_MediaAccessDevice_RestoreProperties=function(S){J.Exec("CIM_MediaAccessDevice","RestoreProperties",{},S)};J.CIM_MediaAccessDevice_RequestStateChange=function(T,U,S){J.Exec("CIM_MediaAccessDevice","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.CIM_PhysicalFrame_IsCompatible=function(T,S){J.Exec("CIM_PhysicalFrame","IsCompatible",{ElementToCheck:T},S)};J.CIM_PhysicalPackage_IsCompatible=function(T,S){J.Exec("CIM_PhysicalPackage","IsCompatible",{ElementToCheck:T},S)};J.CIM_PowerManagementService_RequestPowerStateChange=function(U,T,V,W,S){J.Exec("CIM_PowerManagementService","RequestPowerStateChange",{PowerState:U,ManagedElement:T,Time:V,TimeoutPeriod:W},S,0,1)};J.CIM_PowerSupply_SetPowerState=function(T,U,S){J.Exec("CIM_PowerSupply","SetPowerState",{PowerState:T,Time:U},S)};J.CIM_PowerSupply_Reset=function(S){J.Exec("CIM_PowerSupply","Reset",{},S)};J.CIM_PowerSupply_EnableDevice=function(T,S){J.Exec("CIM_PowerSupply","EnableDevice",{Enabled:T},S)};J.CIM_PowerSupply_OnlineDevice=function(T,S){J.Exec("CIM_PowerSupply","OnlineDevice",{Online:T},S)};J.CIM_PowerSupply_QuiesceDevice=function(T,S){J.Exec("CIM_PowerSupply","QuiesceDevice",{Quiesce:T},S)};J.CIM_PowerSupply_SaveProperties=function(S){J.Exec("CIM_PowerSupply","SaveProperties",{},S)};J.CIM_PowerSupply_RestoreProperties=function(S){J.Exec("CIM_PowerSupply","RestoreProperties",{},S)};J.CIM_PowerSupply_RequestStateChange=function(T,U,S){J.Exec("CIM_PowerSupply","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.CIM_Processor_SetPowerState=function(T,U,S){J.Exec("CIM_Processor","SetPowerState",{PowerState:T,Time:U},S)};J.CIM_Processor_Reset=function(S){J.Exec("CIM_Processor","Reset",{},S)};J.CIM_Processor_EnableDevice=function(T,S){J.Exec("CIM_Processor","EnableDevice",{Enabled:T},S)};J.CIM_Processor_OnlineDevice=function(T,S){J.Exec("CIM_Processor","OnlineDevice",{Online:T},S)};J.CIM_Processor_QuiesceDevice=function(T,S){J.Exec("CIM_Processor","QuiesceDevice",{Quiesce:T},S)};J.CIM_Processor_SaveProperties=function(S){J.Exec("CIM_Processor","SaveProperties",{},S)};J.CIM_Processor_RestoreProperties=function(S){J.Exec("CIM_Processor","RestoreProperties",{},S)};J.CIM_Processor_RequestStateChange=function(T,U,S){J.Exec("CIM_Processor","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.CIM_RecordLog_ClearLog=function(S){J.Exec("CIM_RecordLog","ClearLog",{},S)};J.CIM_RecordLog_RequestStateChange=function(T,U,S){J.Exec("CIM_RecordLog","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.CIM_RedirectionService_RequestStateChange=function(T,U,S){J.Exec("CIM_RedirectionService","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.CIM_Sensor_SetPowerState=function(T,U,S){J.Exec("CIM_Sensor","SetPowerState",{PowerState:T,Time:U},S)};J.CIM_Sensor_Reset=function(S){J.Exec("CIM_Sensor","Reset",{},S)};J.CIM_Sensor_EnableDevice=function(T,S){J.Exec("CIM_Sensor","EnableDevice",{Enabled:T},S)};J.CIM_Sensor_OnlineDevice=function(T,S){J.Exec("CIM_Sensor","OnlineDevice",{Online:T},S)};J.CIM_Sensor_QuiesceDevice=function(T,S){J.Exec("CIM_Sensor","QuiesceDevice",{Quiesce:T},S)};J.CIM_Sensor_SaveProperties=function(S){J.Exec("CIM_Sensor","SaveProperties",{},S)};J.CIM_Sensor_RestoreProperties=function(S){J.Exec("CIM_Sensor","RestoreProperties",{},S)};J.CIM_Sensor_RequestStateChange=function(T,U,S){J.Exec("CIM_Sensor","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.CIM_StatisticalData_ResetSelectedStats=function(T,S){J.Exec("CIM_StatisticalData","ResetSelectedStats",{SelectedStatistics:T},S)};J.CIM_Watchdog_KeepAlive=function(S){J.Exec("CIM_Watchdog","KeepAlive",{},S)};J.CIM_Watchdog_SetPowerState=function(T,U,S){J.Exec("CIM_Watchdog","SetPowerState",{PowerState:T,Time:U},S)};J.CIM_Watchdog_Reset=function(S){J.Exec("CIM_Watchdog","Reset",{},S)};J.CIM_Watchdog_EnableDevice=function(T,S){J.Exec("CIM_Watchdog","EnableDevice",{Enabled:T},S)};J.CIM_Watchdog_OnlineDevice=function(T,S){J.Exec("CIM_Watchdog","OnlineDevice",{Online:T},S)};J.CIM_Watchdog_QuiesceDevice=function(T,S){J.Exec("CIM_Watchdog","QuiesceDevice",{Quiesce:T},S)};J.CIM_Watchdog_SaveProperties=function(S){J.Exec("CIM_Watchdog","SaveProperties",{},S)};J.CIM_Watchdog_RestoreProperties=function(S){J.Exec("CIM_Watchdog","RestoreProperties",{},S)};J.CIM_Watchdog_RequestStateChange=function(T,U,S){J.Exec("CIM_Watchdog","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.CIM_WiFiPort_SetPowerState=function(T,U,S){J.Exec("CIM_WiFiPort","SetPowerState",{PowerState:T,Time:U},S)};J.CIM_WiFiPort_Reset=function(S){J.Exec("CIM_WiFiPort","Reset",{},S)};J.CIM_WiFiPort_EnableDevice=function(T,S){J.Exec("CIM_WiFiPort","EnableDevice",{Enabled:T},S)};J.CIM_WiFiPort_OnlineDevice=function(T,S){J.Exec("CIM_WiFiPort","OnlineDevice",{Online:T},S)};J.CIM_WiFiPort_QuiesceDevice=function(T,S){J.Exec("CIM_WiFiPort","QuiesceDevice",{Quiesce:T},S)};J.CIM_WiFiPort_SaveProperties=function(S){J.Exec("CIM_WiFiPort","SaveProperties",{},S)};J.CIM_WiFiPort_RestoreProperties=function(S){J.Exec("CIM_WiFiPort","RestoreProperties",{},S)};J.CIM_WiFiPort_RequestStateChange=function(T,U,S){J.Exec("CIM_WiFiPort","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.IPS_HostBasedSetupService_Setup=function(W,X,V,T,Y,U,S){J.Exec("IPS_HostBasedSetupService","Setup",{NetAdminPassEncryptionType:W,NetworkAdminPassword:X,McNonce:V,Certificate:T,SigningAlgorithm:Y,DigitalSignature:U},S)};J.IPS_HostBasedSetupService_AddNextCertInChain=function(V,T,U,S){J.Exec("IPS_HostBasedSetupService","AddNextCertInChain",{NextCertificate:V,IsLeafCertificate:T,IsRootCertificate:U},S)};J.IPS_HostBasedSetupService_AdminSetup=function(V,W,U,X,T,S){J.Exec("IPS_HostBasedSetupService","AdminSetup",{NetAdminPassEncryptionType:V,NetworkAdminPassword:W,McNonce:U,SigningAlgorithm:X,DigitalSignature:T},S)};J.IPS_HostBasedSetupService_UpgradeClientToAdmin=function(U,V,T,S){J.Exec("IPS_HostBasedSetupService","UpgradeClientToAdmin",{McNonce:U,SigningAlgorithm:V,DigitalSignature:T},S)};J.IPS_HostBasedSetupService_DisableClientControlMode=function(S,T){J.Exec("IPS_HostBasedSetupService","DisableClientControlMode",{_method_dummy:S},T)};J.IPS_KVMRedirectionSettingData_TerminateSession=function(S){J.Exec("IPS_KVMRedirectionSettingData","TerminateSession",{},S)};J.IPS_KVMRedirectionSettingData_DataChannelRead=function(S){J.Exec("IPS_KVMRedirectionSettingData","DataChannelRead",{},S)};J.IPS_KVMRedirectionSettingData_DataChannelWrite=function(T,S){J.Exec("IPS_KVMRedirectionSettingData","DataChannelWrite",{DataMessage:T},S)};J.IPS_OptInService_StartOptIn=function(S){J.Exec("IPS_OptInService","StartOptIn",{},S)};J.IPS_OptInService_CancelOptIn=function(S){J.Exec("IPS_OptInService","CancelOptIn",{},S)};J.IPS_OptInService_SendOptInCode=function(T,S){J.Exec("IPS_OptInService","SendOptInCode",{OptInCode:T},S)};J.IPS_OptInService_StartService=function(S){J.Exec("IPS_OptInService","StartService",{},S)};J.IPS_OptInService_StopService=function(S){J.Exec("IPS_OptInService","StopService",{},S)};J.IPS_OptInService_RequestStateChange=function(T,U,S){J.Exec("IPS_OptInService","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.IPS_ProvisioningRecordLog_RequestStateChange=function(T,U,S){J.Exec("IPS_ProvisioningRecordLog","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.IPS_ProvisioningRecordLog_ClearLog=function(S,T){J.Exec("IPS_ProvisioningRecordLog","ClearLog",{_method_dummy:S},T)};J.IPS_SecIOService_RequestStateChange=function(T,U,S){J.Exec("IPS_SecIOService","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.AmtStatusToStr=function(S){if(J.AmtStatusCodes[S]){return J.AmtStatusCodes[S]}else{return"UNKNOWN_ERROR"}};J.AmtStatusCodes={0:"SUCCESS",1:"INTERNAL_ERROR",2:"NOT_READY",3:"INVALID_PT_MODE",4:"INVALID_MESSAGE_LENGTH",5:"TABLE_FINGERPRINT_NOT_AVAILABLE",6:"INTEGRITY_CHECK_FAILED",7:"UNSUPPORTED_ISVS_VERSION",8:"APPLICATION_NOT_REGISTERED",9:"INVALID_REGISTRATION_DATA",10:"APPLICATION_DOES_NOT_EXIST",11:"NOT_ENOUGH_STORAGE",12:"INVALID_NAME",13:"BLOCK_DOES_NOT_EXIST",14:"INVALID_BYTE_OFFSET",15:"INVALID_BYTE_COUNT",16:"NOT_PERMITTED",17:"NOT_OWNER",18:"BLOCK_LOCKED_BY_OTHER",19:"BLOCK_NOT_LOCKED",20:"INVALID_GROUP_PERMISSIONS",21:"GROUP_DOES_NOT_EXIST",22:"INVALID_MEMBER_COUNT",23:"MAX_LIMIT_REACHED",24:"INVALID_AUTH_TYPE",25:"AUTHENTICATION_FAILED",26:"INVALID_DHCP_MODE",27:"INVALID_IP_ADDRESS",28:"INVALID_DOMAIN_NAME",29:"UNSUPPORTED_VERSION",30:"REQUEST_UNEXPECTED",31:"INVALID_TABLE_TYPE",32:"INVALID_PROVISIONING_STATE",33:"UNSUPPORTED_OBJECT",34:"INVALID_TIME",35:"INVALID_INDEX",36:"INVALID_PARAMETER",37:"INVALID_NETMASK",38:"FLASH_WRITE_LIMIT_EXCEEDED",39:"INVALID_IMAGE_LENGTH",40:"INVALID_IMAGE_SIGNATURE",41:"PROPOSE_ANOTHER_VERSION",42:"INVALID_PID_FORMAT",43:"INVALID_PPS_FORMAT",44:"BIST_COMMAND_BLOCKED",45:"CONNECTION_FAILED",46:"CONNECTION_TOO_MANY",47:"RNG_GENERATION_IN_PROGRESS",48:"RNG_NOT_READY",49:"CERTIFICATE_NOT_READY",1024:"DISABLED_BY_POLICY",2048:"NETWORK_IF_ERROR_BASE",2049:"UNSUPPORTED_OEM_NUMBER",2050:"UNSUPPORTED_BOOT_OPTION",2051:"INVALID_COMMAND",2052:"INVALID_SPECIAL_COMMAND",2053:"INVALID_HANDLE",2054:"INVALID_PASSWORD",2055:"INVALID_REALM",2056:"STORAGE_ACL_ENTRY_IN_USE",2057:"DATA_MISSING",2058:"DUPLICATE",2059:"EVENTLOG_FROZEN",2060:"PKI_MISSING_KEYS",2061:"PKI_GENERATING_KEYS",2062:"INVALID_KEY",2063:"INVALID_CERT",2064:"CERT_KEY_NOT_MATCH",2065:"MAX_KERB_DOMAIN_REACHED",2066:"UNSUPPORTED",2067:"INVALID_PRIORITY",2068:"NOT_FOUND",2069:"INVALID_CREDENTIALS",2070:"INVALID_PASSPHRASE",2072:"NO_ASSOCIATION",2075:"AUDIT_FAIL",2076:"BLOCKING_COMPONENT",2081:"USER_CONSENT_REQUIRED",4096:"APP_INTERNAL_ERROR",4097:"NOT_INITIALIZED",4098:"LIB_VERSION_UNSUPPORTED",4099:"INVALID_PARAM",4100:"RESOURCES",4101:"HARDWARE_ACCESS_ERROR",4102:"REQUESTOR_NOT_REGISTERED",4103:"NETWORK_ERROR",4104:"PARAM_BUFFER_TOO_SHORT",4105:"COM_NOT_INITIALIZED_IN_THREAD",4106:"URL_REQUIRED"};J.GetMessageLog=function(S,T){J.AMT_MessageLog_PositionToFirstRecord(k,[S,T,[]])};function k(U,S,T,V,W){if(V!=200||T.Body.ReturnValue!="0"){W[0](J,null,W[2],V);return}J.AMT_MessageLog_GetRecords(T.Body.IterationIdentifier,390,l,W)}function l(Z,W,Y,aa,ac){if(aa!=200||Y.Body.ReturnValue!="0"){ac[0](J,null,ac[2],aa);return}var U,V,ae,T,S=ac[2],ab=new Date(),ad,X=Y.Body.RecordArray;if(typeof X==="string"){Y.Body.RecordArray=[Y.Body.RecordArray]}for(U in X){T=Buffer.from(X[U],"base64");if(T!=null){ad=M(T,0);if((ad>0)&&(ad<4294967295)){ae={DeviceAddress:T[4],EventSensorType:T[5],EventType:T[6],EventOffset:T[7],EventSourceType:T[8],EventSeverity:T[9],SensorNumber:T[10],Entity:T[11],EntityInstance:T[12],EventData:[],Time:new Date((ad+(ab.getTimezoneOffset()*60))*1000)};for(V=13;V<21;V++){ae.EventData.push(T[V])}ae.EntityStr=o[ae.Entity];ae.Desc=j(ae.EventSensorType,ae.EventOffset,ae.EventData,ae.Entity);if(!ae.EntityStr){ae.EntityStr="Unknown"}S.push(ae)}}}if(Y.Body.NoMoreRecords!=true){J.AMT_MessageLog_GetRecords(Y.Body.IterationIdentifier,390,l,[ac[0],S,ac[2]])}else{ac[0](J,S,ac[2])}}var f="Platform firmware (e.g. BIOS)|SMI handler|ISV system management software|Alert ASIC|IPMI|BIOS vendor|System board set vendor|System integrator|Third party add-in|OSV|NIC|System management card".split("|");var p="Unspecified.|No system memory is physically installed in the system.|No usable system memory, all installed memory has experienced an unrecoverable failure.|Unrecoverable hard-disk/ATAPI/IDE device failure.|Unrecoverable system-board failure.|Unrecoverable diskette subsystem failure.|Unrecoverable hard-disk controller failure.|Unrecoverable PS/2 or USB keyboard failure.|Removable boot media not found.|Unrecoverable video controller failure.|No video device detected.|Firmware (BIOS) ROM corruption detected.|CPU voltage mismatch (processors that share same supply have mismatched voltage requirements)|CPU speed matching failure".split("|");var q="Unspecified.|Memory initialization.|Starting hard-disk initialization and test|Secondary processor(s) initialization|User authentication|User-initiated system setup|USB resource configuration|PCI resource configuration|Option ROM initialization|Video initialization|Cache initialization|SM Bus initialization|Keyboard controller initialization|Embedded controller/management controller initialization|Docking station attachment|Enabling docking station|Docking station ejection|Disabling docking station|Calling operating system wake-up vector|Starting operating system boot process|Baseboard or motherboard initialization|reserved|Floppy initialization|Keyboard test|Pointing device test|Primary processor initialization".split("|");var o="Unspecified|Other|Unknown|Processor|Disk|Peripheral|System management module|System board|Memory module|Processor module|Power supply|Add in card|Front panel board|Back panel board|Power system board|Drive backplane|System internal expansion board|Other system board|Processor board|Power unit|Power module|Power management board|Chassis back panel board|System chassis|Sub chassis|Other chassis board|Disk drive bay|Peripheral bay|Device bay|Fan cooling|Cooling unit|Cable interconnect|Memory device|System management software|BIOS|Intel(r) ME|System bus|Group|Intel(r) ME|External environment|Battery|Processing blade|Connectivity switch|Processor/memory module|I/O module|Processor I/O module|Management controller firmware|IPMI channel|PCI bus|PCI express bus|SCSI bus|SATA/SAS bus|Processor front side bus".split("|");J.RealmNames="||Redirection|PT Administration|Hardware Asset|Remote Control|Storage|Event Manager|Storage Admin|Agent Presence Local|Agent Presence Remote|Circuit Breaker|Network Time|General Information|Firmware Update|EIT|LocalUN|Endpoint Access Control|Endpoint Access Control Admin|Event Log Reader|Audit Log|ACL Realm|||Local System".split("|");J.WatchdogCurrentStates={1:"Not Started",2:"Stopped",4:"Running",8:"Expired",16:"Suspended"};function j(V,U,T,S){if(V==15){if(T[0]==235){return"Invalid Data"}if(U==0){return p[T[1]]}return q[T[1]]}if(V==18&&T[0]==170){return"Agent watchdog "+char2hex(T[4])+char2hex(T[3])+char2hex(T[2])+char2hex(T[1])+"-"+char2hex(T[6])+char2hex(T[5])+"-... changed to "+J.WatchdogCurrentStates[T[7]]}if(V==6){return"Authentication failed "+(T[1]+(T[2]<<8))+" times. The system may be under attack."}if(V==30){return"No bootable media"}if(V==32){return"Operating system lockup or power interrupt"}if(V==35){return"System boot failure"}if(V==37){return"System firmware started (at least one CPU is properly executing)."}return"Unknown Sensor Type #"+V}var a={16:"Security Admin",17:"RCO",18:"Redirection Manager",19:"Firmware Update Manager",20:"Security Audit Log",21:"Network Time",22:"Network Administration",23:"Storage Administration",24:"Event Manager",25:"Circuit Breaker Manager",26:"Agent Presence Manager",27:"Wireless Configuration",28:"EAC",29:"KVM",30:"User Opt-In Events",32:"Screen Blanking",33:"Watchdog Events",1600:"Provisioning Started",1601:"Provisioning Completed",1602:"ACL Entry Added",1603:"ACL Entry Modified",1604:"ACL Entry Removed",1605:"ACL Access with Invalid Credentials",1606:"ACL Entry State",1607:"TLS State Changed",1608:"TLS Server Certificate Set",1609:"TLS Server Certificate Remove",1610:"TLS Trusted Root Certificate Added",1611:"TLS Trusted Root Certificate Removed",1612:"TLS Preshared Key Set",1613:"Kerberos Settings Modified",1614:"Kerberos Master Key Modified",1615:"Flash Wear out Counters Reset",1616:"Power Package Modified",1617:"Set Realm Authentication Mode",1618:"Upgrade Client to Admin Control Mode",1619:"Unprovisioning Started",1700:"Performed Power Up",1701:"Performed Power Down",1702:"Performed Power Cycle",1703:"Performed Reset",1704:"Set Boot Options",1800:"IDER Session Opened",1801:"IDER Session Closed",1802:"IDER Enabled",1803:"IDER Disabled",1804:"SoL Session Opened",1805:"SoL Session Closed",1806:"SoL Enabled",1807:"SoL Disabled",1808:"KVM Session Started",1809:"KVM Session Ended",1810:"KVM Enabled",1811:"KVM Disabled",1812:"VNC Password Failed 3 Times",1900:"Firmware Updated",1901:"Firmware Update Failed",2000:"Security Audit Log Cleared",2001:"Security Audit Policy Modified",2002:"Security Audit Log Disabled",2003:"Security Audit Log Enabled",2004:"Security Audit Log Exported",2005:"Security Audit Log Recovered",2100:"Intel(R) ME Time Set",2200:"TCPIP Parameters Set",2201:"Host Name Set",2202:"Domain Name Set",2203:"VLAN Parameters Set",2204:"Link Policy Set",2205:"IPv6 Parameters Set",2300:"Global Storage Attributes Set",2301:"Storage EACL Modified",2302:"Storage FPACL Modified",2303:"Storage Write Operation",2400:"Alert Subscribed",2401:"Alert Unsubscribed",2402:"Event Log Cleared",2403:"Event Log Frozen",2500:"CB Filter Added",2501:"CB Filter Removed",2502:"CB Policy Added",2503:"CB Policy Removed",2504:"CB Default Policy Set",2505:"CB Heuristics Option Set",2506:"CB Heuristics State Cleared",2600:"Agent Watchdog Added",2601:"Agent Watchdog Removed",2602:"Agent Watchdog Action Set",2700:"Wireless Profile Added",2701:"Wireless Profile Removed",2702:"Wireless Profile Updated",2800:"EAC Posture Signer SET",2801:"EAC Enabled",2802:"EAC Disabled",2803:"EAC Posture State",2804:"EAC Set Options",2900:"KVM Opt-in Enabled",2901:"KVM Opt-in Disabled",2902:"KVM Password Changed",2903:"KVM Consent Succeeded",2904:"KVM Consent Failed",3000:"Opt-In Policy Change",3001:"Send Consent Code Event",3002:"Start Opt-In Blocked Event"};J.GetAuditLogExtendedDataStr=function(T,S){if((T==1602||T==1604)&&S[0]==0){return w(S).splice(2,2+S[1]).toString()}if(T==1603){if(S[1]==0){return w(S).splice(3).toString()}return null}if(T==1605){return["Invalid ME access","Invalid MEBx access"][S[0]]}if(T==1606){var U=["Disabled","Enabled"][S[0]];if(S[1]==0){U+=", "+S[3]}return U}if(T==1607){return"Remote "+["NoAuth","ServerAuth","MutualAuth"][S[0]]+", Local "+["NoAuth","ServerAuth","MutualAuth"][S[1]]}if(T==1617){return J.RealmNames[L(S,0)]+", "+["NoAuth","Auth","Disabled"][S[4]]}if(T==1619){return["BIOS","MEBx","Local MEI","Local WSMAN","Remote WSAMN"][S[0]]}if(T==1900){return"From "+N(S,0)+"."+N(S,2)+"."+N(S,4)+"."+N(S,6)+" to "+N(S,8)+"."+N(S,10)+"."+N(S,12)+"."+N(S,14)}if(T==2100){var V=new Date();V.setTime(L(S,0)*1000+(new Date().getTimezoneOffset()*60000));return V.toLocaleString()}if(T==3000){return"From "+["None","KVM","All"][S[0]]+" to "+["None","KVM","All"][S[1]]}if(T==3001){return["Success","Failed 3 times"][S[0]]}return null};J.GetAuditLog=function(S){J.AMT_AuditLog_ReadRecords(1,i,[S,[]])};function I(S){if(!S||S==null||typeof S=="object"){return S}return[S]}function N(T,S){return(T[S]<<8)+T[S+1]}function L(T,S){return(T[S]*16777216)+(T[S+1]<<16)+(T[S+2]<<8)+T[S+3]}function M(T,S){return(T[S+3]*16777216)+(T[S+2]<<16)+(T[S+1]<<8)+T[S]}function v(S){return Buffer.from(S).toString("base64")}function u(T){var U=null;try{U=Buffer.from(T,"base64").toString()}catch(S){console.log(S)}return U}function w(S){var U=[];for(var T in S){U.push(S[T])}return U}function i(ac,X,ab,ad,af){if(ad!=200){af[0](J,[],ad);return}var Z,W,S,T,ai,aa=af[1],ae=new Date(),ag;if(ab.Body.RecordsReturned>0){ab.Body.EventRecords=I(ab.Body.EventRecords);for(W in ab.Body.EventRecords){S=null;try{T=u(ab.Body.EventRecords[W]);S=new Buffer(T)}catch(U){console.log(U+" "+ab.Body.EventRecords[W])}ai={AuditAppID:N(S,0),EventID:N(S,2),InitiatorType:S[4]};ai.AuditApp=a[ai.AuditAppID];ai.Event=a[(ai.AuditAppID*100)+ai.EventID];if(!ai.Event){ai.Event="#"+ai.EventID}if(ai.InitiatorType==0){var ah=S[5];ai.Initiator=S.slice(6,6+ah).toString();Z=6+ah}if(ai.InitiatorType==1){ai.KerberosUserInDomain=L(S,5);var ah=S[9];ai.Initiator=G(S.slice(10,10+ah));Z=10+ah}if(ai.InitiatorType==2){ai.Initiator="Local";Z=5}if(ai.InitiatorType==3){ai.Initiator="KVM Default Port";Z=5}ag=L(S,Z);ai.Time=new Date((ag+(ae.getTimezoneOffset()*60))*1000);Z+=4;ai.MCLocationType=S[Z++];var Y=S[Z++];ai.NetAddress=S.slice(Z,Z+Y).toString();Z+=Y;var V=S[Z++];ai.Ex=S.slice(Z,Z+V);ai.ExStr=J.GetAuditLogExtendedDataStr((ai.AuditAppID*100)+ai.EventID,ai.Ex);aa.push(ai)}}if(ab.Body.TotalRecordCount>aa.length){J.AMT_AuditLog_ReadRecords(aa.length+1,i,[af[0],aa])}else{af[0](J,aa,ad)}}function C(U){if(U===undefined||U===null){return null}var V="";for(var T in U){var S=U[T];if(!S){continue}if(S.__parameterType==="reference"){V+=O(T,S)}else{V+=H(T,S)}}return V}function H(V,U){if(U===undefined||U===null){return null}var T=!!U.__namespace;var Z=T?"";for(var X in U){if(!U.hasOwnProperty(X)||X.indexOf("__")===0){continue}if(typeof U[X]==="function"||Array.isArray(U[X])){continue}if(typeof U[X]==="object"){console.error("only convert one level down...")}else{Y+=Z+X+">"+U[X].toString()+S+X+">"}}Y+="";return Y}function O(T,S){if(S===undefined||S===null){return null}var U="/wsman"+S.__resourceUri+"";for(var V in S){if(!S.hasOwnProperty(V)||V.indexOf("__")===0){continue}if(typeof S[V]==="function"||typeof S[V]==="object"||Array.isArray(S[V])){continue}U+=''+S[V].toString()+""}U+="";return U}function G(U){var T="S-"+U.charCodeAt(0)+"-"+U.charCodeAt(7);for(var S=2;S<(U.length/4);S++){T+="-"+M(U,S*4)}return T}function F(V){if(!V||V==null){return null}var U=V.split("-");if(U.length<4||(U[0]!="s"&&U[0]!="S")){return null}for(var S=1;S0&&t[u]){s.push(t[u])}}if(h>0){if(s[o.PID]){r[s[o.PID]]={pid:o.PID,user:s[o.USER],cmd:s[o.COMMAND]}}}}if(this.callback){this.args.unshift(r);this.callback.apply(this.parent,this.args)}});l.stdout.on("data",function(h){this.parent.ps+=h.toString()});break;case"darwin":var m=require("promise");var l=new m(function(i,h){this._res=i;this._rej=h});l.pm=this;l.callback=d;l.args=[];for(var f=1;f0){r[p[o].substring(0,q).trim()]={pid:p[o].substring(0,q).trim(),cmd:p[o].substring(h)}}}this.promise._res(r)});l.then(function(h){this.args.unshift(h);this.callback.apply(this.pm,this.args)});break}};this.getProcessInfo=function c(g){switch(process.platform){default:throw ("getProcessInfo() not supported for "+process.platform);break;case"linux":var h=require("fs").readFileSync("/proc/"+g+"/status");var e={};var f=h.toString().split("\n");for(var d in f){var j=f[d].split(":");if(j.length>1){j[1]=j[1].trim()}e[j[0]]=j[1]}return(e);break}}}module.exports=new processManager(); \ No newline at end of file diff --git a/agents/modules_meshcmd_min/service-host.min.js b/agents/modules_meshcmd_min/service-host.min.js new file mode 100644 index 00000000..6fe815d2 --- /dev/null +++ b/agents/modules_meshcmd_min/service-host.min.js @@ -0,0 +1 @@ +var SERVICE_WIN32=16|32;var SERVICE_STATE={STOPPED:1,SERVICE_START_PENDING:2,SERVICE_STOP_PENDING:3,RUNNING:4};var SERVICE_ACCEPT={SERVICE_ACCEPT_STOP:1,SERVICE_ACCEPT_SHUTDOWN:4,SERVICE_ACCEPT_POWEREVENT:64,SERVICE_ACCEPT_SESSIONCHANGE:128};var SERVICE_CONTROL={SERVICE_CONTROL_SHUTDOWN:5,SERVICE_CONTROL_STOP:1,SERVICE_CONTROL_POWEREVENT:13,SERVICE_CONTROL_SESSIONCHANGE:14};var SESSION_CHANGE_TYPE={WTS_CONSOLE_CONNECT:1,WTS_CONSOLE_DISCONNECT:2,WTS_REMOTE_CONNECT:3,WTS_REMOTE_DISCONNECT:4,WTS_SESSION_LOGON:5,WTS_SESSION_LOGOFF:6,WTS_SESSION_LOCK:7,WTS_SESSION_UNLOCK:8,WTS_SESSION_REMOTE_CONTROL:9,WTS_SESSION_CREATE:10,WTS_SESSION_TERMINATE:11};var NO_ERROR=0;var serviceManager=require("service-manager");function serviceHost(e){this._ObjectID="service-host";var a=require("events").inherits(this);a.createEvent("serviceStart");a.createEvent("serviceStop");a.createEvent("normalStart");a.createEvent("session");a.createEvent("powerStateChange");if(process.platform=="win32"){this.GM=require("_GenericMarshal");this.Advapi=this.GM.CreateNativeProxy("Advapi32.dll");this.Advapi.CreateMethod({method:"StartServiceCtrlDispatcherA",threadDispatch:1});this.Advapi.CreateMethod("RegisterServiceCtrlHandlerExA");this.Advapi.CreateMethod("SetServiceStatus");this.Kernel32=this.GM.CreateNativeProxy("Kernel32.dll");this.Kernel32.CreateMethod("GetLastError");this.Ole32=this.GM.CreateNativeProxy("Ole32.dll");this.Ole32.CreateMethod("CoInitializeEx");this.Ole32.CreateMethod("CoUninitialize");this._ServiceName=this.GM.CreateVariable(typeof(e)=="string"?e:e.name);this._ServiceMain=this.GM.GetGenericGlobalCallback(2);this._ServiceMain.Parent=this;this._ServiceMain.GM=this.GM;this._ServiceMain.on("GlobalCallback",function b(f,g){this.Parent._ServiceStatus=this.GM.CreateVariable(28);this.Parent._ServiceStatus.toBuffer().writeUInt32LE(SERVICE_WIN32);this.Parent._ServiceStatus.toBuffer().writeUInt32LE(SERVICE_STATE.SERVICE_STOPPED,4);this.Parent._ServiceStatusHandle=this.Parent.Advapi.RegisterServiceCtrlHandlerExA(this.Parent._ServiceName,this.Parent._ServiceControlHandler,this.Parent.GM.StashObject(this.Parent._ServiceControlHandler));if(this.Parent._ServiceStatusHandle.Val==0){process.exit(1)}this.Parent._ServiceStatus.toBuffer().writeUInt32LE(SERVICE_STATE.SERVICE_START_PENDING,4);this.Parent.Advapi.SetServiceStatus(this.Parent._ServiceStatusHandle,this.Parent._ServiceStatus);this.Parent._ServiceStatus.toBuffer().writeUInt32LE(SERVICE_STATE.RUNNING,4);this.Parent._ServiceStatus.toBuffer().writeUInt32LE(SERVICE_ACCEPT.SERVICE_ACCEPT_STOP|SERVICE_ACCEPT.SERVICE_ACCEPT_POWEREVENT|SERVICE_ACCEPT.SERVICE_ACCEPT_SESSIONCHANGE,8);this.Parent.Advapi.SetServiceStatus(this.Parent._ServiceStatusHandle,this.Parent._ServiceStatus);this.Parent.Ole32.CoInitializeEx(0,2);this.Parent.on("~",function h(){var j=require("_GenericMarshal");var i=j.CreateNativeProxy("Advapi32.dll");i.CreateMethod("SetServiceStatus");Kernel32=this.GM.CreateNativeProxy("Kernel32.dll");Kernel32.CreateMethod("GetLastError");var k=j.CreateVariable(28);k.toBuffer().writeUInt32LE(SERVICE_WIN32);k.toBuffer().writeUInt32LE(1,4);k.toBuffer().writeUInt32LE(0,8);i.SetServiceStatus(this._ServiceStatusHandle,k);this.Ole32.CoUninitialize()});this.Parent.emit("serviceStart")});this._ServiceControlHandler=this.GM.GetGenericGlobalCallback(4);this._ServiceControlHandler.Parent=this;this._ServiceControlHandler.GM=this.GM;this._ServiceControlHandler.on("GlobalCallback",function c(f,i,h,g){var k=this.Parent.GM.UnstashObject(g);if(k!=null&&k==this){switch(f.Val){case SERVICE_CONTROL.SERVICE_CONTROL_SHUTDOWN:case SERVICE_CONTROL.SERVICE_CONTROL_STOP:this.Parent.emit("serviceStop");return;case SERVICE_CONTROL.SERVICE_CONTROL_SESSIONCHANGE:var l=h.Deref(4,4).toBuffer().readUInt32LE();switch(i.Val){case SESSION_CHANGE_TYPE.WTS_SESSION_LOGON:case SESSION_CHANGE_TYPE.WTS_SESSION_LOGOFF:require("user-sessions").emit("changed");break}break;default:break}this.Parent.Advapi.SetServiceStatus(this.Parent._ServiceStatusHandle,this.Parent._ServiceStatus)}})}if(e){this._ServiceOptions=typeof(e)=="object"?e:{name:e}}else{throw ("Must specify either ServiceName or Options")}if(!this._ServiceOptions.servicePath){this._ServiceOptions.servicePath=process.execPath}this.run=function d(){var r=0;for(var h=0;hStandardOutPath\n"+s.stdout+""):"");var i=(s.startType=="AUTO_START"?"":"");var t=" ProgramArguments\n";t+=" \n";t+=(" /usr/local/mesh_services/"+s.name+"/"+s.name+"\n");if(s.parameters){for(var p in s.parameters){t+=(" "+s.parameters[p]+"\n")}}t+=" \n";var u='\n';u+='\n';u+='\n';u+=" \n";u+=" Label\n";u+=(" "+s.name+"\n");u+=(t+"\n");u+=" WorkingDirectory\n";u+=(" /usr/local/mesh_services/"+s.name+"\n");u+=(z+"\n");u+=" RunAtLoad\n";u+=(i+"\n");u+=" \n";u+="";if(!require("fs").existsSync("/usr/local/mesh_services")){require("fs").mkdirSync("/usr/local/mesh_services")}if(!require("fs").existsSync("/Library/LaunchDaemons/"+s.name+".plist")){if(!require("fs").existsSync("/usr/local/mesh_services/"+s.name)){require("fs").mkdirSync("/usr/local/mesh_services/"+s.name)}if(s.binary){require("fs").writeFileSync("/usr/local/mesh_services/"+s.name+"/"+s.name,s.binary)}else{require("fs").copyFileSync(s.servicePath,"/usr/local/mesh_services/"+s.name+"/"+s.name)}require("fs").writeFileSync("/Library/LaunchDaemons/"+s.name+".plist",u);var q=require("fs").statSync("/usr/local/mesh_services/"+s.name+"/"+s.name).mode;q|=(require("fs").CHMOD_MODES.S_IXUSR|require("fs").CHMOD_MODES.S_IXGRP);require("fs").chmodSync("/usr/local/mesh_services/"+s.name+"/"+s.name,q)}else{throw ("Service: "+s.name+" already exists")}}};this.uninstallService=function f(i){if(!this.isAdmin()){throw ("Uninstalling a service, requires admin")}if(typeof(i)=="object"){i=i.name}if(process.platform=="win32"){var k=this.getService(i);if(k.status.state==undefined||k.status.state=="STOPPED"){if(this.proxy.DeleteService(k._service)==0){throw ("Uninstall Service for: "+i+", failed with error: "+this.proxy2.GetLastError())}else{try{require("fs").unlinkSync(this.getServiceFolder()+"\\"+i+".exe")}catch(h){}}}else{throw ("Cannot uninstall service: "+i+", because it is: "+k.status.state)}}else{if(process.platform=="linux"){switch(this.getServiceType()){case"init":this._update=require("child_process").execFile("/bin/sh",["sh"],{type:require("child_process").SpawnTypes.TERM});this._update._svcname=i;this._update.on("exit",function j(){try{require("fs").unlinkSync("/etc/init.d/"+this._svcname);console.log(this._svcname+" uninstalled")}catch(l){console.log(this._svcname+" could not be uninstalled")}process.exit()});this._update.stdout.on("data",function(l){});this._update.stdin.write("service "+i+" stop\n");this._update.stdin.write("update-rc.d -f "+i+" remove\n");this._update.stdin.write("exit\n");break;case"systemd":this._update=require("child_process").execFile("/bin/sh",["sh"],{type:require("child_process").SpawnTypes.TERM});this._update._svcname=i;this._update.on("exit",function j(){try{require("fs").unlinkSync("/usr/local/mesh/"+this._svcname);require("fs").unlinkSync("/lib/systemd/system/"+this._svcname+".service");console.log(this._svcname+" uninstalled")}catch(l){console.log(this._svcname+" could not be uninstalled")}process.exit()});this._update.stdout.on("data",function(l){});this._update.stdin.write("systemctl stop "+i+".service\n");this._update.stdin.write("systemctl disable "+i+".service\n");this._update.stdin.write("exit\n");break;default:break}}else{if(process.platform=="darwin"){if(require("fs").existsSync("/Library/LaunchDaemons/"+i+".plist")){var g=require("child_process").execFile("/bin/sh",["sh"]);g.stdout.on("data",function(l){});g.stdin.write("launchctl stop "+i+"\n");g.stdin.write("launchctl unload /Library/LaunchDaemons/"+i+".plist\n");g.stdin.write("exit\n");g.waitExit();try{require("fs").unlinkSync("/usr/local/mesh_services/"+i+"/"+i);require("fs").unlinkSync("/Library/LaunchDaemons/"+i+".plist")}catch(h){throw ("Error uninstalling service: "+i+" => "+h)}try{require("fs").rmdirSync("/usr/local/mesh_services/"+i)}catch(h){}}else{throw ("Service: "+i+" does not exist")}}}}};if(process.platform=="linux"){this.getServiceType=function c(){return(require("process-manager").getProcessInfo(1).Name)}}}module.exports=serviceManager; \ No newline at end of file diff --git a/agents/modules_meshcmd_min/smbios.min.js b/agents/modules_meshcmd_min/smbios.min.js new file mode 100644 index 00000000..618e6256 --- /dev/null +++ b/agents/modules_meshcmd_min/smbios.min.js @@ -0,0 +1 @@ +try{Object.defineProperty(Array.prototype,"peek",{value:function(){return(this.length>0?this[this.length-1]:undefined)}})}catch(e){}try{Object.defineProperty(String.prototype,"replaceAll",{value:function replaceAll(b,a){return(this.split(b).join(a))}})}catch(e){}var RSMB=1381190978;var memoryLocation={1:"Other",2:"Unknown",3:"System Board",4:"ISA",5:"EISA",6:"PCI",7:"MCA",8:"PCMCIA",9:"Proprietary",10:"NuBus",160:"PC-98/C20",161:"PC-98/C24",162:"PC-98/E",163:"PC-98/LB"};var wakeReason=["Reserved","Other","Unknown","APM Timer","Modem Ring","LAN","Power Switch","PCI","AC Power"];function zeroLeftPad(c,b){if((b==null)&&(typeof(b)!="number")){return null}if(c==null){c=""}var d="";for(var a=0;a1){var r=v[1].split("\x0A\x0A")[0].split("\x0A");var s=[];for(var t in r){var u=r[t].trim().replaceAll(" ","").replaceAll("\x09","");if(!(u[0]=='"')){s.push(u)}}p.write(Buffer.from(s.join(""),"hex"));p.write(Buffer.from("00","hex"))}else{p.write(Buffer.from("0000","hex"))}}var q=p.buffer;q.ms=p;return(q)}}this._parse=function b(n){var m={};var l;var k=0;var n;var r=0;while(n&&k0){var n=l[4].pop();var o=n[20]&64;var s=n[20]&7;if(o){var m={_ObjectID:"SMBiosTables.processorInfo"};m.Processor=q[n[1]];m.MaxSpeed=n.readUInt16LE(16)+" Mhz";if(n[31]){m.Cores=n[31]}if(n[33]){m.Threads=n[33]}m.Populated=1;m.Status=t[s];m.Socket=n._strings[n[0]-1];m.Manufacturer=n._strings[n[3]-1];m.Version=n._strings[n[12]-1];r.push(m)}}return(r)};this.memoryInfo=function f(k){if(!k){throw ("no data")}var n={_ObjectID:"SMBiosTables.memoryInfo"};if(k[16]){var l=k[16].peek();n.location=memoryLocation[l[0]];if((n.maxCapacityKb=l.readUInt32LE(3))==2147483648){n.maxCapacityKb="A really big number"}}return(n)};this.systemInfo=function i(k){if(!k){throw ("no data")}var l={_ObjectID:"SMBiosTables.systemInfo"};if(k[1]){var m=k[1].peek();var n=m.slice(4,20);l.uuid=[zeroLeftPad(n.readUInt32LE(0).toString(16),8),zeroLeftPad(n.readUInt16LE(4).toString(16),4),zeroLeftPad(n.readUInt16LE(6).toString(16),4),zeroLeftPad(n.readUInt16BE(8).toString(16),4),zeroLeftPad(n.slice(10).toString("hex").toLowerCase(),12)].join("-");l.wakeReason=wakeReason[m[20]]}return(l)};this.systemSlots=function j(k){if(!k){throw ("no data")}var l=[];if(k[9]){while(k[9].length>0){var m=k[9].pop();l.push({name:m._strings[m[0]-1]})}}return(l)};this.amtInfo=function c(l){if(!l){throw ("no data")}var n={AMT:false};if(l[130]&&l[130].peek().slice(0,4).toString()=="$AMT"){var k=l[130].peek();n.AMT=k[4]?true:false;if(n.AMT){n.enabled=k[5]?true:false;n.storageRedirection=k[6]?true:false;n.serialOverLan=k[7]?true:false;n.kvm=k[14]?true:false;if(l[131].peek()&&l[131].peek().slice(52,56).toString()=="vPro"){var o=l[131].peek();if(o[0]&4){n.TXT=(o[0]&8)?true:false}if(o[0]&16){n.VMX=(o[0]&32)?true:false}n.MEBX=o.readUInt16LE(10).toString()+"."+o.readUInt16LE(8).toString()+"."+o.readUInt16LE(6).toString()+"."+o.readUInt16LE(4).toString();var m=o.slice(20,32);n.ManagementEngine=m.readUInt16LE(6).toString()+"."+m.readUInt16LE(4).toString()+"."+m.readUInt16LE(2).toString()+"."+m.readUInt16LE(0).toString()}}}return(n)};this.smTableTypes={0:"BIOS information",1:"System information",2:"Baseboard (or Module) information",4:"Processor information",5:"memory controller information",6:"Memory module information",7:"Cache information",8:"Port connector information",9:"System slots",10:"On board devices information",11:"OEM strings",12:"System configuration options",13:"BIOS language information",14:"Group associations",15:"System event log",16:"Physical memory array",17:"Memory device",18:"32bit memory error information",19:"Memory array mapped address",20:"Memory device mapped address",21:"Built-in pointing device",22:"Portable battery",23:"System reset",24:"Hardware security",25:"System power controls",26:"Voltage probe",27:"Cooling device",28:"Temperature probe",29:"Electrical current probe",30:"Out-of-band remote access",31:"Boot integrity services (BIS) entry point",32:"System boot information",33:"64bit memory error information",34:"Management device",35:"Management device component",36:"Management device threshold data",37:"Memory channel",38:"IPMI device information",39:"System power supply",40:"Additional information",41:"Onboard devices extended information",42:"Management controller host interface",126:"Inactive",127:"End-of-table"}}module.exports=new SMBiosTables(); \ No newline at end of file diff --git a/agents/modules_meshcmd_min/user-sessions.min.js b/agents/modules_meshcmd_min/user-sessions.min.js new file mode 100644 index 00000000..21bee889 --- /dev/null +++ b/agents/modules_meshcmd_min/user-sessions.min.js @@ -0,0 +1 @@ +var NOTIFY_FOR_THIS_SESSION=0;var NOTIFY_FOR_ALL_SESSIONS=1;var WM_WTSSESSION_CHANGE=689;var WM_POWERBROADCAST=536;var PBT_POWERSETTINGCHANGE=32787;var PBT_APMSUSPEND=4;var PBT_APMRESUMESUSPEND=7;var PBT_APMRESUMEAUTOMATIC=18;var PBT_APMPOWERSTATUSCHANGE=10;var WTS_CONSOLE_CONNECT=(1);var WTS_CONSOLE_DISCONNECT=(2);var WTS_REMOTE_CONNECT=(3);var WTS_REMOTE_DISCONNECT=(4);var WTS_SESSION_LOGON=(5);var WTS_SESSION_LOGOFF=(6);var WTS_SESSION_LOCK=(7);var WTS_SESSION_UNLOCK=(8);var WTS_SESSION_REMOTE_CONTROL=(9);var WTS_SESSION_CREATE=(10);var WTS_SESSION_TERMINATE=(11);var GUID_ACDC_POWER_SOURCE;var GUID_BATTERY_PERCENTAGE_REMAINING;var GUID_CONSOLE_DISPLAY_STATE;function UserSessions(){this._ObjectID="user-sessions";require("events").EventEmitter.call(this,true).createEvent("changed").createEvent("locked").createEvent("unlocked");this.enumerateUsers=function h(){var s=require("promise");var r=new s(function(t,p){this.__resolver=t;this.__rejector=p});r.__handler=function o(p){r.__resolver(p)};try{this.Current(r.__handler)}catch(q){r.__rejector(q)}r.parent=this;return(r)};if(process.platform=="win32"){this._serviceHooked=false;this._marshal=require("_GenericMarshal");this._kernel32=this._marshal.CreateNativeProxy("Kernel32.dll");this._kernel32.CreateMethod("GetLastError");try{this._wts=this._marshal.CreateNativeProxy("Wtsapi32.dll");this._wts.CreateMethod("WTSEnumerateSessionsA");this._wts.CreateMethod("WTSQuerySessionInformationA");this._wts.CreateMethod("WTSRegisterSessionNotification");this._wts.CreateMethod("WTSUnRegisterSessionNotification");this._wts.CreateMethod("WTSFreeMemory")}catch(i){}this._user32=this._marshal.CreateNativeProxy("user32.dll");this._user32.CreateMethod("RegisterPowerSettingNotification");this._user32.CreateMethod("UnregisterPowerSettingNotification");this._rpcrt=this._marshal.CreateNativeProxy("Rpcrt4.dll");this._rpcrt.CreateMethod("UuidFromStringA");this._rpcrt.StringToUUID=function n(o){var p=n.us._marshal.CreateVariable(16);if(n.us._rpcrt.UuidFromStringA(n.us._marshal.CreateVariable(o),p).Val==0){return(p)}else{throw ("Could not convert string to UUID")}};this._rpcrt.StringToUUID.us=this;GUID_ACDC_POWER_SOURCE=this._rpcrt.StringToUUID("5d3e9a59-e9D5-4b00-a6bd-ff34ff516548");GUID_BATTERY_PERCENTAGE_REMAINING=this._rpcrt.StringToUUID("a7ad8041-b45a-4cae-87a3-eecbb468a9e1");GUID_CONSOLE_DISPLAY_STATE=this._rpcrt.StringToUUID("6fe69556-704a-47a0-8f24-c28d936fda47");this.SessionStates=["Active","Connected","ConnectQuery","Shadow","Disconnected","Idle","Listening","Reset","Down","Init"];this.InfoClass={WTSInitialProgram:0,WTSApplicationName:1,WTSWorkingDirectory:2,WTSOEMId:3,WTSSessionId:4,WTSUserName:5,WTSWinStationName:6,WTSDomainName:7,WTSConnectState:8,WTSClientBuildNumber:9,WTSClientName:10,WTSClientDirectory:11,WTSClientProductId:12,WTSClientHardwareId:13,WTSClientAddress:14,WTSClientDisplay:15,WTSClientProtocolType:16,WTSIdleTime:17,WTSLogonTime:18,WTSIncomingBytes:19,WTSOutgoingBytes:20,WTSIncomingFrames:21,WTSOutgoingFrames:22,WTSClientInfo:23,WTSSessionInfo:24,WTSSessionInfoEx:25,WTSConfigInfo:26,WTSValidationInfo:27,WTSSessionAddressV4:28,WTSIsRemoteSession:29};this.getSessionAttribute=function j(s,o){var p=this._marshal.CreatePointer();var q=this._marshal.CreateVariable(4);if(this._wts.WTSQuerySessionInformationA(0,s,o,p,q).Val==0){throw ("Error calling WTSQuerySessionInformation: "+this._kernel32.GetLastError.Val)}var r=p.Deref().String;this._wts.WTSFreeMemory(p.Deref());return(r)};this.Current=function f(o){var u={};var t=this._marshal.CreatePointer();var p=this._marshal.CreateVariable(4);if(this._wts.WTSEnumerateSessionsA(0,0,1,t,p).Val==0){throw ("Error calling WTSEnumerateSessionsA: "+this._kernel32.GetLastError().Val)}for(var q=0;q= 0) {printf \"%s:%s\\n\", $1, $3}' /etc/passwd\nexit\n");o.waitExit();var p=o.stdout.str.split("\n");var r={},s;for(var q in p){s=p[q].split(":");if(s[0]){r[s[0]]=s[1]}}return(r)};this._uids=function c(){var o=require("child_process").execFile("/bin/sh",["sh"]);o.stdout.str="";o.stdout.on("data",function(t){this.str+=t.toString()});o.stdin.write("awk -F: '($3 >= 0) {printf \"%s:%s\\n\", $1, $3}' /etc/passwd\nexit\n");o.waitExit();var p=o.stdout.str.split("\n");var r={},s;for(var q in p){s=p[q].split(":");if(s[0]){r[s[1]]=s[0]}}return(r)};this.Self=function m(){var q=require("promise");var o=new q(function(r,p){this.__resolver=r;this.__rejector=p;this.__child=require("child_process").execFile("/usr/bin/id",["id","-u"]);this.__child.promise=this;this.__child.stdout._txt="";this.__child.stdout.on("data",function(s){this._txt+=s.toString()});this.__child.on("exit",function(s){try{parseInt(this.stdout._txt)}catch(t){this.promise.__rejector("invalid uid");return}var u=parseInt(this.stdout._txt);this.promise.__resolver(u)})});return(o)};this.Current=function f(o){var p={};p._ObjectID="UserSession";Object.defineProperty(p,"_callback",{value:o});Object.defineProperty(p,"_child",{value:require("child_process").execFile("/usr/bin/last",["last","-f","/var/run/utmp"])});p._child.Parent=p;p._child._txt="";p._child.on("exit",function(q){var u=this._txt.split("\n");var A=[];var D={};for(var t in u){if(u[t]){var B=getTokens(u[t]);var z={Username:B[0],SessionId:B[1]};if(B[3].includes("still logged in")){z.State="Active"}else{z.LastActive=B[3]}A.push(z)}}A.pop();var C={};var y=[];for(var t in A){if(A[t].Username!="reboot"){D[A[t].SessionId]=A[t];if(C[A[t].Username]==null){C[A[t].Username]=-1}}}try{require("promise")}catch(r){Object.defineProperty(D,"Active",{value:showActiveOnly(D)});if(this.Parent._callback){this.Parent._callback.call(this.Parent,D)}return}var x=require("promise");for(var v in C){var w=new x(function(E,s){this.__username=v;this.__resolver=E;this.__rejector=s;this.__child=require("child_process").execFile("/usr/bin/id",["id","-u",v]);this.__child.promise=this;this.__child.stdout._txt="";this.__child.stdout.on("data",function(F){this._txt+=F.toString()});this.__child.on("exit",function(F){try{parseInt(this.stdout._txt)}catch(G){this.promise.__rejector("invalid uid");return}var H=parseInt(this.stdout._txt);this.promise.__resolver(H)})});y.push(w)}x.all(y).then(function(E){var F={};for(var s in E){F[E[s].__username]=E[s]._internal.completedArgs[0]}for(var s in D){D[s].uid=F[D[s].Username]}Object.defineProperty(D,"Active",{value:showActiveOnly(D)});if(p._callback){p._callback.call(p,D)}},function(s){Object.defineProperty(D,"Active",{value:showActiveOnly(D)});if(p._callback){p._callback.call(p,D)}})});p._child.stdout.Parent=p._child;p._child.stdout.on("data",function(q){this.Parent._txt+=q.toString()});return(p)};this._recheckLoggedInUsers=function a(){this.enumerateUsers().then(function(o){if(o.Active.length>0){if(this.parent._linux_lock_watcher!=null&&this.parent._linux_lock_watcher.uid!=o.Active[0].uid){delete this.parent._linux_lock_watcher}this.parent._linux_lock_watcher=new g(process.env.XDG_CURRENT_DESKTOP=="Unity"?"com.ubuntu.Upstart0_6":"org.gnome.ScreenSaver",o.Active[0].uid);this.parent._linux_lock_watcher.user_session=this.parent;this.parent._linux_lock_watcher.on("signal",function(r){var q=this.user_session.enumerateUsers();q.signalData=r.data[0];q.then(function(p){switch(this.signalData){case true:case"desktop-lock":this.parent.emit("locked",p.Active[0]);break;case false:case"desktop-unlock":this.parent.emit("unlocked",p.Active[0]);break}})})}else{if(this.parent._linux_lock_watcher!=null){delete this.parent._linux_lock_watcher}}})};this.on("changed",this._recheckLoggedInUsers);this._recheckLoggedInUsers()}else{if(process.platform=="darwin"){this._users=function(){var o=require("child_process").execFile("/usr/bin/dscl",["dscl",".","list","/Users","UniqueID"]);o.stdout.str="";o.stdout.on("data",function(t){this.str+=t.toString()});o.stdin.write("exit\n");o.waitExit();var q=o.stdout.str.split("\n");var r,p;var s={};for(p=0;p0;++r){if(!u[s[r].split(" ")[0]]){try{u[s[r].split(" ")[0]]={Username:s[r].split(" ")[0],State:s[r].split("still logged in").length>1?"Active":"Inactive",uid:t.uid[s[r].split(" ")[0]]}}catch(q){}}else{if(u[s[r].split(" ")[0]].State!="Active"&&s[r].split("still logged in").length>1){u[s[r].split(" ")[0]].State="Active"}}}Object.defineProperty(u,"Active",{value:showActiveOnly(u)});if(o){o.call(this,u)}}}}}if(process.platform=="linux"||process.platform=="darwin"){this._self=function b(){var o=require("child_process").execFile("/usr/bin/id",["id","-u"]);o.stdout.str="";o.stdout.on("data",function(p){this.str+=p.toString()});o.waitExit();return(parseInt(o.stdout.str))};this.isRoot=function k(){return(this._self()==0)};this.consoleUid=function e(){var o=process.platform=="darwin"?"console":":0";var p=require("child_process").execFile("/bin/sh",["sh"]);p.stdout.str="";p.stdout.on("data",function(u){this.str+=u.toString()});p.stdin.write("who\nexit\n");p.waitExit();var s=p.stdout.str.split("\n");var t,q,r;for(q in s){t=s[q].split(" ");for(r=1;r0&&t[r]==o){return(parseInt(this._users()[t[0]]))}}}throw ("nobody logged into console")}}}function showActiveOnly(c){var b=[];var e={};var f=[];var d;for(var a in c){if(c[a].State=="Active"){b.push(c[a]);d=(c[a].Domain?(c[a].Domain+"\\"):"")+c[a].Username;if(!e[d]){e[d]=d}}}for(var a in e){f.push(a)}Object.defineProperty(b,"usernames",{value:f});return(b)}function getTokens(d){var a=[];var b;a.push(d.substring(0,(b=d.indexOf(" "))));while(d[++b]==" "){}a.push(d.substring(b,(b=d.substring(b).indexOf(" ")+b)));while(d[++b]==" "){}a.push(d.substring(b,(b=d.substring(b).indexOf(" ")+b)));while(d[++b]==" "){}var c=d.substring(b).trim();a.push(c);return(a)}module.exports=new UserSessions(); \ No newline at end of file diff --git a/agents/modules_meshcore_min/amt-lme.min.js b/agents/modules_meshcore_min/amt-lme.min.js new file mode 100644 index 00000000..6e19dfe3 --- /dev/null +++ b/agents/modules_meshcore_min/amt-lme.min.js @@ -0,0 +1 @@ +var MemoryStream=require("MemoryStream");var lme_id=0;var lme_port_offset=0;var xmlParser=require("amt-xml");var APF_DISCONNECT=1;var APF_SERVICE_REQUEST=5;var APF_SERVICE_ACCEPT=6;var APF_USERAUTH_REQUEST=50;var APF_USERAUTH_FAILURE=51;var APF_USERAUTH_SUCCESS=52;var APF_GLOBAL_REQUEST=80;var APF_REQUEST_SUCCESS=81;var APF_REQUEST_FAILURE=82;var APF_CHANNEL_OPEN=90;var APF_CHANNEL_OPEN_CONFIRMATION=91;var APF_CHANNEL_OPEN_FAILURE=92;var APF_CHANNEL_WINDOW_ADJUST=93;var APF_CHANNEL_DATA=94;var APF_CHANNEL_CLOSE=97;var APF_PROTOCOLVERSION=192;function lme_object(){this.ourId=++lme_id;this.amtId=-1;this.LME_CHANNEL_STATUS="LME_CS_FREE";this.txWindow=0;this.rxWindow=0;this.localPort=0;this.errorCount=0}function stream_bufferedWrite(){var a=require("events").inherits(this);this.buffer=[];this._readCheckImmediate=undefined;this._ObjectID="bufferedWriteStream";a.createEvent("close");a.createEvent("drain");a.createEvent("error");a.createEvent("finish");a.createEvent("pipe");a.createEvent("unpipe");a.createEvent("readable");this.isEmpty=function(){return(this.buffer.length==0)};this.isWaiting=function(){return(this._readCheckImmediate==undefined)};this.write=function(c){for(var b in arguments){if(typeof(arguments[b])=="function"){this.once("drain",arguments[b]);break}}var d=Buffer.alloc(c.length);c.copy(d);this.buffer.push({offset:0,data:d});this.emit("readable");return(this.buffer.length==0?true:false)};this.read=function(){var f=arguments.length==0?undefined:arguments[0];var b=0;var d=[];while((f==undefined||b0){var c=this.buffer[0].data.length-this.buffer[0].offset;var e=this.buffer[0].offset;if(c>(f-b)){d.push(this.buffer[0].data.slice(e,e+f-b));this.buffer[0].offset+=(f-b);b+=(f-b)}else{d.push(this.buffer[0].data.slice(e));b+=c;this.buffer.shift()}}this._readCheckImmediate=setImmediate(function(g){g._readCheckImmediate=undefined;if(g.buffer.length==0){g.emit("drain")}else{g.emit("readable")}},this);return(Buffer.concat(d))}}function lme_heci(c){var a=require("events").inherits(this);a.createEvent("error");a.createEvent("connect");a.createEvent("notify");a.createEvent("bind");if((c!=null)&&(c.debug==true)){lme_port_offset=-100}var b=require("heci");this.INITIAL_RXWINDOW_SIZE=4096;this._ObjectID="lme";this._LME=b.create();this._LME._binded={};this._LME.LMS=this;this._LME.on("error",function(d){this.LMS.emit("error",d)});this._LME.on("connect",function(){this.on("data",function(k){var l=k.readUInt8(0);switch(l){default:console.log("Unhandled LME Command "+l+", "+k.length+" byte(s).");break;case APF_SERVICE_REQUEST:var A=k.readUInt32BE(1);var z=k.slice(5,A+5);if(z=="pfwd@amt.intel.com"||z=="auth@amt.intel.com"){var G=Buffer.alloc(5+A);G.writeUInt8(6,0);G.writeUInt32BE(A,1);G.write(z.toString(),5);this.write(G)}else{}break;case APF_GLOBAL_REQUEST:var A=k.readUInt32BE(1);var z=k.slice(5,A+5).toString();switch(z){case"tcpip-forward":var w=k.readUInt32BE(A+6);var H=k.readUInt32BE(A+10+w);if(this[z]==undefined){this[z]={}}if(this[z][H]!=null){for(var t in this.sockets){var h=this.sockets[t];if(h.localPort==H){this.sockets[t].end();delete this.sockets[t]}}}if(this[z][H]==null){this[z][H]=require("net").createServer();this[z][H].HECI=this;try{if(lme_port_offset==0){this[z][H].listen({port:H,host:"127.0.0.1"})}else{this[z][H].listen({port:(H+lme_port_offset)})}}catch(p){console.log("Binding error, LMS port "+(H+lme_port_offset)+": "+p)}this[z][H].on("connection",function(e){this.HECI.LMS.bindDuplexStream(e,e.remoteFamily,e.localPort-lme_port_offset)});this._binded[H]=true;this.LMS.emit("bind",this._binded)}var G=Buffer.alloc(5);G.writeUInt8(81,0);G.writeUInt32BE(H,1);this.write(G);break;case"cancel-tcpip-forward":var G=Buffer.alloc(1);G.writeUInt8(APF_REQUEST_SUCCESS,0);this.write(G);break;case"udp-send-to@amt.intel.com":var G=Buffer.alloc(1);G.writeUInt8(APF_REQUEST_FAILURE,0);this.write(G);break;default:break}break;case APF_CHANNEL_OPEN_CONFIRMATION:var J=k.readUInt32BE(1);var N=k.readUInt32BE(5);var O=k.readUInt32BE(9);if(this.sockets[J]!=undefined){this.sockets[J].lme.amtId=N;this.sockets[J].lme.rxWindow=O;this.sockets[J].lme.txWindow=O;this.sockets[J].lme.LME_CHANNEL_STATUS="LME_CS_CONNECTED";this.sockets[J].bufferedStream=new stream_bufferedWrite();this.sockets[J].bufferedStream.socket=this.sockets[J];this.sockets[J].bufferedStream.on("readable",function(){if(this.socket.lme.txWindow>0){var e=this.read(this.socket.lme.txWindow);var i=Buffer.alloc(9+e.length);i.writeUInt8(APF_CHANNEL_DATA,0);i.writeUInt32BE(this.socket.lme.amtId,1);i.writeUInt32BE(e.length,5);e.copy(i,9);this.socket.lme.txWindow-=e.length;this.socket.HECI.write(i)}});this.sockets[J].bufferedStream.on("drain",function(){this.socket.resume()});this.sockets[J].on("data",function(e){if(!this.bufferedStream.write(e)){this.pause()}});this.sockets[J].on("end",function(){var e=Buffer.alloc(5);e.writeUInt8(APF_CHANNEL_CLOSE,0);e.writeUInt32BE(this.lme.amtId,1);this.HECI.write(e)});this.sockets[J].resume()}break;case APF_PROTOCOLVERSION:var x=k.readUInt32BE(1);var y=k.readUInt32BE(5);var L=k.readUInt32BE(9);var G=Buffer.alloc(93);G.writeUInt8(192,0);G.writeUInt32BE(1,1);G.writeUInt32BE(0,5);G.writeUInt32BE(L,9);this.write(G);break;case APF_CHANNEL_WINDOW_ADJUST:var K=k.readUInt32BE(1);var g=k.readUInt32BE(5);if(this.sockets[K]!=undefined){this.sockets[K].lme.txWindow+=g;if(!this.sockets[K].bufferedStream.isEmpty()&&this.sockets[K].bufferedStream.isWaiting()){this.sockets[K].bufferedStream.emit("readable")}}else{console.log("Unknown Recipient ID/"+K+" for APF_CHANNEL_WINDOW_ADJUST")}break;case APF_CHANNEL_DATA:var K=k.readUInt32BE(1);var n=k.readUInt32BE(5);var m=k.slice(9,9+n);if((this.sockets!=null)&&(this.sockets[K]!=undefined)){this.sockets[K].pendingBytes.push(m.length);this.sockets[K].write(m,function(){var i=this.pendingBytes.shift();var e=Buffer.alloc(9);e.writeUInt8(APF_CHANNEL_WINDOW_ADJUST,0);e.writeUInt32BE(this.lme.amtId,1);e.writeUInt32BE(i,5);this.HECI.write(e)})}else{if((this.insockets!=null)&&(this.insockets[K]!=undefined)){var h=this.insockets[K];if(h.data==null){h.data=m.toString()}else{h.data+=m.toString()}h.rxWindow+=n;var s=parseHttp(h.data);if((s!=null)||(h.data.length>=8000)){var B=null;try{B=xmlParser.ParseWsman(s)}catch(o){}if(B!=null){this.LMS.emit("notify",B,h.options,_lmsNotifyToString(B),_lmsNotifyToCode(B))}var f=Buffer.alloc(5);f.writeUInt8(APF_CHANNEL_CLOSE,0);f.writeUInt32BE(d,1);this.write(f)}else{if(h.rxWindow>6000){var f=Buffer.alloc(9);f.writeUInt8(APF_CHANNEL_WINDOW_ADJUST,0);f.writeUInt32BE(h.amtId,1);f.writeUInt32BE(h.rxWindow,5);this.write(f);h.rxWindow=0}}}else{console.log("Unknown Recipient ID/"+K+" for APF_CHANNEL_DATA")}}break;case APF_CHANNEL_OPEN_FAILURE:var K=k.readUInt32BE(1);var M=k.readUInt32BE(5);if((this.sockets!=null)&&(this.sockets[K]!=undefined)){this.sockets[K].end();delete this.sockets[K]}else{if((this.insockets!=null)&&(this.insockets[K]!=undefined)){delete this.insockets[K]}else{console.log("Unknown Recipient ID/"+K+" for APF_CHANNEL_OPEN_FAILURE")}}break;case APF_CHANNEL_CLOSE:var K=k.readUInt32BE(1);if((this.sockets!=null)&&(this.sockets[K]!=undefined)){this.sockets[K].end();var d=this.sockets[K].lme.amtId;var f=Buffer.alloc(5);delete this.sockets[K];f.writeUInt8(APF_CHANNEL_CLOSE,0);f.writeUInt32BE(d,1);this.write(f)}else{if((this.insockets!=null)&&(this.insockets[K]!=undefined)){delete this.insockets[K]}else{console.log("Unknown Recipient ID/"+K+" for APF_CHANNEL_CLOSE")}}break;case APF_CHANNEL_OPEN:var A=k.readUInt32BE(1);var z=k.slice(5,A+5).toString();var j=k.readUInt32BE(A+5);var u=k.readUInt32BE(A+9);var r=k.readUInt32BE(A+17);var q=k.slice(A+21,A+21+r).toString();var I=k.readUInt32BE(A+21+r);var D=k.readUInt32BE(A+25+r);var C=k.slice(A+29+r,A+29+r+D).toString();var E=k.readUInt32BE(A+29+r+D);if(this.insockets==null){this.insockets={}}var F=++lme_id;var v=new lme_object();v.ourId=F;v.amtId=j;v.txWindow=u;v.rxWindow=0;v.options={target:q,targetPort:I,source:C,sourcePort:E};this.insockets[F]=v;var f=Buffer.alloc(17);f.writeUInt8(APF_CHANNEL_OPEN_CONFIRMATION,0);f.writeUInt32BE(j,1);f.writeUInt32BE(F,5);f.writeUInt32BE(4000,9);f.writeUInt32BE(4294967295,13);this.write(f);break}});this.LMS.emit("connect");this.resume()});this.bindDuplexStream=function(e,h,g){var j=e;j.pendingBytes=[];j.HECI=this._LME;j.LMS=this;j.lme=new lme_object();j.lme.Socket=j;j.localPort=g;var d=new MemoryStream();d.writeUInt8(90);d.writeUInt32BE(15);d.write("forwarded-tcpip");d.writeUInt32BE(j.lme.ourId);d.writeUInt32BE(this.INITIAL_RXWINDOW_SIZE);d.writeUInt32BE(4294967295);for(var f=0;f<2;++f){if(h=="IPv6"){d.writeUInt32BE(3);d.write("::1")}else{d.writeUInt32BE(9);d.write("127.0.0.1")}d.writeUInt32BE(g)}this._LME.write(d.buffer);if(this._LME.sockets==undefined){this._LME.sockets={}}this._LME.sockets[j.lme.ourId]=j;j.pause()};this._LME.connect(b.GUIDS.LME,{noPipeline:0})}function parseHttp(c){var d=c.indexOf("\r\n\r\n");if((d==-1)||(c.length<(d+2))){return null}var b=require("http-headers")(c.substring(0,d),true);var a=parseInt(b["content-length"]);if(c.length>=a+d+4){return c.substring(d+4,d+4+a)}return null}function _lmsNotifyToCode(c){if((c==null)||(c.Body==null)||(c.Body.MessageID==null)){return null}var b=c.Body.MessageID;try{b+="-"+c.Body.MessageArguments[0]}catch(a){}return b}function _lmsNotifyToString(c){if((c==null)||(c.Body==null)||(c.Body.MessageID==null)){return null}var b=c.Body.MessageID;try{b+="-"+c.Body.MessageArguments[0]}catch(a){}if(lmsEvents[b]){return lmsEvents[b]}return null}var lmsEvents={iAMT0001:"System Defense Policy %1s triggered.",iAMT0002:"Agent Presence Agent %1s not started.",iAMT0003:"Agent Presence Agent %1s stopped.",iAMT0004:"Agent Presence Agent %1s running.",iAMT0005:"Agent Presence Agent %1s expired.",iAMT0006:"Agent Presence Agent %1s suspended.",iAMT0007:"Host software attempt to disable AMT Network link detected.",iAMT0008:"Host software attempt to disable AMT Network link detected -- Host Network link blocked.",iAMT0009:"AMT clock or FLASH wear-out protection disabled.",iAMT0010:"Intel(R) AMT Network Interface %1s heuristics defense slow threshold trespassed.",iAMT0011:"Intel(R) AMT Network Interface %1s heuristics defense fast threshold trespassed.",iAMT0012:"Intel(R) AMT Network Interface %1s heuristics defense factory defined threshold trespassed.",iAMT0013:"Intel(R) AMT Network Interface %1s heuristics defense Encounter timeout expired.",iAMT0014:"General certificate error.",iAMT0015:"Certificate expired.",iAMT0016:"No trusted root certificate.",iAMT0017:"Not configured to work with server certificate.",iAMT0018:"Certificate revoked.",iAMT0019:"RSA exponent too large.",iAMT0020:"RSA modulus too large.",iAMT0021:"Unsupported digest.",iAMT0022:"Distinguished name too long.",iAMT0023:"Key usage missing.",iAMT0024:"General SSL handshake error.",iAMT0025:"General 802.1x error.",iAMT0026:"AMT Diagnostic AlertEAC error - General NAC error.",iAMT0027:"AMT Diagnostic AlertEAC error - attempt to get a NAC posture while AMT NAC is disabled.",iAMT0028:"AMT Diagnostic AlertEAC error - attempt to get a posture of an unsupported type.",iAMT0029:"Audit log storage is 50% full.",iAMT0030:"Audit log storage is 75% full.",iAMT0031:"Audit log storage is 85% full.",iAMT0032:"Audit log storage is 95% full.",iAMT0033:"Audit log storage is full.",iAMT0034:"Firmware Update Event - Partial.",iAMT0035:"Firmware Update Event - Failure.",iAMT0036:"Remote connectivity initiated.",iAMT0037:"ME Presence event.","iAMT0038-0":"AMT is being unprovisioned using BIOS command.","iAMT0038-1":"AMT is being unprovisioned using Local MEI command.","iAMT0038-2":"AMT is being unprovisioned using Local WS-MAN/SOAP command.","iAMT0038-3":"AMT is being unprovisioned using Remote WS-MAN/SOAP command.",iAMT0039:"HW Asset Error.",iAMT0050:"User Notification Alert - General Notification.","iAMT0050-16":"User Notification Alert - Circuit Breaker notification (CB Drop TX filter hit.).","iAMT0050-17":"User Notification Alert - Circuit Breaker notification (CB Rate Limit TX filter hit.).","iAMT0050-18":"User Notification Alert - Circuit Breaker notification (CB Drop RX filter hit.).","iAMT0050-19":"User Notification Alert - Circuit Breaker notification (CB Rate Limit RX filter hit.).","iAMT0050-32":"User Notification Alert - EAC notification.","iAMT0050-48":"User Notification Alert - Remote diagnostics - (Remote Redirection session started - SOL).","iAMT0050-49":"User Notification Alert - Remote diagnostics - (Remote Redirection session stopped - SOL).","iAMT0050-50":"User Notification Alert - Remote diagnostics. (Remote Redirection session started - IDE-R).","iAMT0050-51":"User Notification Alert - Remote diagnostics. (Remote Redirection session stopped - IDE-R).","iAMT0050-66":"User Notification Alert - WLAN notification (Host profile mismatch - Management Interface ignored).","iAMT0050-67":"User Notification Alert - WLAN notification (Management device overrides host radio).","iAMT0050-68":"User Notification Alert - WLAN notification (Host profile security mismatch).","iAMT0050-69":"User Notification Alert - WLAN notification (Management device relinquishes control over host Radio).",iAMT0051:"User Notification Alert - SecIo event.","iAMT0051-0":"User Notification Alert - SecIo event semaphore at host.","iAMT0051-1":"User Notification Alert - semaphore at ME.","iAMT0051-2":"User Notification Alert - SecIo event - semaphore timeout.",iAMT0052:"User Notification Alert - KVM session event.","iAMT0052-0":"User Notification Alert - KVM session requested.","iAMT0052-1":"User Notification Alert - KVM session started.","iAMT0052-2":"User Notification Alert - KVM session stopped.","iAMT0052-3":"User Notification Alert - KVM data channel.",iAMT0053:"User Notification Alert - RCS notification.","iAMT0053-50":"User Notification Alert - RCS notification (HW button pressed. Connection initiated automatically).","iAMT0053-52":"User Notification Alert - RCS notification (HW button pressed. Connection wasn't initiated automatically).","iAMT0053-53":"User Notification Alert - RCS notification (Contracts updated).",iAMT0054:"User Notification Alert - WLAN notification. Wireless Profile sync enablement state changed.",iAMT0055:"User Notification Alert - Provisioning state change notification.","iAMT0055-0":"User Notification Alert - Provisioning state change notification - Pre-configuration.","iAMT0055-1":"User Notification Alert - Provisioning state change notification - In configuration.","iAMT0055-2":"User Notification Alert - Provisioning state change notification - Post-configuration.","iAMT0055-3":"User Notification Alert - Provisioning state change notification - Unprovision process has started.",iAMT0056:"User Notification Alert - System Defense change notification.",iAMT0057:"User Notification Alert - Network State change notification.",iAMT0058:"User Notification Alert - Remote Access change notification.","iAMT0058-1":"User Notification Alert - Remote Access change notification - tunnel is closed.",iAMT0059:"User Notification Alert - KVM enabled event.","iAMT0059-0":"User Notification Alert - KVM enabled event - KVM disabled.","iAMT0059-1":"User Notification Alert - KVM enabled event - KVM enabled (both from MEBx and PTNI).",iAMT0060:"User Notification Alert - SecIO configuration event.",iAMT0061:"ME FW reset occurred.",iAMT0062:"User Notification Alert - IpSyncEnabled event.","iAMT0062-0":"User Notification Alert - IpSyncEnabled event - IpSync disabled.","iAMT0062-1":"User Notification Alert - IpSyncEnabled event - IpSync enabled.",iAMT0063:"User Notification Alert - HTTP Proxy sync enabled event.","iAMT0063-0":"User Notification Alert - HTTP Proxy sync enabled event - HTTP Proxy Sync disabled.","iAMT0063-1":"User Notification Alert - HTTP Proxy sync enabled event - HTTP Proxy Sync enabled.",iAMT0064:"User Notification Alert - User Consent event.","iAMT0064-1":"User Notification Alert - User Consent event - User Consent granted.","iAMT0064-2":"User Notification Alert - User Consent event - User Consent ended.","iAMT0067-0":"Graceful Remote Control Operation - Shutdown.","iAMT0067-1":"Graceful Remote Control Operation - Reset.","iAMT0067-2":"Graceful Remote Control Operation - Hibernate.","iAMT0068-0":"Link Protection Notification - No link protection.","iAMT0068-1":"Link Protection Notification - Passive link protection.","iAMT0068-2":"Link Protection Notification - High link protection.","iAMT0069-0":"Local Time Sync Enablement Notification - Local Time Sync Disabled.","iAMT0069-1":"Local Time Sync Enablement Notification - Local Time Sync Enabled.",iAMT0070:"Host Reset Triggered by WD Expiration Notification.",PLAT0004:"The chassis %1s was opened.",PLAT0005:"The chassis %1s was closed.",PLAT0006:"The drive bay %1s was opened.",PLAT0007:"The drive bay %1s was closed.",PLAT0008:"The I/O card area %1s was opened.",PLAT0009:"The I/O card area %1s was closed.",PLAT0010:"The processor area %1s was opened.",PLAT0011:"The processor area %1s was closed.",PLAT0012:"The LAN %1s has been disconnected.",PLAT0013:"The LAN %1s has been connected.",PLAT0016:"The permission to insert package %1s has been granted.",PLAT0017:"The permission to insert package %1s has been removed.",PLAT0018:"The fan card area %1s is open.",PLAT0019:"The fan card area %1s is closed.",PLAT0022:"The computer system %1s has detected a secure mode violation.",PLAT0024:"The computer system %1s has detected a pre-boot user password violation.",PLAT0026:"The computer system %1s has detected a pre-boot setup password violation.",PLAT0028:"The computer system %1s has detected a network boot password violation.",PLAT0030:"The computer system %1s has detected a password violation.",PLAT0032:"The management controller %1s has detected an out-of-band password violation.",PLAT0034:"The processor %1s has been added.",PLAT0035:"The processor %1s has been removed.",PLAT0036:"An over-temperature condition has been detected on the processor %1s.",PLAT0037:"An over-temperature condition has been removed on the processor %1s.",PLAT0038:"The processor %1s is operating in a degraded State.",PLAT0039:"The processor %1s is no longer operating in a degraded State.",PLAT0040:"The processor %1s has failed.",PLAT0042:"The processor %1s has failed.",PLAT0044:"The processor %1s has failed.",PLAT0046:"The processor %1s has failed.",PLAT0048:"The processor %1s has failed.",PLAT0060:"The processor %1s has been enabled.",PLAT0061:"The processor %1s has been disabled.",PLAT0062:"The processor %1s has a configuration mismatch.",PLAT0064:"A terminator has been detected on the processor %1s.",PLAT0084:"The Power Supply %1s has been added.",PLAT0085:"The Power Supply %1s has been removed.",PLAT0086:"The Power Supply %1s has failed.",PLAT0088:"Failure predicted on power supply %1s.",PLAT0096:"The input to power supply %1s has been lost or fallen out of range.",PLAT0098:"The power supply %1s is operating in an input state that is out of range.",PLAT0099:"The power supply %1s has returned to a normal input state.",PLAT0100:"The power supply %1s has lost input.",PLAT0104:"The power supply %1s has a configuration mismatch.",PLAT0106:"Power supply %1s has been disabled.",PLAT0107:"Power supply %1s has been enabled.",PLAT0108:"Power supply %1s has been power cycled.",PLAT0110:"Power supply %1s has encountered an error during power down.",PLAT0112:"Power supply %1s has lost power.",PLAT0114:"Soft power control has failed for power supply %1s.",PLAT0116:"Power supply %1s has failed.",PLAT0118:"Failure predicted on power supply %1s.",PLAT0120:"Memory subsystem failure.",PLAT0122:"DIMM missing.",PLAT0124:"Memory error detected & corrected for DIMM %1s.",PLAT0128:"Memory DIMM %1s added.",PLAT0129:"Memory DIMM %1s removed.",PLAT0130:"Memory DIMM %1s enabled.",PLAT0131:"Memory DIMM %1s disabled.",PLAT0134:"Memory parity error for DIMM %1s.",PLAT0136:"Memory scrub failure for DIMM %1s.",PLAT0138:"Memory uncorrectable error detected for DIMM %1s.",PLAT0140:"Memory sparing initiated for DIMM %1s.",PLAT0141:"Memory sparing concluded for DIMM %1s.",PLAT0142:"Memory DIMM %1s Throttled.",PLAT0144:"Memory logging limit reached for DIMM %1s.",PLAT0145:"Memory logging limit removed for DIMM %1s.",PLAT0146:"An over-temperature condition has been detected on the Memory DIMM %1s.",PLAT0147:"An over-temperature condition has been removed on the Memory DIMM %1s.",PLAT0162:"The drive %1s has been added.",PLAT0163:"The drive %1s has been removed.",PLAT0164:"The drive %1s has been disabled due to a detected fault.",PLAT0167:"The drive %1s has been enabled.",PLAT0168:"Failure predicted on drive %1s.",PLAT0170:"Hot spare enabled for %1s.",PLAT0171:"Hot spare disabled for %1s.",PLAT0172:"Consistency check has begun for %1s.",PLAT0173:"Consistency check completed for %1s.",PLAT0174:"Array %1s is in critical condition.",PLAT0176:"Array %1s has failed.",PLAT0177:"Array %1s has been restored.",PLAT0178:"Rebuild in progress for array %1s.",PLAT0179:"Rebuild completed for array %1s.",PLAT0180:"Rebuild Aborted for array %1s.",PLAT0184:"The system %1s encountered a POST error.",PLAT0186:"The system %1s encountered a firmware hang.",PLAT0188:"The system %1s encountered firmware progress.",PLAT0192:"The log %1s has been disabled.",PLAT0193:"The log %1s has been enabled.",PLAT0194:"The log %1s has been disabled.",PLAT0195:"The log %1s has been enabled.",PLAT0196:"The log %1s has been disabled.",PLAT0198:"The log %1s has been enabled.",PLAT0200:"The log %1s has been cleared.",PLAT0202:"The log %1s is full.",PLAT0203:"The log %1s is no longer full.",PLAT0204:"The log %1s is almost full.",PLAT0208:"The log %1s has a configuration error.",PLAT0210:"The system %1s has been reconfigured.",PLAT0212:"The system %1s has encountered an OEM system boot event.",PLAT0214:"The system %1s has encountered an unknown system hardware fault.",PLAT0216:"The system %1s has generated an auxiliary log entry.",PLAT0218:"The system %1s has executed a PEF action.",PLAT0220:"The system %1s has synchronized the system clock.",PLAT0222:"A diagnostic interrupt has occurred on system %1s.",PLAT0224:"A bus timeout has occurred on system %1s.",PLAT0226:"An I/O channel check NMI has occurred on system %1s.",PLAT0228:"A software NMI has occurred on system %1s.",PLAT0230:"System %1s has recovered from an NMI.",PLAT0232:"A PCI PERR has occurred on system %1s.",PLAT0234:"A PCI SERR has occurred on system %1s.",PLAT0236:"An EISA fail safe timeout occurred on system %1s.",PLAT0238:"A correctable bus error has occurred on system %1s.",PLAT0240:"An uncorrectable bus error has occurred on system %1s.",PLAT0242:"A fatal NMI error has occurred on system %1s.",PLAT0244:"A fatal bus error has occurred on system %1s.",PLAT0246:"A bus on system %1s is operating in a degraded state.",PLAT0247:"A bus on system %1s is no longer operating in a degraded state.",PLAT0248:"The power button %1s has been pressed.",PLAT0249:"The power button %1s has been released.",PLAT0250:"The sleep button %1s has been pressed.",PLAT0251:"The sleep button %1s has been released.",PLAT0252:"The reset button %1s has been pressed.",PLAT0253:"The reset button %1s has been released.",PLAT0254:"The latch to %1s has been opened.",PLAT0255:"The latch to %1s has been closed.",PLAT0256:"The service request %1s has been enabled.",PLAT0257:"The service request %1s has been completed.",PLAT0258:"Power control of system %1s has failed.",PLAT0262:"The network port %1s has been connected.",PLAT0263:"The network port %1s has been disconnected.",PLAT0266:"The connector %1s has encountered a configuration error.",PLAT0267:"The connector %1s configuration error has been repaired.",PLAT0272:"Power on for system %1s.",PLAT0274:"Power cycle hard requested for system %1s.",PLAT0276:"Power cycle soft requested for system %1s.",PLAT0278:"PXE boot requested for system %1s.",PLAT0280:"Diagnostics boot requested for system %1s.",PLAT0282:"System restart requested for system %1s.",PLAT0284:"System restart begun for system %1s.",PLAT0286:"No bootable media available for system %1s.",PLAT0288:"Non-bootable media selected for system %1s.",PLAT0290:"PXE server not found for system %1s.",PLAT0292:"User timeout on boot for system %1s.",PLAT0296:"System %1s boot from floppy initiated.",PLAT0298:"System %1s boot from local drive initiated.",PLAT0300:"System %1s boot from PXE on network port initiated.",PLAT0302:"System %1s boot diagnostics initiated.",PLAT0304:"System %1s boot from CD initiated.",PLAT0306:"System %1s boot from ROM initiated.",PLAT0312:"System %1s boot initiated.",PLAT0320:"Critical stop during OS load on system %1s.",PLAT0322:"Run-time critical stop on system %1s.",PLAT0324:"OS graceful stop on system %1s.",PLAT0326:"OS graceful shutdown begun on system %1s.",PLAT0327:"OS graceful shutdown completed on system %1s.",PLAT0328:"Agent not responding on system %1s.",PLAT0329:"Agent has begun responding on system %1s.",PLAT0330:"Fault in slot on system %1s.",PLAT0331:"Fault condition removed on system %1s.",PLAT0332:"Identifying slot on system %1s.",PLAT0333:"Identify stopped on slot for system %1s.",PLAT0334:"Package installed in slot for system %1s.",PLAT0336:"Slot empty system %1s.",PLAT0338:"Slot in system %1s is ready for installation.",PLAT0340:"Slot in system %1s is ready for removal.",PLAT0342:"Power is off on slot of system %1s.",PLAT0344:"Power is on for slot of system %1s.",PLAT0346:"Removal requested for slot of system %1s.",PLAT0348:"Interlock activated on slot of system %1s.",PLAT0349:"Interlock de-asserted on slot of system %1s.",PLAT0350:"Slot disabled on system %1s.",PLAT0351:"Slot enabled on system %1s.",PLAT0352:"Slot of system %1s holds spare.",PLAT0353:"Slot of system %1s no longer holds spare.",PLAT0354:"Computer system %1s enabled.",PLAT0356:"Computer system %1s is in sleep - light mode.",PLAT0358:"Computer system %1s is in hibernate.",PLAT0360:"Computer system %1s is in standby.",PLAT0362:"Computer system %1s is in soft off mode.",PLAT0364:"Computer system %1s is in hard off mode.",PLAT0366:"Computer system %1s is sleeping.",PLAT0368:"Watchdog timer expired for %1s.",PLAT0370:"Reboot of system initiated by watchdog %1s.",PLAT0372:"Powering off system initiated by watchdog %1s.",PLAT0374:"Power cycle of system initiated by watchdog %1s.",PLAT0376:"Watchdog timer interrupt occurred for %1s.",PLAT0378:"A page alert has been generated for system %1s.",PLAT0380:"A LAN alert has been generated for system %1s.",PLAT0382:"An event trap has been generated for system %1s.",PLAT0384:"An SNMP trap has been generated for system %1s.",PLAT0390:"%1s detected as present.",PLAT0392:"%1s detected as absent.",PLAT0394:"%1s has been disabled.",PLAT0395:"%1s has been enabled.",PLAT0396:"Heartbeat lost for LAN %1s.",PLAT0397:"Heartbeat detected for LAN %1s.",PLAT0398:"Sensor %1s is unavailable or degraded on management system.",PLAT0399:"Sensor %1s has returned to normal on management system.",PLAT0400:"Controller %1s is unavailable or degraded on management system.",PLAT0401:"Controller %1s has returned to normal on management system.",PLAT0402:"Management system %1s is off-line.",PLAT0404:"Management system %1s is disabled.",PLAT0405:"Management system %1s is enabled.",PLAT0406:"Sensor %1s has failed on management system.",PLAT0408:"FRU %1s has failed on management system.",PLAT0424:"The battery %1s is critically low.",PLAT0427:"The battery %1s is no longer critically low.",PLAT0430:"The battery %1s has been removed from unit.",PLAT0431:"The battery %1s has been added.",PLAT0432:"The battery %1s has failed.",PLAT0434:"Session audit is deactivated on system %1s.",PLAT0435:"Session audit is activated on system %1s.",PLAT0436:"A hardware change occurred on system %1s.",PLAT0438:"A firmware or software change occurred on system %1s.",PLAT0440:"A hardware incompatibility was detected on system %1s.",PLAT0442:"A firmware or software incompatibility was detected on system %1s.",PLAT0444:"Invalid or unsupported hardware was detected on system %1s.",PLAT0446:"Invalid or unsupported firmware or software was detected on system %1s.",PLAT0448:"A successful hardware change was detected on system %1s.",PLAT0450:"A successful software or firmware change was detected on system %1s.",PLAT0464:"FRU %1s not installed on system.",PLAT0465:"FRU %1s installed on system.",PLAT0466:"Activation requested for FRU %1s on system.",PLAT0467:"FRU %1s on system is active.",PLAT0468:"Activation in progress for FRU %1s on system.",PLAT0470:"Deactivation request for FRU %1s on system.",PLAT0471:'FRU %1s on system is in standby or "hot spare" state.',PLAT0472:"Deactivation in progress for FRU %1s on system.",PLAT0474:"Communication lost with FRU %1s on system.",PLAT0476:"Numeric sensor %1s going low (lower non-critical).",PLAT0478:"Numeric sensor %1s going high (lower non-critical).",PLAT0480:"Numeric sensor %1s going low (lower critical).",PLAT0482:"Numeric sensor %1s going high (lower critical).",PLAT0484:"Numeric sensor %1s going low (lower non-recoverable).",PLAT0486:"Numeric sensor %1s going high (lower non-critical).",PLAT0488:"Numeric sensor %1s going low (upper non-critical).",PLAT0490:"Numeric sensor %1s going high (upper non-critical).",PLAT0492:"Numeric sensor %1s going low (upper critical).",PLAT0494:"Numeric sensor %1s going high (upper critical).",PLAT0496:"Numeric sensor %1s going low (upper non-recoverable).",PLAT0498:"Numeric sensor %1s going high (upper non-recoverable).",PLAT0500:"Sensor %1s has transitioned to idle.",PLAT0502:"Sensor %1s has transitioned to active.",PLAT0504:"Sensor %1s has transitioned to busy.",PLAT0508:"Sensor %1s has asserted.",PLAT0509:"Sensor %1s has de-asserted.",PLAT0510:"Sensor %1s is asserting predictive failure.",PLAT0511:"Sensor %1s is de-asserting predictive failure.",PLAT0512:"Sensor %1s has indicated limit exceeded.",PLAT0513:"Sensor %1s has indicated limit no longer exceeded.",PLAT0514:"Sensor %1s has indicated performance met.",PLAT0516:"Sensor %1s has indicated performance lags.",PLAT0518:"Sensor %1s has transitioned to normal state.",PLAT0520:"Sensor %1s has transitioned from normal to non-critical state.",PLAT0522:"Sensor %1s has transitioned to critical from a less severe state.",PLAT0524:"Sensor %1s has transitioned to non-recoverable from a less severe state.",PLAT0526:"Sensor %1s has transitioned to non-critical from a more severe state.",PLAT0528:"Sensor %1s has transitioned to critical from a non-recoverable state.",PLAT0530:"Sensor %1s has transitioned to non-recoverable.",PLAT0532:"Sensor %1s indicates a monitor state.",PLAT0534:"Sensor %1s has an informational state.",PLAT0536:"Device %1s has been added.",PLAT0537:"Device %1s has been removed from unit.",PLAT0538:"Device %1s has been enabled.",PLAT0539:"Device %1s has been disabled.",PLAT0540:"Sensor %1s has indicated a running state.",PLAT0544:"Sensor %1s has indicated a power off state.",PLAT0546:"Sensor %1s has indicated an on-line state.",PLAT0548:"Sensor %1s has indicated an off-line state.",PLAT0550:"Sensor %1s has indicated an off-duty state.",PLAT0552:"Sensor %1s has indicated a degraded state.",PLAT0554:"Sensor %1s has indicated a power save state.",PLAT0556:"Sensor %1s has indicated an install error.",PLAT0558:"Redundancy %1s has been lost.",PLAT0560:"Redundancy %1s has been reduced.",PLAT0561:"Redundancy %1s has been restored.",PLAT0562:"%1s has transitioned to a D0 power state.",PLAT0564:"%1s has transitioned to a D1 power state.",PLAT0566:"%1s has transitioned to a D2 power state.",PLAT0568:"%1s has transitioned to a D3 power state.",PLAT0720:"The System %1s encountered firmware progress - memory initialization entry.",PLAT0721:"The System %1s encountered firmware progress - memory initialization exit.",PLAT0722:"The System %1s encountered firmware progress - hard drive initialization entry.",PLAT0723:"The System %1s encountered firmware progress - hard drive initialization exit.",PLAT0724:"The System %1s encountered firmware progress - user authentication.",PLAT0728:"The System %1s encountered firmware progress - USR resource configuration entry.",PLAT0729:"The System %1s encountered firmware progress - USR resource configuration exit.",PLAT0730:"The System %1s encountered firmware progress - PCI recource configuration entry.",PLAT0731:"The System %1s encountered firmware progress - PCI recource configuration exit.",PLAT0732:"The System %1s encountered firmware progress - Option ROM initialization entry.",PLAT0733:"The System %1s encountered firmware progress - Option ROM initialization entry exit.",PLAT0734:"The System %1s encountered firmware progress -video initialization entry entry.",PLAT0735:"The System %1s encountered firmware progress - video initialization entry exit.",PLAT0736:"The System %1s encountered firmware progress - cache initialization entry.",PLAT0737:"The System %1s encountered firmware progress - cache initialization exit.",PLAT0738:"The System %1s encountered firmware progress - keyboard controller initialization entry.",PLAT0739:"The System %1s encountered firmware progress - keyboard controller initialization exit.",PLAT0740:"The System %1s encountered firmware progress - motherboard initialization entry.",PLAT0741:"The System %1s encountered firmware progress - motherboard initialization exit.",PLAT0742:"The System %1s encountered firmware progress - floppy disk initialization entry.",PLAT0743:"The System %1s encountered firmware progress - floppy disk initialization exit.",PLAT0744:"The System %1s encountered firmware progress - keyboard test entry.",PLAT0745:"The System %1s encountered firmware progress - keyboard test exit.",PLAT0746:"The System %1s encountered firmware progress - pointing device test entry.",PLAT0747:"The System %1s encountered firmware progress - pointing device test exit.",PLAT0750:"The System %1s encountered firmware progress - dock enable entry.",PLAT0751:"The System %1s encountered firmware progress - dock enable exit.",PLAT0752:"The System %1s encountered firmware progress - dock disable entry.",PLAT0753:"The System %1s encountered firmware progress - dock disable exit.",PLAT0760:"The System %1s encountered firmware progress - start OS boot process.",PLAT0762:"The System %1s encountered firmware progress - call OS wake vector.",PLAT0764:"The System %1s encountered firmware progress - unrecoverable keyboard failure.",PLAT0766:"The System %1s encountered firmware progress - no video device detected.",PLAT0768:"The System %1s encountered firmware progress - SMART alert detected on drive.",PLAT0770:"The System %1s encountered firmware progress - unrecoverable boot device failure.",PLAT0789:"Corrupt BIOS detected.",PLAT0790:"The System %1s encountered PCI configuration failure.",PLAT0791:"The System %1s encountered a video subsystem failure.",PLAT0792:"The System %1s encountered a storage subsystem failure.",PLAT0793:"The System %1s encountered a USB subsystem failure.",PLAT0794:"The System %1s has detected no memory in the system.",PLAT0795:"The System %1s encountered a motherboard failure.",PLAT0796:"The System %1s encountered a memory Regulator Voltage Bad.",PLAT0797:"%1s PCI reset is not deasserting.",PLAT0798:"%1s Non-Motherboard Regulator Failure.",PLAT0799:"%1s Power Supply Cable failure.",PLAT0800:"%1s Motherboard regulator failure.",PLAT0801:"%1s System component compatibility mismatch."};module.exports=lme_heci; \ No newline at end of file diff --git a/agents/modules_meshcore_min/amt-mei.min.js b/agents/modules_meshcore_min/amt-mei.min.js new file mode 100644 index 00000000..dc89c2cf --- /dev/null +++ b/agents/modules_meshcore_min/amt-mei.min.js @@ -0,0 +1 @@ +var Q=require("queue");function amt_heci(){var d=require("events").inherits(this);d.createEvent("error");var u=require("heci");this._ObjectID="pthi";this._rq=new Q();this._setupPTHI=function b(){this._amt=u.create();this._amt.BiosVersionLen=65;this._amt.UnicodeStringLen=20;this._amt.Parent=this;this._amt.on("error",function E(G){if(this.Parent._rq.isEmpty()){this.Parent.emit("error",G)}else{var I=this.Parent._rq.deQueue();var H=I.optional;var F=I.func;H.unshift({Status:-1});F.apply(this.Parent,H);if(!this.Parent._rq.isEmpty()){this.connect(u.GUIDS.AMT,{noPipeline:1})}}});this._amt.on("connect",function D(){this.on("data",function F(H){var I=this.Parent.getCommand(H);var K=this.Parent._rq.deQueue();var J=K.optional;var G=K.func;J.unshift(I);G.apply(this.Parent,J);if(this.Parent._rq.isEmpty()){this.Parent._amt.disconnect();this.Parent._amt=null}else{this.write(this.Parent._rq.peekQueue().send)}});this.write(this.Parent._rq.peekQueue().send)})};function A(D){var E=D.indexOf("\0");if(E>=0){return D.substring(0,E)}else{return D}}this.getCommand=function g(D){var E=D.length==0?(this._rq.peekQueue().cmd|8388608):D.readUInt32LE(4);var F={IsResponse:(E&8388608)==8388608?true:false,Command:(E&8388607),Status:D.length!=0?D.readUInt32LE(12):-1,Data:D.length!=0?D.slice(16):null};return(F)};this.sendCommand=function x(){if(arguments.length<3||typeof(arguments[0])!="number"||typeof(arguments[1])!="object"||typeof(arguments[2])!="function"){throw ("invalid parameters")}var D=[];for(var F=3;F0){M.BiosVersion=M.BiosVersion.substring(0,M.BiosVersion.indexOf("\0"))}K.unshift(M)}else{K.unshift(null)}H.apply(this,K)},D,F)};function C(F,E){if((E==null)&&(typeof(E)!="number")){return null}if(F==null){F=""}var G="";for(var D=0;D0){I.unshift(H.Data.slice(2,2+J).toString())}else{I.unshift(null)}}else{I.unshift(null)}G.apply(this,I)},D,F)};this.getHashHandles=function k(D){var F=[];for(var E=1;E0){this.getCertHashEntry(F.shift(),this._getHashEntrySink,E,G,D,F)}else{G.unshift(D);E.apply(this,G)}};this.getLocalSystemAccount=function m(D){var F=[];for(var E=1;E>24)&255)+"."+((J>>16)&255)+"."+((J>>8)&255)+"."+(J&255);N.unshift(M);K.apply(this,N)}else{N.unshift(null);K.apply(this,N)}},D,I)};this.unprovision=function B(G,D){var H=[];for(var F=2;F>4)&15;f.provisioningState=b[19]&3;var e=(b[16]*256)+b[17];var c=((b[19]&4)!=0)?true:false;f.openPorts=[e];f.address=g.address;if(c==true){f.openPorts=[16992,16993]}if(d!==undefined){d(h,f)}}};this.parseIPv4Range=function(f){if(f==undefined||f==null){return null}var g=f.split("-");if(g.length==2){return{min:this.parseIpv4Addr(g[0]),max:this.parseIpv4Addr(g[1])}}g=f.split("/");if(g.length==2){var c=this.parseIpv4Addr(g[0]),e=parseInt(g[1]),d=0;if(e<=16||e>32){return null}e=32-e;for(var b=0;b>24)&255)+"."+((b>>16)&255)+"."+((b>>8)&255)+"."+(b&255)};this.scan=function(d,g){var c=this.parseIPv4Range(d);var e=this.buildRmcpPing(0);var f=this.dgram.createSocket({type:"udp4"});f.parent=this;f.scanResults=[];f.on("error",function(i){console.log("Error:"+i)});f.on("message",function(i,j){if(j.size>4){this.parent.parseRmcpPacket(this,i,j,function(l,k){l.scanResults.push(k)})}});f.on("listening",function(){for(var j=c.min;j<=c.max;j++){f.send(e,623,f.parent.IPv4NumToStr(j))}});f.bind({address:"0.0.0.0",port:0,exclusive:true});var h=setTimeout(function b(){f.close();f.parent.emit("found",f.scanResults);delete f},g)}}module.exports=AMTScanner; \ No newline at end of file diff --git a/agents/modules_meshcore_min/amt-wsman-duk.min.js b/agents/modules_meshcore_min/amt-wsman-duk.min.js new file mode 100644 index 00000000..b12434af --- /dev/null +++ b/agents/modules_meshcore_min/amt-wsman-duk.min.js @@ -0,0 +1 @@ +function CreateWsmanComm(){var a={};a.PendingAjax=[];a.ActiveAjaxCount=0;a.MaxActiveAjaxCount=1;a.FailAllError=0;a.digest=null;a.RequestCount=0;if(arguments.length==1&&typeof(arguments[0]=="object")){a.host=arguments[0].host;a.port=arguments[0].port;a.authToken=arguments[0].authToken;a.tls=arguments[0].tls}else{a.host=arguments[0];a.port=arguments[1];a.user=arguments[2];a.pass=arguments[3];a.tls=arguments[4]}a.PerformAjax=function(d,c,f,e,g,b){if((a.ActiveAjaxCount==0||((a.ActiveAjaxCount=a.MaxActiveAjaxCount||a.PendingAjax.length==0){return}var b=a.PendingAjax.shift();a.PerformAjaxEx(b[0],b[1],b[2],b[3],b[4]);a.PerformNextAjax()};a.PerformAjaxEx=function(d,c,g,h,b){if(a.FailAllError!=0){if(a.FailAllError!=999){a.gotNextMessagesError({status:a.FailAllError},"error",null,[d,c,g])}return}if(!d){d=""}if(a.digest==null){if(a.authToken){a.digest=require("http-digest").create({authToken:a.authToken})}else{a.digest=require("http-digest").create(a.user,a.pass)}a.digest.http=require("http")}var f={protocol:(a.tls==1?"https:":"http:"),method:"POST",host:a.host,path:"/wsman",port:a.port,rejectUnauthorized:false,checkServerIdentity:function(i){console.log("checkServerIdentity",JSON.stringify(i))}};var e=a.digest.request(f);e.on("error",function(i){a.gotNextMessagesError({status:600},"error",null,[d,c,g])});e.on("response",function(i){if(i.statusCode!=200){a.gotNextMessagesError({status:i.statusCode},"error",null,[d,c,g])}else{i.acc="";i.on("data",function(j){this.acc+=j});i.on("end",function(){a.gotNextMessages(i.acc,"success",{status:i.statusCode},[d,c,g])})}});e.end(d);a.ActiveAjaxCount++;return e};a.pendingAjaxCall=[];a.gotNextMessages=function(c,e,d,b){a.ActiveAjaxCount--;if(a.FailAllError==999){return}if(a.FailAllError!=0){b[1](null,a.FailAllError,b[2]);return}if(d.status!=200){b[1](null,d.status,b[2]);return}b[1](c,200,b[2]);a.PerformNextAjax()};a.gotNextMessagesError=function(d,e,c,b){a.ActiveAjaxCount--;if(a.FailAllError==999){return}if(a.FailAllError!=0){b[1](null,a.FailAllError,b[2]);return}if(a.FailAllError!=999){b[1]({Header:{HttpError:d.status}},d.status,b[2])}a.PerformNextAjax()};a.CancelAllQueries=function(b){while(a.PendingAjax.length>0){var c=a.PendingAjax.shift();c[1](null,b,c[2])}};return a}module.exports=CreateWsmanComm; \ No newline at end of file diff --git a/agents/modules_meshcore_min/amt-wsman.min.js b/agents/modules_meshcore_min/amt-wsman.min.js new file mode 100644 index 00000000..5508d86f --- /dev/null +++ b/agents/modules_meshcore_min/amt-wsman.min.js @@ -0,0 +1 @@ +function WsmanStackCreateService(){var p={_ObjectID:"WSMAN"};p.NextMessageId=1;p.Address="/wsman";p.xmlParser=require("amt-xml");if(arguments.length==1&&typeof(arguments[0]=="object")){var e=arguments[0].transport;if(e){p.comm=new e(arguments[0])}}else{var e=arguments[0];if(e){p.comm=new e(arguments[1],arguments[2],arguments[3],arguments[4],arguments[5],arguments[6])}}p.PerformAjax=function q(t,r,v,u,s){if(s==null){s=""}p.comm.PerformAjax('
"+t,function(w,x,y){if(x!=200){r(p,null,{Header:{HttpError:x}},x,y);return}var z=p.xmlParser.ParseWsman(w);if(!z||z==null){r(p,null,{Header:{HttpError:x}},601,y)}else{r(p,z.Header.ResourceURI,z,200,y)}},v,u)};p.CancelAllQueries=function d(r){p.comm.CancelAllQueries(r)};p.GetNameFromUrl=function(r){var s=r.lastIndexOf("/");return(s==-1)?r:r.substring(s+1)};p.ExecSubscribe=function n(z,t,C,r,B,y,A,w,D,x){var u="",v="",w="";if(D!=null&&x!=null){u='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken'+D+''+x+"";v=''}if(w!=null){w=""+w+""}if(t=="PushWithAck"){t="dmtf.org/wbem/wsman/1/wsman/PushWithAck"}else{if(t=="Push"){t="xmlsoap.org/ws/2004/08/eventing/DeliveryModes/Push"}}var s="http://schemas.xmlsoap.org/ws/2004/08/eventing/Subscribe"+p.Address+""+z+""+(p.NextMessageId++)+"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous"+c(A)+u+'
'+C+""+w+""+v+"";p.PerformAjax(s+"
",r,B,y,'xmlns:e="http://schemas.xmlsoap.org/ws/2004/08/eventing" xmlns:m="http://x.com"')};p.ExecUnSubscribe=function o(u,r,w,t,v){var s="http://schemas.xmlsoap.org/ws/2004/08/eventing/Unsubscribe"+p.Address+""+u+""+(p.NextMessageId++)+"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous"+c(v)+"";p.PerformAjax(s+"",r,w,t,'xmlns:e="http://schemas.xmlsoap.org/ws/2004/08/eventing"')};p.ExecPut=function m(v,u,r,x,t,w){var s="http://schemas.xmlsoap.org/ws/2004/09/transfer/Put"+p.Address+""+v+""+(p.NextMessageId++)+"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60.000S"+c(w)+""+b(v,u);p.PerformAjax(s+"",r,x,t)};p.ExecCreate=function f(x,w,r,z,v,y){var u=p.GetNameFromUrl(x);var s="http://schemas.xmlsoap.org/ws/2004/09/transfer/Create"+p.Address+""+x+""+(p.NextMessageId++)+"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S"+c(y)+"';for(var t in w){s+=""+w[t]+""}p.PerformAjax(s+"",r,z,v)};p.ExecDelete=function g(v,u,r,w,t){var s="http://schemas.xmlsoap.org/ws/2004/09/transfer/Delete"+p.Address+""+v+""+(p.NextMessageId++)+"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S"+c(u)+"";p.PerformAjax(s,r,w,t)};p.ExecGet=function i(t,r,u,s){p.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/transfer/Get"+p.Address+""+t+""+(p.NextMessageId++)+"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S",r,u,s)};p.ExecMethod=function j(y,v,r,t,A,w,z){var s="";for(var u in r){if(r[u]!=null){if(Array.isArray(r[u])){for(var B in r[u]){s+=""+r[u][B]+""}}else{s+=""+r[u]+""}}}p.ExecMethodXml(y,v,s,t,A,w,z)};p.ExecMethodXml=function k(v,t,r,s,x,u,w){p.PerformAjax(v+"/"+t+""+p.Address+""+v+""+(p.NextMessageId++)+"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S"+c(w)+"'+r+"",s,x,u)};p.ExecEnum=function h(t,r,u,s){p.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/enumeration/Enumerate"+p.Address+""+t+""+(p.NextMessageId++)+'http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S',r,u,s)};p.ExecPull=function l(u,s,r,v,t){p.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/enumeration/Pull"+p.Address+""+u+""+(p.NextMessageId++)+'http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S'+s+"99999999",r,v,t)};function b(w,u){if(!w||u==null){return""}var s=p.GetNameFromUrl(w);var v="';for(var t in u){if(!u.hasOwnProperty(t)||t.indexOf("__")===0||t.indexOf("@")===0){continue}if(u[t]==null||typeof u[t]==="function"){continue}if(typeof u[t]==="object"&&u[t]["ReferenceParameters"]){v+=""+u[t].Address+""+u[t]["ReferenceParameters"]["ResourceURI"]+"";var x=u[t]["ReferenceParameters"]["SelectorSet"]["Selector"];if(Array.isArray(x)){for(var r=0;r"+x[r]["Value"]+""}}else{v+=""+x.Value+""}v+=""}else{if(Array.isArray(u[t])){for(var r=0;r"+u[t][r].toString()+""}}else{v+=""+u[t].toString()+""}}}v+="";return v}function a(r){if(!r){return""}var t=" ";for(var s in r){if(!r.hasOwnProperty(s)||s.indexOf("@")!==0){continue}t+=s.substring(1)+'="'+r[s]+'" '}return t}function c(v){if(!v){return""}if(typeof v=="string"){return v}if(v.InstanceID){return''+v.InstanceID+""}var t="";for(var s in v){if(!v.hasOwnProperty(s)){continue}t+='';if(v[s]["ReferenceParameters"]){t+="";t+=""+v[s]["Address"]+""+v[s]["ReferenceParameters"]["ResourceURI"]+"";var u=v[s]["ReferenceParameters"]["SelectorSet"]["Selector"];if(Array.isArray(u)){for(var r=0;r"+u[r]["Value"]+""}}else{t+=""+u.Value+""}t+=""}else{t+=v[s]}t+=""}t+="";return t}return p}module.exports=WsmanStackCreateService; \ No newline at end of file diff --git a/agents/modules_meshcore_min/amt-xml.min.js b/agents/modules_meshcore_min/amt-xml.min.js new file mode 100644 index 00000000..821a1dd7 --- /dev/null +++ b/agents/modules_meshcore_min/amt-xml.min.js @@ -0,0 +1 @@ +try{Object.defineProperty(Array.prototype,"peek",{value:function(){return(this.length>0?this[this.length-1]:undefined)}})}catch(e){}module.exports.ParseWsman=function(j){try{if(!j.childNodes){j=_turnToXml(j)}var g={Header:{}},d=j.getElementsByTagName("Header")[0],h;if(!d){d=j.getElementsByTagName("a:Header")[0]}if(!d){return null}for(var f=0;f0){h=a.childNodes[0].localName;if(h.indexOf("_OUTPUT")==h.length-7){h=h.substring(0,h.length-7)}g.Header.Method=h;g.Body=_ParseWsmanRec(a.childNodes[0])}return g}catch(c){console.error("Unable to parse XML: "+j,c);return null}};function _ParseWsmanRec(g){var c,h={};for(var d=0;d0)){b={Value:c};for(var f=0;f';for(var c in d){if(!d.hasOwnProperty(c)||c.indexOf("__")===0||c.indexOf("@")===0){continue}if(d[c]==null||typeof d[c]==="function"){continue}if(typeof d[c]==="object"&&d[c]["ReferenceParameters"]){f+=""+d[c].Address+""+d[c]["ReferenceParameters"]["ResourceURI"]+"";var h=d[c]["ReferenceParameters"]["SelectorSet"]["Selector"];if(Array.isArray(h)){for(var a=0;a"+h[a]["Value"]+""}}else{f+=""+h.Value+""}f+=""}else{if(Array.isArray(d[c])){for(var a=0;a"+d[c][a].toString()+""}}else{f+=""+d[c].toString()+""}}}f+="";return f}function _treeBuilder(){this.tree=[];this.push=function(a){this.tree.push(a)};this.pop=function(){var a=this.tree.pop();if(this.tree.length>0){var b=this.tree.peek();b.childNodes.push(a);b.childElementCount=b.childNodes.length}return(a)};this.peek=function(){return(this.tree.peek())};this.addNamespace=function(g,d){this.tree.peek().nsTable[g]=d;if(this.tree.peek().attributes.length>0){for(var c=0;c=0;--a){if(this.tree[a].nsTable[b]!=null){return(this.tree[a].nsTable[b])}}return null}}function _turnToXml(a){if(a==null){return null}return({childNodes:[_turnToXmlRec(a)],getElementsByTagName:_getElementsByTagName,getChildElementsByTagName:_getChildElementsByTagName,getElementsByTagNameNS:_getElementsByTagNameNS})}function _getElementsByTagNameNS(b,a){var c=[];_xmlTraverseAllRec(this.childNodes,function(d){if(d.localName==a&&(d.namespace==b||b=="*")){c.push(d)}});return c}function _getElementsByTagName(a){var b=[];_xmlTraverseAllRec(this.childNodes,function(c){if(c.localName==a){b.push(c)}});return b}function _getChildElementsByTagName(a){var c=[];if(this.childNodes!=null){for(var b in this.childNodes){if(this.childNodes[b].localName==a){c.push(this.childNodes[b])}}}return(c)}function _getChildElementsByTagNameNS(c,a){var d=[];if(this.childNodes!=null){for(var b in this.childNodes){if(this.childNodes[b].localName==a&&(c=="*"||this.childNodes[b].namespace==c)){d.push(this.childNodes[b])}}}return(d)}function _xmlTraverseAllRec(c,a){for(var b in c){a(c[b]);if(c[b].childNodes){_xmlTraverseAllRec(c[b].childNodes,a)}}}function _turnToXmlRec(v){var m=new _treeBuilder(),q=null,y=v.split("<"),t=[],h=null,g=null;for(var n in y){var z=y[n].split(">"),A=z[0].split(" "),l=A[0];if((l.length>0)&&(l[0]!="?")){if(l[0]!="/"){var a=[],r,s=l.split(" ")[0].split(":"),r=(s.length>1)?s[1]:s[0];Object.defineProperty(a,"get",{value:function(){if(arguments.length==1){for(var i in this){if(this[i].name==arguments[0]){return(this[i])}}}else{if(arguments.length==2){for(var i in this){if(this[i].name==arguments[1]&&(arguments[0]=="*"||this[i].namespace==arguments[0])){return(this[i])}}}else{throw ("attributes.get(): Invalid number of parameters")}}}});m.push({name:l,localName:r,getChildElementsByTagName:_getChildElementsByTagName,getElementsByTagNameNS:_getElementsByTagNameNS,getChildElementsByTagNameNS:_getChildElementsByTagNameNS,attributes:a,childNodes:[],nsTable:{}});if(A.length>0){var u=false;for(var o in A){if(A[o]=="/"){m.peek().namespace=m.peek().name==m.peek().localName?m.getNamespace("*"):m.getNamespace(m.peek().name.substring(0,m.peek().name.indexOf(":")));m.peek().textContent="";q=m.pop();u=true;break}var p=A[o].indexOf("=");if(p>0){var b=A[o].substring(0,p);var d=A[o].substring(p+2,A[o].length-1);var c=m.getNamespace("*");if(b=="xmlns"){m.addNamespace("*",d);c=d}else{if(b.startsWith("xmlns:")){m.addNamespace(b.substring(6),d)}else{var f=b.split(":");if(f.length==2){b=f[1];c=m.getNamespace(f[0])}}}var w={name:b,value:d};if(c!=null){w.namespace=c}m.peek().attributes.push(w)}}if(u){continue}}m.peek().namespace=m.peek().name==m.peek().localName?m.getNamespace("*"):m.getNamespace(m.peek().name.substring(0,m.peek().name.indexOf(":")));if(z[1]){m.peek().textContent=z[1]}}else{q=m.pop()}}}return q}; \ No newline at end of file diff --git a/agents/modules_meshcore_min/amt.min.js b/agents/modules_meshcore_min/amt.min.js new file mode 100644 index 00000000..eaf2d73a --- /dev/null +++ b/agents/modules_meshcore_min/amt.min.js @@ -0,0 +1 @@ +function AmtStackCreateService(R){var J=new Object();J._ObjectID="AMT";J.wsman=R;J.pfx=["http://intel.com/wbem/wscim/1/amt-schema/1/","http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/","http://intel.com/wbem/wscim/1/ips-schema/1/"];J.PendingEnums=[];J.PendingBatchOperations=0;J.ActiveEnumsCount=0;J.MaxActiveEnumsCount=1;J.onProcessChanged=null;var n=0;var m=0;J.GetPendingActions=function(){return(J.PendingEnums.length*2)+(J.ActiveEnumsCount)+J.wsman.comm.PendingAjax.length+J.wsman.comm.ActiveAjaxCount+J.PendingBatchOperations};function r(){var S=J.GetPendingActions();if(n=J.MaxActiveEnumsCount||J.PendingEnums.length==0){return}var T=J.PendingEnums.shift();J.Enum(T[0],T[1],T[2]);d(0)}J.BatchEnum=function(S,V,T,X,U,W){J.PendingBatchOperations+=(V.length*2);b(S,x(V),T,X,{},U,W);r()};function x(S){return JSON.parse(JSON.stringify(S))}function b(S,X,T,aa,Z,U,Y){J.PendingBatchOperations-=2;var W=X.shift(),V=J.Enum;if(W[0]=="*"){V=J.Get;W=W.substring(1)}V(W,function(ad,ab,ac,ae,af){af[2][ab]={response:(ac==null?null:ac.Body),responses:ac,status:ae};if(af[1].length==0||ae==401||(U!=true&&ae!=200&&ae!=400)){J.PendingBatchOperations-=(X.length*2);r();T.call(J,J,S,af[2],ae,aa)}else{r();b(S,X,T,aa,af[2],Y)}},[S,X,Z],Y);r()}J.BatchGet=function(S,U,T,W,V){h({name:S,names:U,callback:T,current:0,responses:{},tag:W,pri:V});r()};function h(S){if(S.names.length<=S.current){S.callback.call(J,J,S.name,S.responses,200,S.tag)}else{J.wsman.ExecGet(J.CompleteName(S.names[S.current]),function(V,U,T,W){g(S,T,W)},S.pri);S.current++}r()}function g(S,T,U){if(T==null||U!=200){S.callback.call(J,J,S.name,null,U,S.tag)}else{S.responses[T.Header.Method]=T;h(S)}}J.CompleteName=function(S){if(S.indexOf("AMT_")==0){return J.pfx[0]+S}if(S.indexOf("CIM_")==0){return J.pfx[1]+S}if(S.indexOf("IPS_")==0){return J.pfx[2]+S}};J.CompleteExecResponse=function(S){if(S&&S!=null&&S.Body&&(S.Body.ReturnValue!=undefined)){S.Body.ReturnValueStr=J.AmtStatusToStr(S.Body.ReturnValue)}return S};J.RequestPowerStateChange=function(T,S){J.CIM_PowerManagementService_RequestPowerStateChange(T,'
http://schemas.xmlsoap.org/ws/2004/08/addressing
http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ComputerSystemCIM_ComputerSystemManagedSystem',null,null,S)};J.SetBootConfigRole=function(T,S){J.CIM_BootService_SetBootConfigRole('
http://schemas.xmlsoap.org/ws/2004/08/addressing
http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_BootConfigSettingIntel(r) AMT: Boot Configuration 0',T,S)};J.CancelAllQueries=function(S){J.wsman.CancelAllQueries(S)};J.AMT_AgentPresenceWatchdog_RegisterAgent=function(S,V,T,U){J.Exec("AMT_AgentPresenceWatchdog","RegisterAgent",{},S,V,T,U)};J.AMT_AgentPresenceWatchdog_AssertPresence=function(V,S,W,T,U){J.Exec("AMT_AgentPresenceWatchdog","AssertPresence",{SequenceNumber:V},S,W,T,U)};J.AMT_AgentPresenceWatchdog_AssertShutdown=function(V,S,W,T,U){J.Exec("AMT_AgentPresenceWatchdog","AssertShutdown",{SequenceNumber:V},S,W,T,U)};J.AMT_AgentPresenceWatchdog_AddAction=function(X,W,V,T,S,U,aa,Y,Z){J.Exec("AMT_AgentPresenceWatchdog","AddAction",{OldState:X,NewState:W,EventOnTransition:V,ActionSd:T,ActionEac:S},U,aa,Y,Z)};J.AMT_AgentPresenceWatchdog_DeleteAllActions=function(S,V,T,U){J.Exec("AMT_AgentPresenceWatchdog","DeleteAllActions",{},S,V,T,U)};J.AMT_AgentPresenceWatchdogAction_GetActionEac=function(S){J.Exec("AMT_AgentPresenceWatchdogAction","GetActionEac",{},S)};J.AMT_AgentPresenceWatchdogVA_RegisterAgent=function(S){J.Exec("AMT_AgentPresenceWatchdogVA","RegisterAgent",{},S)};J.AMT_AgentPresenceWatchdogVA_AssertPresence=function(T,S){J.Exec("AMT_AgentPresenceWatchdogVA","AssertPresence",{SequenceNumber:T},S)};J.AMT_AgentPresenceWatchdogVA_AssertShutdown=function(T,S){J.Exec("AMT_AgentPresenceWatchdogVA","AssertShutdown",{SequenceNumber:T},S)};J.AMT_AgentPresenceWatchdogVA_AddAction=function(X,W,V,T,S,U){J.Exec("AMT_AgentPresenceWatchdogVA","AddAction",{OldState:X,NewState:W,EventOnTransition:V,ActionSd:T,ActionEac:S},U)};J.AMT_AgentPresenceWatchdogVA_DeleteAllActions=function(S,T){J.Exec("AMT_AgentPresenceWatchdogVA","DeleteAllActions",{_method_dummy:S},T)};J.AMT_AlarmClockService_AddAlarm=function s(S,T){var V=S.InstanceID;var X=S.ElementName;var Y=S.StartTime.Datetime;var W=S.Interval?S.Interval.Datetime:undefined;var U=S.DeleteOnCompletion;var Z=''+V+""+X+''+Y+""+((W!=undefined)?(''+W+""):"")+""+U+"";J.wsman.ExecMethodXml(J.CompleteName("AMT_AlarmClockService"),"AddAlarm",Z,T)};J.AMT_AuditLog_ClearLog=function(S){J.Exec("AMT_AuditLog","ClearLog",{},S)};J.AMT_AuditLog_RequestStateChange=function(T,U,S){J.Exec("AMT_AuditLog","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.AMT_AuditLog_ReadRecords=function(T,S,U){J.Exec("AMT_AuditLog","ReadRecords",{StartIndex:T},S,U)};J.AMT_AuditLog_SetAuditLock=function(V,T,U,S){J.Exec("AMT_AuditLog","SetAuditLock",{LockTimeoutInSeconds:V,Flag:T,Handle:U},S)};J.AMT_AuditLog_ExportAuditLogSignature=function(T,S){J.Exec("AMT_AuditLog","ExportAuditLogSignature",{SigningMechanism:T},S)};J.AMT_AuditLog_SetSigningKeyMaterial=function(W,V,U,T,S){J.Exec("AMT_AuditLog","SetSigningKeyMaterial",{SigningMechanismType:W,SigningKey:V,LengthOfCertificates:U,Certificates:T},S)};J.AMT_AuditPolicyRule_SetAuditPolicy=function(U,S,V,W,T){J.Exec("AMT_AuditPolicyRule","SetAuditPolicy",{Enable:U,AuditedAppID:S,EventID:V,PolicyType:W},T)};J.AMT_AuditPolicyRule_SetAuditPolicyBulk=function(U,S,V,W,T){J.Exec("AMT_AuditPolicyRule","SetAuditPolicyBulk",{Enable:U,AuditedAppID:S,EventID:V,PolicyType:W},T)};J.AMT_AuthorizationService_AddUserAclEntryEx=function(V,U,W,S,X,T){J.Exec("AMT_AuthorizationService","AddUserAclEntryEx",{DigestUsername:V,DigestPassword:U,KerberosUserSid:W,AccessPermission:S,Realms:X},T)};J.AMT_AuthorizationService_EnumerateUserAclEntries=function(T,S){J.Exec("AMT_AuthorizationService","EnumerateUserAclEntries",{StartIndex:T},S)};J.AMT_AuthorizationService_GetUserAclEntryEx=function(T,S,U){J.Exec("AMT_AuthorizationService","GetUserAclEntryEx",{Handle:T},S,U)};J.AMT_AuthorizationService_UpdateUserAclEntryEx=function(W,V,U,X,S,Y,T){J.Exec("AMT_AuthorizationService","UpdateUserAclEntryEx",{Handle:W,DigestUsername:V,DigestPassword:U,KerberosUserSid:X,AccessPermission:S,Realms:Y},T)};J.AMT_AuthorizationService_RemoveUserAclEntry=function(T,S){J.Exec("AMT_AuthorizationService","RemoveUserAclEntry",{Handle:T},S)};J.AMT_AuthorizationService_SetAdminAclEntryEx=function(U,T,S){J.Exec("AMT_AuthorizationService","SetAdminAclEntryEx",{Username:U,DigestPassword:T},S)};J.AMT_AuthorizationService_GetAdminAclEntry=function(S){J.Exec("AMT_AuthorizationService","GetAdminAclEntry",{},S)};J.AMT_AuthorizationService_GetAdminAclEntryStatus=function(S){J.Exec("AMT_AuthorizationService","GetAdminAclEntryStatus",{},S)};J.AMT_AuthorizationService_GetAdminNetAclEntryStatus=function(S){J.Exec("AMT_AuthorizationService","GetAdminNetAclEntryStatus",{},S)};J.AMT_AuthorizationService_SetAclEnabledState=function(U,T,S,V){J.Exec("AMT_AuthorizationService","SetAclEnabledState",{Handle:U,Enabled:T},S,V)};J.AMT_AuthorizationService_GetAclEnabledState=function(T,S,U){J.Exec("AMT_AuthorizationService","GetAclEnabledState",{Handle:T},S,U)};J.AMT_EndpointAccessControlService_RequestStateChange=function(T,U,S){J.Exec("AMT_EndpointAccessControlService","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.AMT_EndpointAccessControlService_GetPosture=function(T,S){J.Exec("AMT_EndpointAccessControlService","GetPosture",{PostureType:T},S)};J.AMT_EndpointAccessControlService_GetPostureHash=function(T,S){J.Exec("AMT_EndpointAccessControlService","GetPostureHash",{PostureType:T},S)};J.AMT_EndpointAccessControlService_UpdatePostureState=function(T,S){J.Exec("AMT_EndpointAccessControlService","UpdatePostureState",{UpdateType:T},S)};J.AMT_EndpointAccessControlService_GetEacOptions=function(S){J.Exec("AMT_EndpointAccessControlService","GetEacOptions",{},S)};J.AMT_EndpointAccessControlService_SetEacOptions=function(T,U,S){J.Exec("AMT_EndpointAccessControlService","SetEacOptions",{EacVendors:T,PostureHashAlgorithm:U},S)};J.AMT_EnvironmentDetectionSettingData_SetSystemDefensePolicy=function(T,S){J.Exec("AMT_EnvironmentDetectionSettingData","SetSystemDefensePolicy",{Policy:T},S)};J.AMT_EnvironmentDetectionSettingData_EnableVpnRouting=function(T,S){J.Exec("AMT_EnvironmentDetectionSettingData","EnableVpnRouting",{Enable:T},S)};J.AMT_EthernetPortSettings_SetLinkPreference=function(T,U,S){J.Exec("AMT_EthernetPortSettings","SetLinkPreference",{LinkPreference:T,Timeout:U},S)};J.AMT_HeuristicPacketFilterStatistics_ResetSelectedStats=function(T,S){J.Exec("AMT_HeuristicPacketFilterStatistics","ResetSelectedStats",{SelectedStatistics:T},S)};J.AMT_KerberosSettingData_GetCredentialCacheState=function(S){J.Exec("AMT_KerberosSettingData","GetCredentialCacheState",{},S)};J.AMT_KerberosSettingData_SetCredentialCacheState=function(T,S){J.Exec("AMT_KerberosSettingData","SetCredentialCacheState",{Enable:T},S)};J.AMT_MessageLog_CancelIteration=function(T,S){J.Exec("AMT_MessageLog","CancelIteration",{IterationIdentifier:T},S)};J.AMT_MessageLog_RequestStateChange=function(T,U,S){J.Exec("AMT_MessageLog","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.AMT_MessageLog_ClearLog=function(S){J.Exec("AMT_MessageLog","ClearLog",{},S)};J.AMT_MessageLog_GetRecords=function(T,U,S,V){J.Exec("AMT_MessageLog","GetRecords",{IterationIdentifier:T,MaxReadRecords:U},S,V)};J.AMT_MessageLog_GetRecord=function(T,U,S){J.Exec("AMT_MessageLog","GetRecord",{IterationIdentifier:T,PositionToNext:U},S)};J.AMT_MessageLog_PositionAtRecord=function(T,U,V,S){J.Exec("AMT_MessageLog","PositionAtRecord",{IterationIdentifier:T,MoveAbsolute:U,RecordNumber:V},S)};J.AMT_MessageLog_PositionToFirstRecord=function(S,T){J.Exec("AMT_MessageLog","PositionToFirstRecord",{},S,T)};J.AMT_MessageLog_FreezeLog=function(T,S){J.Exec("AMT_MessageLog","FreezeLog",{Freeze:T},S)};J.AMT_PublicKeyManagementService_AddCRL=function(U,T,S){J.Exec("AMT_PublicKeyManagementService","AddCRL",{Url:U,SerialNumbers:T},S)};J.AMT_PublicKeyManagementService_ResetCRLList=function(S,T){J.Exec("AMT_PublicKeyManagementService","ResetCRLList",{_method_dummy:S},T)};J.AMT_PublicKeyManagementService_AddCertificate=function(T,S,U){J.Exec("AMT_PublicKeyManagementService","AddCertificate",{CertificateBlob:T},S,U)};J.AMT_PublicKeyManagementService_AddTrustedRootCertificate=function(T,S){J.Exec("AMT_PublicKeyManagementService","AddTrustedRootCertificate",{CertificateBlob:T},S)};J.AMT_PublicKeyManagementService_AddKey=function(T,S){J.Exec("AMT_PublicKeyManagementService","AddKey",{KeyBlob:T},S)};J.AMT_PublicKeyManagementService_GeneratePKCS10Request=function(U,T,V,S){J.Exec("AMT_PublicKeyManagementService","GeneratePKCS10Request",{KeyPair:U,DNName:T,Usage:V},S)};J.AMT_PublicKeyManagementService_GeneratePKCS10RequestEx=function(T,V,U,S){J.Exec("AMT_PublicKeyManagementService","GeneratePKCS10RequestEx",{KeyPair:T,SigningAlgorithm:V,NullSignedCertificateRequest:U},S)};J.AMT_PublicKeyManagementService_GenerateKeyPair=function(T,U,S){J.Exec("AMT_PublicKeyManagementService","GenerateKeyPair",{KeyAlgorithm:T,KeyLength:U},S)};J.AMT_RedirectionService_RequestStateChange=function(T,S){J.Exec("AMT_RedirectionService","RequestStateChange",{RequestedState:T},S)};J.AMT_RedirectionService_TerminateSession=function(T,S){J.Exec("AMT_RedirectionService","TerminateSession",{SessionType:T},S)};J.AMT_RemoteAccessService_AddMpServer=function(S,X,Z,T,V,aa,Y,W,U){J.Exec("AMT_RemoteAccessService","AddMpServer",{AccessInfo:S,InfoFormat:X,Port:Z,AuthMethod:T,Certificate:V,Username:aa,Password:Y,CN:W},U)};J.AMT_RemoteAccessService_AddRemoteAccessPolicyRule=function(V,W,T,U,S){J.Exec("AMT_RemoteAccessService","AddRemoteAccessPolicyRule",{Trigger:V,TunnelLifeTime:W,ExtendedData:T,MpServer:U},S)};J.AMT_RemoteAccessService_CloseRemoteAccessConnection=function(S,T){J.Exec("AMT_RemoteAccessService","CloseRemoteAccessConnection",{_method_dummy:S},T)};J.AMT_SetupAndConfigurationService_CommitChanges=function(S,T,U){J.Exec("AMT_SetupAndConfigurationService","CommitChanges",{_method_dummy:S},T,U)};J.AMT_SetupAndConfigurationService_Unprovision=function(T,S){J.Exec("AMT_SetupAndConfigurationService","Unprovision",{ProvisioningMode:T},S)};J.AMT_SetupAndConfigurationService_PartialUnprovision=function(S,T){J.Exec("AMT_SetupAndConfigurationService","PartialUnprovision",{_method_dummy:S},T)};J.AMT_SetupAndConfigurationService_ResetFlashWearOutProtection=function(S,T){J.Exec("AMT_SetupAndConfigurationService","ResetFlashWearOutProtection",{_method_dummy:S},T)};J.AMT_SetupAndConfigurationService_ExtendProvisioningPeriod=function(T,S){J.Exec("AMT_SetupAndConfigurationService","ExtendProvisioningPeriod",{Duration:T},S)};J.AMT_SetupAndConfigurationService_SetMEBxPassword=function(T,S){J.Exec("AMT_SetupAndConfigurationService","SetMEBxPassword",{Password:T},S)};J.AMT_SetupAndConfigurationService_SetTLSPSK=function(T,U,S){J.Exec("AMT_SetupAndConfigurationService","SetTLSPSK",{PID:T,PPS:U},S)};J.AMT_SetupAndConfigurationService_GetProvisioningAuditRecord=function(S){J.Exec("AMT_SetupAndConfigurationService","GetProvisioningAuditRecord",{},S)};J.AMT_SetupAndConfigurationService_GetUuid=function(S){J.Exec("AMT_SetupAndConfigurationService","GetUuid",{},S)};J.AMT_SetupAndConfigurationService_GetUnprovisionBlockingComponents=function(S){J.Exec("AMT_SetupAndConfigurationService","GetUnprovisionBlockingComponents",{},S)};J.AMT_SetupAndConfigurationService_GetProvisioningAuditRecordV2=function(S){J.Exec("AMT_SetupAndConfigurationService","GetProvisioningAuditRecordV2",{},S)};J.AMT_SystemDefensePolicy_GetTimeout=function(S){J.Exec("AMT_SystemDefensePolicy","GetTimeout",{},S)};J.AMT_SystemDefensePolicy_SetTimeout=function(T,S){J.Exec("AMT_SystemDefensePolicy","SetTimeout",{Timeout:T},S)};J.AMT_SystemDefensePolicy_UpdateStatistics=function(T,V,S,X,U,W){J.Exec("AMT_SystemDefensePolicy","UpdateStatistics",{NetworkInterface:T,ResetOnRead:V},S,X,U,W)};J.AMT_SystemPowerScheme_SetPowerScheme=function(S,T,U){J.Exec("AMT_SystemPowerScheme","SetPowerScheme",{},S,U,0,{InstanceID:T})};J.AMT_TimeSynchronizationService_GetLowAccuracyTimeSynch=function(S,T){J.Exec("AMT_TimeSynchronizationService","GetLowAccuracyTimeSynch",{},S,T)};J.AMT_TimeSynchronizationService_SetHighAccuracyTimeSynch=function(T,V,W,S,U){J.Exec("AMT_TimeSynchronizationService","SetHighAccuracyTimeSynch",{Ta0:T,Tm1:V,Tm2:W},S,U)};J.AMT_TLSCredentialContext_Create=function t(T,U,S,V){J.Create("AMT_TLSCredentialContext",{ElementInContext:T,ElementProvidingContext:U},S,V)};J.AMT_UserInitiatedConnectionService_RequestStateChange=function(T,U,S){J.Exec("AMT_UserInitiatedConnectionService","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.AMT_WebUIService_RequestStateChange=function(T,V,S,U){J.Exec("AMT_WebUIService","RequestStateChange",{RequestedState:T,TimeoutPeriod:V},S,U)};J.AMT_WiFiPortConfigurationService_AddWiFiSettings=function(W,X,V,U,S,T){J.ExecWithXml("AMT_WiFiPortConfigurationService","AddWiFiSettings",{WiFiEndpoint:W,WiFiEndpointSettingsInput:X,IEEE8021xSettingsInput:V,ClientCredential:U,CACredential:S},T)};J.AMT_WiFiPortConfigurationService_UpdateWiFiSettings=function(W,X,V,U,S,T){J.ExecWithXml("AMT_WiFiPortConfigurationService","UpdateWiFiSettings",{WiFiEndpointSettings:W,WiFiEndpointSettingsInput:X,IEEE8021xSettingsInput:V,ClientCredential:U,CACredential:S},T)};J.AMT_WiFiPortConfigurationService_DeleteAllITProfiles=function(S,T){J.Exec("AMT_WiFiPortConfigurationService","DeleteAllITProfiles",{_method_dummy:S},T)};J.AMT_WiFiPortConfigurationService_DeleteAllUserProfiles=function(S,T){J.Exec("AMT_WiFiPortConfigurationService","DeleteAllUserProfiles",{_method_dummy:S},T)};J.CIM_Account_RequestStateChange=function(T,U,S){J.Exec("CIM_Account","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.CIM_AccountManagementService_CreateAccount=function(U,S,T){J.Exec("CIM_AccountManagementService","CreateAccount",{System:U,AccountTemplate:S},T)};J.CIM_BootConfigSetting_ChangeBootOrder=function(T,S){J.Exec("CIM_BootConfigSetting","ChangeBootOrder",{Source:T},S)};J.CIM_BootService_SetBootConfigRole=function(S,U,T){J.Exec("CIM_BootService","SetBootConfigRole",{BootConfigSetting:S,Role:U},T,0,1)};J.CIM_Card_ConnectorPower=function(T,U,S){J.Exec("CIM_Card","ConnectorPower",{Connector:T,PoweredOn:U},S)};J.CIM_Card_IsCompatible=function(T,S){J.Exec("CIM_Card","IsCompatible",{ElementToCheck:T},S)};J.CIM_Chassis_IsCompatible=function(T,S){J.Exec("CIM_Chassis","IsCompatible",{ElementToCheck:T},S)};J.CIM_Fan_SetSpeed=function(T,S){J.Exec("CIM_Fan","SetSpeed",{DesiredSpeed:T},S)};J.CIM_KVMRedirectionSAP_RequestStateChange=function(T,U,S){J.Exec("CIM_KVMRedirectionSAP","RequestStateChange",{RequestedState:T},S)};J.CIM_MediaAccessDevice_LockMedia=function(T,S){J.Exec("CIM_MediaAccessDevice","LockMedia",{Lock:T},S)};J.CIM_MediaAccessDevice_SetPowerState=function(T,U,S){J.Exec("CIM_MediaAccessDevice","SetPowerState",{PowerState:T,Time:U},S)};J.CIM_MediaAccessDevice_Reset=function(S){J.Exec("CIM_MediaAccessDevice","Reset",{},S)};J.CIM_MediaAccessDevice_EnableDevice=function(T,S){J.Exec("CIM_MediaAccessDevice","EnableDevice",{Enabled:T},S)};J.CIM_MediaAccessDevice_OnlineDevice=function(T,S){J.Exec("CIM_MediaAccessDevice","OnlineDevice",{Online:T},S)};J.CIM_MediaAccessDevice_QuiesceDevice=function(T,S){J.Exec("CIM_MediaAccessDevice","QuiesceDevice",{Quiesce:T},S)};J.CIM_MediaAccessDevice_SaveProperties=function(S){J.Exec("CIM_MediaAccessDevice","SaveProperties",{},S)};J.CIM_MediaAccessDevice_RestoreProperties=function(S){J.Exec("CIM_MediaAccessDevice","RestoreProperties",{},S)};J.CIM_MediaAccessDevice_RequestStateChange=function(T,U,S){J.Exec("CIM_MediaAccessDevice","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.CIM_PhysicalFrame_IsCompatible=function(T,S){J.Exec("CIM_PhysicalFrame","IsCompatible",{ElementToCheck:T},S)};J.CIM_PhysicalPackage_IsCompatible=function(T,S){J.Exec("CIM_PhysicalPackage","IsCompatible",{ElementToCheck:T},S)};J.CIM_PowerManagementService_RequestPowerStateChange=function(U,T,V,W,S){J.Exec("CIM_PowerManagementService","RequestPowerStateChange",{PowerState:U,ManagedElement:T,Time:V,TimeoutPeriod:W},S,0,1)};J.CIM_PowerSupply_SetPowerState=function(T,U,S){J.Exec("CIM_PowerSupply","SetPowerState",{PowerState:T,Time:U},S)};J.CIM_PowerSupply_Reset=function(S){J.Exec("CIM_PowerSupply","Reset",{},S)};J.CIM_PowerSupply_EnableDevice=function(T,S){J.Exec("CIM_PowerSupply","EnableDevice",{Enabled:T},S)};J.CIM_PowerSupply_OnlineDevice=function(T,S){J.Exec("CIM_PowerSupply","OnlineDevice",{Online:T},S)};J.CIM_PowerSupply_QuiesceDevice=function(T,S){J.Exec("CIM_PowerSupply","QuiesceDevice",{Quiesce:T},S)};J.CIM_PowerSupply_SaveProperties=function(S){J.Exec("CIM_PowerSupply","SaveProperties",{},S)};J.CIM_PowerSupply_RestoreProperties=function(S){J.Exec("CIM_PowerSupply","RestoreProperties",{},S)};J.CIM_PowerSupply_RequestStateChange=function(T,U,S){J.Exec("CIM_PowerSupply","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.CIM_Processor_SetPowerState=function(T,U,S){J.Exec("CIM_Processor","SetPowerState",{PowerState:T,Time:U},S)};J.CIM_Processor_Reset=function(S){J.Exec("CIM_Processor","Reset",{},S)};J.CIM_Processor_EnableDevice=function(T,S){J.Exec("CIM_Processor","EnableDevice",{Enabled:T},S)};J.CIM_Processor_OnlineDevice=function(T,S){J.Exec("CIM_Processor","OnlineDevice",{Online:T},S)};J.CIM_Processor_QuiesceDevice=function(T,S){J.Exec("CIM_Processor","QuiesceDevice",{Quiesce:T},S)};J.CIM_Processor_SaveProperties=function(S){J.Exec("CIM_Processor","SaveProperties",{},S)};J.CIM_Processor_RestoreProperties=function(S){J.Exec("CIM_Processor","RestoreProperties",{},S)};J.CIM_Processor_RequestStateChange=function(T,U,S){J.Exec("CIM_Processor","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.CIM_RecordLog_ClearLog=function(S){J.Exec("CIM_RecordLog","ClearLog",{},S)};J.CIM_RecordLog_RequestStateChange=function(T,U,S){J.Exec("CIM_RecordLog","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.CIM_RedirectionService_RequestStateChange=function(T,U,S){J.Exec("CIM_RedirectionService","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.CIM_Sensor_SetPowerState=function(T,U,S){J.Exec("CIM_Sensor","SetPowerState",{PowerState:T,Time:U},S)};J.CIM_Sensor_Reset=function(S){J.Exec("CIM_Sensor","Reset",{},S)};J.CIM_Sensor_EnableDevice=function(T,S){J.Exec("CIM_Sensor","EnableDevice",{Enabled:T},S)};J.CIM_Sensor_OnlineDevice=function(T,S){J.Exec("CIM_Sensor","OnlineDevice",{Online:T},S)};J.CIM_Sensor_QuiesceDevice=function(T,S){J.Exec("CIM_Sensor","QuiesceDevice",{Quiesce:T},S)};J.CIM_Sensor_SaveProperties=function(S){J.Exec("CIM_Sensor","SaveProperties",{},S)};J.CIM_Sensor_RestoreProperties=function(S){J.Exec("CIM_Sensor","RestoreProperties",{},S)};J.CIM_Sensor_RequestStateChange=function(T,U,S){J.Exec("CIM_Sensor","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.CIM_StatisticalData_ResetSelectedStats=function(T,S){J.Exec("CIM_StatisticalData","ResetSelectedStats",{SelectedStatistics:T},S)};J.CIM_Watchdog_KeepAlive=function(S){J.Exec("CIM_Watchdog","KeepAlive",{},S)};J.CIM_Watchdog_SetPowerState=function(T,U,S){J.Exec("CIM_Watchdog","SetPowerState",{PowerState:T,Time:U},S)};J.CIM_Watchdog_Reset=function(S){J.Exec("CIM_Watchdog","Reset",{},S)};J.CIM_Watchdog_EnableDevice=function(T,S){J.Exec("CIM_Watchdog","EnableDevice",{Enabled:T},S)};J.CIM_Watchdog_OnlineDevice=function(T,S){J.Exec("CIM_Watchdog","OnlineDevice",{Online:T},S)};J.CIM_Watchdog_QuiesceDevice=function(T,S){J.Exec("CIM_Watchdog","QuiesceDevice",{Quiesce:T},S)};J.CIM_Watchdog_SaveProperties=function(S){J.Exec("CIM_Watchdog","SaveProperties",{},S)};J.CIM_Watchdog_RestoreProperties=function(S){J.Exec("CIM_Watchdog","RestoreProperties",{},S)};J.CIM_Watchdog_RequestStateChange=function(T,U,S){J.Exec("CIM_Watchdog","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.CIM_WiFiPort_SetPowerState=function(T,U,S){J.Exec("CIM_WiFiPort","SetPowerState",{PowerState:T,Time:U},S)};J.CIM_WiFiPort_Reset=function(S){J.Exec("CIM_WiFiPort","Reset",{},S)};J.CIM_WiFiPort_EnableDevice=function(T,S){J.Exec("CIM_WiFiPort","EnableDevice",{Enabled:T},S)};J.CIM_WiFiPort_OnlineDevice=function(T,S){J.Exec("CIM_WiFiPort","OnlineDevice",{Online:T},S)};J.CIM_WiFiPort_QuiesceDevice=function(T,S){J.Exec("CIM_WiFiPort","QuiesceDevice",{Quiesce:T},S)};J.CIM_WiFiPort_SaveProperties=function(S){J.Exec("CIM_WiFiPort","SaveProperties",{},S)};J.CIM_WiFiPort_RestoreProperties=function(S){J.Exec("CIM_WiFiPort","RestoreProperties",{},S)};J.CIM_WiFiPort_RequestStateChange=function(T,U,S){J.Exec("CIM_WiFiPort","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.IPS_HostBasedSetupService_Setup=function(W,X,V,T,Y,U,S){J.Exec("IPS_HostBasedSetupService","Setup",{NetAdminPassEncryptionType:W,NetworkAdminPassword:X,McNonce:V,Certificate:T,SigningAlgorithm:Y,DigitalSignature:U},S)};J.IPS_HostBasedSetupService_AddNextCertInChain=function(V,T,U,S){J.Exec("IPS_HostBasedSetupService","AddNextCertInChain",{NextCertificate:V,IsLeafCertificate:T,IsRootCertificate:U},S)};J.IPS_HostBasedSetupService_AdminSetup=function(V,W,U,X,T,S){J.Exec("IPS_HostBasedSetupService","AdminSetup",{NetAdminPassEncryptionType:V,NetworkAdminPassword:W,McNonce:U,SigningAlgorithm:X,DigitalSignature:T},S)};J.IPS_HostBasedSetupService_UpgradeClientToAdmin=function(U,V,T,S){J.Exec("IPS_HostBasedSetupService","UpgradeClientToAdmin",{McNonce:U,SigningAlgorithm:V,DigitalSignature:T},S)};J.IPS_HostBasedSetupService_DisableClientControlMode=function(S,T){J.Exec("IPS_HostBasedSetupService","DisableClientControlMode",{_method_dummy:S},T)};J.IPS_KVMRedirectionSettingData_TerminateSession=function(S){J.Exec("IPS_KVMRedirectionSettingData","TerminateSession",{},S)};J.IPS_KVMRedirectionSettingData_DataChannelRead=function(S){J.Exec("IPS_KVMRedirectionSettingData","DataChannelRead",{},S)};J.IPS_KVMRedirectionSettingData_DataChannelWrite=function(T,S){J.Exec("IPS_KVMRedirectionSettingData","DataChannelWrite",{DataMessage:T},S)};J.IPS_OptInService_StartOptIn=function(S){J.Exec("IPS_OptInService","StartOptIn",{},S)};J.IPS_OptInService_CancelOptIn=function(S){J.Exec("IPS_OptInService","CancelOptIn",{},S)};J.IPS_OptInService_SendOptInCode=function(T,S){J.Exec("IPS_OptInService","SendOptInCode",{OptInCode:T},S)};J.IPS_OptInService_StartService=function(S){J.Exec("IPS_OptInService","StartService",{},S)};J.IPS_OptInService_StopService=function(S){J.Exec("IPS_OptInService","StopService",{},S)};J.IPS_OptInService_RequestStateChange=function(T,U,S){J.Exec("IPS_OptInService","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.IPS_ProvisioningRecordLog_RequestStateChange=function(T,U,S){J.Exec("IPS_ProvisioningRecordLog","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.IPS_ProvisioningRecordLog_ClearLog=function(S,T){J.Exec("IPS_ProvisioningRecordLog","ClearLog",{_method_dummy:S},T)};J.IPS_SecIOService_RequestStateChange=function(T,U,S){J.Exec("IPS_SecIOService","RequestStateChange",{RequestedState:T,TimeoutPeriod:U},S)};J.AmtStatusToStr=function(S){if(J.AmtStatusCodes[S]){return J.AmtStatusCodes[S]}else{return"UNKNOWN_ERROR"}};J.AmtStatusCodes={0:"SUCCESS",1:"INTERNAL_ERROR",2:"NOT_READY",3:"INVALID_PT_MODE",4:"INVALID_MESSAGE_LENGTH",5:"TABLE_FINGERPRINT_NOT_AVAILABLE",6:"INTEGRITY_CHECK_FAILED",7:"UNSUPPORTED_ISVS_VERSION",8:"APPLICATION_NOT_REGISTERED",9:"INVALID_REGISTRATION_DATA",10:"APPLICATION_DOES_NOT_EXIST",11:"NOT_ENOUGH_STORAGE",12:"INVALID_NAME",13:"BLOCK_DOES_NOT_EXIST",14:"INVALID_BYTE_OFFSET",15:"INVALID_BYTE_COUNT",16:"NOT_PERMITTED",17:"NOT_OWNER",18:"BLOCK_LOCKED_BY_OTHER",19:"BLOCK_NOT_LOCKED",20:"INVALID_GROUP_PERMISSIONS",21:"GROUP_DOES_NOT_EXIST",22:"INVALID_MEMBER_COUNT",23:"MAX_LIMIT_REACHED",24:"INVALID_AUTH_TYPE",25:"AUTHENTICATION_FAILED",26:"INVALID_DHCP_MODE",27:"INVALID_IP_ADDRESS",28:"INVALID_DOMAIN_NAME",29:"UNSUPPORTED_VERSION",30:"REQUEST_UNEXPECTED",31:"INVALID_TABLE_TYPE",32:"INVALID_PROVISIONING_STATE",33:"UNSUPPORTED_OBJECT",34:"INVALID_TIME",35:"INVALID_INDEX",36:"INVALID_PARAMETER",37:"INVALID_NETMASK",38:"FLASH_WRITE_LIMIT_EXCEEDED",39:"INVALID_IMAGE_LENGTH",40:"INVALID_IMAGE_SIGNATURE",41:"PROPOSE_ANOTHER_VERSION",42:"INVALID_PID_FORMAT",43:"INVALID_PPS_FORMAT",44:"BIST_COMMAND_BLOCKED",45:"CONNECTION_FAILED",46:"CONNECTION_TOO_MANY",47:"RNG_GENERATION_IN_PROGRESS",48:"RNG_NOT_READY",49:"CERTIFICATE_NOT_READY",1024:"DISABLED_BY_POLICY",2048:"NETWORK_IF_ERROR_BASE",2049:"UNSUPPORTED_OEM_NUMBER",2050:"UNSUPPORTED_BOOT_OPTION",2051:"INVALID_COMMAND",2052:"INVALID_SPECIAL_COMMAND",2053:"INVALID_HANDLE",2054:"INVALID_PASSWORD",2055:"INVALID_REALM",2056:"STORAGE_ACL_ENTRY_IN_USE",2057:"DATA_MISSING",2058:"DUPLICATE",2059:"EVENTLOG_FROZEN",2060:"PKI_MISSING_KEYS",2061:"PKI_GENERATING_KEYS",2062:"INVALID_KEY",2063:"INVALID_CERT",2064:"CERT_KEY_NOT_MATCH",2065:"MAX_KERB_DOMAIN_REACHED",2066:"UNSUPPORTED",2067:"INVALID_PRIORITY",2068:"NOT_FOUND",2069:"INVALID_CREDENTIALS",2070:"INVALID_PASSPHRASE",2072:"NO_ASSOCIATION",2075:"AUDIT_FAIL",2076:"BLOCKING_COMPONENT",2081:"USER_CONSENT_REQUIRED",4096:"APP_INTERNAL_ERROR",4097:"NOT_INITIALIZED",4098:"LIB_VERSION_UNSUPPORTED",4099:"INVALID_PARAM",4100:"RESOURCES",4101:"HARDWARE_ACCESS_ERROR",4102:"REQUESTOR_NOT_REGISTERED",4103:"NETWORK_ERROR",4104:"PARAM_BUFFER_TOO_SHORT",4105:"COM_NOT_INITIALIZED_IN_THREAD",4106:"URL_REQUIRED"};J.GetMessageLog=function(S,T){J.AMT_MessageLog_PositionToFirstRecord(k,[S,T,[]])};function k(U,S,T,V,W){if(V!=200||T.Body.ReturnValue!="0"){W[0](J,null,W[2],V);return}J.AMT_MessageLog_GetRecords(T.Body.IterationIdentifier,390,l,W)}function l(Z,W,Y,aa,ac){if(aa!=200||Y.Body.ReturnValue!="0"){ac[0](J,null,ac[2],aa);return}var U,V,ae,T,S=ac[2],ab=new Date(),ad,X=Y.Body.RecordArray;if(typeof X==="string"){Y.Body.RecordArray=[Y.Body.RecordArray]}for(U in X){T=Buffer.from(X[U],"base64");if(T!=null){ad=M(T,0);if((ad>0)&&(ad<4294967295)){ae={DeviceAddress:T[4],EventSensorType:T[5],EventType:T[6],EventOffset:T[7],EventSourceType:T[8],EventSeverity:T[9],SensorNumber:T[10],Entity:T[11],EntityInstance:T[12],EventData:[],Time:new Date((ad+(ab.getTimezoneOffset()*60))*1000)};for(V=13;V<21;V++){ae.EventData.push(T[V])}ae.EntityStr=o[ae.Entity];ae.Desc=j(ae.EventSensorType,ae.EventOffset,ae.EventData,ae.Entity);if(!ae.EntityStr){ae.EntityStr="Unknown"}S.push(ae)}}}if(Y.Body.NoMoreRecords!=true){J.AMT_MessageLog_GetRecords(Y.Body.IterationIdentifier,390,l,[ac[0],S,ac[2]])}else{ac[0](J,S,ac[2])}}var f="Platform firmware (e.g. BIOS)|SMI handler|ISV system management software|Alert ASIC|IPMI|BIOS vendor|System board set vendor|System integrator|Third party add-in|OSV|NIC|System management card".split("|");var p="Unspecified.|No system memory is physically installed in the system.|No usable system memory, all installed memory has experienced an unrecoverable failure.|Unrecoverable hard-disk/ATAPI/IDE device failure.|Unrecoverable system-board failure.|Unrecoverable diskette subsystem failure.|Unrecoverable hard-disk controller failure.|Unrecoverable PS/2 or USB keyboard failure.|Removable boot media not found.|Unrecoverable video controller failure.|No video device detected.|Firmware (BIOS) ROM corruption detected.|CPU voltage mismatch (processors that share same supply have mismatched voltage requirements)|CPU speed matching failure".split("|");var q="Unspecified.|Memory initialization.|Starting hard-disk initialization and test|Secondary processor(s) initialization|User authentication|User-initiated system setup|USB resource configuration|PCI resource configuration|Option ROM initialization|Video initialization|Cache initialization|SM Bus initialization|Keyboard controller initialization|Embedded controller/management controller initialization|Docking station attachment|Enabling docking station|Docking station ejection|Disabling docking station|Calling operating system wake-up vector|Starting operating system boot process|Baseboard or motherboard initialization|reserved|Floppy initialization|Keyboard test|Pointing device test|Primary processor initialization".split("|");var o="Unspecified|Other|Unknown|Processor|Disk|Peripheral|System management module|System board|Memory module|Processor module|Power supply|Add in card|Front panel board|Back panel board|Power system board|Drive backplane|System internal expansion board|Other system board|Processor board|Power unit|Power module|Power management board|Chassis back panel board|System chassis|Sub chassis|Other chassis board|Disk drive bay|Peripheral bay|Device bay|Fan cooling|Cooling unit|Cable interconnect|Memory device|System management software|BIOS|Intel(r) ME|System bus|Group|Intel(r) ME|External environment|Battery|Processing blade|Connectivity switch|Processor/memory module|I/O module|Processor I/O module|Management controller firmware|IPMI channel|PCI bus|PCI express bus|SCSI bus|SATA/SAS bus|Processor front side bus".split("|");J.RealmNames="||Redirection|PT Administration|Hardware Asset|Remote Control|Storage|Event Manager|Storage Admin|Agent Presence Local|Agent Presence Remote|Circuit Breaker|Network Time|General Information|Firmware Update|EIT|LocalUN|Endpoint Access Control|Endpoint Access Control Admin|Event Log Reader|Audit Log|ACL Realm|||Local System".split("|");J.WatchdogCurrentStates={1:"Not Started",2:"Stopped",4:"Running",8:"Expired",16:"Suspended"};function j(V,U,T,S){if(V==15){if(T[0]==235){return"Invalid Data"}if(U==0){return p[T[1]]}return q[T[1]]}if(V==18&&T[0]==170){return"Agent watchdog "+char2hex(T[4])+char2hex(T[3])+char2hex(T[2])+char2hex(T[1])+"-"+char2hex(T[6])+char2hex(T[5])+"-... changed to "+J.WatchdogCurrentStates[T[7]]}if(V==6){return"Authentication failed "+(T[1]+(T[2]<<8))+" times. The system may be under attack."}if(V==30){return"No bootable media"}if(V==32){return"Operating system lockup or power interrupt"}if(V==35){return"System boot failure"}if(V==37){return"System firmware started (at least one CPU is properly executing)."}return"Unknown Sensor Type #"+V}var a={16:"Security Admin",17:"RCO",18:"Redirection Manager",19:"Firmware Update Manager",20:"Security Audit Log",21:"Network Time",22:"Network Administration",23:"Storage Administration",24:"Event Manager",25:"Circuit Breaker Manager",26:"Agent Presence Manager",27:"Wireless Configuration",28:"EAC",29:"KVM",30:"User Opt-In Events",32:"Screen Blanking",33:"Watchdog Events",1600:"Provisioning Started",1601:"Provisioning Completed",1602:"ACL Entry Added",1603:"ACL Entry Modified",1604:"ACL Entry Removed",1605:"ACL Access with Invalid Credentials",1606:"ACL Entry State",1607:"TLS State Changed",1608:"TLS Server Certificate Set",1609:"TLS Server Certificate Remove",1610:"TLS Trusted Root Certificate Added",1611:"TLS Trusted Root Certificate Removed",1612:"TLS Preshared Key Set",1613:"Kerberos Settings Modified",1614:"Kerberos Master Key Modified",1615:"Flash Wear out Counters Reset",1616:"Power Package Modified",1617:"Set Realm Authentication Mode",1618:"Upgrade Client to Admin Control Mode",1619:"Unprovisioning Started",1700:"Performed Power Up",1701:"Performed Power Down",1702:"Performed Power Cycle",1703:"Performed Reset",1704:"Set Boot Options",1800:"IDER Session Opened",1801:"IDER Session Closed",1802:"IDER Enabled",1803:"IDER Disabled",1804:"SoL Session Opened",1805:"SoL Session Closed",1806:"SoL Enabled",1807:"SoL Disabled",1808:"KVM Session Started",1809:"KVM Session Ended",1810:"KVM Enabled",1811:"KVM Disabled",1812:"VNC Password Failed 3 Times",1900:"Firmware Updated",1901:"Firmware Update Failed",2000:"Security Audit Log Cleared",2001:"Security Audit Policy Modified",2002:"Security Audit Log Disabled",2003:"Security Audit Log Enabled",2004:"Security Audit Log Exported",2005:"Security Audit Log Recovered",2100:"Intel(R) ME Time Set",2200:"TCPIP Parameters Set",2201:"Host Name Set",2202:"Domain Name Set",2203:"VLAN Parameters Set",2204:"Link Policy Set",2205:"IPv6 Parameters Set",2300:"Global Storage Attributes Set",2301:"Storage EACL Modified",2302:"Storage FPACL Modified",2303:"Storage Write Operation",2400:"Alert Subscribed",2401:"Alert Unsubscribed",2402:"Event Log Cleared",2403:"Event Log Frozen",2500:"CB Filter Added",2501:"CB Filter Removed",2502:"CB Policy Added",2503:"CB Policy Removed",2504:"CB Default Policy Set",2505:"CB Heuristics Option Set",2506:"CB Heuristics State Cleared",2600:"Agent Watchdog Added",2601:"Agent Watchdog Removed",2602:"Agent Watchdog Action Set",2700:"Wireless Profile Added",2701:"Wireless Profile Removed",2702:"Wireless Profile Updated",2800:"EAC Posture Signer SET",2801:"EAC Enabled",2802:"EAC Disabled",2803:"EAC Posture State",2804:"EAC Set Options",2900:"KVM Opt-in Enabled",2901:"KVM Opt-in Disabled",2902:"KVM Password Changed",2903:"KVM Consent Succeeded",2904:"KVM Consent Failed",3000:"Opt-In Policy Change",3001:"Send Consent Code Event",3002:"Start Opt-In Blocked Event"};J.GetAuditLogExtendedDataStr=function(T,S){if((T==1602||T==1604)&&S[0]==0){return w(S).splice(2,2+S[1]).toString()}if(T==1603){if(S[1]==0){return w(S).splice(3).toString()}return null}if(T==1605){return["Invalid ME access","Invalid MEBx access"][S[0]]}if(T==1606){var U=["Disabled","Enabled"][S[0]];if(S[1]==0){U+=", "+S[3]}return U}if(T==1607){return"Remote "+["NoAuth","ServerAuth","MutualAuth"][S[0]]+", Local "+["NoAuth","ServerAuth","MutualAuth"][S[1]]}if(T==1617){return J.RealmNames[L(S,0)]+", "+["NoAuth","Auth","Disabled"][S[4]]}if(T==1619){return["BIOS","MEBx","Local MEI","Local WSMAN","Remote WSAMN"][S[0]]}if(T==1900){return"From "+N(S,0)+"."+N(S,2)+"."+N(S,4)+"."+N(S,6)+" to "+N(S,8)+"."+N(S,10)+"."+N(S,12)+"."+N(S,14)}if(T==2100){var V=new Date();V.setTime(L(S,0)*1000+(new Date().getTimezoneOffset()*60000));return V.toLocaleString()}if(T==3000){return"From "+["None","KVM","All"][S[0]]+" to "+["None","KVM","All"][S[1]]}if(T==3001){return["Success","Failed 3 times"][S[0]]}return null};J.GetAuditLog=function(S){J.AMT_AuditLog_ReadRecords(1,i,[S,[]])};function I(S){if(!S||S==null||typeof S=="object"){return S}return[S]}function N(T,S){return(T[S]<<8)+T[S+1]}function L(T,S){return(T[S]*16777216)+(T[S+1]<<16)+(T[S+2]<<8)+T[S+3]}function M(T,S){return(T[S+3]*16777216)+(T[S+2]<<16)+(T[S+1]<<8)+T[S]}function v(S){return Buffer.from(S).toString("base64")}function u(T){var U=null;try{U=Buffer.from(T,"base64").toString()}catch(S){console.log(S)}return U}function w(S){var U=[];for(var T in S){U.push(S[T])}return U}function i(ac,X,ab,ad,af){if(ad!=200){af[0](J,[],ad);return}var Z,W,S,T,ai,aa=af[1],ae=new Date(),ag;if(ab.Body.RecordsReturned>0){ab.Body.EventRecords=I(ab.Body.EventRecords);for(W in ab.Body.EventRecords){S=null;try{T=u(ab.Body.EventRecords[W]);S=new Buffer(T)}catch(U){console.log(U+" "+ab.Body.EventRecords[W])}ai={AuditAppID:N(S,0),EventID:N(S,2),InitiatorType:S[4]};ai.AuditApp=a[ai.AuditAppID];ai.Event=a[(ai.AuditAppID*100)+ai.EventID];if(!ai.Event){ai.Event="#"+ai.EventID}if(ai.InitiatorType==0){var ah=S[5];ai.Initiator=S.slice(6,6+ah).toString();Z=6+ah}if(ai.InitiatorType==1){ai.KerberosUserInDomain=L(S,5);var ah=S[9];ai.Initiator=G(S.slice(10,10+ah));Z=10+ah}if(ai.InitiatorType==2){ai.Initiator="Local";Z=5}if(ai.InitiatorType==3){ai.Initiator="KVM Default Port";Z=5}ag=L(S,Z);ai.Time=new Date((ag+(ae.getTimezoneOffset()*60))*1000);Z+=4;ai.MCLocationType=S[Z++];var Y=S[Z++];ai.NetAddress=S.slice(Z,Z+Y).toString();Z+=Y;var V=S[Z++];ai.Ex=S.slice(Z,Z+V);ai.ExStr=J.GetAuditLogExtendedDataStr((ai.AuditAppID*100)+ai.EventID,ai.Ex);aa.push(ai)}}if(ab.Body.TotalRecordCount>aa.length){J.AMT_AuditLog_ReadRecords(aa.length+1,i,[af[0],aa])}else{af[0](J,aa,ad)}}function C(U){if(U===undefined||U===null){return null}var V="";for(var T in U){var S=U[T];if(!S){continue}if(S.__parameterType==="reference"){V+=O(T,S)}else{V+=H(T,S)}}return V}function H(V,U){if(U===undefined||U===null){return null}var T=!!U.__namespace;var Z=T?"";for(var X in U){if(!U.hasOwnProperty(X)||X.indexOf("__")===0){continue}if(typeof U[X]==="function"||Array.isArray(U[X])){continue}if(typeof U[X]==="object"){console.error("only convert one level down...")}else{Y+=Z+X+">"+U[X].toString()+S+X+">"}}Y+="";return Y}function O(T,S){if(S===undefined||S===null){return null}var U="/wsman"+S.__resourceUri+"";for(var V in S){if(!S.hasOwnProperty(V)||V.indexOf("__")===0){continue}if(typeof S[V]==="function"||typeof S[V]==="object"||Array.isArray(S[V])){continue}U+=''+S[V].toString()+""}U+="";return U}function G(U){var T="S-"+U.charCodeAt(0)+"-"+U.charCodeAt(7);for(var S=2;S<(U.length/4);S++){T+="-"+M(U,S*4)}return T}function F(V){if(!V||V==null){return null}var U=V.split("-");if(U.length<4||(U[0]!="s"&&U[0]!="S")){return null}for(var S=1;S0?this[this.length-1]:undefined)}})}catch(e){}function dbus(a,b){this._ObjectID="linux-dbus";require("events").EventEmitter.call(this,true).createEvent("signal");Object.defineProperty(this,"uid",{value:b});this._child=require("child_process").execFile("/bin/sh",["sh"],{type:require("child_process").SpawnTypes.TERM,uid:b==null?-1:b});this._child.stdin.write("dbus-monitor --session \"type='signal', interface='"+a+'\'" | ( while read X; do echo "$X"; done )\n');this._child.stdout.dbus=this;this._child.stdout.on("data",function(c){if(!this.ready){this.ready=true;return}var f=[];var g=c.toString().split("\r\n");for(var d in g){if(g[d]==""){this.dbus.preParseRecords(f);f=[]}else{f.push(g[d])}}});this.preParseRecords=function(d){var f=[];for(var c in d){if(d[c].startsWith("signal ")){if(f.length>0){this.parseRecords(f)}f=[]}f.push(d[c])}if(f.length>0){this.parseRecords(f)}};this.parseRecords=function(d){if(d[0].startsWith("signal ")){var g={};var h=d[0].split(" ");h.shift();for(var c in h){var f=h[c].split("=");if(f.length==2){g[f[0]]=f[1]}}d.shift();g.data=d;this.parseSignal(g)}};this.parseSignal=function(f){var c=f.data;f.data=[];for(var d=0;d");var k=c[1].trim();var e=c[0].trim().split(" ");var d=e[0];var h=e[1].substring(1,e[1].length-1).split(",");if(d.startsWith(f+".so.")){l.push({lib:d,path:k,info:h})}}}return(l)}function monitorinfo(){this._ObjectID="monitor-info";this._gm=require("_GenericMarshal");if(process.platform=="win32"){this._user32=this._gm.CreateNativeProxy("user32.dll");this._user32.CreateMethod("EnumDisplayMonitors");this._kernel32=this._gm.CreateNativeProxy("kernel32.dll");this._kernel32.CreateMethod("GetLastError");this.getInfo=function h(){var e=this;return(new promise(function(v,u){this._monitorinfo={resolver:v,rejector:u,self:e,callback:e._gm.GetGenericGlobalCallback(4)};this._monitorinfo.callback.info=this._monitorinfo;this._monitorinfo.dwData=e._gm.ObjectToPtr(this._monitorinfo);this._monitorinfo.callback.results=[];this._monitorinfo.callback.on("GlobalCallback",function i(x,w,y,A){if(this.ObjectToPtr_Verify(this.info,A)){var z=y.Deref(0,16).toBuffer();this.results.push({left:z.readInt32LE(0),top:z.readInt32LE(4),right:z.readInt32LE(8),bottom:z.readInt32LE(12)});var y=this.info.self._gm.CreateInteger();y.Val=1;return(y)}});if(e._user32.EnumDisplayMonitors(0,0,this._monitorinfo.callback,this._monitorinfo.dwData).Val==0){u("LastError="+e._kernel32.GetLastError().Val);return}else{v(this._monitorinfo.callback.results)}}))}}else{if(process.platform=="linux"){var a=false;try{if(require("user-sessions").isRoot()){a=true}}catch(b){}if(a){var r=getLibInfo("libX11");var t=getLibInfo("libXtst");var s=getLibInfo("libXext");var n;for(n in r){try{this._gm.CreateNativeProxy(r[n].path);Object.defineProperty(this,"Location_X11LIB",{value:r[n].path});break}catch(c){}}for(n in t){try{this._gm.CreateNativeProxy(t[n].path);Object.defineProperty(this,"Location_X11TST",{value:t[n].path});break}catch(c){}}for(n in s){try{this._gm.CreateNativeProxy(s[n].path);Object.defineProperty(this,"Location_X11EXT",{value:s[n].path});break}catch(c){}}}else{var g=require("fs");var d=g.readdirSync("/usr/lib");var f;for(var l in d){try{if(d[l].split("libX11.so.").length>1&&d[l].split(".").length==3){Object.defineProperty(this,"Location_X11LIB",{value:"/usr/lib/"+d[l]})}if(d[l].split("libXtst.so.").length>1&&d[l].split(".").length==3){Object.defineProperty(this,"Location_X11TST",{value:"/usr/lib/"+d[l]})}if(d[l].split("libXext.so.").length>1&&d[l].split(".").length==3){Object.defineProperty(this,"Location_X11EXT",{value:"/usr/lib/"+d[l]})}if(d[l].split("-linux-").length>1){f=g.readdirSync("/usr/lib/"+d[l]);for(j in f){if(f[j].split("libX11.so.").length>1&&f[j].split(".").length==3){Object.defineProperty(this,"Location_X11LIB",{value:"/usr/lib/"+d[l]+"/"+f[j]})}if(f[j].split("libXtst.so.").length>1&&f[j].split(".").length==3){Object.defineProperty(this,"Location_X11TST",{value:"/usr/lib/"+d[l]+"/"+f[j]})}if(f[j].split("libXext.so.").length>1&&f[j].split(".").length==3){Object.defineProperty(this,"Location_X11EXT",{value:"/usr/lib/"+d[l]+"/"+f[j]})}}}}catch(c){}}}Object.defineProperty(this,"kvm_x11_support",{value:(this.Location_X11LIB&&this.Location_X11TST&&this.Location_X11EXT)?true:false});if(this.Location_X11LIB){this._X11=this._gm.CreateNativeProxy(this.Location_X11LIB);this._X11.CreateMethod("XChangeProperty");this._X11.CreateMethod("XCloseDisplay");this._X11.CreateMethod("XCreateGC");this._X11.CreateMethod("XCreateWindow");this._X11.CreateMethod("XCreateSimpleWindow");this._X11.CreateMethod("XDefaultColormap");this._X11.CreateMethod("XDefaultScreen");this._X11.CreateMethod("XDrawLine");this._X11.CreateMethod("XDisplayHeight");this._X11.CreateMethod("XDisplayWidth");this._X11.CreateMethod("XFetchName");this._X11.CreateMethod("XFlush");this._X11.CreateMethod("XFree");this._X11.CreateMethod("XCreateGC");this._X11.CreateMethod("XGetWindowProperty");this._X11.CreateMethod("XInternAtom");this._X11.CreateMethod("XMapWindow");this._X11.CreateMethod({method:"XNextEvent",threadDispatch:true});this._X11.CreateMethod("XOpenDisplay");this._X11.CreateMethod("XRootWindow");this._X11.CreateMethod("XScreenCount");this._X11.CreateMethod("XScreenOfDisplay");this._X11.CreateMethod("XSelectInput");this._X11.CreateMethod("XSendEvent");this._X11.CreateMethod("XSetForeground");this._X11.CreateMethod("XSetFunction");this._X11.CreateMethod("XSetLineAttributes");this._X11.CreateMethod("XSetNormalHints");this._X11.CreateMethod("XSetSubwindowMode");this._X11.CreateMethod("XBlackPixel");this._X11.CreateMethod("XWhitePixel")}this.isUnity=function m(){return(process.env.XDG_CURRENT_DESKTOP=="Unity")};this.unDecorateWindow=function q(e,v){var i=this._gm.CreateVariable(40);var u=this._X11.XInternAtom(e,this._gm.CreateVariable("_MOTIF_WM_HINTS"),0);i.Deref(0,4).toBuffer().writeUInt32LE(1<<1);this._X11.XChangeProperty(e,v,u,u,32,0,i,5)};this.setWindowSizeHints=function p(e,w,z,A,v,i){var u=this._gm.CreateVariable(80);u.Deref(0,4).toBuffer().writeUInt32LE(PPosition|PSize);u.Deref(8,4).toBuffer().writeUInt32LE(z);u.Deref(12,4).toBuffer().writeUInt32LE(A);u.Deref(16,4).toBuffer().writeUInt32LE(v);u.Deref(20,4).toBuffer().writeUInt32LE(i);this._X11.XSetNormalHints(e,w,u)};this.setAlwaysOnTop=function o(e,i,u){var v=this._X11.XInternAtom(e,this._gm.CreateVariable("_NET_WM_STATE"),1);var w=this._X11.XInternAtom(e,this._gm.CreateVariable("_NET_WM_STATE_ABOVE"),1);var x=this._gm.CreateVariable(96);x.Deref(0,4).toBuffer().writeUInt32LE(33);x.Deref(48,4).toBuffer().writeUInt32LE(32);v.pointerBuffer().copy(x.Deref(40,8).toBuffer());x.Deref(56,8).toBuffer().writeUInt32LE(_NET_WM_STATE_ADD);w.pointerBuffer().copy(x.Deref(64,8).toBuffer());u.pointerBuffer().copy(x.Deref(32,8).toBuffer());this._X11.XSendEvent(e,i,0,SubstructureRedirectMask|SubstructureNotifyMask,x)};this.hideWindowIcon=function k(e,i,u){var v=this._X11.XInternAtom(e,this._gm.CreateVariable("_NET_WM_STATE"),1);var w=this._X11.XInternAtom(e,this._gm.CreateVariable("_NET_WM_STATE_SKIP_TASKBAR"),1);var x=this._gm.CreateVariable(96);x.Deref(0,4).toBuffer().writeUInt32LE(33);x.Deref(48,4).toBuffer().writeUInt32LE(32);v.pointerBuffer().copy(x.Deref(40,8).toBuffer());x.Deref(56,8).toBuffer().writeUInt32LE(_NET_WM_STATE_ADD);w.pointerBuffer().copy(x.Deref(64,8).toBuffer());u.pointerBuffer().copy(x.Deref(32,8).toBuffer());this._X11.XSendEvent(e,i,0,SubstructureRedirectMask|SubstructureNotifyMask,x)};this.getInfo=function h(){var e=this;return(new promise(function(x,w){var u=e._X11.XOpenDisplay(e._gm.CreateVariable(":0"));var A=e._X11.XScreenCount(u).Val;var y=[];for(var v=0;v0&&t[u]){s.push(t[u])}}if(h>0){if(s[o.PID]){r[s[o.PID]]={pid:o.PID,user:s[o.USER],cmd:s[o.COMMAND]}}}}if(this.callback){this.args.unshift(r);this.callback.apply(this.parent,this.args)}});l.stdout.on("data",function(h){this.parent.ps+=h.toString()});break;case"darwin":var m=require("promise");var l=new m(function(i,h){this._res=i;this._rej=h});l.pm=this;l.callback=d;l.args=[];for(var f=1;f0){r[p[o].substring(0,q).trim()]={pid:p[o].substring(0,q).trim(),cmd:p[o].substring(h)}}}this.promise._res(r)});l.then(function(h){this.args.unshift(h);this.callback.apply(this.pm,this.args)});break}};this.getProcessInfo=function c(g){switch(process.platform){default:throw ("getProcessInfo() not supported for "+process.platform);break;case"linux":var h=require("fs").readFileSync("/proc/"+g+"/status");var e={};var f=h.toString().split("\n");for(var d in f){var j=f[d].split(":");if(j.length>1){j[1]=j[1].trim()}e[j[0]]=j[1]}return(e);break}}}module.exports=new processManager(); \ No newline at end of file diff --git a/agents/modules_meshcore_min/service-manager.min.js b/agents/modules_meshcore_min/service-manager.min.js new file mode 100644 index 00000000..21d4d136 --- /dev/null +++ b/agents/modules_meshcore_min/service-manager.min.js @@ -0,0 +1 @@ +function parseServiceStatus(d){var b={};var c=d.Deref(0,4).IntVal;b.isFileSystemDriver=((c&2)==2);b.isKernelDriver=((c&1)==1);b.isSharedProcess=((c&32)==32);b.isOwnProcess=((c&16)==16);b.isInteractive=((c&256)==256);switch(d.Deref((1*4),4).toBuffer().readUInt32LE()){case 5:b.state="CONTINUE_PENDING";break;case 6:b.state="PAUSE_PENDING";break;case 7:b.state="PAUSED";break;case 4:b.state="RUNNING";break;case 2:b.state="START_PENDING";break;case 3:b.state="STOP_PENDING";break;case 1:b.state="STOPPED";break}var a=d.Deref((2*4),4).toBuffer().readUInt32LE();b.controlsAccepted=[];if((a&16)==16){b.controlsAccepted.push("SERVICE_CONTROL_NETBINDADD");b.controlsAccepted.push("SERVICE_CONTROL_NETBINDREMOVE");b.controlsAccepted.push("SERVICE_CONTROL_NETBINDENABLE");b.controlsAccepted.push("SERVICE_CONTROL_NETBINDDISABLE")}if((a&8)==8){b.controlsAccepted.push("SERVICE_CONTROL_PARAMCHANGE")}if((a&2)==2){b.controlsAccepted.push("SERVICE_CONTROL_PAUSE");b.controlsAccepted.push("SERVICE_CONTROL_CONTINUE")}if((a&256)==256){b.controlsAccepted.push("SERVICE_CONTROL_PRESHUTDOWN")}if((a&4)==4){b.controlsAccepted.push("SERVICE_CONTROL_SHUTDOWN")}if((a&1)==1){b.controlsAccepted.push("SERVICE_CONTROL_STOP")}if((a&32)==32){b.controlsAccepted.push("SERVICE_CONTROL_HARDWAREPROFILECHANGE")}if((a&64)==64){b.controlsAccepted.push("SERVICE_CONTROL_POWEREVENT")}if((a&128)==128){b.controlsAccepted.push("SERVICE_CONTROL_SESSIONCHANGE")}b.pid=d.Deref((7*4),4).toBuffer().readUInt32LE();return(b)}function serviceManager(){this._ObjectID="service-manager";if(process.platform=="win32"){this.GM=require("_GenericMarshal");this.proxy=this.GM.CreateNativeProxy("Advapi32.dll");this.proxy.CreateMethod("OpenSCManagerA");this.proxy.CreateMethod("EnumServicesStatusExA");this.proxy.CreateMethod("OpenServiceA");this.proxy.CreateMethod("QueryServiceStatusEx");this.proxy.CreateMethod("ControlService");this.proxy.CreateMethod("StartServiceA");this.proxy.CreateMethod("CloseServiceHandle");this.proxy.CreateMethod("CreateServiceA");this.proxy.CreateMethod("ChangeServiceConfig2A");this.proxy.CreateMethod("DeleteService");this.proxy.CreateMethod("AllocateAndInitializeSid");this.proxy.CreateMethod("CheckTokenMembership");this.proxy.CreateMethod("FreeSid");this.proxy2=this.GM.CreateNativeProxy("Kernel32.dll");this.proxy2.CreateMethod("GetLastError");this.isAdmin=function e(){var j=this.GM.CreateVariable(6);j.toBuffer().writeInt8(5,5);var h=this.GM.CreatePointer();var g=false;if(this.proxy.AllocateAndInitializeSid(j,2,32,544,0,0,0,0,0,0,h).Val!=0){var i=this.GM.CreateInteger();if(this.proxy.CheckTokenMembership(0,h.Deref(),i).Val!=0){if(i.toBuffer().readUInt32LE()!=0){g=true}}this.proxy.FreeSid(h.Deref())}return g};this.getProgramFolder=function a(){if(require("os").arch()=="x64"){if(this.GM.PointerSize==4){return process.env["ProgramFiles(x86)"]}return process.env.ProgramFiles}return process.env.ProgramFiles};this.getServiceFolder=function b(){return this.getProgramFolder()+"\\mesh"};this.enumerateService=function(){var o=this.GM.CreatePointer();var k=this.GM.CreatePointer();var l=this.proxy.OpenSCManagerA(0,0,1|4);var h=this.GM.CreatePointer();var t=this.GM.CreatePointer();var q=this.GM.CreatePointer();var u=this.proxy.EnumServicesStatusExA(l,0,48,3,0,0,h,t,q,0);if(h.IntVal<=0){throw ("error enumerating services")}var v=h.IntVal;var s=this.GM.CreateVariable(v);this.proxy.EnumServicesStatusExA(l,0,48,3,s,v,h,t,q,0);console.log("servicesReturned",t.IntVal);var p=k._size;var g=36+(2*p);g+=((p-(g%p))%p);var r=[];for(var m=0;mStandardOutPath\n"+s.stdout+""):"");var i=(s.startType=="AUTO_START"?"":"");var t=" ProgramArguments\n";t+=" \n";t+=(" /usr/local/mesh_services/"+s.name+"/"+s.name+"\n");if(s.parameters){for(var p in s.parameters){t+=(" "+s.parameters[p]+"\n")}}t+=" \n";var u='\n';u+='\n';u+='\n';u+=" \n";u+=" Label\n";u+=(" "+s.name+"\n");u+=(t+"\n");u+=" WorkingDirectory\n";u+=(" /usr/local/mesh_services/"+s.name+"\n");u+=(z+"\n");u+=" RunAtLoad\n";u+=(i+"\n");u+=" \n";u+="";if(!require("fs").existsSync("/usr/local/mesh_services")){require("fs").mkdirSync("/usr/local/mesh_services")}if(!require("fs").existsSync("/Library/LaunchDaemons/"+s.name+".plist")){if(!require("fs").existsSync("/usr/local/mesh_services/"+s.name)){require("fs").mkdirSync("/usr/local/mesh_services/"+s.name)}if(s.binary){require("fs").writeFileSync("/usr/local/mesh_services/"+s.name+"/"+s.name,s.binary)}else{require("fs").copyFileSync(s.servicePath,"/usr/local/mesh_services/"+s.name+"/"+s.name)}require("fs").writeFileSync("/Library/LaunchDaemons/"+s.name+".plist",u);var q=require("fs").statSync("/usr/local/mesh_services/"+s.name+"/"+s.name).mode;q|=(require("fs").CHMOD_MODES.S_IXUSR|require("fs").CHMOD_MODES.S_IXGRP);require("fs").chmodSync("/usr/local/mesh_services/"+s.name+"/"+s.name,q)}else{throw ("Service: "+s.name+" already exists")}}};this.uninstallService=function f(i){if(!this.isAdmin()){throw ("Uninstalling a service, requires admin")}if(typeof(i)=="object"){i=i.name}if(process.platform=="win32"){var k=this.getService(i);if(k.status.state==undefined||k.status.state=="STOPPED"){if(this.proxy.DeleteService(k._service)==0){throw ("Uninstall Service for: "+i+", failed with error: "+this.proxy2.GetLastError())}else{try{require("fs").unlinkSync(this.getServiceFolder()+"\\"+i+".exe")}catch(h){}}}else{throw ("Cannot uninstall service: "+i+", because it is: "+k.status.state)}}else{if(process.platform=="linux"){switch(this.getServiceType()){case"init":this._update=require("child_process").execFile("/bin/sh",["sh"],{type:require("child_process").SpawnTypes.TERM});this._update._svcname=i;this._update.on("exit",function j(){try{require("fs").unlinkSync("/etc/init.d/"+this._svcname);console.log(this._svcname+" uninstalled")}catch(l){console.log(this._svcname+" could not be uninstalled")}process.exit()});this._update.stdout.on("data",function(l){});this._update.stdin.write("service "+i+" stop\n");this._update.stdin.write("update-rc.d -f "+i+" remove\n");this._update.stdin.write("exit\n");break;case"systemd":this._update=require("child_process").execFile("/bin/sh",["sh"],{type:require("child_process").SpawnTypes.TERM});this._update._svcname=i;this._update.on("exit",function j(){try{require("fs").unlinkSync("/usr/local/mesh/"+this._svcname);require("fs").unlinkSync("/lib/systemd/system/"+this._svcname+".service");console.log(this._svcname+" uninstalled")}catch(l){console.log(this._svcname+" could not be uninstalled")}process.exit()});this._update.stdout.on("data",function(l){});this._update.stdin.write("systemctl stop "+i+".service\n");this._update.stdin.write("systemctl disable "+i+".service\n");this._update.stdin.write("exit\n");break;default:break}}else{if(process.platform=="darwin"){if(require("fs").existsSync("/Library/LaunchDaemons/"+i+".plist")){var g=require("child_process").execFile("/bin/sh",["sh"]);g.stdout.on("data",function(l){});g.stdin.write("launchctl stop "+i+"\n");g.stdin.write("launchctl unload /Library/LaunchDaemons/"+i+".plist\n");g.stdin.write("exit\n");g.waitExit();try{require("fs").unlinkSync("/usr/local/mesh_services/"+i+"/"+i);require("fs").unlinkSync("/Library/LaunchDaemons/"+i+".plist")}catch(h){throw ("Error uninstalling service: "+i+" => "+h)}try{require("fs").rmdirSync("/usr/local/mesh_services/"+i)}catch(h){}}else{throw ("Service: "+i+" does not exist")}}}}};if(process.platform=="linux"){this.getServiceType=function c(){return(require("process-manager").getProcessInfo(1).Name)}}}module.exports=serviceManager; \ No newline at end of file diff --git a/agents/modules_meshcore_min/smbios.min.js b/agents/modules_meshcore_min/smbios.min.js new file mode 100644 index 00000000..618e6256 --- /dev/null +++ b/agents/modules_meshcore_min/smbios.min.js @@ -0,0 +1 @@ +try{Object.defineProperty(Array.prototype,"peek",{value:function(){return(this.length>0?this[this.length-1]:undefined)}})}catch(e){}try{Object.defineProperty(String.prototype,"replaceAll",{value:function replaceAll(b,a){return(this.split(b).join(a))}})}catch(e){}var RSMB=1381190978;var memoryLocation={1:"Other",2:"Unknown",3:"System Board",4:"ISA",5:"EISA",6:"PCI",7:"MCA",8:"PCMCIA",9:"Proprietary",10:"NuBus",160:"PC-98/C20",161:"PC-98/C24",162:"PC-98/E",163:"PC-98/LB"};var wakeReason=["Reserved","Other","Unknown","APM Timer","Modem Ring","LAN","Power Switch","PCI","AC Power"];function zeroLeftPad(c,b){if((b==null)&&(typeof(b)!="number")){return null}if(c==null){c=""}var d="";for(var a=0;a1){var r=v[1].split("\x0A\x0A")[0].split("\x0A");var s=[];for(var t in r){var u=r[t].trim().replaceAll(" ","").replaceAll("\x09","");if(!(u[0]=='"')){s.push(u)}}p.write(Buffer.from(s.join(""),"hex"));p.write(Buffer.from("00","hex"))}else{p.write(Buffer.from("0000","hex"))}}var q=p.buffer;q.ms=p;return(q)}}this._parse=function b(n){var m={};var l;var k=0;var n;var r=0;while(n&&k0){var n=l[4].pop();var o=n[20]&64;var s=n[20]&7;if(o){var m={_ObjectID:"SMBiosTables.processorInfo"};m.Processor=q[n[1]];m.MaxSpeed=n.readUInt16LE(16)+" Mhz";if(n[31]){m.Cores=n[31]}if(n[33]){m.Threads=n[33]}m.Populated=1;m.Status=t[s];m.Socket=n._strings[n[0]-1];m.Manufacturer=n._strings[n[3]-1];m.Version=n._strings[n[12]-1];r.push(m)}}return(r)};this.memoryInfo=function f(k){if(!k){throw ("no data")}var n={_ObjectID:"SMBiosTables.memoryInfo"};if(k[16]){var l=k[16].peek();n.location=memoryLocation[l[0]];if((n.maxCapacityKb=l.readUInt32LE(3))==2147483648){n.maxCapacityKb="A really big number"}}return(n)};this.systemInfo=function i(k){if(!k){throw ("no data")}var l={_ObjectID:"SMBiosTables.systemInfo"};if(k[1]){var m=k[1].peek();var n=m.slice(4,20);l.uuid=[zeroLeftPad(n.readUInt32LE(0).toString(16),8),zeroLeftPad(n.readUInt16LE(4).toString(16),4),zeroLeftPad(n.readUInt16LE(6).toString(16),4),zeroLeftPad(n.readUInt16BE(8).toString(16),4),zeroLeftPad(n.slice(10).toString("hex").toLowerCase(),12)].join("-");l.wakeReason=wakeReason[m[20]]}return(l)};this.systemSlots=function j(k){if(!k){throw ("no data")}var l=[];if(k[9]){while(k[9].length>0){var m=k[9].pop();l.push({name:m._strings[m[0]-1]})}}return(l)};this.amtInfo=function c(l){if(!l){throw ("no data")}var n={AMT:false};if(l[130]&&l[130].peek().slice(0,4).toString()=="$AMT"){var k=l[130].peek();n.AMT=k[4]?true:false;if(n.AMT){n.enabled=k[5]?true:false;n.storageRedirection=k[6]?true:false;n.serialOverLan=k[7]?true:false;n.kvm=k[14]?true:false;if(l[131].peek()&&l[131].peek().slice(52,56).toString()=="vPro"){var o=l[131].peek();if(o[0]&4){n.TXT=(o[0]&8)?true:false}if(o[0]&16){n.VMX=(o[0]&32)?true:false}n.MEBX=o.readUInt16LE(10).toString()+"."+o.readUInt16LE(8).toString()+"."+o.readUInt16LE(6).toString()+"."+o.readUInt16LE(4).toString();var m=o.slice(20,32);n.ManagementEngine=m.readUInt16LE(6).toString()+"."+m.readUInt16LE(4).toString()+"."+m.readUInt16LE(2).toString()+"."+m.readUInt16LE(0).toString()}}}return(n)};this.smTableTypes={0:"BIOS information",1:"System information",2:"Baseboard (or Module) information",4:"Processor information",5:"memory controller information",6:"Memory module information",7:"Cache information",8:"Port connector information",9:"System slots",10:"On board devices information",11:"OEM strings",12:"System configuration options",13:"BIOS language information",14:"Group associations",15:"System event log",16:"Physical memory array",17:"Memory device",18:"32bit memory error information",19:"Memory array mapped address",20:"Memory device mapped address",21:"Built-in pointing device",22:"Portable battery",23:"System reset",24:"Hardware security",25:"System power controls",26:"Voltage probe",27:"Cooling device",28:"Temperature probe",29:"Electrical current probe",30:"Out-of-band remote access",31:"Boot integrity services (BIS) entry point",32:"System boot information",33:"64bit memory error information",34:"Management device",35:"Management device component",36:"Management device threshold data",37:"Memory channel",38:"IPMI device information",39:"System power supply",40:"Additional information",41:"Onboard devices extended information",42:"Management controller host interface",126:"Inactive",127:"End-of-table"}}module.exports=new SMBiosTables(); \ No newline at end of file diff --git a/agents/modules_meshcore_min/toaster.min.js b/agents/modules_meshcore_min/toaster.min.js new file mode 100644 index 00000000..407f7047 --- /dev/null +++ b/agents/modules_meshcore_min/toaster.min.js @@ -0,0 +1 @@ +var toasters={};function Toaster(){this._ObjectID="toaster";this.Toast=function a(l,b){var h={};var d=require("events").inherits(h);d.createEvent("Dismissed");h.title=l;h.caption=b;if(process.platform=="win32"){d.createEvent("Clicked");var j=require("user-sessions").Current();for(var f in j){console.log(j[f])}try{console.log("Attempting Toast Mechanism 1");h._child=require("ScriptContainer").Create({processIsolation:true,sessionId:j.Active[0].SessionId})}catch(c){console.log(c);console.log("Attempting Toast Mechanism 2");h._child=require("ScriptContainer").Create({processIsolation:true})}h._child.parent=h;h._child.on("exit",function(e){this.parent.emit("Dismissed");delete this.parent._child});h._child.addModule("win-console",getJSModule("win-console"));h._child.addModule("win-message-pump",getJSModule("win-message-pump"));var k=" try{ var toast = require('win-console'); var balloon = toast.SetTrayIcon({ szInfo: '"+b+"', szInfoTitle: '"+l+"', balloonOnly: true }); balloon.on('ToastDismissed', function(){process.exit();}); } catch(e) { require('ScriptContainer').send(e); } require('ScriptContainer').send('done'); ";h._child.ExecuteString(k);toasters[h._hashCode()]=h;h.on("Dismissed",function(){delete toasters[this._hashCode()]});console.log("Returning");return(h)}else{if(!require("fs").existsSync("/usr/bin/notify-send")){throw ("Toast not supported on this platform")}Object.defineProperty(h,"_sessions",{value:require("user-sessions").Current(function g(e){this._cchild=require("child_process").execFile("/usr/bin/whoami",["whoami"],{type:require("child_process").SpawnTypes.TERM});this._cchild.stdout.on("data",function(i){if(i.toString().split("\r\n")[0]=="root"){if(e[":0"].State!="Connected"&&e[":0"].State!="Active"){this.parent.parent.Parent.emit("Dismissed");return}this.parent.parent._notify=require("child_process").execFile("/bin/sh",["sh"],{type:require("child_process").SpawnTypes.TERM});this.parent.parent._notify.stdin.write("su - "+e[":0"].Username+" -c \"DISPLAY=:0 notify-send '"+this.parent.parent.Parent.title+"' '"+this.parent.parent.Parent.caption+"'\"\n");this.parent.parent._notify.stdin.write("exit\n");this.parent.parent._notify.stdout.on("data",function(n){})}else{this.parent.parent._notify=require("child_process").execFile("/usr/bin/notify-send",["notify-send",this.parent.parent.Parent.title,this.parent.parent.Parent.caption],{type:require("child_process").SpawnTypes.TERM});this.parent.parent._notify.stdout.on("data",function(n){})}this.parent.parent.Parent._timeout=setTimeout(function m(n){n.emit("Dismissed")},10000,this.parent.parent.Parent)});this._cchild.parent=this})});h._sessions.Parent=h;toasters[h._hashCode()]=h;h.on("Dismissed",function(){delete toasters[this._hashCode()]});return(h)}}}module.exports=new Toaster(); \ No newline at end of file diff --git a/agents/modules_meshcore_min/user-sessions.min.js b/agents/modules_meshcore_min/user-sessions.min.js new file mode 100644 index 00000000..76bea7da --- /dev/null +++ b/agents/modules_meshcore_min/user-sessions.min.js @@ -0,0 +1 @@ +var NOTIFY_FOR_THIS_SESSION=0;var NOTIFY_FOR_ALL_SESSIONS=1;var WM_WTSSESSION_CHANGE=689;var WM_POWERBROADCAST=536;var PBT_POWERSETTINGCHANGE=32787;var PBT_APMSUSPEND=4;var PBT_APMRESUMESUSPEND=7;var PBT_APMRESUMEAUTOMATIC=18;var PBT_APMPOWERSTATUSCHANGE=10;var WTS_CONSOLE_CONNECT=(1);var WTS_CONSOLE_DISCONNECT=(2);var WTS_REMOTE_CONNECT=(3);var WTS_REMOTE_DISCONNECT=(4);var WTS_SESSION_LOGON=(5);var WTS_SESSION_LOGOFF=(6);var WTS_SESSION_LOCK=(7);var WTS_SESSION_UNLOCK=(8);var WTS_SESSION_REMOTE_CONTROL=(9);var WTS_SESSION_CREATE=(10);var WTS_SESSION_TERMINATE=(11);var GUID_ACDC_POWER_SOURCE;var GUID_BATTERY_PERCENTAGE_REMAINING;var GUID_CONSOLE_DISPLAY_STATE;function UserSessions(){this._ObjectID="user-sessions";require("events").EventEmitter.call(this,true).createEvent("changed").createEvent("locked").createEvent("unlocked");this.enumerateUsers=function h(){var s=require("promise");var r=new s(function(t,p){this.__resolver=t;this.__rejector=p});r.__handler=function o(p){r.__resolver(p)};try{this.Current(r.__handler)}catch(q){r.__rejector(q)}r.parent=this;return(r)};if(process.platform=="win32"){this._serviceHooked=false;this._marshal=require("_GenericMarshal");this._kernel32=this._marshal.CreateNativeProxy("Kernel32.dll");this._kernel32.CreateMethod("GetLastError");try{this._wts=this._marshal.CreateNativeProxy("Wtsapi32.dll");this._wts.CreateMethod("WTSEnumerateSessionsA");this._wts.CreateMethod("WTSQuerySessionInformationA");this._wts.CreateMethod("WTSRegisterSessionNotification");this._wts.CreateMethod("WTSUnRegisterSessionNotification");this._wts.CreateMethod("WTSFreeMemory")}catch(i){}this._user32=this._marshal.CreateNativeProxy("user32.dll");this._user32.CreateMethod({method:"RegisterPowerSettingNotification",threadDispatch:1});this._user32.CreateMethod("UnregisterPowerSettingNotification");this._rpcrt=this._marshal.CreateNativeProxy("Rpcrt4.dll");this._rpcrt.CreateMethod("UuidFromStringA");this._rpcrt.StringToUUID=function n(o){var p=n.us._marshal.CreateVariable(16);if(n.us._rpcrt.UuidFromStringA(n.us._marshal.CreateVariable(o),p).Val==0){return(p)}else{throw ("Could not convert string to UUID")}};this._rpcrt.StringToUUID.us=this;GUID_ACDC_POWER_SOURCE=this._rpcrt.StringToUUID("5d3e9a59-e9D5-4b00-a6bd-ff34ff516548");GUID_BATTERY_PERCENTAGE_REMAINING=this._rpcrt.StringToUUID("a7ad8041-b45a-4cae-87a3-eecbb468a9e1");GUID_CONSOLE_DISPLAY_STATE=this._rpcrt.StringToUUID("6fe69556-704a-47a0-8f24-c28d936fda47");this.SessionStates=["Active","Connected","ConnectQuery","Shadow","Disconnected","Idle","Listening","Reset","Down","Init"];this.InfoClass={WTSInitialProgram:0,WTSApplicationName:1,WTSWorkingDirectory:2,WTSOEMId:3,WTSSessionId:4,WTSUserName:5,WTSWinStationName:6,WTSDomainName:7,WTSConnectState:8,WTSClientBuildNumber:9,WTSClientName:10,WTSClientDirectory:11,WTSClientProductId:12,WTSClientHardwareId:13,WTSClientAddress:14,WTSClientDisplay:15,WTSClientProtocolType:16,WTSIdleTime:17,WTSLogonTime:18,WTSIncomingBytes:19,WTSOutgoingBytes:20,WTSIncomingFrames:21,WTSOutgoingFrames:22,WTSClientInfo:23,WTSSessionInfo:24,WTSSessionInfoEx:25,WTSConfigInfo:26,WTSValidationInfo:27,WTSSessionAddressV4:28,WTSIsRemoteSession:29};this.getSessionAttribute=function j(s,o){var p=this._marshal.CreatePointer();var q=this._marshal.CreateVariable(4);if(this._wts.WTSQuerySessionInformationA(0,s,o,p,q).Val==0){throw ("Error calling WTSQuerySessionInformation: "+this._kernel32.GetLastError.Val)}var r=p.Deref().String;this._wts.WTSFreeMemory(p.Deref());return(r)};this.Current=function f(o){var u={};var t=this._marshal.CreatePointer();var p=this._marshal.CreateVariable(4);if(this._wts.WTSEnumerateSessionsA(0,0,1,t,p).Val==0){throw ("Error calling WTSEnumerateSessionsA: "+this._kernel32.GetLastError().Val)}for(var q=0;q= 0) {printf \"%s:%s\\n\", $1, $3}' /etc/passwd\nexit\n");o.waitExit();var p=o.stdout.str.split("\n");var r={},s;for(var q in p){s=p[q].split(":");if(s[0]){r[s[0]]=s[1]}}return(r)};this._uids=function c(){var o=require("child_process").execFile("/bin/sh",["sh"]);o.stdout.str="";o.stdout.on("data",function(t){this.str+=t.toString()});o.stdin.write("awk -F: '($3 >= 0) {printf \"%s:%s\\n\", $1, $3}' /etc/passwd\nexit\n");o.waitExit();var p=o.stdout.str.split("\n");var r={},s;for(var q in p){s=p[q].split(":");if(s[0]){r[s[1]]=s[0]}}return(r)};this.Self=function m(){var q=require("promise");var o=new q(function(r,p){this.__resolver=r;this.__rejector=p;this.__child=require("child_process").execFile("/usr/bin/id",["id","-u"]);this.__child.promise=this;this.__child.stdout._txt="";this.__child.stdout.on("data",function(s){this._txt+=s.toString()});this.__child.on("exit",function(s){try{parseInt(this.stdout._txt)}catch(t){this.promise.__rejector("invalid uid");return}var u=parseInt(this.stdout._txt);this.promise.__resolver(u)})});return(o)};this.Current=function f(o){var p={};p._ObjectID="UserSession";Object.defineProperty(p,"_callback",{value:o});Object.defineProperty(p,"_child",{value:require("child_process").execFile("/usr/bin/last",["last","-f","/var/run/utmp"])});p._child.Parent=p;p._child._txt="";p._child.on("exit",function(q){var u=this._txt.split("\n");var A=[];var D={};for(var t in u){if(u[t]){var B=getTokens(u[t]);var z={Username:B[0],SessionId:B[1]};if(B[3].includes("still logged in")){z.State="Active"}else{z.LastActive=B[3]}A.push(z)}}A.pop();var C={};var y=[];for(var t in A){if(A[t].Username!="reboot"){D[A[t].SessionId]=A[t];if(C[A[t].Username]==null){C[A[t].Username]=-1}}}try{require("promise")}catch(r){Object.defineProperty(D,"Active",{value:showActiveOnly(D)});if(this.Parent._callback){this.Parent._callback.call(this.Parent,D)}return}var x=require("promise");for(var v in C){var w=new x(function(E,s){this.__username=v;this.__resolver=E;this.__rejector=s;this.__child=require("child_process").execFile("/usr/bin/id",["id","-u",v]);this.__child.promise=this;this.__child.stdout._txt="";this.__child.stdout.on("data",function(F){this._txt+=F.toString()});this.__child.on("exit",function(F){try{parseInt(this.stdout._txt)}catch(G){this.promise.__rejector("invalid uid");return}var H=parseInt(this.stdout._txt);this.promise.__resolver(H)})});y.push(w)}x.all(y).then(function(E){var F={};for(var s in E){F[E[s].__username]=E[s]._internal.completedArgs[0]}for(var s in D){D[s].uid=F[D[s].Username]}Object.defineProperty(D,"Active",{value:showActiveOnly(D)});if(p._callback){p._callback.call(p,D)}},function(s){Object.defineProperty(D,"Active",{value:showActiveOnly(D)});if(p._callback){p._callback.call(p,D)}})});p._child.stdout.Parent=p._child;p._child.stdout.on("data",function(q){this.Parent._txt+=q.toString()});return(p)};this._recheckLoggedInUsers=function a(){this.enumerateUsers().then(function(o){if(o.Active.length>0){if(this.parent._linux_lock_watcher!=null&&this.parent._linux_lock_watcher.uid!=o.Active[0].uid){delete this.parent._linux_lock_watcher}this.parent._linux_lock_watcher=new g(process.env.XDG_CURRENT_DESKTOP=="Unity"?"com.ubuntu.Upstart0_6":"org.gnome.ScreenSaver",o.Active[0].uid);this.parent._linux_lock_watcher.user_session=this.parent;this.parent._linux_lock_watcher.on("signal",function(r){var q=this.user_session.enumerateUsers();q.signalData=r.data[0];q.then(function(p){switch(this.signalData){case true:case"desktop-lock":this.parent.emit("locked",p.Active[0]);break;case false:case"desktop-unlock":this.parent.emit("unlocked",p.Active[0]);break}})})}else{if(this.parent._linux_lock_watcher!=null){delete this.parent._linux_lock_watcher}}})};this.on("changed",this._recheckLoggedInUsers);this._recheckLoggedInUsers()}else{if(process.platform=="darwin"){this._users=function(){var o=require("child_process").execFile("/usr/bin/dscl",["dscl",".","list","/Users","UniqueID"]);o.stdout.str="";o.stdout.on("data",function(t){this.str+=t.toString()});o.stdin.write("exit\n");o.waitExit();var q=o.stdout.str.split("\n");var r,p;var s={};for(p=0;p0;++r){if(!u[s[r].split(" ")[0]]){try{u[s[r].split(" ")[0]]={Username:s[r].split(" ")[0],State:s[r].split("still logged in").length>1?"Active":"Inactive",uid:t.uid[s[r].split(" ")[0]]}}catch(q){}}else{if(u[s[r].split(" ")[0]].State!="Active"&&s[r].split("still logged in").length>1){u[s[r].split(" ")[0]].State="Active"}}}Object.defineProperty(u,"Active",{value:showActiveOnly(u)});if(o){o.call(this,u)}}}}}if(process.platform=="linux"||process.platform=="darwin"){this._self=function b(){var o=require("child_process").execFile("/usr/bin/id",["id","-u"]);o.stdout.str="";o.stdout.on("data",function(p){this.str+=p.toString()});o.waitExit();return(parseInt(o.stdout.str))};this.isRoot=function k(){return(this._self()==0)};this.consoleUid=function e(){var o=process.platform=="darwin"?"console":":0";var p=require("child_process").execFile("/bin/sh",["sh"]);p.stdout.str="";p.stdout.on("data",function(u){this.str+=u.toString()});p.stdin.write("who\nexit\n");p.waitExit();var s=p.stdout.str.split("\n");var t,q,r;for(q in s){t=s[q].split(" ");for(r=1;r0&&t[r]==o){return(parseInt(this._users()[t[0]]))}}}throw ("nobody logged into console")}}}function showActiveOnly(c){var b=[];var e={};var f=[];var d;for(var a in c){if(c[a].State=="Active"){b.push(c[a]);d=(c[a].Domain?(c[a].Domain+"\\"):"")+c[a].Username;if(!e[d]){e[d]=d}}}for(var a in e){f.push(a)}Object.defineProperty(b,"usernames",{value:f});return(b)}function getTokens(d){var a=[];var b;a.push(d.substring(0,(b=d.indexOf(" "))));while(d[++b]==" "){}a.push(d.substring(b,(b=d.substring(b).indexOf(" ")+b)));while(d[++b]==" "){}a.push(d.substring(b,(b=d.substring(b).indexOf(" ")+b)));while(d[++b]==" "){}var c=d.substring(b).trim();a.push(c);return(a)}module.exports=new UserSessions(); \ No newline at end of file diff --git a/agents/modules_meshcore_min/wifi-scanner-windows.min.js b/agents/modules_meshcore_min/wifi-scanner-windows.min.js new file mode 100644 index 00000000..752e15ac --- /dev/null +++ b/agents/modules_meshcore_min/wifi-scanner-windows.min.js @@ -0,0 +1 @@ +function _Scan(){var f=this.Marshal.CreatePointer();this.Native.WlanEnumInterfaces(this.Handle,0,f);var a=f.Deref().Deref(0,4).toBuffer().readUInt32LE(0);var d=f.Deref().Deref(8,532);var c=d.Deref(16,512).AnsiString;var e;switch(d.Deref(528,4).toBuffer().readUInt32LE(0)){case 0:e="NOT READY";break;case 1:e="CONNECTED";break;case 2:e="AD-HOC";break;case 3:e="DISCONNECTING";break;case 4:e="DISCONNECTED";break;case 5:e="ASSOCIATING";break;case 6:e="DISCOVERING";break;case 7:e="AUTHENTICATING";break;default:e="UNKNOWN";break}var b=d.Deref(0,16);if(this.Native.WlanScan(this.Handle,b,0,0,0).Val==0){return(true)}else{return(false)}}function AccessPoint(d,a,c,b){this.ssid=d;this.bssid=a;this.rssi=c;this.lq=b}AccessPoint.prototype.toString=function(){return(this.ssid+" ["+this.bssid+"]: "+this.lq)};function OnNotify(g){var h=g.Deref(0,4).toBuffer().readUInt32LE(0);var f=g.Deref(4,4).toBuffer().readUInt32LE(0);var c=g.Deref(8,16);if((h&8)&&(f==7)){var a=this.Parent.Marshal.CreatePointer();var k=this.Parent.Native.GetBSSList(this.Parent.Handle,c,0,3,0,0,a).Val;if(k==0){var n=a.Deref().Deref(0,4).toBuffer().readUInt32LE(0);var j=a.Deref().Deref(4,4).toBuffer().readUInt32LE(0);for(i=0;i"){g=""}}if(j.startsWith("Signal level=")){f=j.slice(13,j.length-4)}else{if(j.startsWith("Quality=")){f=j.slice(8,10);var k=j.slice(11,13)}}}this.parent.parent.emit("accessPoint",new AccessPoint(g,e,f))}})}}}}}module.exports=WiFiScanner; \ No newline at end of file diff --git a/agents/modules_meshcore_min/win-console.min.js b/agents/modules_meshcore_min/win-console.min.js new file mode 100644 index 00000000..d013e2a0 --- /dev/null +++ b/agents/modules_meshcore_min/win-console.min.js @@ -0,0 +1 @@ +var TrayIconFlags={NIF_MESSAGE:1,NIF_ICON:2,NIF_TIP:4,NIF_STATE:8,NIF_INFO:16,NIF_GUID:32,NIF_REALTIME:64,NIF_SHOWTIP:128,NIM_ADD:0,NIM_MODIFY:1,NIM_DELETE:2,NIM_SETFOCUS:3,NIM_SETVERSION:4};var NOTIFYICON_VERSION_4=4;var MessageTypes={WM_APP:32768,WM_USER:1024};function WindowsConsole(){if(process.platform=="win32"){this._ObjectID="win-console";this._Marshal=require("_GenericMarshal");this._kernel32=this._Marshal.CreateNativeProxy("kernel32.dll");this._user32=this._Marshal.CreateNativeProxy("user32.dll");this._kernel32.CreateMethod("GetConsoleWindow");this._kernel32.CreateMethod("GetCurrentThread");this._user32.CreateMethod("ShowWindow");this._user32.CreateMethod("LoadImageA");this._user32.CreateMethod({method:"GetMessageA",threadDispatch:1});this._shell32=this._Marshal.CreateNativeProxy("Shell32.dll");this._shell32.CreateMethod("Shell_NotifyIconA");this._handle=this._kernel32.GetConsoleWindow();this.minimize=function(){this._user32.ShowWindow(this._handle,6)};this.restore=function(){this._user32.ShowWindow(this._handle,9)};this.hide=function(){this._user32.ShowWindow(this._handle,0)};this.show=function(){this._user32.ShowWindow(this._handle,5)};this._loadicon=function(c){var b=this._user32.LoadImageA(0,this._Marshal.CreateVariable(c),1,0,0,16|32768|64);return(b)};this.SetTrayIcon=function a(h){var b=this._Marshal.CreateVariable(this._Marshal.PointerSize==4?508:528);b.toBuffer().writeUInt32LE(b._size,0);var n=TrayIconFlags.NIF_TIP|TrayIconFlags.NIF_MESSAGE;h.filter=MessageTypes.WM_APP+1;b.Deref(this._Marshal.PointerSize==4?16:24,4).toBuffer().writeUInt32LE(h.filter);if(!h.noBalloon){n|=TrayIconFlags.NIF_INFO}if(h.icon){n|=TrayIconFlags.NIF_ICON;var c=b.Deref(this._Marshal.PointerSize==4?20:32,this._Marshal.PointerSize);h.icon.pointerBuffer().copy(c.toBuffer())}b.Deref(this._Marshal.PointerSize*2,4).toBuffer().writeUInt32LE(1);b.Deref(this._Marshal.PointerSize==4?12:20,4).toBuffer().writeUInt32LE(n);b.Deref(this._Marshal.PointerSize==4?416:432,4).toBuffer().writeUInt32LE(NOTIFYICON_VERSION_4);var m=b.Deref(this._Marshal.PointerSize==4?24:40,128);var k=b.Deref(this._Marshal.PointerSize==4?160:176,256);var l=b.Deref(this._Marshal.PointerSize==4?420:436,64);if(h.szTip){Buffer.from(h.szTip).copy(m.toBuffer())}if(h.szInfo){Buffer.from(h.szInfo).copy(k.toBuffer())}if(h.szInfoTitle){Buffer.from(h.szInfoTitle).copy(l.toBuffer())}var d=require("win-message-pump");retVal={_ObjectID:"WindowsConsole.TrayIcon",MessagePump:new d(h)};var j=require("events").inherits(retVal);j.createEvent("ToastClicked");j.createEvent("IconHover");j.createEvent("ToastDismissed");retVal.Options=h;retVal.MessagePump.TrayIcon=retVal;retVal.MessagePump.NotifyData=b;retVal.MessagePump.WindowsConsole=this;retVal.MessagePump.on("exit",function e(o){console.log("Pump Exited");if(this.TrayIcon){this.TrayIcon.remove()}});retVal.MessagePump.on("hwnd",function f(o){h.hwnd=o;o.pointerBuffer().copy(this.NotifyData.Deref(this.WindowsConsole._Marshal.PointerSize,this.WindowsConsole._Marshal.PointerSize).toBuffer());if(this.WindowsConsole._shell32.Shell_NotifyIconA(TrayIconFlags.NIM_ADD,this.NotifyData).Val==0){}});retVal.MessagePump.on("message",function g(p){if(p.message==this.TrayIcon.Options.filter){var o=false;if(p.wparam==1&&p.lparam==1029){this.TrayIcon.emit("ToastClicked");o=true}if(p.wparam==1&&p.lparam==512){this.TrayIcon.emit("IconHover");o=true}if(this.TrayIcon.Options.balloonOnly&&p.wparam==1&&(p.lparam==1028||p.lparam==1029)){this.TrayIcon.emit("ToastDismissed");this.TrayIcon.remove();o=true}if(!o){console.log(p)}}});retVal.remove=function i(){this.MessagePump.WindowsConsole._shell32.Shell_NotifyIconA(TrayIconFlags.NIM_DELETE,this.MessagePump.NotifyData);this.MessagePump.stop();delete this.MessagePump.TrayIcon;delete this.MessagePump};return(retVal)}}}module.exports=new WindowsConsole(); \ No newline at end of file diff --git a/agents/modules_meshcore_min/win-message-pump.min.js b/agents/modules_meshcore_min/win-message-pump.min.js new file mode 100644 index 00000000..a302291a --- /dev/null +++ b/agents/modules_meshcore_min/win-message-pump.min.js @@ -0,0 +1 @@ +var WH_CALLWNDPROC=4;var WM_QUIT=18;var GM=require("_GenericMarshal");function WindowsMessagePump(d){this._ObjectID="win-message-pump";this._options=d;var b=require("events").inherits(this);b.createEvent("hwnd");b.createEvent("error");b.createEvent("message");b.createEvent("exit");this._msg=GM.CreateVariable(GM.PointerSize==4?28:48);this._kernel32=GM.CreateNativeProxy("Kernel32.dll");this._kernel32.mp=this;this._kernel32.CreateMethod("GetLastError");this._kernel32.CreateMethod("GetModuleHandleA");this._user32=GM.CreateNativeProxy("User32.dll");this._user32.mp=this;this._user32.CreateMethod("GetMessageA");this._user32.CreateMethod("CreateWindowExA");this._user32.CreateMethod("TranslateMessage");this._user32.CreateMethod("DispatchMessageA");this._user32.CreateMethod("RegisterClassExA");this._user32.CreateMethod("DefWindowProcA");this._user32.CreateMethod("PostMessageA");this.wndclass=GM.CreateVariable(GM.PointerSize==4?48:80);this.wndclass.mp=this;this.wndclass.hinstance=this._kernel32.GetModuleHandleA(0);this.wndclass.cname=GM.CreateVariable("MainWWWClass");this.wndclass.wndproc=GM.GetGenericGlobalCallback(4);this.wndclass.wndproc.mp=this;this.wndclass.toBuffer().writeUInt32LE(this.wndclass._size);this.wndclass.cname.pointerBuffer().copy(this.wndclass.Deref(GM.PointerSize==4?40:64,GM.PointerSize).toBuffer());this.wndclass.wndproc.pointerBuffer().copy(this.wndclass.Deref(8,GM.PointerSize).toBuffer());this.wndclass.hinstance.pointerBuffer().copy(this.wndclass.Deref(GM.PointerSize==4?20:24,GM.PointerSize).toBuffer());this.wndclass.wndproc.on("GlobalCallback",function c(h,i,g,f){if(this.mp._hwnd!=null&&this.mp._hwnd.Val==h.Val){this.mp.emit("message",{message:i.Val,wparam:g.Val,lparam:f.Val,lparam_hex:f.pointerBuffer().toString("hex")});return(this.mp._user32.DefWindowProcA(h,i,g,f))}else{if(this.mp._hwnd==null&&this.CallingThread()==this.mp._user32.RegisterClassExA.async.threadId()){return(this.mp._user32.DefWindowProcA(h,i,g,f))}}});this._user32.RegisterClassExA.async(this.wndclass).then(function(){this.nativeProxy.CreateWindowExA.async(this.nativeProxy.RegisterClassExA.async,136,this.nativeProxy.mp.wndclass.cname,0,8388608,0,0,100,100,0,0,0,0).then(function(f){if(f.Val==0){this.nativeProxy.mp.emit("error","Error creating hidden window")}else{this.nativeProxy.mp._hwnd=f;this.nativeProxy.mp.emit("hwnd",f);this.nativeProxy.mp._startPump()}})});this._startPump=function a(){this._user32.GetMessageA.async(this._user32.RegisterClassExA.async,this._msg,this._hwnd,0,0).then(function(f){if(f.Val>0){this.nativeProxy.TranslateMessage.async(this.nativeProxy.RegisterClassExA.async,this.nativeProxy.mp._msg).then(function(){this.nativeProxy.DispatchMessageA.async(this.nativeProxy.RegisterClassExA.async,this.nativeProxy.mp._msg).then(function(){this.nativeProxy.mp._startPump()})})}else{delete this.nativeProxy.mp._hwnd;this.nativeProxy.mp.emit("exit",0)}},function(f){this.nativeProxy.mp.stop()})};this.stop=function e(){if(this._hwnd){this._user32.PostMessageA(this._hwnd,WM_QUIT,0,0)}}}module.exports=WindowsMessagePump; \ No newline at end of file diff --git a/agents/modules_meshcore_min/win-registry.min.js b/agents/modules_meshcore_min/win-registry.min.js new file mode 100644 index 00000000..fec4cb51 --- /dev/null +++ b/agents/modules_meshcore_min/win-registry.min.js @@ -0,0 +1 @@ +var KEY_QUERY_VALUE=1;var KEY_WRITE=131078;var KEY_DATA_TYPES={REG_NONE:0,REG_SZ:1,REG_EXPAND_SZ:2,REG_BINARY:3,REG_DWORD:4,REG_DWORD_BIG_ENDIAN:5,REG_LINK:6,REG_MULTI_SZ:7,REG_RESOURCE_LIST:8,REG_FULL_RESOURCE_DESCRIPTOR:9,REG_RESOURCE_REQUIREMENTS_LIST:10,REG_QWORD:11};function windows_registry(){this._ObjectId="win-registry";this._marshal=require("_GenericMarshal");this._AdvApi=this._marshal.CreateNativeProxy("Advapi32.dll");this._AdvApi.CreateMethod("RegCreateKeyExA");this._AdvApi.CreateMethod("RegOpenKeyExA");this._AdvApi.CreateMethod("RegQueryValueExA");this._AdvApi.CreateMethod("RegCloseKey");this._AdvApi.CreateMethod("RegDeleteKeyA");this._AdvApi.CreateMethod("RegDeleteValueA");this._AdvApi.CreateMethod("RegSetValueExA");this.HKEY={Root:Buffer.from("80000000","hex").swap32(),CurrentUser:Buffer.from("80000001","hex").swap32(),LocalMachine:Buffer.from("80000002","hex").swap32(),Users:Buffer.from("80000003","hex").swap32()};this.QueryKey=function b(g,k,i){var e=this._marshal.CreatePointer();var j=this._marshal.CreateVariable(4);var m=this._marshal.CreateVariable(4);i=this._marshal.CreateVariable(i);var f=this._marshal.CreatePointer(g);var l=null;if(this._AdvApi.RegOpenKeyExA(f,this._marshal.CreateVariable(k),0,KEY_QUERY_VALUE,e).Val!=0){throw ("Error Opening Registry Key: "+k)}if(this._AdvApi.RegQueryValueExA(e.Deref(),i,0,0,0,j).Val==0){var d=this._marshal.CreateVariable(j.toBuffer().readUInt32LE());if(this._AdvApi.RegQueryValueExA(e.Deref(),i,0,m,d,j).Val==0){switch(m.toBuffer().readUInt32LE()){case KEY_DATA_TYPES.REG_DWORD:l=d.toBuffer().readUInt32LE();break;case KEY_DATA_TYPES.REG_DWORD_BIG_ENDIAN:l=d.toBuffer().readUInt32BE();break;case KEY_DATA_TYPES.REG_SZ:l=d.String;break;case KEY_DATA_TYPES.REG_BINARY:default:l=d.toBuffer();l._data=d;break}}}else{this._AdvApi.RegCloseKey(e.Deref());throw ("Not Found")}this._AdvApi.RegCloseKey(e.Deref());return(l)};this.WriteKey=function c(g,j,i,l){var k;var f=this._marshal.CreatePointer();if(this._AdvApi.RegCreateKeyExA(this._marshal.CreatePointer(g),this._marshal.CreateVariable(j),0,0,0,KEY_WRITE,0,f,0).Val!=0){throw ("Error Opening Registry Key: "+j)}var d;var e;switch(typeof(l)){case"boolean":e=KEY_DATA_TYPES.REG_DWORD;d=this._marshal.CreateVariable(4);d.toBuffer().writeUInt32LE(l?1:0);break;case"number":e=KEY_DATA_TYPES.REG_DWORD;d=this._marshal.CreateVariable(4);d.toBuffer().writeUInt32LE(l);break;case"string":e=KEY_DATA_TYPES.REG_SZ;d=this._marshal.CreateVariable(l);break;default:e=KEY_DATA_TYPES.REG_BINARY;d=this._marshal.CreateVariable(l.length);l.copy(d.toBuffer());break}if(this._AdvApi.RegSetValueExA(f.Deref(),this._marshal.CreateVariable(i),0,e,d,d._size).Val!=0){this._AdvApi.RegCloseKey(f.Deref());throw ("Error writing reg key: "+i)}this._AdvApi.RegCloseKey(f.Deref())};this.DeleteKey=function a(e,g,f){if(!f){if(this._AdvApi.RegDeleteKeyA(this._marshal.CreatePointer(e),this._marshal.CreateVariable(g)).Val!=0){throw ("Error Deleting Key: "+g)}}else{var d=this._marshal.CreatePointer();var i;if(this._AdvApi.RegOpenKeyExA(this._marshal.CreatePointer(e),this._marshal.CreateVariable(g),0,KEY_QUERY_VALUE|KEY_WRITE,d).Val!=0){throw ("Error Opening Registry Key: "+g)}if((i=this._AdvApi.RegDeleteValueA(d.Deref(),this._marshal.CreateVariable(f)).Val)!=0){this._AdvApi.RegCloseKey(d.Deref());throw ("Error["+i+"] Deleting Key: "+g+"."+f)}this._AdvApi.RegCloseKey(d.Deref())}}}module.exports=new windows_registry(); \ No newline at end of file diff --git a/agents/modules_meshcore_min/win-terminal.min.js b/agents/modules_meshcore_min/win-terminal.min.js new file mode 100644 index 00000000..d8fe6373 --- /dev/null +++ b/agents/modules_meshcore_min/win-terminal.min.js @@ -0,0 +1 @@ +var promise=require("promise");var duplex=require("stream").Duplex;var SW_HIDE=0;var SW_MINIMIZE=6;var STARTF_USESHOWWINDOW=1;var STD_INPUT_HANDLE=-10;var STD_OUTPUT_HANDLE=-11;var EVENT_CONSOLE_CARET=16385;var EVENT_CONSOLE_END_APPLICATION=16391;var WINEVENT_OUTOFCONTEXT=0;var WINEVENT_SKIPOWNPROCESS=2;var CREATE_NEW_PROCESS_GROUP=512;var EVENT_CONSOLE_UPDATE_REGION=16386;var EVENT_CONSOLE_UPDATE_SIMPLE=16387;var EVENT_CONSOLE_UPDATE_SCROLL=16388;var EVENT_CONSOLE_LAYOUT=16389;var EVENT_CONSOLE_START_APPLICATION=16390;var KEY_EVENT=1;var MAPVK_VK_TO_VSC=0;var WM_QUIT=18;var GM=require("_GenericMarshal");var si=GM.CreateVariable(GM.PointerSize==4?68:104);var pi=GM.CreateVariable(GM.PointerSize==4?16:24);si.Deref(0,4).toBuffer().writeUInt32LE(GM.PointerSize==4?68:104);si.Deref(GM.PointerSize==4?48:64,2).toBuffer().writeUInt16LE(SW_HIDE|SW_MINIMIZE);si.Deref(GM.PointerSize==4?44:60,4).toBuffer().writeUInt32LE(STARTF_USESHOWWINDOW);var MSG=GM.CreateVariable(GM.PointerSize==4?28:48);function windows_terminal(){this._ObjectID="windows_terminal";this._user32=GM.CreateNativeProxy("User32.dll");this._user32.CreateMethod("DispatchMessageA");this._user32.CreateMethod("GetMessageA");this._user32.CreateMethod("MapVirtualKeyA");this._user32.CreateMethod("PostThreadMessageA");this._user32.CreateMethod("SetWinEventHook");this._user32.CreateMethod("ShowWindow");this._user32.CreateMethod("TranslateMessage");this._user32.CreateMethod("UnhookWinEvent");this._user32.CreateMethod("VkKeyScanA");this._user32.terminal=this;this._kernel32=GM.CreateNativeProxy("Kernel32.dll");this._kernel32.CreateMethod("AllocConsole");this._kernel32.CreateMethod("CreateProcessA");this._kernel32.CreateMethod("CloseHandle");this._kernel32.CreateMethod("FillConsoleOutputAttribute");this._kernel32.CreateMethod("FillConsoleOutputCharacterA");this._kernel32.CreateMethod("GetConsoleScreenBufferInfo");this._kernel32.CreateMethod("GetConsoleWindow");this._kernel32.CreateMethod("GetLastError");this._kernel32.CreateMethod("GetStdHandle");this._kernel32.CreateMethod("GetThreadId");this._kernel32.CreateMethod("ReadConsoleOutputA");this._kernel32.CreateMethod("SetConsoleCursorPosition");this._kernel32.CreateMethod("SetConsoleScreenBufferSize");this._kernel32.CreateMethod("SetConsoleWindowInfo");this._kernel32.CreateMethod("TerminateProcess");this._kernel32.CreateMethod("WaitForSingleObject");this._kernel32.CreateMethod("WriteConsoleInputA");var b=0;var c=0;this._scrx=0;this._scry=0;this.SendCursorUpdate=function(){var f=GM.CreateVariable(22);if(this._kernel32.GetConsoleScreenBufferInfo(this._stdoutput,f).Val==0){return}if(f.Deref(4,2).toBuffer().readUInt16LE()!=this.currentX||f.Deref(6,2).toBuffer().readUInt16LE()!=this.currentY){this.currentX=f.Deref(4,2).toBuffer().readUInt16LE();this.currentY=f.Deref(6,2).toBuffer().readUInt16LE()}};this.ClearScreen=function(){var g=GM.CreateVariable(22);if(this._kernel32.GetConsoleScreenBufferInfo(this._stdoutput,g).Val==0){return}var h=GM.CreateVariable(4);var i=g.Deref(0,2).toBuffer().readUInt16LE(0)*g.Deref(2,2).toBuffer().readUInt16LE(0);var f=GM.CreateVariable(4);if(this._kernel32.FillConsoleOutputCharacterA(this._stdoutput,32,i,h.Deref(0,4).toBuffer().readUInt32LE(),f).Val==0){return}if(this._kernel32.GetConsoleScreenBufferInfo(this._stdoutput,g).Val==0){return}if(this._kernel32.FillConsoleOutputAttribute(this._stdoutput,g.Deref(8,2).toBuffer().readUInt16LE(0),i,h.Deref(0,4).toBuffer().readUInt32LE(),f).Val==0){return}this._kernel32.SetConsoleCursorPosition(this._stdoutput,h.Deref(0,4).toBuffer().readUInt32LE());var j=GM.CreateVariable(8);var k=g.Deref(10,8).toBuffer();j.Deref(4,2).toBuffer().writeUInt16LE(k.readUInt16LE(4)-k.readUInt16LE(0));j.Deref(6,2).toBuffer().writeUInt16LE(k.readUInt16LE(6)-k.readUInt16LE(2));this._kernel32.SetConsoleWindowInfo(this._stdoutput,1,j)};this.Start=function d(g,f){if(this._kernel32.GetConsoleWindow().Val==0){if(this._kernel32.AllocConsole().Val==0){throw ("AllocConsole failed with: "+this._kernel32.GetLastError().Val)}}this._stdinput=this._kernel32.GetStdHandle(STD_INPUT_HANDLE);this._stdoutput=this._kernel32.GetStdHandle(STD_OUTPUT_HANDLE);this._connected=false;var h=GM.CreateVariable(4);h.Deref(0,2).toBuffer().writeUInt16LE(g);h.Deref(2,2).toBuffer().writeUInt16LE(f);var i=GM.CreateVariable(8);i.Deref(4,2).toBuffer().writeUInt16LE(g-1);i.Deref(6,2).toBuffer().writeUInt16LE(f-1);if(this._kernel32.SetConsoleWindowInfo(this._stdoutput,1,i).Val==0){throw ("Failed to set Console Screen Size")}if(this._kernel32.SetConsoleScreenBufferSize(this._stdoutput,h.Deref(0,4).toBuffer().readUInt32LE()).Val==0){throw ("Failed to set Console Buffer Size")}this._user32.ShowWindow(this._kernel32.GetConsoleWindow().Val,SW_HIDE);this.ClearScreen();this._hookThread().then(function(){this.terminal.StartCommand()},console.log);this._stream=new duplex({write:function(j,k){if(!this.terminal.connected){if(!this._promise.chunk){this._promise.chunk=[]}if(typeof(j)=="string"){this._promise.chunk.push(j)}else{this._promise.chunk.push(Buffer.alloc(j.length));j.copy(this._promise.chunk.peek())}this._promise.chunk.peek().flush=k;this._promise.then(function(){var l;while(this.chunk.length>0){l=this.chunk.shift();this.terminal._WriteBuffer(l);l.flush()}})}else{this.terminal._WriteBuffer(j);k()}},"final":function(j){var k=this.terminal._stop();k.__flush=j;k.then(function(){this.__flush()})}});this._stream.terminal=this;this._stream._promise=new promise(function(k,j){this._res=k;this._rej=j});this._stream._promise.terminal=this;return(this._stream)};this._stop=function(){if(this.stopping){return(this.stopping)}this.stopping=new promise(function(h,g){this._res=h;this._rej=g});var f=this._kernel32.GetThreadId(this._user32.SetWinEventHook.async.thread()).Val;this._user32.PostThreadMessageA(f,WM_QUIT,0,0);return(this.stopping)};this._hookThread=function(){var g=new promise(function(i,h){this._res=i;this._rej=h});g.terminal=this;this._ConsoleWinEventProc=GM.GetGenericGlobalCallback(7);this._ConsoleWinEventProc.terminal=this;var f=this._user32.SetWinEventHook.async(EVENT_CONSOLE_CARET,EVENT_CONSOLE_END_APPLICATION,0,this._ConsoleWinEventProc,0,0,WINEVENT_OUTOFCONTEXT|WINEVENT_SKIPOWNPROCESS);f.ready=g;f.terminal=this;f.then(function(h){if(h.Val==0){this.ready._rej("Error calling SetWinEventHook")}else{this.terminal.hwinEventHook=h;this.ready._res();this.terminal._GetMessage()}});this._ConsoleWinEventProc.on("GlobalCallback",function(j,i,k,n,l,m,p){if(!this.terminal.hwinEventHook||this.terminal.hwinEventHook.Val!=j.Val){return}var h=null;switch(i.Val){case EVENT_CONSOLE_CARET:break;case EVENT_CONSOLE_UPDATE_REGION:if(!this.terminal.connected){this.terminal.connected=true;this.terminal._stream._promise._res()}if(this.terminal._scrollTimer==null){h=this.terminal._GetScreenBuffer(LOWORD(n.Val),HIWORD(n.Val),LOWORD(l.Val),HIWORD(l.Val));this.terminal._SendDataBuffer(h)}break;case EVENT_CONSOLE_UPDATE_SIMPLE:var o={data:[Buffer.alloc(1,LOWORD(l.Val))],attributes:[HIWORD(l.Val)],width:1,height:1,x:LOWORD(n.Val),y:HIWORD(n.Val)};this.terminal._SendDataBuffer(o);break;case EVENT_CONSOLE_UPDATE_SCROLL:this.terminal._SendScroll(n.Val,l.Val);break;case EVENT_CONSOLE_LAYOUT:break;case EVENT_CONSOLE_START_APPLICATION:break;case EVENT_CONSOLE_END_APPLICATION:if(n.Val==this.terminal._hProcessID){this.terminal._stop().then(function(){console.log("STOPPED")})}break;default:console.log("Unknown event: "+i.Val);break}});return(g)};this._GetMessage=function(){if(this._user32.abort){console.log("aborting loop");return}this._user32.GetMessageA.async(this._user32.SetWinEventHook.async,MSG,0,0,0).then(function(f){if(f.Val!=0){if(f.Val==-1){}else{this.nativeProxy._user32.TranslateMessage.async(this.nativeProxy.user32.SetWinEventHook.async,MSG).then(function(){this.nativeProxy._user32.DispatchMessageA.async(this.nativeProxy.user32.SetWinEventHook.async,MSG).then(function(){this.nativeProxy.terminal._GetMessage()},console.log)},console.log)}}else{this.nativeProxy.UnhookWinEvent.async(this.nativeProxy.terminal._user32.SetWinEventHook.async,this.nativeProxy.terminal.hwinEventHook).then(function(){this.nativeProxy.terminal.stopping._res();if(this.nativeProxy.terminal._kernel32.TerminateProcess(this.nativeProxy.terminal._hProcess,1067).Val==0){var g=this.nativeProxy.terminal._kernel32.GetLastError().Val;console.log("Unable to kill Terminal Process, error: "+g)}this.nativeProxy.terminal.stopping=null},function(g){console.log("REJECTED_UnhookWinEvent: "+g)})}},function(f){console.log("REJECTED_GETMessage: "+f)})};this._WriteBuffer=function(f){for(var g=0;gl;++j){this._stream.push(Buffer.from("\r\n"))}var f=this._GetScreenBuffer(0,0,m-1,l-1);this._SendDataBuffer(f);this._scrollTimer=setTimeout(function(p,o,n){var i=p._GetScreenBuffer(0,0,o-1,n-1);p._SendDataBuffer(i);p._scrollTimer=null},250,this,m,l)};this.StartCommand=function e(){if(this._kernel32.CreateProcessA(GM.CreateVariable(process.env.windir+"\\system32\\cmd.exe"),0,0,0,1,CREATE_NEW_PROCESS_GROUP,0,0,si,pi).Val==0){console.log("Error Spawning CMD");return}this._kernel32.CloseHandle(pi.Deref(GM.PointerSize,GM.PointerSize).Deref());this._hProcess=pi.Deref(0,GM.PointerSize).Deref();this._hProcessID=pi.Deref(GM.PointerSize==4?8:16,4).toBuffer().readUInt32LE()}}function LOWORD(a){return(a&65535)}function HIWORD(a){return((a>>16)&65535)}function GetEsc(b,a){return(Buffer.from("\x1B["+a.join(";")+b))}function MeshConsole(a){require("MeshAgent").SendCommand({action:"msg",type:"console",value:JSON.stringify(a)})}function TranslateLine(r,s,f,a){var m,l,e,q,j,c,n,k,d,p,h,b,g=[],o=[GetEsc("H",[s,r])];if(typeof a=="number"){a=[a]}for(m=0;m>2);d=(a[m]&112)>>4;d=((d&1)<<2)+(d&2)+((d&4)>>2);p=(a[m]&16384);h=(a[m]&8)>>3;b=(a[m]&128);if(p!=q){if(p!=0){g.push(7)}else{g.push(0);l=7;e=0;j=0;c=0}q=p}if(k!=l){g.push(k+30);l=k}if(d!=e){g.push(d+40);e=d}if(h!=j){g.push(2-h);j=h}if(b!=c){if(b==0){g.push(e+40)}else{g.push(e+100);c=b}}if(g.length>0){o.push(GetEsc("m",g));g=[]}n=a[m]}o.push(Buffer.from(String.fromCharCode(f[m])))}return Buffer.concat(o)}module.exports=new windows_terminal(); \ No newline at end of file diff --git a/meshagent.js b/meshagent.js index 220b93b4..9f75150c 100644 --- a/meshagent.js +++ b/meshagent.js @@ -101,7 +101,33 @@ module.exports.CreateMeshAgent = function (parent, db, ws, req, args, domain) { if (msg.length == 4) { ChangeAgentCoreInfo({ "caps": 0 }); } // If the agent indicated that no core is running, clear the core information string. // Mesh core hash, sent by agent with the hash of the current mesh core. if (obj.agentCoreCheck == 1000) return; // If we are using a custom core, don't try to update it. - // We need to check if the core is current. + + // Get the current meshcore hash + const agentMeshCoreHash = (msg.length == 52) ? msg.substring(4, 52) : null; + + // We need to check if the core is current. First, figure out what core we need. + const corename = obj.parent.parent.meshAgentsArchitectureNumbers[obj.agentInfo.agentId].core; + if (corename != null) { + const meshcorehash = obj.parent.parent.defaultMeshCoresHash[corename]; + if (agentMeshCoreHash != meshcorehash) { + if (obj.agentCoreCheck < 5) { + if (meshcorehash == null) { + // Update no core + obj.send(obj.common.ShortToStr(10) + obj.common.ShortToStr(0)); // Command 10, ask mesh agent to clear the core + obj.parent.parent.debug(1, 'Clearing core'); + } else { + // Update new core + obj.send(obj.common.ShortToStr(10) + obj.common.ShortToStr(0) + meshcorehash + obj.parent.parent.defaultMeshCores[corename]); + obj.parent.parent.debug(1, 'Updating code ' + corename); + } + obj.agentCoreCheck++; + } + } else { + obj.agentCoreCheck = 0; + } + } + + /* // TODO: Check if we have a mesh specific core. If so, use that. var agentMeshCoreHash = null; if (msg.length == 52) { agentMeshCoreHash = msg.substring(4, 52); } @@ -123,6 +149,7 @@ module.exports.CreateMeshAgent = function (parent, db, ws, req, args, domain) { } else { obj.agentCoreCheck = 0; } + */ } else if (cmdid == 12) { // MeshCommand_AgentHash if ((msg.length == 52) && (obj.agentExeInfo != null) && (obj.agentExeInfo.update == true)) { diff --git a/meshcentral.js b/meshcentral.js index fd3385db..61e2246c 100644 --- a/meshcentral.js +++ b/meshcentral.js @@ -48,10 +48,8 @@ function CreateMeshCentralServer(config, args) { obj.dbconfig = {}; // Persistance values, loaded from database obj.certificateOperations = null; obj.defaultMeshCmd = null; - obj.defaultMeshCore = null; - obj.defaultMeshCoreHash = null; - obj.defaultMeshCoreNoMei = null; - obj.defaultMeshCoreNoMeiHash = null; + obj.defaultMeshCores = {}; + obj.defaultMeshCoresHash = {}; obj.meshAgentBinaries = {}; // Mesh Agent Binaries, Architecture type --> { hash:(sha384 hash), size:(binary size), path:(binary path) } obj.meshAgentInstallScripts = {}; // Mesh Install Scripts, Script ID -- { hash:(sha384 hash), size:(binary size), path:(binary path) } obj.multiServer = null; @@ -863,6 +861,23 @@ function CreateMeshCentralServer(config, args) { } }; + // Escape a code string + obj.escapeCodeString = function (str) { + const escapeCodeStringTable = { '\'': '\\\'', '\"': '\\"', '\\': '\\\\', '\b': '\\b', '\f': '\\f', '\n': '\\n', '\r': '\\r', '\t': '\\t' }; + var r = '', c, cr, table; + for (var i = 0; i < str.length; i++) { + c = str[i]; + table = escapeCodeStringTable[c]; + if (table != null) { + r += table; + } else { + cr = c.charCodeAt(0); + if ((cr >= 32) && (cr <= 127)) { r += c; } + } + } + return r; + } + // Update the default mesh core obj.updateMeshCoreTimer = 'notset'; obj.updateMeshCore = function (func) { @@ -871,35 +886,64 @@ function CreateMeshCentralServer(config, args) { if (obj.fs.existsSync(obj.path.join(meshcorePath, 'meshcore.js')) == false) { meshcorePath = obj.path.join(__dirname, 'agents'); if (obj.fs.existsSync(obj.path.join(meshcorePath, 'meshcore.js')) == false) { - obj.defaultMeshCoreNoMei = obj.defaultMeshCoreNoMeiHash = obj.defaultMeshCore = obj.defaultMeshCoreHash = null; if (func != null) { func(false); } // meshcore.js not found + obj.defaultMeshCores = obj.defaultMeshCoresHash = { }; if (func != null) { func(false); } // meshcore.js not found } } // Read meshcore.js and all .js files in the modules folder. - var moduleAdditions = 'var addedModules = [];', moduleAdditionsNoMei = 'var addedModules = [];', meshCore = null, modulesDir = null; - try { meshCore = obj.fs.readFileSync(obj.path.join(meshcorePath, 'meshcore.js')).toString(); } catch (e) { } + var meshCore = null, modulesDir = null; + const modulesAdd = { + 'windows-amt': 'var addedModules = [];\r\n', + 'linux-amt': 'var addedModules = [];\r\n', + 'linux-noamt': 'var addedModules = [];\r\n' + }; + + try { meshCore = obj.fs.readFileSync(obj.path.join(meshcorePath, 'meshcore.min.js')).toString(); } catch (e) { } // Favor minified meshcore if present. + if (meshCore == null) { try { meshCore = obj.fs.readFileSync(obj.path.join(meshcorePath, 'meshcore.js')).toString(); } catch (e) { } } // Use non-minified meshcore. if (meshCore != null) { - try { modulesDir = obj.fs.readdirSync(obj.path.join(meshcorePath, 'modules_meshcore')); } catch (e) { } + var moduleDirPath = null; + try { moduleDirPath = obj.path.join(meshcorePath, 'modules_meshcore_min'); modulesDir = obj.fs.readdirSync(moduleDirPath); } catch (e) { } // Favor minified modules if present. + if (modulesDir == null) { try { moduleDirPath = obj.path.join(meshcorePath, 'modules_meshcore'); modulesDir = obj.fs.readdirSync(moduleDirPath); } catch (e) { } } // Use non-minified mofules. if (modulesDir != null) { for (var i in modulesDir) { if (modulesDir[i].toLowerCase().endsWith('.js')) { - // Merge this module var moduleName = modulesDir[i].substring(0, modulesDir[i].length - 3); - var moduleDataB64 = obj.fs.readFileSync(obj.path.join(meshcorePath, 'modules_meshcore', modulesDir[i])).toString('base64'); - moduleAdditions += 'try { addModule("' + moduleName + '", Buffer.from("' + moduleDataB64 + '", "base64")); addedModules.push("' + moduleName + '"); } catch (e) { }\r\n'; - if ((moduleName != 'amt_heci') && (moduleName != 'lme_heci') && (moduleName != 'amt-0.2.0.js') && (moduleName != 'amt-script-0.2.0.js') && (moduleName != 'amt-wsman-0.2.0.js') && (moduleName != 'amt-wsman-duk-0.2.0.js')) { - moduleAdditionsNoMei += 'try { addModule("' + moduleName + '", Buffer.from("' + moduleDataB64 + '", "base64")); addedModules.push("' + moduleName + '"); } catch (e) { }\r\n'; + if (moduleName.endsWith('.min')) { moduleName = moduleName.substring(0, moduleName.length - 4); } // Remove the ".min" for ".min.js" files. + var moduleData = 'try { addModule("' + moduleName + '", "' + obj.escapeCodeString(obj.fs.readFileSync(obj.path.join(moduleDirPath, modulesDir[i])).toString('binary')) + '"); addedModules.push("' + moduleName + '"); } catch (e) { }\r\n'; + + // Merge this module + if (moduleName.startsWith('amt-')) { + // Add to Intel AMT cores only + modulesAdd['windows-amt'] += moduleData; + modulesAdd['linux-amt'] += moduleData; + } else if (moduleName.startsWith('win-')) { + // Add to Windows cores only + modulesAdd['windows-amt'] += moduleData; + } else if (moduleName.startsWith('linux-')) { + // Add to Linux cores only + modulesAdd['linux-amt'] += moduleData; + modulesAdd['linux-noamt'] += moduleData; + } else { + // Add to all cores + modulesAdd['windows-amt'] += moduleData; + modulesAdd['linux-amt'] += moduleData; + modulesAdd['linux-noamt'] += moduleData; } } } } - } else { meshCore = ''; } // No meshcore.js - // Set the new default meshcore.js with and without MEI support - obj.defaultMeshCore = obj.common.IntToStr(0) + moduleAdditions + meshCore; - obj.defaultMeshCoreHash = obj.crypto.createHash('sha384').update(obj.defaultMeshCore).digest("binary"); - obj.defaultMeshCoreNoMei = obj.common.IntToStr(0) + moduleAdditionsNoMei + meshCore; - obj.defaultMeshCoreNoMeiHash = obj.crypto.createHash('sha384').update(obj.defaultMeshCoreNoMei).digest("binary"); + // Merge the cores and compute the hashes + for (var i in modulesAdd) { + obj.defaultMeshCores[i] = obj.common.IntToStr(0) + modulesAdd[i] + meshCore; + obj.defaultMeshCoresHash[i] = obj.crypto.createHash('sha384').update(obj.defaultMeshCores[i]).digest("binary"); + obj.debug(1, 'Core module ' + i + ' is ' + obj.defaultMeshCores[i].length + ' bytes.'); + //console.log('Core module ' + i + ' is ' + obj.defaultMeshCores[i].length + ' bytes.'); // DEBUG, Print the core size + //obj.fs.writeFile("C:\\temp\\" + i + ".js", obj.defaultMeshCores[i].substring(4)); // DEBUG, Write the core to file + } + } + + // We are done creating all the mesh cores. if (func != null) { func(true); } // If meshcore.js is in the data folder, monitor the file for changes. @@ -987,37 +1031,37 @@ function CreateMeshCentralServer(config, args) { } catch (e) { } } }; - + // List of possible mesh agents obj.meshAgentsArchitectureNumbers = { - 0: { id: 0, localname: 'Unknown', rname: 'meshconsole.exe', desc: 'Unknown agent', update: false, amt: true, platform: 'unknown' }, - 1: { id: 1, localname: 'MeshConsole.exe', rname: 'meshconsole.exe', desc: 'Windows x86-32 console', update: true, amt: true, platform: 'win32' }, - 2: { id: 2, localname: 'MeshConsole64.exe', rname: 'meshconsole.exe', desc: 'Windows x86-64 console', update: true, amt: true, platform: 'win32' }, - 3: { id: 3, localname: 'MeshService-signed.exe', rname: 'meshagent.exe', desc: 'Windows x86-32 service', update: true, amt: true, platform: 'win32' }, - 4: { id: 4, localname: 'MeshService64-signed.exe', rname: 'meshagent.exe', desc: 'Windows x86-64 service', update: true, amt: true, platform: 'win32' }, - 5: { id: 5, localname: 'meshagent_x86', rname: 'meshagent', desc: 'Linux x86-32', update: true, amt: true, platform: 'linux' }, - 6: { id: 6, localname: 'meshagent_x86-64', rname: 'meshagent', desc: 'Linux x86-64', update: true, amt: true, platform: 'linux' }, - 7: { id: 7, localname: 'meshagent_mips', rname: 'meshagent', desc: 'Linux MIPS', update: true, amt: false, platform: 'linux' }, - 8: { id: 8, localname: 'MeshAgent-Linux-XEN-x86-32', rname: 'meshagent', desc: 'XEN x86-64', update: true, amt: false, platform: 'linux' }, - 9: { id: 9, localname: 'meshagent_arm', rname: 'meshagent', desc: 'Linux ARM5', update: true, amt: false, platform: 'linux' }, - 10: { id: 10, localname: 'MeshAgent-Linux-ARM-PlugPC', rname: 'meshagent', desc: 'Linux ARM PlugPC', update: true, amt: false, platform: 'linux' }, - 11: { id: 11, localname: 'meshagent_osx-x86-32', rname: 'meshosx', desc: 'Apple OSX x86-32', update: true, amt: false, platform: 'linux' }, - 12: { id: 12, localname: 'MeshAgent-Android-x86', rname: 'meshandroid', desc: 'Android x86-32', update: true, amt: false, platform: 'linux' }, - 13: { id: 13, localname: 'meshagent_pogo', rname: 'meshagent', desc: 'Linux ARM PogoPlug', update: true, amt: false, platform: 'linux' }, - 14: { id: 14, localname: 'MeshAgent-Android-APK', rname: 'meshandroid', desc: 'Android Market', update: false, amt: false, platform: 'android' }, // Get this one from Google Play - 15: { id: 15, localname: 'meshagent_poky', rname: 'meshagent', desc: 'Linux Poky x86-32', update: true, amt: false, platform: 'linux' }, - 16: { id: 16, localname: 'meshagent_osx-x86-64', rname: 'meshagent', desc: 'Apple OSX x86-64', update: true, amt: false, platform: 'osx' }, - 17: { id: 17, localname: 'MeshAgent-ChromeOS', rname: 'meshagent', desc: 'Google ChromeOS', update: false, amt: false, platform: 'chromeos' }, // Get this one from Chrome store - 18: { id: 18, localname: 'meshagent_poky64', rname: 'meshagent', desc: 'Linux Poky x86-64', update: true, amt: false, platform: 'linux' }, - 19: { id: 19, localname: 'meshagent_x86_nokvm', rname: 'meshagent', desc: 'Linux x86-32 NoKVM', update: true, amt: true, platform: 'linux' }, - 20: { id: 20, localname: 'meshagent_x86-64_nokvm', rname: 'meshagent', desc: 'Linux x86-64 NoKVM', update: true, amt: true, platform: 'linux' }, - 21: { id: 21, localname: 'MeshAgent-WinMinCore-Console-x86-32.exe', rname: 'meshagent.exe', desc: 'Windows MinCore Console x86-32', update: true, amt: false, platform: 'win32' }, - 22: { id: 22, localname: 'MeshAgent-WinMinCore-Service-x86-64.exe', rname: 'meshagent.exe', desc: 'Windows MinCore Service x86-32', update: true, amt: false, platform: 'win32' }, - 23: { id: 23, localname: 'MeshAgent-NodeJS', rname: 'meshagent', desc: 'NodeJS', update: false, amt: false, platform: 'node' }, // Get this one from NPM - 24: { id: 24, localname: 'meshagent_arm-linaro', rname: 'meshagent', desc: 'Linux ARM Linaro', update: true, amt: false, platform: 'linux' }, - 25: { id: 25, localname: 'meshagent_pi', rname: 'meshagent', desc: 'Linux ARM - Raspberry Pi', update: true, amt: false, platform: 'linux' }, // "armv6l" and "armv7l" - 10003: { id: 3, localname: 'MeshService.exe', rname: 'meshagent.exe', desc: 'Windows x86-32 service', update: true, amt: true, platform: 'win32' }, // Unsigned version of the Windows MeshAgent x86 - 10004: { id: 4, localname: 'MeshService64.exe', rname: 'meshagent.exe', desc: 'Windows x86-64 service', update: true, amt: true, platform: 'win32' } // Unsigned version of the Windows MeshAgent x64 + 0: { id: 0, localname: 'Unknown', rname: 'meshconsole.exe', desc: 'Unknown agent', update: false, amt: true, platform: 'unknown', core: 'linux-noamt' }, + 1: { id: 1, localname: 'MeshConsole.exe', rname: 'meshconsole.exe', desc: 'Windows x86-32 console', update: true, amt: true, platform: 'win32', core: 'windows-amt' }, + 2: { id: 2, localname: 'MeshConsole64.exe', rname: 'meshconsole.exe', desc: 'Windows x86-64 console', update: true, amt: true, platform: 'win32', core: 'windows-amt' }, + 3: { id: 3, localname: 'MeshService-signed.exe', rname: 'meshagent.exe', desc: 'Windows x86-32 service', update: true, amt: true, platform: 'win32', core: 'windows-amt' }, + 4: { id: 4, localname: 'MeshService64-signed.exe', rname: 'meshagent.exe', desc: 'Windows x86-64 service', update: true, amt: true, platform: 'win32', core: 'windows-amt' }, + 5: { id: 5, localname: 'meshagent_x86', rname: 'meshagent', desc: 'Linux x86-32', update: true, amt: true, platform: 'linux', core: 'linux-amt' }, + 6: { id: 6, localname: 'meshagent_x86-64', rname: 'meshagent', desc: 'Linux x86-64', update: true, amt: true, platform: 'linux', core: 'linux-amt' }, + 7: { id: 7, localname: 'meshagent_mips', rname: 'meshagent', desc: 'Linux MIPS', update: true, amt: false, platform: 'linux', core: 'linux-noamt' }, + 8: { id: 8, localname: 'MeshAgent-Linux-XEN-x86-32', rname: 'meshagent', desc: 'XEN x86-64', update: true, amt: false, platform: 'linux', core: 'linux-amt' }, + 9: { id: 9, localname: 'meshagent_arm', rname: 'meshagent', desc: 'Linux ARM5', update: true, amt: false, platform: 'linux', core: 'linux-noamt' }, + 10: { id: 10, localname: 'MeshAgent-Linux-ARM-PlugPC', rname: 'meshagent', desc: 'Linux ARM PlugPC', update: true, amt: false, platform: 'linux', core: 'linux-noamt' }, + 11: { id: 11, localname: 'meshagent_osx-x86-32', rname: 'meshosx', desc: 'Apple OSX x86-32', update: true, amt: false, platform: 'linux', core: 'linux-noamt' }, + 12: { id: 12, localname: 'MeshAgent-Android-x86', rname: 'meshandroid', desc: 'Android x86-32', update: true, amt: false, platform: 'linux', core: 'linux-noamt' }, + 13: { id: 13, localname: 'meshagent_pogo', rname: 'meshagent', desc: 'Linux ARM PogoPlug', update: true, amt: false, platform: 'linux', core: 'linux-noamt' }, + 14: { id: 14, localname: 'MeshAgent-Android-APK', rname: 'meshandroid', desc: 'Android Market', update: false, amt: false, platform: 'android', core: 'linux-noamt' }, // Get this one from Google Play + 15: { id: 15, localname: 'meshagent_poky', rname: 'meshagent', desc: 'Linux Poky x86-32', update: true, amt: false, platform: 'linux', core: 'linux-noamt' }, + 16: { id: 16, localname: 'meshagent_osx-x86-64', rname: 'meshagent', desc: 'Apple OSX x86-64', update: true, amt: false, platform: 'osx', core: 'linux-noamt' }, + 17: { id: 17, localname: 'MeshAgent-ChromeOS', rname: 'meshagent', desc: 'Google ChromeOS', update: false, amt: false, platform: 'chromeos', core: 'linux-noamt' }, // Get this one from Chrome store + 18: { id: 18, localname: 'meshagent_poky64', rname: 'meshagent', desc: 'Linux Poky x86-64', update: true, amt: false, platform: 'linux', core: 'linux-noamt' }, + 19: { id: 19, localname: 'meshagent_x86_nokvm', rname: 'meshagent', desc: 'Linux x86-32 NoKVM', update: true, amt: true, platform: 'linux', core: 'linux-amt' }, + 20: { id: 20, localname: 'meshagent_x86-64_nokvm', rname: 'meshagent', desc: 'Linux x86-64 NoKVM', update: true, amt: true, platform: 'linux', core: 'linux-amt' }, + 21: { id: 21, localname: 'MeshAgent-WinMinCore-Console-x86-32.exe', rname: 'meshagent.exe', desc: 'Windows MinCore Console x86-32', update: true, amt: false, platform: 'win32', core: 'windows-amt' }, + 22: { id: 22, localname: 'MeshAgent-WinMinCore-Service-x86-64.exe', rname: 'meshagent.exe', desc: 'Windows MinCore Service x86-32', update: true, amt: false, platform: 'win32', core: 'windows-amt' }, + 23: { id: 23, localname: 'MeshAgent-NodeJS', rname: 'meshagent', desc: 'NodeJS', update: false, amt: false, platform: 'node', core: 'linux-noamt' }, // Get this one from NPM + 24: { id: 24, localname: 'meshagent_arm-linaro', rname: 'meshagent', desc: 'Linux ARM Linaro', update: true, amt: false, platform: 'linux', core: 'linux-noamt' }, + 25: { id: 25, localname: 'meshagent_pi', rname: 'meshagent', desc: 'Linux ARM - Raspberry Pi', update: true, amt: false, platform: 'linux', core: 'linux-noamt' }, // "armv6l" and "armv7l" + 10003: { id: 3, localname: 'MeshService.exe', rname: 'meshagent.exe', desc: 'Windows x86-32 service', update: true, amt: true, platform: 'win32', core: 'windows-amt' }, // Unsigned version of the Windows MeshAgent x86 + 10004: { id: 4, localname: 'MeshService64.exe', rname: 'meshagent.exe', desc: 'Windows x86-64 service', update: true, amt: true, platform: 'win32', core: 'windows-amt' } // Unsigned version of the Windows MeshAgent x64 }; // Update the list of available mesh agents diff --git a/public/compress.bat b/public/compress.bat index e984870a..b6e55625 100644 --- a/public/compress.bat +++ b/public/compress.bat @@ -1,41 +1,18 @@ @ECHO OFF -REM *** Remove all old minified files -DEL ..\views\default-min.handlebars -DEL ..\views\default-mobile-min.handlebars -DEL ..\views\login-min.handlebars -DEL ..\views\login-mobile-min.handlebars +CALL:CompressHandlebars default +CALL:CompressHandlebars default-mobile +CALL:CompressHandlebars login +CALL:CompressHandlebars login-mobile +CALL:CompressHandlebars messenger +PAUSE +GOTO:eof -REM *** default.handlebars -COPY ..\views\default.handlebars index.html +:CompressHandlebars +ECHO COMPRESS ..\views\%~1.handlebars TO ..\views\%~1-min.handlebars +DEL ..\views\%~1-min.handlebars +COPY ..\views\%~1.handlebars index.html ..\..\WebSiteCompiler\bin\Debug\WebSiteCompiler.exe compress.wcc -c -COPY compress.htm ..\views\default-min.handlebars +COPY compress.htm ..\views\%~1-min.handlebars DEL compress.htm DEL index.html - -REM *** default-mobile.handlebars -COPY ..\views\default-mobile.handlebars index.html -..\..\WebSiteCompiler\bin\Debug\WebSiteCompiler.exe compress.wcc -c -COPY compress.htm ..\views\default-mobile-min.handlebars -DEL compress.htm -DEL index.html - -REM *** login.handlebars -COPY ..\views\login.handlebars index.html -..\..\WebSiteCompiler\bin\Debug\WebSiteCompiler.exe compress.wcc -c -COPY compress.htm ..\views\login-min.handlebars -DEL compress.htm -DEL index.html - -REM *** login-mobile.handlebars -COPY ..\views\login-mobile.handlebars index.html -..\..\WebSiteCompiler\bin\Debug\WebSiteCompiler.exe compress.wcc -c -COPY compress.htm ..\views\login-mobile-min.handlebars -DEL compress.htm -DEL index.html - -REM *** messenger.handlebars -COPY ..\views\messenger.handlebars index.html -..\..\WebSiteCompiler\bin\Debug\WebSiteCompiler.exe compress.wcc -c -COPY compress.htm ..\views\messenger-min.handlebars -DEL compress.htm -DEL index.html \ No newline at end of file +GOTO:eof