fix win arm64 agent hashes

Signed-off-by: si458 <simonsmith5521@gmail.com>

si458 committed Feb 15, 2026 at 00:25 UTC 1c37cf6b17cd8f940c4732e70afc8868513f422c
3 files changed +41 -34
agents/hashagents.js
+8 -7
@@ -24,21 +24,22 @@ var agents = {
24 'meshagent_alpine-x86-64': 33,
25 'meshagent_mipsel24kc': 40,
26 'meshagent_aarch64-cortex-a53': 41,
27 + 'MeshServiceARM64.exe': 43,
28 // 'meshagent_armvirt32': 44,
29 'meshagent_riscv64': 45,
30 'meshagent_osx-universal-64': 10005
31 }
32
33 +function getAgentInfo(filename, id) {
34 + if (fs.existsSync(filename) != true) return null;
35 + var stats = fs.statSync(filename);
36 + return { filename: filename, hash: getSHA384FileHash(filename).toString('hex'), size: stats.size, mtime: stats.mtime };
37 +}
38 +
39 var agentinfo = {};
40 for (var i in agents) {
41 var info = getAgentInfo(i, agents[i]);
42 if (info != null) { agentinfo[agents[i]] = info; }
43 }
44 console.log(JSON.stringify(agentinfo, null, 2));
38 -process.exit();
39 -
40 -function getAgentInfo(filename, id) {
41 - if (fs.existsSync(filename) != true) return null;
42 - var stats = fs.statSync(filename);
43 - return { filename: filename, hash: getSHA384FileHash(filename).toString('hex'), size: stats.size, mtime: stats.mtime };
44 -}
45 +process.exit();
\ No newline at end of file
agents/hashagents.json
+29 -23
@@ -3,138 +3,144 @@
3 "filename": "MeshService.exe",
4 "hash": "A28899C93AE7273C49433952149AD34ADB5A017A150A27243B69402D94BF4AAC32AAE6774C40EC8DE1B4CB33A82DC1C7",
5 "size": 3811840,
6 - "mtime": "2025-03-07T22:43:04Z"
6 + "mtime": "2025-03-07T17:05:07Z"
7 },
8 "4": {
9 "filename": "MeshService64.exe",
10 "hash": "168572E0999089DE09B751255C908A4C2B80056D6DFAFFDB8B76F4A81847C8A4E162D6C303C14A837BBE8E6802AC6992",
11 "size": 3439616,
12 - "mtime": "2025-03-07T22:43:04Z"
12 + "mtime": "2025-03-07T17:05:07Z"
13 },
14 "5": {
15 "filename": "meshagent_x86",
16 "hash": "EB1F41A192A43469823399E9880EF7435259A12E2687CF488B3CB17D86BA8C29ED20DD863C86D0D5CA1D40634DEB4134",
17 "size": 3641436,
18 - "mtime": "2023-10-13T16:35:50Z"
18 + "mtime": "2022-11-22T18:15:29Z"
19 },
20 "6": {
21 "filename": "meshagent_x86-64",
22 "hash": "434BF98C5D4F394CB5275C73FF96CB3283DA1300577784F51AF2273DE3158074E78A351C48A9CDEA3E7DC6DECD106128",
23 "size": 3749328,
24 - "mtime": "2024-08-06T15:30:40Z"
24 + "mtime": "2022-11-22T18:15:29Z"
25 },
26 "7": {
27 "filename": "meshagent_mips",
28 "hash": "97F057410D979E5D290EC253B1340CDB4C1B55AFB2F766AC1CFACA368355E5D7CB86E51F44B34798F0FD1C691089859F",
29 "size": 4555960,
30 - "mtime": "2023-09-19T15:16:30Z"
30 + "mtime": "2022-11-22T18:15:29Z"
31 },
32 "9": {
33 "filename": "meshagent_arm",
34 "hash": "963802249E86D8D0B08D62D688E67704F519CB1D6EA03A755CF3A277D30A1579E92E863F5E31B40CBBCF8C492D3B93E8",
35 "size": 3156256,
36 - "mtime": "2023-09-19T15:16:29Z"
36 + "mtime": "2022-11-22T18:15:29Z"
37 },
38 "13": {
39 "filename": "meshagent_pogo",
40 "hash": "D07AD09AEBA3528785D1BE63D89785C1D2078EDA4F9E1ADE8B695A094DA4F3DB63BB16895E4BDEE733F54EF8C2F74265",
41 "size": 3164464,
42 - "mtime": "2023-09-19T15:16:30Z"
42 + "mtime": "2022-11-22T18:15:29Z"
43 },
44 "15": {
45 "filename": "meshagent_poky",
46 "hash": "515F9A5FFE2C229E24DB61770EEC1265F0A3AFC09C4321F1CA8D6C1A4C421FD223BDE85D94BC5B9E349EC7132CD9A7E5",
47 "size": 3804792,
48 - "mtime": "2023-09-19T15:16:30Z"
48 + "mtime": "2022-11-22T18:15:29Z"
49 },
50 "16": {
51 "filename": "meshagent_osx-x86-64",
52 "hash": "F7A3EBEC3D855EBFB2C72271C17196C7692EB2685DCBA70B56B63C80D6CF0DAA7DF00657BB4A12F4C0D92281B1BB47FE",
53 "size": 4670736,
54 - "mtime": "2025-03-18T17:57:52Z"
54 + "mtime": "2022-08-29T20:54:17Z"
55 },
56 "18": {
57 "filename": "meshagent_poky64",
58 "hash": "F889214564DBA1625DF17A7C3E14458D55350399112BAD429F8525B885EF2098EC527C3A83C3EBEF9BFB90A74AF4CD87",
59 "size": 3503608,
60 - "mtime": "2023-09-19T15:16:30Z"
60 + "mtime": "2022-11-22T18:15:29Z"
61 },
62 "19": {
63 "filename": "meshagent_x86_nokvm",
64 "hash": "2558D5FB2B92AF81EE914F83BB0EC528C9D10BFAB67F9F7C27BFD6AB8516B93DDCF9F824BF0F307F47254C811D707434",
65 "size": 3360704,
66 - "mtime": "2023-09-19T15:16:30Z"
66 + "mtime": "2022-11-22T18:15:29Z"
67 },
68 "20": {
69 "filename": "meshagent_x86-64_nokvm",
70 "hash": "A91280CAB549B1F133408F283E850F35B529218C0C317007D60A170E6113DE262521B3DA0D1ECEAC0E945B3ED46D23F7",
71 "size": 3454384,
72 - "mtime": "2023-09-19T15:16:30Z"
72 + "mtime": "2022-11-22T18:15:29Z"
73 },
74 "24": {
75 "filename": "meshagent_arm-linaro",
76 "hash": "47E5DDAD71536DBB7752C665A4FE3BDD98D2AB888DB7536FB58E2EC7F0560C750AFE2D2D7F35A00457677661312380E6",
77 "size": 2215252,
78 - "mtime": "2023-09-19T15:16:29Z"
78 + "mtime": "2022-11-22T18:15:29Z"
79 },
80 "25": {
81 "filename": "meshagent_armhf",
82 "hash": "65F6FE3B530FDBC3C1E7B2577B081FEF5742265CCCFDE27AB015996D3767F153CF3B4B022932C156754E09CDA2EE4874",
83 "size": 3191132,
84 - "mtime": "2023-09-19T15:16:29Z"
84 + "mtime": "2022-11-22T18:15:29Z"
85 },
86 "27": {
87 "filename": "meshagent_armhf2",
88 "hash": "0AE840520D3B677B9767EA097F3AA5A1E24212529E688200F43935DB1541AB9FB441EC2C7BA8002D45299B04695FD037",
89 "size": 2837724,
90 - "mtime": "2023-09-19T15:16:29Z"
90 + "mtime": "2022-03-24T21:15:48Z"
91 },
92 "28": {
93 "filename": "meshagent_mips24kc",
94 "hash": "3AD0A21E1FDD44E1869BFD3E3698D67713445C7A21BEE37AF41E810E6B6F1CE8FE369140AE7BAD31689A5F759CF7BCC6",
95 "size": 4193384,
96 - "mtime": "2023-09-19T15:16:30Z"
96 + "mtime": "2022-11-22T18:15:29Z"
97 },
98 "29": {
99 "filename": "meshagent_osx-arm-64",
100 "hash": "CFE022146F2ED61E68F907E57E3704CC7F409D7F2B4D87E64ED6D83C53F41777BCDDCCF42DF8B8BB25CCEC9A93D799C7",
101 "size": 3945576,
102 - "mtime": "2025-03-12T11:13:54Z"
102 + "mtime": "2022-08-29T20:54:17Z"
103 },
104 "30": {
105 "filename": "meshagent_freebsd_x86-64",
106 "hash": "5C2CDDA2E7AB5068D990FBC725D8D5E3EA2724A0E001C226C0C7BB9F3A46492880BF260B5DD9E733F87EB68BA7494BD6",
107 "size": 4673560,
108 - "mtime": "2023-09-19T15:16:29Z"
108 + "mtime": "2022-08-29T20:54:17Z"
109 },
110 "32": {
111 "filename": "meshagent_aarch64",
112 "hash": "56AD2FAFBC15BAC635C526C6F106DD0213C0B222265685F00CDD56AD8C3DFE7DE6C4D8F52EA9CA183D50BC8D8C198477",
113 "size": 3256688,
114 - "mtime": "2023-09-19T15:16:29Z"
114 + "mtime": "2022-11-22T18:15:29Z"
115 },
116 "40": {
117 "filename": "meshagent_mipsel24kc",
118 "hash": "E6A3CDBFFD233BE1B24E81197F41DB24EFA1708B5BD18B2D7DFEBFD89FAF6A994B5D4A3048D67BBBAB14A77AD7088AE6",
119 "size": 4189672,
120 - "mtime": "2023-09-19T15:16:30Z"
120 + "mtime": "2022-11-22T18:15:29Z"
121 },
122 "41": {
123 "filename": "meshagent_aarch64-cortex-a53",
124 "hash": "CEFD8AAB52CE01939324E999E1EB541A262E0D4F1C3591F0A8355EAD5D2C87B43B3FB05A1DCD04012CDD4B559589CBAB",
125 "size": 3084616,
126 - "mtime": "2023-09-19T15:16:29Z"
126 + "mtime": "2022-11-22T18:15:29Z"
127 + },
128 + "43": {
129 + "filename": "MeshServiceARM64.exe",
130 + "hash": "5D49143B18A7AF6B09378D57781B9A0910EDD394A17CC0E9D5518DF34E1442E306E0AF855073009885C4D0D45C431D61",
131 + "size": 3634688,
132 + "mtime": "2025-07-11T21:20:17Z"
133 },
134 "45": {
135 "filename": "meshagent_riscv64",
136 "hash": "CFB8C78CB128B5F8FE367DE40ACD1D34BB9E261B8B37AF867F0B50130F847831B8C0DB4C9DAFC75F5DD80AFECCE74D30",
137 "size": 3597928,
132 - "mtime": "2025-03-18T11:06:16Z"
138 + "mtime": "2025-03-18T18:11:04Z"
139 },
140 "10005": {
141 "filename": "meshagent_osx-universal-64",
142 "hash": "D320CA61D59FD8D76CF681CFE78A94CE37C47DBCAA8B29DF483F42C000EA9B655B5E5909A2AD6699D45D2D7691FF4964",
143 "size": 8647784,
138 - "mtime": "2024-03-15T14:55:06Z"
144 + "mtime": "2022-08-29T20:54:17Z"
145 }
146 }
meshcentral.js
+4 -4
@@ -3618,9 +3618,9 @@ function CreateMeshCentralServer(config, args) {
3618 try { objx.meshAgentBinaries[archid].pe = obj.exeHandler.parseWindowsExecutable(agentpath); } catch (ex) { }
3619 }
3620
3621 - // If agents must be stored in RAM or if this is a Windows 32/64 agent, load the agent in RAM.
3622 - if ((obj.args.agentsinram === true) || (((archid == 3) || (archid == 4)) && (obj.args.agentsinram !== false))) {
3623 - if ((archid == 3) || (archid == 4)) {
3621 + // If agents must be stored in RAM or if this is a Windows 32/64/ARM64 agent, load the agent in RAM.
3622 + if ((obj.args.agentsinram === true) || (((archid == 3) || (archid == 4) || (archid == 43)) && (obj.args.agentsinram !== false))) {
3623 + if ((archid == 3) || (archid == 4) || (archid == 43)) {
3624 // Load the agent with a random msh added to it.
3625 const outStream = new require('stream').Duplex();
3626 outStream.meshAgentBinary = objx.meshAgentBinaries[archid];
@@ -3734,7 +3734,7 @@ function CreateMeshCentralServer(config, args) {
3734 obj.exeHandler.hashExecutableFile(options);
3735
3736 // If we are not loading Windows binaries to RAM, compute the RAW file hash of the signed binaries here.
3737 - if ((obj.args.agentsinram === false) && ((archid == 3) || (archid == 4))) {
3737 + if ((obj.args.agentsinram === false) && ((archid == 3) || (archid == 4) || (archid == 43))) {
3738 const hash = obj.crypto.createHash('sha384').update(obj.fs.readFileSync(agentpath));
3739 objx.meshAgentBinaries[archid].fileHash = hash.digest('binary');
3740 objx.meshAgentBinaries[archid].fileHashHex = Buffer.from(objx.meshAgentBinaries[archid].fileHash, 'binary').toString('hex');