Giter Site home page Giter Site logo

ylianst / meshagent Goto Github PK

View Code? Open in Web Editor NEW
185.0 21.0 81.0 263.91 MB

MeshAgent used along with MeshCentral to remotely manage computers. Many variations of the background management agent are included as binaries in the MeshCentral project.

Home Page: https://meshcentral.com

JavaScript 16.81% HTML 0.22% Batchfile 0.01% Makefile 0.25% C 80.89% C++ 1.00% C# 0.81% PowerShell 0.02%

meshagent's Introduction

MeshCentral Agent

Table of Contents

About
Social Media
MSH format
Self Test
Feedback
License

About

The MeshCentral Agent is the software that runs on remote devices and connects to the MeshCentral server to allow for remote device management. This agent is compiled for Windows, many different Linux distributions, macOS and FreeBSD. In addition compiled for many different processors x86-32, x86-64, ARM, MIPS. For most users, install the MeshCentral server first and install the agent from your server.

To try out this software on the public server, please visit MeshCentral.com/login. Be mindful that the public MeshCentral server comes with no guaranties, most should setup their own server.

For more information, visit MeshCentral.com.

Social Media

Reddit
Twitter
BlogSpot

MSH format

The MeshAgent gets it's security and connection instructions from a .msh text file formatted with each line being a "key=value". The .msh file is generally created by the MeshCentral server and, for example, would look like this:

MeshName=MyComputers
MeshType=2
MeshID=0xEDBE1BE...
ServerID=D99362D5...
MeshServer=wss://example.com:443/agent.ashx

Here is a list of the possible keys that are currently supported by the agent. Note that the key name must have the exact capitalization:

AgentCapabilities            Integer Mask, specifying supported Agent Capabilities	
agentName                    If set, this will be sent to the server instead of the hostname
compactDirtyMinimum          Minimum dirty bytes threshold for db.compact() operation
controlChannelDebug          If set, will log/display controlChannel messages (Except for JSON messages)
controlChannelIdleTimeout    Integer value specifying the idle timeout in seconds, to send Ping/Pong to server, to keep connection alive
coreDumpEnabled              If set, a dump file will be written when the agent crashes
disableUpdate                If set, will prevent the agent from self-updating
noUpdateCoreModule           If set, will prevent the agent from taking a new meshcore from the server
enableILibRemoteLogging      Integer value specifying the port number to enable Web Logging. Disabled otherwise
fakeUpdate                   If set, when the agent self-updates, it will update to the same version. Will set disableUpdate upon completion
forceUpdate                  If set, will cause the agent to perform a self-update on next start.
ignoreProxyFile              If set, will cause the agent to ignore any proxy settings
logUpdate                    If set, will cause the agent to log self-update status
jsDebugPort                  Specify a JS Debugger Port
nocertstore                  If set on Windows, will force the Agent to use OpenSSL instead of WinCrypto for cert generation/storage.
remoteMouseRender            If set, will always render the remote mouse cursor for KVM
skipmaccheck                 If set, the agent will not change NodeID on local mac address changes.
showModuleNames              If set, will display the name of modules when they are loaded for the first time
slaveKvmLog                  [Linux] If set, will enable logging inside the Child KVM Process.
WebProxy                     Manually specify proxy configuration

Many of these values are used by developers and are not typically used in normal use.

Special notes for BSD systems

You'll need to mount procfs, which isn't mounted by default on FreeBSD. Add the following line to /etc/fstab

proc	/proc	procfs	rw	0	0

If you don't reboot, then you can manually mount with the command:

mount -t procfs proc /proc

In addition, it is recommended to install bash, which you can do with the following command:

pkg install bash

Special Note about KVM Support on Linux:

If you get an error stating that an Xauthority cannot be found, and asking if your DM is configured to use X, or if you get a black screen when connecting to the login screen, you may need to:

  • Open /etc/gdm/custom.conf or /etc/gdm3/custom.conf
  • Uncomment: WaylandEnable=false.
  • Add the following line to the [daemon] section:
DefaultSession=gnome-xorg.desktop

If you are using LightDM, and the child KVM process unexpectedly closes while connecting to the login screen, you'll need to:

  • Open /etc/lightdm/lightdm.conf
  • Uncomment the following line from the [LightDM] section:
user-authority-in-system-dir=false

Special Note For ChromeOS:

You need to disable rootfs verification, in order to install the meshagent service. After running the following commands, and rebooting, you should be able to install the meshagent service.

sudo su -
cd /usr/share/vboot/bin/
./make_dev_ssd.sh --remove_rootfs_verification

The above line will return a warning, but it will tell you the boot partition number, which you will need when specifying the above command again, this time with the --partions options. Specify the number instead of (ID)

./make_dev_ssd.sh --remove_rootfs_verification --partitions ID
reboot

When you are ready to install the agent, you'll need to copy the binary to a path that is not marked noexec, like /usr/local, so that you can execute the installer from there.

Self Test

The MeshAgent has the ability to run a self test script, to aid in testing features of the Mesh Agent in consistent/reproducable fashion.

There are two modes of operation of the self test:

  • Stand-alone Mode. This runs the tests in place directly from the command line
  • IPC Mode. This opens an IPC to a currently running/installed agent, and runs the tests from there.

The easiest way to run the self tests, is by using Stand-alone mode, as it can be quickly setup and run anywhere. To get started, you will need make sure that the agent that you will be testing, has successfully connected to the server at least once. This is becuase the self test will simulate a server connection with the agent, so the agent will need to be running the meshcore that was pushed by the server, which is stored in the db. If the agent has not yet connected with a server, or the meshcore is missing from the .db, the self test will error out with a message stating that the meshcore could not be loaded.

Once the agent has successfully connected at least once, simply exit/stop the agent. Make sure that you have placed a copy of the agent-selftest.js file from the modules folder of the agent repository to the folder where the agent that you wish to test is located.

To start the test on Windows, from a command prompt, simply run the agent from the command line, with the --selfTest=1 switch:

MeshAgent --selfTest=1

The self test does not explicitly need an elevated command prompt to run, but some tests, such as the AMT tests require elevated permissions.

To start the test on other platforms, simply run the agent from a console session. It will run best from a GUI capable console session, so that it can test features such as user consent. If you use SU to elevate the self test, it is best to pass in the -p flag, to preserve the envionment variables. To start the test, simply run the agent with the --selfTest=1 switch:

./MeshAgent --selfTest=1

To run the self test in IPC Mode, requires a little more preparation. For security reasons, by default the agent does not allow running 'eval' commands thru the IPC channel, however, the Self Test IPC Mode, requires this functionality. The simplest way to allow this command, is to add the following entry in the msh configuration file of the agent, then restart the agent:

debugConsole=1

To verify if this flag has been enabled, from the console tab for the agent, run the following command:

eval debugConsole

If this returns 'true', then you are ready to run the self test in IPC Mode. To start the self test in IPC Mode, start the self test similarly to how you launch the Stand Alone test, from an elevated console, but add the following command line switch:

--serviceName="xxx"

substituting xxx, with the service name of the agent you are trying to test. If you do not know the service name, you can navigate to the folder that contains the agent, and run the the agent from the command line with the following command line switch:

-name

This will return the service name for that agent.

After concluding the tests, you can again disable the debugConsole flag by editing the msh configuration file of the agent like the following, and restarting the agent:

debugConsole=

This will ensure that the debugConsole flag is cleared on the agent. This can be verified by running the following console command, similar to before. It should return false:

eval debugConsole

Self Test Coverage

The following is the list of basic tests that the Stand Alone test mode will test:

  • Server Initialization. This verifies that the agent sends the correct startup sequence to the server.
  • AMT/LMS. If detected, will attempt to verify LMS operation.
  • Console command. Verifies that the agent is responsive to performing console commands.
  • Basic Telemetry. Verifies the operation of some basic telemetry operations requested from the server.
  • Web RTC. Verifies ability to establish Peer Data Channels, and transfer large data chunks.
  • Non-English UTF8 Dialog Boxes. Linux specific test to verify capability to display non-english utf8 characters on configurable dialog boxes.
  • Tunnel Sessions. Verifies ability of agent to establish tunnel session with server.
  • Remote Terminal. Verifies ability of agent to establish terminal session with user-consent.
  • Remote KVM. Verifies ability of agent to establish KVM session with user-consent, and verifies receipt of correct KVM packets.
  • File Transfer Upload. Verifies ability to upload files, by uploading a random stream of bytes.
  • File Transfer Download. Verifies ability to doanload files, by downloading the bytes uploaded in previous test, and verifying CRC.

In addition to the above tests, IPC Mode test adds the following tests:

  • Mesh Core Dump Test. Attempts to clear/restart JS core while running KVM test, verifying the agent does not crash.
  • Service Restart Test. Verifies that the agent can successfully restart itself.

Feedback

If you encounter a problem or have a suggestion to improve the product, you may file an issue report

If you are filing a problem report, you should include:

  • The version of the software you are using
  • The Operating System and version
  • The observed output
  • The expected output
  • Any troubleshooting you took to resolve the issue yourself
  • Any other similar reports

License

This software is licensed under Apache 2.0.

meshagent's People

Contributors

