fix bitlocker with multiple drives and german phrase checker
Signed-off-by: si458 <simonsmith5521@gmail.com>
si458 committed
Jan 28, 2024 at 17:30 UTC
37911d091c5c6585f1bdb7b000e7d5ec8b7779c5
1 file changed
+11
-10
agents/modules_meshcore/computer-identifiers.js
+11
-10
@@ -438,18 +438,19 @@ function windows_volumes()
438
ret[key].volumeStatus = tokens[1].split('"')[1];
439
ret[key].protectionStatus = tokens[2].split('"')[1];
440
try {
441
- var str = '';
441
var foundMarkedLine = false;
442
var password = '';
444
- var child = require('child_process').execFile(process.env['windir'] + '\\system32\\cmd.exe', ['/c', 'manage-bde -protectors -get ', tokens[0].split('"')[1], ' -Type recoverypassword'], {});
445
- child.stdout.on('data', function (chunk) { str += chunk.toString(); });
446
- child.stderr.on('data', function (chunk) { str += chunk.toString(); });
447
- child.waitExit();
448
- var lines = str.split(/\r?\n/);
449
- for (var i = 0; i < lines.length; i++) {
450
- if (lines[i].trim() !== '' && lines[i].includes('Password:') && !lines[i].includes('Numerical Password:')) {
451
- if (i + 1 < lines.length && lines[i + 1].trim() !== '') {
452
- password = lines[i + 1].trim();
443
+ var keychild = require('child_process').execFile(process.env['windir'] + '\\system32\\cmd.exe', ['/c', 'manage-bde -protectors -get ', tokens[0].split('"')[1], ' -Type recoverypassword'], {});
444
+ keychild.stdout.str = ''; keychild.stdout.on('data', function (c) { this.str += c.toString(); });
445
+ keychild.waitExit();
446
+ var lines = keychild.stdout.str.trim().split('\r\n');
447
+ for (var x = 0; x < lines.length; x++) {
448
+ var abc = lines[x].trim();
449
+ var englishpass = (abc !== '' && abc.includes('Password:') && !abc.includes('Numerical Password:')); // English Password
450
+ var germanpass = (abc !== '' && abc.includes('Kennwort:') && !abc.includes('Numerisches Kennwort:')); // German Password
451
+ if (englishpass || germanpass) { // Numeric Password
452
+ if (x + 1 < lines.length && lines[x + 1].trim() !== '') {
453
+ password = lines[x + 1].trim();
454
foundMarkedLine = true;
455
}
456
if (foundMarkedLine) break;