Всем привет!

Последняя статья на тему данной программы была 21 июня. Проект не обновлялся, но всё же я снова вернулся к обновлению программы. Сегодня я решил рассказать про новое обновление, ну и в целом про обновление v1.2.1-v1.3.

В любом случае я буду стараться поддерживать проект и добавлять что-то новое.

Поэтому в данной статье я подробно всё опишу и в выводе будет сказано, что будет дальше!

Обложка
Обложка

Что же было исправлено в данной программе?

Планировщик задач

Первым делом я решил обновить планировщик задач, т.к. он не обновлялся аж с версии v1.0 и был очень плохим и неудобным. Покажу вам для сравнения, как планировщик изменился:

v1.2 (и ниже):

Вот что было в v1.2. Использовался CSV-формат
Вот что было в v1.2. Использовался CSV-формат

И вот, что вышло в v1.2.1:

Вот что теперь сейчас. Проблема была исправлена использованием COM-объекта.
Вот что теперь сейчас. Проблема была исправлена использованием COM-объекта.

Как видите теперь планировщик задач стал более удобным и читаемым. Теперь вы с лёгкостью можете просматривать задачи и при желании экспортировать их (раньше нельзя).

COM-объекты дают прямой программный доступ к API планировщика Windows с полным контролем над каждой задачей и её свойствами. В то время как если использовать CSV-данные, то их приходится парсить (и например из-за локализации всё может сломаться).

Также были созданы свойства задач:

Вот пример свойства задачи
Вот пример свойства задачи

Теперь вы можете использовать планировщик задач прямо в Threatbit Simple Scanner и просматривать задачи. Вы также при желании сможете легко экспортировать задачу в формате .xml.

Карантин

Вот как выглядит интерфейс
Вот как выглядит интерфейс

Как работает карантин в данной программе?

Благодаря библиотеке cryptography, Fernet каждый файл, который попадает в карантин шифруется с помощью AES-256 (кто не знает для гарантированного получения ключа нужно перебрать 2²⁵⁶ комбинаций). То есть всё содержимое шифруется и не подлежит выполнению (программа просто не запустится) и соответственно не представляет опасности.

random_bytes = os.urandom(32)

Ключ для шифрования генерируется с помощью os.urandom (считается Cryptographically Secure Pseudo-Random Number Generator). Он считается безопасным и криптографически непредсказуемым. Затем он кодирует 32 байта в Base64 строку и шифрует ключ через DPAPI.dll

encrypted_key = win32crypt.CryptProtectData(self.key, None, None, None, None, 0)

И после того, как файл попал в карантин, то его имя меняется на его же хэш, а расширение меняется на .thrlock

Вот пример:

Вот пример файла в карантине "Threatbit Simple Scanner"
Вот пример файла в карантине "Threatbit Simple Scanner"

metadata.json выглядит примерно так:

{
    "files": [
        {
            "original_path": "C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\ThreatbitScanner.exe",
            "original_name": "ThreatbitScanner.exe",
            "quarantine_path": "C:\\Users\\%username%\\Documents\\Threatbit\\Quarantine\\34eaf973e5a34bf0169f324d5be008af.thrlock",
            "hash_sha256": "34eaf973e5a34bf0169f324d5be008af4509c95e3d35103250594ae1e3f3d405",
            "quarantined_at": "2026-08-20T22:41:01.988699",
            "size": 96702976
        }
    ]
}

key.bin это всего лишь DPAPI-блоб, содержащий зашифрованный ключ Fernet. Даже если вдруг скопировать всю папку Threatbit и попробовать расшифровать на другом устройстве, то ничего не выйдет.

Если вы переустановите Windows или смените пользователя, то вы также не расшифруете файл.

Главное! Если ваш файл в карантине, то не меняйте key.bin и metadata.json, а также не редактируйте зашифрованный .thrlock файл. При нажатии "Восстановить" файл вернётся на прежнее место и успешно расшифруется при нормальных условиях.

Подтверждение восстановления файла
Подтверждение восстановления файла

Таким образом файл действительно попадает в карантин и ничего не сможет сделать

Проверка подписей файлов

В v1.3 появилась проверка цифровых подписей 14 критических системных файлов. Сделано на случай, если вредоносное ПО подменит важный файл.

Список файлов, которые проверяются:

  • ntdll.dll

  • kernel32.dll

  • user32.dll

  • advapi32.dll

  • shell32.dll

  • ws2_32.dll

  • winlogon.exe

  • lsass.exe

  • services.exe

  • svchost.exe

  • csrss.exe

  • smss.exe

  • explorer.exe

  • dwm.exe

Теперь если вдруг какой-то из этих файлов будет не подписан, то он отобразится как подозрительная угроза.

Как работает проверка?

Каждый файл проверяется через PowerShell Get-AuthenticodeSignature. Если файл:

  • Если файл не подписан - то будет обозначен как NotSigned

  • Если хэш не совпадает - то будет обозначен как (HashMismatch)

  • Если ошибка проверки - то будет обозначен как (UnknownError)

Таким образом если важный файл подменят, то это будет обозначено.

Regback (WIP)

Вот где данная кнопка
Вот где данная кнопка

В v1.3 появилась возможность создать резервную копию реестра перед сканированием. Хоть все изменения и безопасны, но на всякий случай вы можете создать копию.

Экспортируется 5 кустов реестра:

  • SOFTWARE: настройки программ

  • SYSTEM: системные параметры

  • SAM: база учётных записей

  • SECURITY: политики безопасности

  • HKCU: настройки текущего пользователя

Данная опция находится в разработке и скоро выйдет окончательная полная версия.

Прочие детали

1. Новая структура папок

Структура папок
Структура папок

Теперь всё хранится в Documents\Threatbit.

Все файлы, которые попали в карантин, или записанные логи и RegBack'и попадают теперь в папку Threatbit. Вы сможете легко искать ваши файлы и использовать их по назначению.

2. Кнопки обновить

Вот пример где она есть
Вот пример где она есть

В v1.3 во всех вкладках ручных инструментов появились кнопки "Обновить".

Вы можете спросить, мол, а зачем это нужно? Раньше, чтобы увидеть актуальный список (например, после добавления новой задачи в планировщик или установки программы с автозапуском), нужно было перезапускать всю программу.

Теперь этого не нужно делать! Просто нажмите кнопку обновить в нужной вкладке и всё.

Подведём итоги

Теперь после перечисленных нововведений можно подытожить:

  1. Теперь в программе есть рабочий карантин с использованием CSPRNG для генерации ключа и AES-256 для шифрования файла.

  2. В v1.2.1 был обновлён планировщик задач и стал более удобным и читаемым.

  3. Были добавлены небольшие введения по типу сортировки по папкам и кнопки обновить

  4. Добавлен первоначальный RegBack, который будет вскоре дополняться и становиться ещё лучше

Таким образом Threatbit Simple Scanner будет становится лучше, главное высказывайте свои идеи и я буду стараться их реализовывать постепенно.

Полезные ссылки:

Репозиторий на GitHub
Сайт с проектом
Скачать Depends для использования Nuitka


Статья "Как разобрать .exe всего двумя инструментами"