dvarnai avatar jpros avatar krayon007 avatar pelwell avatar ryanblenis avatar si458 avatar silversword411 avatar smartekit avatar wizarddev038 avatar ylianst avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

meshagent's Issues

MeshAgent http download issues

Hi @krayon007,

Not sure if this is a bug or usage related. I'm attempting something relatively simple (download a file and save it to disk). I originally tried using the wget module you created, however I was getting extra data in the file that corrupted it. I had assumed this was due to the wget module also piping _accumulator and _sha data.

So I used a couple straight http options like so:

var reqOptions = http.parseUri("https://assets.zabbix.com/downloads/4.4.4/zabbix_agent-4.4.4-windows-amd64-openssl.msi");
                    reqOptions.rejectUnauthorized = false;
                    var req = http.get(reqOptions);
                    req.on('error', function(e) { dbg('error' + e); });
                    req.on('abort', function() { dbg('abort'); });
                    var _file = fs.createWriteStream("zb.msi", { flags: 'w' });
                    req.on('response', function(resp) {
                        if (resp.statusCode != 200) {
                            dbg('rcode error');
                        }
                        resp.pipe(_file);
                    });

And the file (which is 6080kb) comes down at anywhere from 6081kb - 6102kb (random each time) and the msi is corrupt. The abort, error, and status code checks in the above code don't show anything.

Looking forward to any input you have on why this may be. I assume it's something I'm not understanding about the MeshAgent environment, but the code all seems fairly straightforward.

As a bonus: removing the reqOptions.rejectUnauthorized = false; line produces no file. I had assumed that was checking SSL cert status, but nothing seems to happen at all if it is missing.

Thank you as always.

MeshAgent self update doesnt work

After updating my MeshCentral server, all my agents attempted to update themselves.
On some systems (mostly windows 7), it works correctly. On many other systems (mostly windows 10 64bit) it didnt work.
When i try to "meshagent connect" with "controlChannelDebug=1" i get following logs:

[2019-10-22 11:54:49 AM] Attempting to connect to Server...
[2019-10-22 11:54:49 AM] Connecting to: 671EC973D757E5B1D1E93B8D09EF259CB8199404AE5928527C7D7F6C55C1F788EBEED29A7756B8AD0F7DE045786CCB35
[2019-10-22 11:54:49 AM] Control Channel Connection Established...
[2019-10-22 11:54:49 AM] Sending Authentication Data...
[2019-10-22 11:54:49 AM] ProcessCommand(1)...
[2019-10-22 11:54:49 AM] Processing Authentication Request...
[2019-10-22 11:54:49 AM] ProcessCommand(2)...
[2019-10-22 11:54:49 AM] Processing Authentication Verification...
[2019-10-22 11:54:49 AM] ProcessCommand(4)...
[2019-10-22 11:54:49 AM] Authentication Complete...
[2019-10-22 11:54:49 AM] ProcessCommand(12)...
[2019-10-22 11:54:49 AM] BinaryCommand(12, 0)...
[2019-10-22 11:54:49 AM] ProcessCommand(10)...
[2019-10-22 11:54:49 AM] BinaryCommand(10, 0)...
[2019-10-22 11:54:49 AM] ProcessCommand(13)...
[2019-10-22 11:54:49 AM] BinaryCommand(13, 0)...
[2019-10-22 11:54:49 AM] ProcessCommand(14)...
[2019-10-22 11:54:49 AM] BinaryCommand(14, 1)...
[2019-10-22 11:54:50 AM] ProcessCommand(10)...
[2019-10-22 11:54:50 AM] BinaryCommand(10, 0)...
[2019-10-22 11:54:50 AM] ProcessCommand(31522)...

Also, a Meshagent.update.exe gets created, but it only ever gets exactly 64kb large and then nothing happens.

cannot compile meshagent

i am trying to compile meshagent on ubuntu or centOS.
but the makefile instructions are not clear to me.
can you please provide a more comprehensive README for this project.
also i don't understand how meshagent knows the server's ip address or the specific mesh for the client.
if i want to use a modified version of meshagent and use it in the server what are the steps to replace the already compiled meshagent with my own version?
tnx

Meshagent wont work with Cloudflare?

Hi,
I was wondering if anyone else has happened to them as im trying to configure cloudflare proxy but as soon as i update on the Cloudflare DNS platform the agents die, wont connect as soon i remove the proxy on the platform of cloudflare it starts working again

Thank you

Feature Request - OK/Cancel Message Window

Hello,

Looking to see if there is any chance of getting an OK/Cancel type pop-up/alert with a callback that can be made available to the MeshCore?

The use case is fairly simple, I want to be able to interact with the user before performing an action, such as "Windows Updates have been applied to your PC, Click OK to Restart now, or Cancel to be reminded in an hour" or similar.

Ideally the call would be able to pass the:

  • Window Title
  • Window Message
  • OK Button Text
  • Cancel Button Text
  • Timeout before a default value is accepted

Thank you.

Remote download folder files?

Hi,
I was wondering if there will be a future update to download the folder files? As there is the option to download the files but not the option to download the whole folder?

Thank you

Update issue

Hi,
Recently updated the meshagent and when i try to connect to the computer i dont see the desktop nor the files see picture

Thank you
Screenshot from 2020-02-13 15-58-22
Screenshot from 2020-02-13 15-59-06

MeshAgent old glibc

Hello.

I try to run the agent on my old CentOS 5.11 (2.6.18-398.el5 #1 SMP Tue Sep 16 20:51:48 EDT 2014 i686 athlon i386 GNU/Linux
), it is not running, because the old glibc (glibc-2.5-123)

./meshagent

./meshagent: /lib/libc.so.6: version GLIBC_2.9' not found (required by ./meshagent) ./meshagent: /lib/libc.so.6: version GLIBC_2.7' not found (required by ./meshagent)
./meshagent: /lib/libc.so.6: version `GLIBC_2.11' not found (required by ./meshagent)

Can you compile me a version which is running? Or help me how to do it?

Thank you

Agent Crashes (Win10 1903 & 1909)

Hi @krayon007 ,

I'm seeing issues with several clients where the MeshAgent crashes frequently. I see the same log entry in each.

Server version: 0.5.31
Agent version: {
"openssl": "1.1.1g",
"duktape": "v2.3.0",
"meshAgent": "2020-05-08T08:18:21.000Z"
}
Seems like everyone is 64 bit, so I can't test with a 32 bit agent OS to see if it makes any difference.

Errors:

Agent 1 example:
[2020-05-15 09:26:08 AM] FATAL EXCEPTION [MeshAgent_72C50F4A2BFDE64F.exe] @ [FuncAddr: 0x00007ff6b6e431bb / BaseAddr: 0x00007ff6b6e3e878 / Delta: -18755]
Agent 2 example:
[2020-05-15 02:15:50 PM] FATAL EXCEPTION [MeshAgent_72C50F4A2BFDE64F.exe] @ [FuncAddr: 0x00007ff7a0f231bb / BaseAddr: 0x00007ff7a0f1e878 / Delta: -18755]
Agent 3 example:
[2020-05-15 10:37:54 AM] FATAL EXCEPTION [MeshAgent_72C50F4A2BFDE64F.exe] @ [FuncAddr: 0x00007ff73b0c31bb / BaseAddr: 0x00007ff73b0be878 / Delta: -18755]

I'm seeing it every ~7-20 minutes on clients, where they crash and need to wait for the agent to restart. I don't know how to equate the FuncAddr and BaseAddr to the offending code. Hoping you can help here.

Full disclosure, I'm using these agents purely to let people "Work From Home" by routing their RDP through a tunnel via the MeshAgent with my Work From Home plugin (just in case that address space points to something odd that you can't follow in the agent specifically).

Let me know anything I can do to help narrow down the cause. Thank you!

Note that the WorkFromHome plugin really just mimics what the MeshCmd uses to set up a port / tunnel

Message Box in RDP Session

Hi @krayon007,

Thanks for the help pointing me in the right direction on #26 . Some testing with this brought up a different kind of bug. When the active user is in an RDP session, the message box does not show up, only when in a console session. Just wondering if there is a way to detect the active session and direct the message box appropriately. Thank you.

MeshAgent Service Failed to Read Description. Error Code: 2

Hello,

I got a big issue, the MeshAgent service on Windows won't start whatever I can do.

As my LAN (and VPN) tests with the MeshCentral had reached a good satisfaction, I wanted to make test on Internet over our firewall. I then change the port of MeshCentral and use a domain name instead of an IP address.

So, I thought changing the installed agent with new .msh by installing it again with -fullinstall on some rogue workstations.

And I felt on the case where the MeshAgent installation directory is empty and that the MeshAgent entry in the service manager displays "Failed to read description. Error code: 2" when selecting.

So I tried to make a cleanup install by deleting the service entry (sc query 'Mesh Agent' failed, but sc delete 'Mesh Agent' is ok) and the installation directory. Next, I launched the installation again. But that failed: the service does not start and show the same "Failed to read..." message and the installation directory is empty.

Uninstalling via the Windows application manager before reinstalling it, results to the same issues.
(I did not test an installation on a machine which never gets MeshAgent installed)

Today I updated the MeshCentral and tried installing a MeshAgent again from the binaries founds in the new MeshCentral. Result ? Still the same problem.

By keeping an eye on different folders to see what is copied and deleted, I can tell that the installation source executable is well copied in the installation directory, the service is created. But when it starts (I suppose) the installation directory is emptied and the installation source executable is deleted. But the service entry is still partially present.
(In the meantime I saw the same thing as the following issue #49 )

I have no clue about what happened. Nothing in the events viewer. No log files.

How can I debug what happened ?

Agent Debugging

Hi @krayon007,

Wondering if you can share some details on how MeshAgent / duktape debugging is done on the client side. Currently attempting to run this on a Mac.

Starting the agent from the command line yields:
Cannot setup debugger, missing promise and/or duktape-debugger

And I narrowed that down to
duk_peval_string(ctx, "getJSModule('duktape-debugger');")

failing.

I've tried using this in conjunction with the attachDebugger call in the meshcore.js, and with duktape's duk --debugger but can't seem to get it working.

Being able to see console logging would be useful when developing plugins. Any other agent debugging would be helpful for tracking down this Mac Remote Desktop issue. Thank you as always!

MeshAgent on Linux should respect the default shell assigned to the user it's running as

When connecting to a Linux computer via the Terminal tab, the mesh agent always launches /bin/bash even if the current user's default shell is something else.

This issue was brought up by @sylvaincolson in Ylianst/MeshCentral#678 because they switched the mesh agent to run under a non-root user that used /bin/rbash as the shell instead of /bin/bash in an attempt to restrict the permissions given to people logging in to the machine through MeshCentral, but the issue would also affect a user who simply wanted to switch from bash to another shell (e.g. fish) by changing the default shell of the user that it logs into by default (which is root).

Not updating Name of the computer?

Hi,
I was wondering if someone else has had this issue before as i change the name of the computer but on the meshcentral it shows still the old name of the computer any ideas?

Screenshot from 2020-03-12 12-27-25

Screenshot from 2020-03-12 12-27-09

Unable to send CTRL+ALT+DEL to Server Core installs

I have the agent installed on Server 2012R2 and 2019 Core installs, and on other machines I'm able to use CTRL+ALT+DEL, but it doesn't work on Core.

Even if I set
Disable or enable software Secure Attention Sequence (Set which software is allowed to generate the Secure Attention Sequence) = Enabled (Services)
via GPO, it still doesn't seem to work.

If I CTRL+ALT+DEL through other means, the rest of the session works fine. It's not limited to the login prompt though.

Compile error on debian 10

Hi

Current HEAD doesn't compile on Debian 10 with GCC 8.3.0:

make ARCH=6
...
gcc -DJPEGMAXBUF=0 -DMESH_AGENTID=6 -std=gnu99 -g -Wall -D_POSIX -DMICROSTACK_PROXY  -DILibChain_WATCHDOG_TIMEOUT=6000000 -fno-strict-aliasing -I. -Iopenssl/include -Imicrostack -Imicroscript -Imeshcore -Imeshconsole -DDUK_USE_DEBUGGER_SUPPORT -DDUK_USE_INTERRUPT_COUNTER -DDUK_USE_DEBUGGER_INSPECT -DDUK_USE_DEBUGGER_PAUSE_UNCAUGHT -D_LINKVM -DMICROSTACK_TLS_DETECT -O3 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -fstack-protector -fno-strict-aliasing   -c -o meshcore/agentcore.o meshcore/agentcore.c
meshcore/agentcore.c:3952:1: error: unknown type name ‘BOOL’; did you mean ‘BIO’?
 BOOL MeshAgent_PidWaiter(void *chain, HANDLE h, ILibWaitHandle_ErrorStatus status, void* user)
 ^~~~
 BIO
meshcore/agentcore.c:3952:49: error: unknown type name ‘ILibWaitHandle_ErrorStatus’; did you mean ‘ILibWebServer_Status’?
 BOOL MeshAgent_PidWaiter(void *chain, HANDLE h, ILibWaitHandle_ErrorStatus status, void* user)
                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
                                                 ILibWebServer_Status
make[1]: *** [<builtin>: meshcore/agentcore.o] Error 1
make[1]: Leaving directory '/home/tmp/git/MeshAgent'
make: *** [makefile:511: linux] Error 2

I applied the following (probably incorrect) patch to be able to build the agent, no other error.

diff --git a/meshcore/agentcore.c b/meshcore/agentcore.c
index 917681e..11ac03e 100644
--- a/meshcore/agentcore.c
+++ b/meshcore/agentcore.c
@@ -3949,11 +3949,11 @@ void MeshAgent_AgentInstallerCTX_Finalizer(duk_context *ctx, void *user)
        }
 }
 
-BOOL MeshAgent_PidWaiter(void *chain, HANDLE h, ILibWaitHandle_ErrorStatus status, void* user)
+void MeshAgent_PidWaiter(void *chain, HANDLE h, int status, void* user)
 {
        ILibStopChain(chain);
-       return(FALSE);
 }
+

LibDRM KMS early work with uinput based virtual keyboard and mouse

Please review

jsastriawan@1cf913c

I got LibDRM KMS based screen scrapper working over this weekend and I have made and attempt to work on uinput based virtual keyboard and mouse.

Screen scrapper works despite occasional tearing (probably I copied the framebuffer while being updated).

Mouse movement at least is now reflected on KVM display but not yet displayed on the actual screen. If @krayon007 wants to play with this, I think this is in a much better shape that my previous code.

Oh btw, please do not setuid to other than 0 if using KMS, otherwise MeshAgent will lost DRM Master privileges and will not be able to grab the framebuffer.

Blank Screen on MacOS 10.14.5 Mojave

Somehow the MeshAgent works so far besides the Remote Desktop. Only a Blank screen will be shown.
Access rights have been granted in the system settings.

Question: How to build agents using local (FIPS certified) OpenSSL

@Ylianst is aware of a little side project that I'm working on, and that's getting MC2 up and running within a FIPS 140-2 environment. Today I successfully (finally!!) got node and the MC2 server operating on Ubuntu and it's certified OpenSSL encryption modules.

I believe I'm correct in assuming that the agents, however, are built by you fine chaps with the non-FIPS versions of OpenSSL and included as binaries when "npm install meshcentral" is run.

Is it possible to build these locally, using the OpenSSL files already on my system?

I've cloned the latest MeshAgent and see that there's an openssl folder thereunder. It appears that ~MeshAgent/openssl/include/openssl contains files that appear in my /usr/include/openssl folder (those being the FIPS OpenSSL files that I have already on my server). Additionally, ~/MeshAgent/openssl/libstatic/linux/x86-64 contains files that appear in my /usr/lib/x86_64-linux-gnu/ folder ...

I'm sure this is just the tip of the iceberg here, but would it be feasible to work on replacing what's in my cloned folder with files from my system and then perform some sort of build against everything? Alternatively, within the ./configure can I use something like node's --shared-openssl parameter (with perhaps the associated --shared-openssl-includes=/PATH/TO/OPENSSL/INCLUDE)?

com.apple.launchd.peruser.501[247]: (meshagent[31372]) Job appears to have crashed: Abort trap: 6

Process:         meshagent_osx64 [31075]
Path:            /usr/local/mesh_services/meshagent/meshagent_osx64
Identifier:      meshagent_osx64
Version:         0
Code Type:       X86-64 (Native)
Parent Process:  launchd [247]
Responsible:     meshagent_osx64 [31075]
User ID:         501

Date/Time:       2019-01-24 01:06:02.683 +0100
OS Version:      Mac OS X 10.9.5 (13F1911)
Report Version:  11
Anonymous UUID:  1D39C193-21FF-8A39-E6F9-62FCC60AC0EA

Sleep/Wake UUID: DE1E20C8-88D1-4E96-A4AF-22E0A3288093

Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000

Application Specific Information:
[31075] stack overflow

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib        	0x00007fff883b0866 __pthread_kill + 10
1   libsystem_pthread.dylib       	0x00007fff89e2335c pthread_kill + 92
2   libsystem_c.dylib             	0x00007fff86a78bc6 __abort + 145
3   libsystem_c.dylib             	0x00007fff86a79479 __stack_chk_fail + 196
4   meshagent_osx64               	0x000000010d88b5e7 0x10d7ee000 + 644583
5   meshagent_osx64               	0x000000010d88b9e4 0x10d7ee000 + 645604
6   libdyld.dylib                 	0x00007fff8eb5f5fd start + 1

Thread 0 crashed with X86 Thread State (64-bit):
  rax: 0x0000000000000000  rbx: 0x00007fff7407c310  rcx: 0x00007fff52410718  rdx: 0x0000000000000000
  rdi: 0x0000000000000807  rsi: 0x0000000000000006  rbp: 0x00007fff52410740  rsp: 0x00007fff52410718
   r8: 0x0000000000000000   r9: 0x0000000000000000  r10: 0x0000000008000000  r11: 0x0000000000000206
  r12: 0x00007fc859801000  r13: 0x0000000000000000  r14: 0x0000000000000006  r15: 0xd0004ca3bb251d64
  rip: 0x00007fff883b0866  rfl: 0x0000000000000206  cr2: 0x000000010db1e000
  
Logical CPU:     0
Error Code:      0x02000148
Trap Number:     133


Binary Images:
       0x10d7ee000 -        0x10da5afff +meshagent_osx64 (0) <4585D02C-0B8C-38DE-98BF-EBDF0345961A> /usr/local/mesh_services/meshagent/meshagent_osx64
    0x7fff6c852000 -     0x7fff6c885887  dyld (239.5) <1D3130FE-FE7E-3C4C-8E74-EB51895B6BA5> /usr/lib/dyld
    0x7fff834fa000 -     0x7fff836b2ffb  libicucore.A.dylib (511.36) <9AAC5980-2C1F-3B86-8A16-DB533F5E7C84> /usr/lib/libicucore.A.dylib
    0x7fff836b3000 -     0x7fff836b4fff  libsystem_sandbox.dylib (278.11.2) <0C93EB23-7364-3670-B511-212A7A524695> /usr/lib/system/libsystem_sandbox.dylib
    0x7fff8370d000 -     0x7fff8370fff7  libquarantine.dylib (71) <7A1A2BCB-C03D-3A25-BFA4-3E569B2D2C38> /usr/lib/system/libquarantine.dylib
    0x7fff837b4000 -     0x7fff83820fff  com.apple.framework.IOKit (2.0.1 - 907.100.14) <10932113-9F7E-38A0-A158-A019A555CAC3> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
    0x7fff83821000 -     0x7fff838e3ffd  com.apple.CoreText (367.23 - 367.23) <C799261E-2E19-3D69-8A8D-098B7DD8D31D> /System/Library/Frameworks/CoreText.framework/Versions/A/CoreText
    0x7fff84135000 -     0x7fff8413fff7  com.apple.bsd.ServiceManagement (2.0 - 2.0) <2D27B498-BB9C-3D88-B05A-76908A8A26F3> /System/Library/Frameworks/ServiceManagement.framework/Versions/A/ServiceManagement
    0x7fff84147000 -     0x7fff8414ffff  libsystem_dnssd.dylib (522.92.3) <1418DF66-01BE-3A87-8553-09EAA945F4FE> /usr/lib/system/libsystem_dnssd.dylib
    0x7fff8443a000 -     0x7fff84493ff7  libTIFF.dylib (1052) <909BF5F6-6FC5-3126-9028-593130CAEBE6> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib
    0x7fff8454b000 -     0x7fff8459dfff  libc++.1.dylib (120) <4F68DFC5-2077-39A8-A449-CAC5FDEE7BDE> /usr/lib/libc++.1.dylib
    0x7fff845e6000 -     0x7fff84634fff  libcorecrypto.dylib (161.1) <F3973C28-14B6-3006-BB2B-00DD7F09ABC7> /usr/lib/system/libcorecrypto.dylib
    0x7fff84635000 -     0x7fff8473cff7  com.apple.ImageIO.framework (3.3.0 - 1052) <6BFA69B9-A607-39BC-B302-E2E92E5BC7F3> /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
    0x7fff85080000 -     0x7fff850a7ffb  libsystem_info.dylib (449.1.4) <12CD9E42-8CEE-3A8D-B006-F8A6EB98804D> /usr/lib/system/libsystem_info.dylib
    0x7fff850e1000 -     0x7fff850f8ff7  com.apple.CFOpenDirectory (10.9 - 173.90.1) <D7F2E159-CF6B-3EB1-9806-3BC59E63D24F> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory
    0x7fff852f1000 -     0x7fff852f1fff  com.apple.ApplicationServices (48 - 48) <3E3F01A8-314D-378F-835E-9CC4F8820031> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices
    0x7fff85311000 -     0x7fff85311fff  com.apple.Accelerate (1.9 - Accelerate 1.9) <509BB27A-AE62-366D-86D8-0B06D217CF56> /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate
    0x7fff85312000 -     0x7fff853a2ff7  com.apple.Metadata (10.7.0 - 800.30) <E107CE36-FBC3-35A5-84E0-864B4178FC5D> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata
    0x7fff853a3000 -     0x7fff853bffff  libresolv.9.dylib (54) <11C2C826-F1C6-39C6-B4E8-6E0C41D4FA95> /usr/lib/libresolv.9.dylib
    0x7fff85444000 -     0x7fff85445ff7  libSystem.B.dylib (1197.1.1) <72A98ACC-7606-3AD5-82AF-02D4EBBD4F02> /usr/lib/libSystem.B.dylib
    0x7fff855e3000 -     0x7fff855f0ff7  libxar.1.dylib (202) <5572AA71-E98D-3FE1-9402-BB4A84E0E71E> /usr/lib/libxar.1.dylib
    0x7fff856c8000 -     0x7fff858adfff  com.apple.CoreFoundation (6.9 - 855.17) <729BD6DA-1F63-3E72-A148-26F21EBF52BB> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
    0x7fff858f9000 -     0x7fff85932ff7  com.apple.QD (3.50 - 298) <C1F20764-DEF0-34CF-B3AB-AB5480D64E66> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD
    0x7fff85a63000 -     0x7fff85ad6fff  com.apple.securityfoundation (6.0 - 55122.3) <0AFCF575-97C3-3458-A72E-39DA07804EB9> /System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation
    0x7fff85baa000 -     0x7fff85c0dffb  com.apple.SystemConfiguration (1.13.1 - 1.13.1) <339A2A90-DA25-33AF-88E5-2FB38A758FEE> /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration
    0x7fff85c30000 -     0x7fff85ea0ffd  com.apple.security (7.0 - 55471.14.40) <58F50B4A-FC1E-3AE0-A5DB-DD737E50AC17> /System/Library/Frameworks/Security.framework/Versions/A/Security
    0x7fff85fbb000 -     0x7fff868e45ab  com.apple.CoreGraphics (1.600.0 - 599.35.15) <ED5E3C37-7E2F-3885-8091-DFC9B44B38E8> /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics
    0x7fff868e5000 -     0x7fff868e9fff  libpam.2.dylib (20) <B93CE8F5-DAA8-30A1-B1F6-F890509513CB> /usr/lib/libpam.2.dylib
    0x7fff86a1c000 -     0x7fff86aa5fef  libsystem_c.dylib (997.90.5) <889AA3F9-121C-3985-8B1D-5E908C5693BC> /usr/lib/system/libsystem_c.dylib
    0x7fff86dad000 -     0x7fff86db1ff7  libcache.dylib (62) <BDC1E65B-72A1-3DA3-A57C-B23159CAAD0B> /usr/lib/system/libcache.dylib
    0x7fff86db2000 -     0x7fff86dc2fff  libbsm.0.dylib (33) <2CAC00A2-1352-302A-88FA-C567D4D69179> /usr/lib/libbsm.0.dylib
    0x7fff86e42000 -     0x7fff86f30fff  libJP2.dylib (1052) <CB242C3E-F10C-38C5-A090-B757F9269143> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib
    0x7fff86fcb000 -     0x7fff8702ffff  com.apple.datadetectorscore (5.0 - 354.5) <D4DBCCF4-9622-3AB9-9076-32579FCC2E39> /System/Library/PrivateFrameworks/DataDetectorsCore.framework/Versions/A/DataDetectorsCore
    0x7fff87030000 -     0x7fff87049ff7  com.apple.Kerberos (3.0 - 1) <F108AFEB-198A-3BAF-BCA5-9DFCE55EFF92> /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos
    0x7fff873b0000 -     0x7fff874aafff  libFontParser.dylib (111.1.6) <77253632-B3F6-3151-ABA0-C1EF458668A8> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontParser.dylib
    0x7fff875aa000 -     0x7fff87694fff  libsqlite3.dylib (158) <00269BF9-43BE-39E0-9C85-24585B9923C8> /usr/lib/libsqlite3.dylib
    0x7fff876a3000 -     0x7fff877f7ff3  com.apple.audio.toolbox.AudioToolbox (1.10 - 1.10) <69B273E8-5A8E-3FC7-B807-C16B657662FE> /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox
    0x7fff877f8000 -     0x7fff87865fff  com.apple.SearchKit (1.4.0 - 1.4.0) <B9B8D510-A27E-36B0-93E9-17146D9E9045> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit
    0x7fff87866000 -     0x7fff87b50fff  com.apple.CoreServices.CarbonCore (1077.17 - 1077.17) <3A2E92FD-DEE2-3D45-9619-11500801A61C> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore
    0x7fff88141000 -     0x7fff8816aff7  libc++abi.dylib (49.1) <21A807D3-6732-3455-B77F-743E9F916DF0> /usr/lib/libc++abi.dylib
    0x7fff8839b000 -     0x7fff883b7ff7  libsystem_kernel.dylib (2422.115.15) <34ABAF79-E147-3C34-B05D-46A566E689CC> /usr/lib/system/libsystem_kernel.dylib
    0x7fff883d1000 -     0x7fff883d5ff7  libheimdal-asn1.dylib (323.92.2) <979AEAA0-59B3-3E99-94B1-9BB9C6C45273> /usr/lib/libheimdal-asn1.dylib
    0x7fff88668000 -     0x7fff88697fd2  libsystem_m.dylib (3047.16) <B7F0E2E4-2777-33FC-A787-D6430B630D54> /usr/lib/system/libsystem_m.dylib
    0x7fff88698000 -     0x7fff886bcfff  libxpc.dylib (300.90.2) <AB40CD57-F454-3FD4-B415-63B3C0D5C624> /usr/lib/system/libxpc.dylib
    0x7fff886bd000 -     0x7fff886e4ff7  libsystem_network.dylib (241.4) <0D630D53-C772-3EC5-8257-EFB0ACCE3153> /usr/lib/system/libsystem_network.dylib
    0x7fff88819000 -     0x7fff88890fff  com.apple.CoreServices.OSServices (600.4 - 600.4) <6BC86B46-AFD3-3F06-8659-2C954CBEBD43> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices
    0x7fff88891000 -     0x7fff88c72ffe  libLAPACK.dylib (1094.5) <7E7A9B8D-1638-3914-BAE0-663B69865986> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib
    0x7fff89ac8000 -     0x7fff89af0ff3  libxslt.1.dylib (13.12) <38FD3D1E-5335-398F-A663-47298EDDA231> /usr/lib/libxslt.1.dylib
    0x7fff89af1000 -     0x7fff89af3ff3  libsystem_configuration.dylib (596.15) <4998CB6A-9D54-390A-9F57-5D1AC53C135C> /usr/lib/system/libsystem_configuration.dylib
    0x7fff89c69000 -     0x7fff89c6eff7  libunwind.dylib (35.3) <78DCC358-2FC1-302E-B395-0155B47CB547> /usr/lib/system/libunwind.dylib
    0x7fff89c6f000 -     0x7fff89c78ffd  com.apple.CommonAuth (4.0 - 2.0) <BD720379-757B-305C-A7BE-E00E680F8218> /System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth
    0x7fff89d29000 -     0x7fff89d2bffb  libutil.dylib (34) <DAC4A6CF-A1BB-3874-9569-A919316D30E8> /usr/lib/libutil.dylib
    0x7fff89d56000 -     0x7fff89e20ff7  com.apple.LaunchServices (572.32 - 572.32) <A4699DED-5101-3068-94F8-8D0B7A84BC79> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices
    0x7fff89e21000 -     0x7fff89e28ff7  libsystem_pthread.dylib (53.1.4) <AB498556-B555-310E-9041-F67EC9E00E2C> /usr/lib/system/libsystem_pthread.dylib
    0x7fff89e2a000 -     0x7fff89e2bff7  libDiagnosticMessagesClient.dylib (100) <4CDB0F7B-C0AF-3424-BC39-495696F0DB1E> /usr/lib/libDiagnosticMessagesClient.dylib
    0x7fff89e2c000 -     0x7fff89e2dfff  libunc.dylib (28) <62682455-1862-36FE-8A04-7A6B91256438> /usr/lib/system/libunc.dylib
    0x7fff89f46000 -     0x7fff89f88ff7  libauto.dylib (185.5) <F45C36E8-B606-3886-B5B1-B6745E757CA8> /usr/lib/libauto.dylib
    0x7fff89f89000 -     0x7fff8a136f27  libobjc.A.dylib (551.1) <AD7FD984-271E-30F4-A361-6B20319EC73B> /usr/lib/libobjc.A.dylib
    0x7fff8a137000 -     0x7fff8a1a4ff1  com.apple.ApplicationServices.ATS (360 - 363.6) <828C2711-4577-3F75-B436-3BDF328DFB11> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS
    0x7fff8a5e5000 -     0x7fff8a5ecfff  com.apple.NetFS (6.0 - 4.0) <8E26C099-CE9D-3819-91A2-64EA929C6137> /System/Library/Frameworks/NetFS.framework/Versions/A/NetFS
    0x7fff8a83d000 -     0x7fff8a83ffff  libRadiance.dylib (1052) <82A880BE-DEFD-3445-9809-71043BC55AFC> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib
    0x7fff8a86d000 -     0x7fff8a873ff7  libsystem_platform.dylib (24.90.1) <3C3D3DA8-32B9-3243-98EC-D89B9A1670B3> /usr/lib/system/libsystem_platform.dylib
    0x7fff8a874000 -     0x7fff8a8c1ff2  com.apple.print.framework.PrintCore (9.0 - 428) <8D8253E3-302F-3DB2-9C5C-572CB974E8B3> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore
    0x7fff8a8d8000 -     0x7fff8a8e1fff  com.apple.speech.synthesis.framework (4.7.1 - 4.7.1) <383FB557-E88E-3239-82B8-15F9F885B702> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis
    0x7fff8a8e2000 -     0x7fff8a933ff7  com.apple.audio.CoreAudio (4.2.1 - 4.2.1) <07F2B103-AE29-3118-BBC4-9A72E13B013B> /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
    0x7fff8b2e2000 -     0x7fff8b2e9ff8  liblaunch.dylib (842.92.1) <A40A0C7B-3216-39B4-8AE0-B5D3BAF1DA8A> /usr/lib/system/liblaunch.dylib
    0x7fff8b301000 -     0x7fff8b3ccfff  libvDSP.dylib (423.32) <3BF732BE-DDE0-38EB-8C54-E4E3C64F77A7> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib
    0x7fff8b3cd000 -     0x7fff8b3deff7  libz.1.dylib (53) <42E0C8C6-CA38-3CA4-8619-D24ED5DD492E> /usr/lib/libz.1.dylib
    0x7fff8b3e1000 -     0x7fff8b3fcff7  libPng.dylib (1052) <6A2D3E6E-AA2E-3B6F-9E3B-8D08A5A3B9C1> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib
    0x7fff8b3fd000 -     0x7fff8b3fdfff  com.apple.Accelerate.vecLib (3.9 - vecLib 3.9) <F8D0CC77-98AC-3B58-9FE6-0C25421827B6> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib
    0x7fff8b454000 -     0x7fff8b53cfff  libxml2.2.dylib (26.11) <282EF071-71D7-3C56-9FFD-543F2A083F18> /usr/lib/libxml2.2.dylib
    0x7fff8b53d000 -     0x7fff8b540fff  com.apple.TCC (1.0 - 1) <32A075D9-47FD-3E71-95BC-BFB0D583F41C> /System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC
    0x7fff8b587000 -     0x7fff8b5a2ff7  libCRFSuite.dylib (34) <FFAE75FA-C54E-398B-AA97-18164CD9789D> /usr/lib/libCRFSuite.dylib
    0x7fff8b5a3000 -     0x7fff8b711ff7  libBLAS.dylib (1094.5) <DE93A590-5FA5-32A2-A16C-5D7D7361769F> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
    0x7fff8b749000 -     0x7fff8b763fff  libdispatch.dylib (339.92.1) <C4E4A18D-3C3B-3C9C-8709-A4270D998DE7> /usr/lib/system/libdispatch.dylib
    0x7fff8b766000 -     0x7fff8ba3afc7  com.apple.vImage (7.0 - 7.0) <D241DBFA-AC49-31E2-893D-EAAC31890C90> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage
    0x7fff8baab000 -     0x7fff8bab2ffb  libcopyfile.dylib (103.92.1) <CF29DFF6-0589-3590-834C-82E2316612E8> /usr/lib/system/libcopyfile.dylib
    0x7fff8bb52000 -     0x7fff8bb55ffc  com.apple.IOSurface (91.3 - 91.3) <E93485CC-12B1-318E-BAE3-AB532B264935> /System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface
    0x7fff8bb56000 -     0x7fff8bbb1ffb  com.apple.AE (665.5 - 665.6) <9B17E7B7-D493-346A-827E-6DF1474E4977> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE
    0x7fff8be9f000 -     0x7fff8beaeff8  com.apple.LangAnalysis (1.7.0 - 1.7.0) <8FE131B6-1180-3892-98F5-C9C9B79072D4> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis
    0x7fff8beaf000 -     0x7fff8beb3ff7  libGIF.dylib (1052) <E51B4EFE-F99B-35F4-BE33-0456635EC7B3> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib
    0x7fff8bef7000 -     0x7fff8c1f7ff7  com.apple.Foundation (6.9 - 1056.17) <E0B0FAF6-5CA8-3EEB-8BF2-104C0AEEF925> /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
    0x7fff8e523000 -     0x7fff8e53eff7  libsystem_malloc.dylib (23.10.1) <A695B4E4-38E9-332E-A772-29D31E3F1385> /usr/lib/system/libsystem_malloc.dylib
    0x7fff8eb41000 -     0x7fff8eb41fff  com.apple.CoreServices (59 - 59) <7A697B5E-F179-30DF-93F2-8B503CEEEFD5> /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
    0x7fff8eb5c000 -     0x7fff8eb5fff7  libdyld.dylib (239.5) <CAE7A50D-F156-3D47-81C0-DC41EB975D38> /usr/lib/system/libdyld.dylib
    0x7fff8f003000 -     0x7fff8f08cfff  com.apple.ColorSync (4.9.0 - 4.9.0) <B756B908-9AD1-3F5D-83F9-7A0B068387D2> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSync.framework/Versions/A/ColorSync
    0x7fff8f189000 -     0x7fff8f239ff7  libvMisc.dylib (423.32) <049C0735-1808-39B9-943F-76CB8021744F> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib
    0x7fff8f4e8000 -     0x7fff8f4ecff7  libsystem_stats.dylib (93.90.3) <2304C7C2-BE45-35DE-BCC6-707D61B7AE7E> /usr/lib/system/libsystem_stats.dylib
    0x7fff8f4ed000 -     0x7fff8f4eefff  com.apple.TrustEvaluationAgent (2.0 - 25) <334A82F4-4AE4-3719-A511-86D0B0723E2B> /System/Library/PrivateFrameworks/TrustEvaluationAgent.framework/Versions/A/TrustEvaluationAgent
    0x7fff8f4ef000 -     0x7fff8f554ffb  com.apple.Heimdal (4.0 - 2.0) <C28DBCAE-01AC-363A-9046-3BD33F225526> /System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal
    0x7fff8f9d7000 -     0x7fff8f9e2ff7  com.apple.NetAuth (5.0 - 5.0) <C811E662-9EC3-3B74-808A-A75D624F326B> /System/Library/PrivateFrameworks/NetAuth.framework/Versions/A/NetAuth
    0x7fff8f9e3000 -     0x7fff8fa2affb  libFontRegistry.dylib (127.0.1) <F267F500-6E4A-3BE3-97C1-08AAA649E02E> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib
    0x7fff8fa2b000 -     0x7fff8fa2bffd  libOpenScriptingUtil.dylib (157.1) <D3B6E577-3CDB-3139-9B94-19496DFA7318> /usr/lib/libOpenScriptingUtil.dylib
    0x7fff8faa0000 -     0x7fff8fab1ff7  libsystem_asl.dylib (217.1.4) <655FB343-52CF-3E2F-B14D-BEBF5AAEF94D> /usr/lib/system/libsystem_asl.dylib
    0x7fff8faf0000 -     0x7fff8faf5fff  com.apple.DiskArbitration (2.6 - 2.6) <A4165553-770E-3D27-B217-01FC1F852B87> /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration
    0x7fff8fd93000 -     0x7fff8fd93ff7  libkeymgr.dylib (28) <3AA8D85D-CF00-3BD3-A5A0-E28E1A32A6D8> /usr/lib/system/libkeymgr.dylib
    0x7fff8fda9000 -     0x7fff8fdaaffb  libremovefile.dylib (33) <3543F917-928E-3DB2-A2F4-7AB73B4970EF> /usr/lib/system/libremovefile.dylib
    0x7fff8fdab000 -     0x7fff8fdf0ff6  com.apple.HIServices (1.23 - 468) <FD17FE8C-A355-3B6B-B8B7-E56E5C595EDE> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices
    0x7fff8fdf1000 -     0x7fff8fe20ff9  com.apple.GSS (4.0 - 2.0) <27FCA2B4-0767-3002-8755-862B19B5CF92> /System/Library/Frameworks/GSS.framework/Versions/A/GSS
    0x7fff90106000 -     0x7fff90110fff  libcommonCrypto.dylib (60049) <8C4F0CA0-389C-3EDC-B155-E62DD2187E1D> /usr/lib/system/libcommonCrypto.dylib
    0x7fff90111000 -     0x7fff90112ff7  libsystem_blocks.dylib (63) <FB856CD1-2AEA-3907-8E9B-1E54B6827F82> /usr/lib/system/libsystem_blocks.dylib
    0x7fff90113000 -     0x7fff90137ff7  libJPEG.dylib (1052) <6836134F-8701-3A6B-82F3-19A0A72CE21C> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib
    0x7fff90138000 -     0x7fff9013ffff  libcompiler_rt.dylib (35) <4CD916B2-1B17-362A-B403-EF24A1DAC141> /usr/lib/system/libcompiler_rt.dylib
    0x7fff901a2000 -     0x7fff901e9ff7  libcups.2.dylib (372.6) <CBD2F0CF-FA10-36E1-A1D5-1B946B45B3B3> /usr/lib/libcups.2.dylib
    0x7fff902fb000 -     0x7fff903ecff9  libiconv.2.dylib (41) <BB44B115-AC32-3877-A0ED-AEC6232A4563> /usr/lib/libiconv.2.dylib
    0x7fff905f3000 -     0x7fff905ffff7  com.apple.OpenDirectory (10.9 - 173.90.1) <383F96FF-1DF3-37E8-8540-03A697C873F6> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory
    0x7fff90664000 -     0x7fff90671ff0  libbz2.1.0.dylib (29) <0B98AC35-B138-349C-8063-2B987A75D24C> /usr/lib/libbz2.1.0.dylib
    0x7fff90aaf000 -     0x7fff90c4aff8  com.apple.CFNetwork (673.6 - 673.6) <CAA196FE-BF5A-384F-975E-E0F81359805B> /System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork
    0x7fff90c63000 -     0x7fff90c6cffb  libsystem_notify.dylib (121.20.1) <9B34B4FE-F5AD-3F09-A5F0-46AFF3571323> /usr/lib/system/libsystem_notify.dylib
    0x7fff90c6d000 -     0x7fff90c78fff  libkxld.dylib (2422.115.15) <8850BC2B-EB64-3B0F-8047-DCC113021292> /usr/lib/system/libkxld.dylib
    0x7fff90c79000 -     0x7fff90c7afff  liblangid.dylib (117) <9546E641-F730-3AB0-B3CD-E0E2FDD173D9> /usr/lib/liblangid.dylib
    0x7fff90e87000 -     0x7fff90eb0fff  com.apple.DictionaryServices (1.2 - 208) <A539A058-BA57-35EE-AA08-D0B0E835127D> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices
    0x7fff90edc000 -     0x7fff90ee1fff  libmacho.dylib (845) <1D2910DF-C036-3A82-A3FD-44FF73B5FF9B> /usr/lib/system/libmacho.dylib

External Modification Summary:
  Calls made by other processes targeting this process:
    task_for_pid: 15
    thread_create: 0
    thread_set_state: 0
  Calls made by this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by all processes on this machine:
    task_for_pid: 26174406
    thread_create: 0
    thread_set_state: 0

VM Region Summary:
ReadOnly portion of Libraries: Total=123.6M resident=81.1M(66%) swapped_out_or_unallocated=42.5M(34%)
Writable regions: Total=44.6M written=328K(1%) resident=408K(1%) swapped_out=0K(0%) unallocated=44.2M(99%)
 
REGION TYPE                      VIRTUAL
===========                      =======
Kernel Alloc Once                     4K
MALLOC                             36.2M
MALLOC (admin)                       16K
STACK GUARD                        56.0M
Stack                              8192K
VM_ALLOCATE                          12K
__DATA                             4860K
__LINKEDIT                         66.3M
__TEXT                             57.2M
__UNICODE                           544K
shared memory                         4K
===========                      =======
TOTAL                             229.1M

Randomly occurring Fatal Exception

So, first a little background. I've been experimenting with MeshCentral off and on for some months now, and just the other day I updated to one of the new versions (0.4.x) which Ylianst said has new agents, but I'm not sure which exact version of MeshCentral I was running when each of these occurred (except the most recent one, where I was running MeshCentral 0.4.1-p), because I've been updating pretty frequently during my testing. However, I do know that all three of these have occurred while I was running a 0.4.x version of MeshCentral, and I've also had only one instance of MeshCentral on the network, only one agent operating, communicating with a MeshCentral server instance which is running on the same machine (both operating as the same user) in temporary connection mode (not installed, I just ran the meshagent64.exe file and clicked "Connect"), all this on Windows 10 v1903, build 18362.295.

Sorry, I haven't done any advanced debugging yet. I've just now updated to MeshCentral 0.4.1-q and added controlChannelDebug=1 to the .msh file, so if it happens again, hopefully I'll have more details for you.

Anyway, the first time this happened, I was messing around with agent console commands, and ... I don't think I did anything particularly unusual, but right after I ran a command (sorry, I don't remember which one) it disconnected, and I realised it had crashed. The other 2 times have both happened while I wasn't doing anything with MeshCentral, or the MeshAgent. It was all just idling (presumably doing something occasionally, to keep itself connected) in the background.

meshagent64.log

[2019-09-30 12:37:59 PM] FATAL EXCEPTION [meshagent64_0E6B60297D2ADB72.exe] @ [FuncAddr: 0x00007ff72acf4d7a / BaseAddr: 0x00007ff72ad496dc / Delta: 346466]

[2019-10-01 03:23:11 PM] FATAL EXCEPTION [meshagent64_0E6B60297D2ADB72.exe] @ [FuncAddr: 0x00007ff743ae4d7a / BaseAddr: 0x00007ff743b396dc / Delta: 346466]

[2019-10-02 01:43:30 PM] FATAL EXCEPTION [meshagent64_0E6B60297D2ADB72.exe] @ [FuncAddr: 0x00007ff743ae4d7a / BaseAddr: 0x00007ff743b396dc / Delta: 346466]

meshagent64.msh

MeshName=.
MeshType=2
MeshID=0xE5A0289D08630C767D1706C1205D81EC2F654295ABA272264272C0D7715CA781154C0F92F50B8F74C60AE34370A88A23
ServerID=818BB4D83D9012496A575327DE5AA2E078538FA2E9E64C6B2F9A4B3736FBA95755F00BF664DEE0A97C935B339758B58F
MeshServer=local
ignoreProxyFile=1

In case anything about the .db or .exe files will tell you anything important, I've zipped them up along with the .log and .msh files here:
meshagent64.zip

OS X Installer Fails Silently

OS: OS X High Sierra
MeshCentral Version: 0.4.1-y and previous

If the extracted mpkg name contains a space (e.g. "MeshAgent 2.mpkg") the installer completes and appears to install successfully, except that it doesn't actually do anything. If you change the package name to "MeshAgent2.mpkg" and re-run it, it installs correctly. Probably an escaping issue in the install scripts somewhere.

Branding/Naming issues in agents installer

I would like to ask about whether is it possible to change all the Mesh Agent names into something else? For example in Windows:

  1. I would like to customize the installation path, instead of C:\Program Files\Mesh Agent\MeshAgent.exe, I would like to install it as C:\Program Files<NAME_1><NAME_2>.exe
  2. In the background process and services, instead of showing Mesh Agent Service and Mesh Agent background service, I would like to show it as <NAME_1> Agent Service and <NAME_1> Agent background service
  3. In the installed application list, instead of showing MeshCentral Agent - Remote Control Software, I would like to show it as <NAME_1> Agent - Remote Control Software

This question is similar with issue #37 but it has no solution or info on how to achieve this. Is this kind of changes allowed and if it is allowed, can I know what changes do I need to do in order to achieve this?

Agent not connecting after OSX reboot

Working with OSX clients in Sierra, High Sierra, and Mojave;

Starting up agent with working internet connects to meshcentral server and all systems are available from the server.

[2020-02-19 08:58:45 AM] Attempting to connect to Server...
[2020-02-19 08:58:45 AM] Connecting to: 659D7194E3A8BFF413ACFBF31C6BE5E73A825BE9AD6E8773F9E9C325CE46421F79DFA5A535D8050236FF91617823413A
[2020-02-19 08:58:46 AM] Control Channel Connection Established...
[2020-02-19 08:58:46 AM] TLS Server Cert matches Mesh Server Cert...

Disconnecting network, start meshagent...

[2020-02-20 09:47:19 AM] Attempting to connect to Server...
[2020-02-20 09:47:19 AM] Connecting to: 659D7194E3A8BFF413ACFBF31C6BE5E73A825BE9AD6E8773F9E9C325CE46421F79DFA5A535D8050236FF91617823413A

I reconnect network while in this state, but don't ever see further activity. I have a remote A/V rack at many remote facilities which reboots every night because that is the easiest way for us to have the system in a working state when the users start their day. If the network is not fully established by the time our OSX systems come online I get offline mesh clients that don't come back unless I reboot them manually or restart the service.

I'll have a peek through agentcore.c, but my C++ is a bit rusty so if anyone has some pointers I'd appreciate it. Thx.

Something wrong with the latest version

Recently two of of my laptops installed windows 10 updates, not sure what type of update but both computers lost connections to MeshCentral (my own server installation)
After reinstalling using fresh download on one of the laptops using TeamVIewer, Mesh agent installed into /Program Files/mesh/Mesh Agent instead of /Program Files/Mesh Agent
I am a bit worried in regards to this. Is there any particular reason why additional "mesh" folder is created???
I used uninstall button before reinstalling, made sure that folder is deleted and service is not in place.
Here is the version which installed into "mesh/Mesh Agent" folder
image
and here is one of the working ones, other device old installation (still working, hope won't stop after windows update)
image

MIPS Compile Support

I am happy to see current support for MIPSel.

Are there any plans to support MIPS in the future?

Problem: Kaspersky Endpoint Security for Windows detect meshagent as trojan/virus

Hi Ylianst,
On my windows server 2012 r2 Kaspersky Endpoint Security for Windows installed. The antivirus software detects as a virus/trojan meshagent.exe and it delete the program executable.
As you know the antivirus softwares has different / similar algorithms for detection of the viruses on exes. Can you review the meshcentral.exe's assembly structure.
Maybe you can write to Kaspersky Labs for this issue.
Thanks

Capture hardware accelerated fullscreen applications

Hey,

i know this is not a trivial task but have you guys thought about trying to capture fullscreen opengl/vulkan/directx applications?

For our use case, on most remote machines there is a opengl fullscreen application running pretty much 24/7. When connecting to the machines via remote control, we always only see the desktop "underneath" the opengl application which causes a lot of confusion and is not very pleasent to work with.

Ive looked around a bit on how things like that could be implemented and i found out that its not very easy to implement but its possible. You basically inject your code into the graphics api dll of the running application and intercept certain function calls and capture the buffer at the right time.

This is how teamviewer and several other remote control softwares are doing it. (also Fraps and OBS work like that)

Like i said, i know this is not something that can be done in a couple of days but i was just wondering if thats something you thought about implementing into MeshCentral?

Cheers

build failure with gcc 10

From the gcc 10.1 release notes:

GCC now defaults to -fno-common. As a result, global variable accesses are more efficient on various targets. In C, global variables with multiple tentative definitions now result in linker errors. With -fcommon such definitions are silently merged during linking.

And indeed, "make linux ARCHID=5 -j8" fails with this linker error:

gcc -m32 microstack/ILibAsyncServerSocket.o microstack/ILibAsyncSocket.o microstack/ILibAsyncUDPSocket.o microstack/ILibParsers.o microstack/ILibMulticastSocket.o microstack/ILibRemoteLogging.o microstack/ILibWebClient.o microstack/ILibWebRTC.o microstack/ILibWebServer.o microstack/ILibCrypto.o microstack/ILibWrapperWebRTC.o microstack/ILibSimpleDataStore.o microstack/ILibProcessPipe.o microstack/ILibIPAddressMonitor.o microscript/duktape.o microscript/duk_module_duktape.o microscript/ILibDuktape_DuplexStream.o microscript/ILibDuktape_Helpers.o microscript/ILibDuktape_net.o microscript/ILibDuktape_ReadableStream.o microscript/ILibDuktape_WritableStream.o microscript/ILibDuktapeModSearch.o microscript/ILibDuktape_WebRTC.o microscript/ILibDuktape_SimpleDataStore.o microscript/ILibDuktape_GenericMarshal.o microscript/ILibDuktape_fs.o microscript/ILibDuktape_SHA256.o microscript/ILibduktape_EventEmitter.o microscript/ILibDuktape_EncryptionStream.o microscript/ILibDuktape_Polyfills.o microscript/ILibDuktape_Dgram.o microscript/ILibDuktape_ScriptContainer.o microscript/ILibDuktape_MemoryStream.o microscript/ILibDuktape_NetworkMonitor.o microscript/ILibDuktape_ChildProcess.o microscript/ILibDuktape_HttpStream.o microscript/ILibDuktape_Debugger.o microscript/ILibDuktape_CompressedStream.o meshcore/zlib/adler32.o meshcore/zlib/deflate.o meshcore/zlib/inffast.o meshcore/zlib/inflate.o meshcore/zlib/inftrees.o meshcore/zlib/trees.o meshcore/zlib/zutil.o meshcore/KVM/Linux/linux_kvm.o meshcore/KVM/Linux/linux_events.o meshcore/KVM/Linux/linux_tile.o meshcore/KVM/Linux/linux_compression.o meshcore/agentcore.o meshconsole/main.o meshcore/meshinfo.o -Lopenssl/libstatic/linux/x86 -l:lib-jpeg-turbo/linux/x86/libturbojpeg.a -L. -lpthread -ldl -lutil -lm -no-pie -lssl -lcrypto -lrt -z noexecstack -z relro -z now -o meshagent_x86
/usr/lib64/gcc/x86_64-pc-linux-gnu/10.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: meshcore/KVM/Linux/linux_events.o:/tmp/MeshAgent/meshcore/KVM/Linux/linux_events.h:37: multiple definition of x11tst_exports'; meshcore/KVM/Linux/linux_kvm.o:/tmp/MeshAgent/meshcore/KVM/Linux/linux_events.h:37: first defined here /usr/lib64/gcc/x86_64-pc-linux-gnu/10.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: meshcore/agentcore.o:/tmp/MeshAgent/meshcore/KVM/Linux/linux_events.h:37: multiple definition of x11tst_exports'; meshcore/KVM/Linux/linux_kvm.o:/tmp/MeshAgent/meshcore/KVM/Linux/linux_events.h:37: first defined here

The culprit is having not just type definitions but variable instantiations in include files, in this case in meshcore/KVM/Linux/linux_events.h:

 37 x11tst_struct *x11tst_exports;

The regular fix would be to add extern here and then make sure the variable is instanciated somewhere. However, it turns out that nobody is referencing this in the release build, so just removing this line fixes the problem and saves a bit of memory, too.

Meshagent don't work

Hello,

at home with a vm under debian mashagent.exe that I install on a Windows 10 it works very well. On the other hand, when I try this at work, it does not work. Lab is looklike my lab's home Server = Debian / Client = Windows 10 and on both Windows 10 firewall is enable

I have identified meshcmd.exe command-line syntax like: install / uninstall / fullinstall ....

I tried a lot of combinations and it does not work

in the MeshAgent.log log file I have the following line:

[2018-02-16 04:46:25 PM] FATAL EXCEPTION [MeshAgent_4483F3E81409D40B.exe] @ [FuncAddr: 0x5850290100000000]

OSX 10.13.6 Remote Desktop disconnect

Hi guys,
thanks for this brilliant piece of software.
I'm running MeshCentral behind an nginx reverse proxy. With Windows agents I can use the remote desktop function without any problem. Now I also got two macs, both on HighSierra 10.13.6 and agent version from meshcentral 0.4.7-i
Everytime I try to connect to the desktop, the remote desktop is building up on my screen and at about at the half of the screen gets disconnected. Neither the manually started agent nor meshcentral show any error. When running a trace in the server it looks like this:
18:04:31 - DISPATCH: DispatchEvent, *,user//mcadmin
18:04:31 - RELAY: Relay disconnect: xrfbk81vfbg (79.217.219.2 --> 79.217.204.130)
18:04:28 - DISPATCH: DispatchEvent, *,mesh//AIASWt22KPPAYPNRNQiKODkwV8cLoxxQxZQyRMy6wazvgeVWWjWfJ2@CyHhfpFzQ,user//mcadmin
18:04:28 - DISPATCH: DispatchEvent, *,user//mcadmin
18:04:28 - RELAY: Relay connected: xrfbk81vfbg (79.217.204.130 --> 79.217.219.2)
18:04:28 - COOKIE: Decoded AESGCM cookie: {"userid":"user//mcadmin","domainid":"","ip":"79.217.204.130","time":1578934842000,"dtime":226068}
18:04:28 - WEBREQUEST: /meshrelay.ashx/.websocket?browser=1&p=2&nodeid=node//mjkUH9@toAmx8nwH@uSasCPR9tuOuv9kZDzKh@pt1VS$E@WyCim6JY94wiKF2RTM&id=xrfbk81vfbg&auth=Y$DebV2RnLEpIkvw4N6FFIaVyfZqgcwLuul4R8QuQ4CrELSgxxRvaXu7EOFDGdUfCI93rAW5TZP0s49tIcLeXD6ypc0Xgo1RubUX0m9J8uH8IOrI00tBOhRvvkrnNrtYsvQXP9Z$Um6UILYj
18:04:25 - RELAY: Relay holding: xrfbk81vfbg (79.217.219.2)
18:04:25 - COOKIE: Decoded AESGCM cookie: {"ruserid":"user//mcadmin","domainid":"","time":1578934842000,"dtime":223735}
18:04:25 - WEBREQUEST: /meshrelay.ashx/.websocket?p=2&nodeid=node//mjkUH9@toAmx8nwH@uSasCPR9tuOuv9kZDzKh@pt1VS$E@WyCim6JY94wiKF2RTM&id=xrfbk81vfbg&rauth=HHUsKz9quIco1fo@mMzPBsIkOPW6eCM83nPYgyiRof3KRdEnzxea2qkFG3sB$SsYz3JpQxE8TsOjyqsA1pZFv31XAjiuqufpu9ysJyIs$YbVXdtIME@$

Can I trace this any deeper maybe on the agent side?
The problem occurs on both iMacs with High Sierra...
Thanks!

MeshAgent on read only file system

I installed MeshAgent on raspberry pi device.
The device has read only file system (to protect sd cards from corruption due to power loss or unproper shutdown)
The MeshAgent doesn't connect to MeshCentral when pi has read-only file system.
How can i start MeshAgent without the need to write on file system.

Compiled windows agent not working

Dear developer,
Thank you for making a good system. I have some questions.

Q1) I built Windows Agent using Visual Studio 2015. I built it with release option and changed file name MeshService.exe to MeshAgent.exe. After then run "MeshAgent.exe run" on command line.

MeshCentral2 Agent
Connecting to: wss://x.com:8080/agent.ashx
Connected.

I seems connection is successful, but the agent did not actually appear on the MeshCentral screen.
Is there a way to know why this is happening? I want to know the registration and login mechanism.

Q2) What is the difference between meshservice_signed.exe and meshservice.exe? Meshcentral uses meshservice_signed.exe.

Windows Agent Crashes when multiple users connect to the desktop from the console

Hi,

Server version: 0.3.6-m - Windows x64
Agent version: 0.2.13 x64

When user one connects to the remote machine via the agent, this connects fine, but when a second user connects to this same machine while the other user is still connected the agent crashes.

Expected Behavior can be either:

  1. Allow only one agent to connect, and display an error to the second user stating user is connected
  2. Allow multiple agents to connect.
    Event Error.txt

g_keymapLen improvement suggestion

In meshcore/KVM/Linux/linux_events.c:

19 static const int g_keymapLen = 96; // Modify this when you change anything in g_keymap.

23 static struct keymap_t g_keymap[] = {

This is needlessly error prone. Recommendation: move the declaration of g_keyMapLen down, write it like this:

static const size_t g_keymapLen = sizeof(g_keymap) / sizeof(g_keymap[0]);

Segmentation fault on MacOS

Follow up to #5.

I made a backup of the meshagent_osx64 executable downloaded from 0.3.0-n, ran the hidden deinstall script to stop the system background process.
Executed it by hand to see the console output.

Here is the result:

mac:~ luckydonald$ /usr/local/mesh_services/meshagent/meshagent_osx64.bak
MeshCentral2 Agent
Unable to open database (1/10)...
Segmentation fault: 11

issue disconnect on remote files?

Hi,
I was wondering if its possible to create a longer connection on the remote files? as when i try to access the files around few seconds i get disconnected not sure why if its a NGINX issue?

Thank you

unable to open database

On windows 10 pro, MC 0.3.0-n

C:\Windows\System32>"C:\Program Files (x86)\Mesh Agent\MeshAgent.exe" run
MeshCentral2 Agent
Unable to open database (1/10)...
Unable to open database (2/10)...
Unable to open database (3/10)...
Unable to open database (4/10)...
Unable to open database (5/10)...
Unable to open database (6/10)...
Unable to open database (7/10)...
Unable to open database (8/10)...
Unable to open database (9/10)...
Unable to open database (10/10)...
Unable to open database.

image

MacOS no mouse & keyboard control on login screen

I've noticed on MacOS 10.14 and 10.15, that I'm not able to control the mouse and keyboard from MeshCentral when on the login screen.

After installing the MeshAgent, connecting to it, and enabling the required permissions, I can control the keyboard and mouse as expected.
After the current user is logged out or the Mac is restarted, I'm able to connect and see the login screen in MeshCentral, however, I can no longer control the mouse or keyboard remotely.
Once the user logs in the keyboard and mouse start working again.

Is there something that can be done to fix this or is it expected behaviour?

Thank you.

[Question] on GenericMarshal

Hi @krayon007,

Wondering if you have any documentation / links on where/how you're getting the commands/interactions you use with GenericMarshal / CreateNativeProxy / CreateMethod to interact with Windows DLL's. Seems like this could be fairly powerful for some of my plugin work, but I'm trying to wrap my head around it's usage. I can see that you're interfacing directly with the Windows API's once you create it, but my Googling has not led me anywhere on the GenericMarshal / NodeJS front (even within Duktape.org). Any pointers / documentation would be greatly appreciated. Thank you!

Document meshagent.msh configuration

I've been looking for a way to directly connect to the server instead of broadcasting... but couldn't find any documentation on the fact that I should change from MeshServer=local to MeshServer=wss://server:443/agent.asx

I had to do wild guesses by googling the issues and other messages.

Maybe I overlooked an obvious place to look for that part of documentation ?

I guess a dedicated README in the MeshAgent repo would help, for a start... or a Linux manpage maybe ?

Provide the agent executable binaries in repository

Few already reported MeshAgent being detected as a malware. It would really help if you provide the new agent with each update in binary executable format. With the executable in hand we can scan and send to our Antivirus vendor before upgrading the server and getting the software flagged and removed by antivirus software.

Plus: I had one interaction with support of the antivirus company and I sent them this repository link but they couldn't find the binary file. Maybe if it's provided this can make it easier for them to monitor it?

Agent HTTP server limitations

Hi Brian,

A quick question on the HTTP server within the Mesh Agent.

Easiest way is with an example:

http.createServer(function (req, res) {
                try {
                    res.writeHead(200, {'Content-Type': 'text/plain'});
                    res.write('Hello World!');
                    res.end();
                    dbg('ended test');
                } catch(e) { dbg('caught ' + e ); }
            }).listen(8089);

In the agent core. Then going to http://127.0.0.1:8089 and looking for "Hello World!", however the process hangs seemingly indefinitely, however if I restart the Mesh Agent, I get the "Hello World!" I was expecting.

I know you've basically made the agent look like it is NodeJS, but given you have the module there and it is in use for sockets, I thought I could do something like this- but maybe just the "res.end()" isn't implemented which is what is causing the issue, so when the process gets killed it finally spits out the "Hello World!" data I was looking for. (Event though my debug line 'ended test' prints successfully, indicating that res.end() does exist).

Thoughts?

Thanks in advance!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.