Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » KeePass Password Safe (Часть 2)

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

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
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » KeePass Password Safe (Часть 2)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru