emhanik
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Скрипты KPKeyDriveAssistant.js и KPKeyDriveAssistantKiller.js KPKeyDriveAssistant.js Код: var KEEPASS_DIR = '..'; var CMD_LINE = 'KeePass.exe Utilities\\Opener.kdbx -useraccount -pw-stdin'; var KEY_DRIVE_LABEL = 'KeePass Key Drive'; var PASSWORD_FILE_PATH = 'Data\\Opener.txt'; var WshShell = WScript.CreateObject('WScript.Shell'); var FSO = WScript.CreateObject('Scripting.FileSystemObject'); var Shell = WScript.CreateObject("Shell.Application"); var WmiService = GetObject("WinMgmts:{impersonationLevel=impersonate}!//./root/cimv2"); setCurrentDirectory(KEEPASS_DIR); var letter = awaitDrive(KEY_DRIVE_LABEL); var password = readFile(letter + ':\\' + PASSWORD_FILE_PATH); ejectDrive(letter); send(CMD_LINE, password); WScript.Sleep(2000); runItself(); function setCurrentDirectory(dir) { try { WshShell.CurrentDirectory = WScript.ScriptFullName.slice(0, -WScript.ScriptName.length); WshShell.CurrentDirectory = dir; } catch (e) { } } function awaitDrive(label) { label = label.toLowerCase(); var eventSource = WmiService.ExecNotificationQuery( "SELECT * FROM Win32_VolumeChangeEvent WHERE EventType = 2"); for (;;) { var driveName = eventSource.NextEvent().DriveName; try { var drive = FSO.GetDrive(driveName); if (drive.VolumeName.toLowerCase() == label) { return drive.DriveLetter; } } catch (e) { } } } function readFile(path) { var text = ''; try { try { var textStream = FSO.OpenTextFile(path, 1, false, 0); text = textStream.readAll(); } finally { textStream.close(); } } catch (e) { } return text; } function ejectDrive(letter) { try { Shell.NameSpace(17).ParseName(letter).InvokeVerb("Eject"); } catch (e) { } } function send(cmdLine, str) { try { WshShell.Exec(cmdLine).StdIn.WriteLine(str); } catch (e) { } } function runItself() { try { WshShell.Run('"' + WScript.FullName + '" "' + WScript.ScriptFullName + '"'); } catch (e) { } } | KPKeyDriveAssistantKiller.js Код: var WmiService = GetObject("WinMgmts:{impersonationLevel=impersonate}!//./root/cimv2"); var scripts = WmiService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'wscript.exe' OR Name = 'cscript.exe'"); for (var e = new Enumerator(scripts); !e.atEnd(); e.moveNext()) { if (e.item().CommandLine && e.item().CommandLine.indexOf("KPKeyDriveAssistant.js") != -1) { e.item().Terminate(); } } | | Всего записей: 968 | Зарегистр. 18-12-2011 | Отправлено: 14:24 21-02-2021 | Исправлено: emhanik, 18:04 27-04-2024 |
|