В Windows нет удобного и быстро настраиваемого механизма, который позволяет защитить запуск исполняемого файла паролем.

Program Locker решает эту задачу: быстрый способ заблокировать запуск программы паролем — при этом предусмотрен отдельный режим, учитывающий особенности работы браузеров при проверке исполняемых файлов.

Демонстрация
Демонстрация

Проблема (почему это может быть нужно)

Windows не требует пароль для запуска бинарников: если файл доступен на диске — его можно запустить. Это неудобно, когда нужно ограничить запуск внутренних инструментов или личных утилит на общем компьютере. Решение должно быть простым, локальным и не требовать сложной инфраструктуры.

Менеджер защиты исполняемых файлов Program Locker работает совместно с лаунчером Locker Launcher, который используется для ввода пароля. В режиме защиты с лаунчером он подменяет оригинальный исполняемый файл, сохраняя его название и иконку.

При первом запуске Program Locker нужно установить мастер-пароль, создаётся защищённый JSON конфиг в папке пользователя "%AppData%\Program Locker" (в котором хранится вся нужная информация о защищённых программах), после чего можно добавлять программы для защиты.

Поддерживаются горячие клавиши:

  • Выделить всё (Ctrl+A)

  • Добавить файлы (Ctrl+O)

  • Запустить выбранные программы (Enter)

  • Заблокировать выбранные файлы (Ctrl+L)

  • Разблокировать выбранные файлы (Ctrl+U)

  • Удалить выбранные записи (Delete)

  • Обновить список (F5)

  • Создать ярлык на рабочем столе (Ctrl+K)

Важный нюанс про браузеры и проверку файлов

На практике при защите EXE-файлов быстро выясняется, что браузеры и механизмы проверки чувствительны к подменам или изменениям исполняемых файлов. В таких случаях запуск исполняемого файла может быть заблокирован, либо приводить к сбоям, даже если потом восстановить оригинальный файл.

Поэтому у Program Locker есть два режима — обычный с лаунчером и специальный режим без лаунчера, который не делает грубых подмен, а избегает прямой подмены файлов.

Как работают режимы (при добавлении новых файлов)

1) Режим защиты с лаунчером:

Он работает так:

  • Оригинальный файл переименуется с суффиксом "_locked.exe" и применяются патчи для защиты от запуска (в краце - применяются изменения, препятствующие запуску защищённого файла).

  • На его место копируется фейковый файл (лаунчер Locker Launcher) с оригинальным названием и иконкой, при запуске он будет запрашивать пароль.

  • Если при запуске фейкового файла пароль введён верно, тогда фейковый файл удаляется, у оригинального файла восстанавливается название и снимаются патчи, производится запуск программы, продолжается отслеживание всех копий процессов запущенного файла.

  • После закрытия оригинальной программы, её процессы завершаются, происходит обратная подмена на фейковый файл (лайнчер).

2) Режим защиты без лаунчера:

Этот режим создан в первую очередь для браузеров и специфичных программ, у которых имеются защиты в виде проверок хешей и других систем защиты исполняемых файлов.

Работает немного по другому:

  • Оригинальный файл переименуется с суффиксом "_locked.exe", но НЕ подменяется фейковым файлом и применяются патчи для защиты от запуска (в краце - портится внутренняя структура исполняемого файла).

  • Браузеры (например, Google Chrome) не обнаруживает файл с ожидаемым именем chrome.exe, из-за чего стандартные проверки целостности не срабатывают.

  • Запустить такой защищённый файл можно из самого менеджера защиты исполняемых файлов "Program Locker", либо создав оттуда же ярлык на рабочий стол.

  • Такой ярлык имеет название и иконку оригинального ярлыка, но при запуске всегда будет просить ввести пароль для запуска (даже если защита снята).

  • При вводе пароля программа временно восстанавливается в рабочее состояние и запускается, после закрытия защита автоматически восстанавливается.

Заключение

Program Locker даёт практичное и аккуратное решение для одной конкретной задачи: контроль запуска EXE-файлов паролем, причём есть специальный режим, который не ломает проверки браузеров и работает через переименование в _locked.exe + патчинг, а при запуске возвращает временно всё назад. Это удобный инструмент для внутренних нужд, когда нужна простая и надёжная защита запуска.

Ссылки на проект

GitFlic

Зеркало GitHub