Бастион V16 - Шифрование текста

Добавлено предупреждение при переключении со светлой темы на тёмную, если в тексте присутствуют цветные шрифты.

Почему это происходит

Для обеспечения читаемости на тёмном фоне программа вынуждена принудительно менять цвет всего текста на светлый.
Из-за этого индивидуальные цвета шрифта (например, красный текст) неизбежно утрачиваются.

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

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 

Вложения

  • Без имени-1.webp
    Без имени-1.webp
    34,3 КБ · Просмотры: 74
Восстановлено стандартное поведение клавиши Del.
Теперь она корректно удаляет символы справа от курсора в основном редакторе, поле ответа Телеграм и полях ввода пароля, даже если текст не выделен.

В режиме ввода кодовой фразы (Alt + P или правая кнопка мыши по "Генерировать пароль") теперь можно нажать Enter для мгновенной генерации пароля.

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Переработан механизм отправки файлов и аудиосообщений в Телеграм

Данные теперь передаются в curl напрямую через стандартный ввод (STDIN) из оперативной памяти (--data-binary @-).
Полностью исключено создание временных файлов на диске в процессе шифрования и отправки, что предотвращает возможность восстановления данных средствами форензики (Data Remanence).

Добавлена строгая валидация поля Proxy

Запрещено использование спецсимволов (", &, |, <>), которые могли бы нарушить целостность командной строки.

Потокобезопасность

Флаги состояния аудиосистемы (g_isRecording, g_isPlaying, g_isPaused) переведены на std::atomic<bool>.
Это устраняет состояние гонки (race conditions) между интерфейсом и потоками драйвера, повышая стабильность работы при быстрой записи/воспроизведении.

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Доработан алгоритм экстренного уничтожения данных

В режим "Паника" (Красная кнопка) добавлена команда принудительного отключения питания как финальный этап.

После перезаписи ОЗУ случайными данными физическое отключение питания ускоряет разрядку конденсаторов в чипах памяти.
Это сводит к минимуму риск восстановления данных методом "Cold Boot Attack" (атака через заморозку памяти) и гарантирует, что система переведена в состояние полного покоя.

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

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 

Вложения

  • Безымянный.webp
    Безымянный.webp
    19,6 КБ · Просмотры: 63
Реализована и внедрена отдельная функция SecureBurnStack с атрибутом NOINLINE.
Вместо локальной очистки массива теперь используется рекурсивный алгоритм (глубиной 64 уровня), который перезаписывает кадры стека и локальные переменные нулями, предотвращая восстановление данных из остаточной памяти стека.

В режиме паники программа теперь использует стратегию полного исчерпания памяти: циклически выделяются и перезаписываются паттерном 0xAA блоки памяти (от 64 МБ до 4 КБ) до тех пор, пока системе есть что выделить.
Это эффективнее удаляет остаточные данные из "кучи" (heap) других процессов или системы.

Изменена логика работы с потоком Телеграм (g_telegram_thread).
В режиме паники поток теперь "отсоединяется" (detach), а не ожидается (join), что позволяет сэкономить драгоценные миллисекунды перед выключением компьютера.

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Оптимизация и усиление шредера

Внедрено циклическое переименование уничтожаемых папок (3 прохода) случайными именами для обфускации записей MFT.

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

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

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Улучшена функция массового уничтожения файлов (DoShredMultipleFiles)

Списки файлов и директорий теперь разделяются: в первую очередь уничтожаются файлы (снимая блокировки с родительских папок), и только затем — сами директории.

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

Использование std::atomic для распределения задач обеспечивает корректную обработку списка без пропусков и дублирования.

Улучшена функция одиночного уничтожения (PerformSecureShred)

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

Реализован механизм повторных попыток (retry loop) с нарастающей задержкой при финальном удалении файлов и папок.
Это решает конфликт с антивирусами и индексаторами Windows, которые могут кратковременно удерживать файл после его перезаписи, предотвращая появление "фантомных" файлов размером 0 байт и неудаляемых пустых папок.

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg

qwerty120, приветствую!

Вполне достаточно облака Яндекс и Гугл
 
Улучшена работа с RTF в тёмной теме

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

Для корректного просмотра цветного текста рекомендуется расшифровывать данные в светлой теме.

Исправлена вставка текста

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

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 

Вложения

  • Без имени-1.webp
    Без имени-1.webp
    46 КБ · Просмотры: 63
Исправлена ошибка обработки цветного текста при смене темы

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

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Реализован алгоритм SecureHeapSanitize для борьбы с остаточными данными в куче

Стандартные контейнеры C++ (как std::string или std::vector) при переаллокации могут оставлять копии данных в памяти, помеченной как "свободная", но физически не перезаписанной.
Функция выполняет серию быстрых аллокаций с флагом HEAP_ZERO_MEMORY, заставляя менеджер памяти Windows (LFH) отдать недавно освобожденные блоки под новые нужды и немедленно занулить их.
Атака ведется только на блоки размеров 16–256 байт (типичный размер криптографических ключей и парольных фраз), что делает очистку мгновенной и стабильной.

Данное решение (SecureHeapSanitize) является эффективным методом зачистки в рамках текущей архитектуры на стандартных STL контейнерах.
Если вы планируете использовать код в своих разработках, существует способ решения проблемы "призраков" в памяти — использование кастомных аллокаторов (Custom Allocators).

Вместо:
std::wstring password;

Рекомендуется использовать структуру с аллокатором, который выполняет RtlSecureZeroMemory при деаллокации:
std::basic_string<wchar_t, std::char_traits<wchar_t>, SecureAllocator<wchar_t>> secure_password;

Это предотвратит попадание чувствительных данных в стандартную кучу и исключит необходимость её последующего "скрабинга".

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Оптимизирована функция SecureHeapSanitize для более надежной защиты от forensic-анализа RAM

Переход от случайной/простой аллокации к детерминированной стратегии "ковровой" очистки.
Добавлен массив small_sizes для гарантированного попадания в корзины (buckets) аллокатора Windows, содержащие ключи и строковые данные (16–512 байт).
Добавлен массив io_sizes для затирания крупных буферов чтения/записи (1 КБ – 64 КБ).
Увеличено количество проходов для мелких блоков (LFH) для повышения вероятности перезаписи.

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Обновлена функция шредера PerformSecureShred

Заменена логика перемещения в GetTempPath на std::filesystem для работы в родительской директории файла.

Внедрен флаг MOVEFILE_WRITE_THROUGH для обхода кэширования записи при переименовании.
Это заставляет файловую систему немедленно сбрасывать изменения метаданных на диск, затирая старые имена файлов в Master File Table (MFT).

Переход на std::mt19937 и расширенный алфавит (alphanumeric) с плавающей длиной (3-16 символов).
Вместо шаблонных имен (.tmp) теперь генерируются криптографически стойкие случайные имена, затрудняющие анализ.

Добавлена защита от блокировки удаления папок с повторными попытками сброса атрибутов.
Реализован алгоритм многократного (5) переименования папок перед финальным удалением.

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Оптимизирован алгоритм экстренного завершения работы в режиме паники (красная кнопка)

Внедрено использование функции NtShutdownSystem (Native API) для прямого обращения к ядру системы.
Это позволяет мгновенно отключить питание, минуя стандартные процедуры остановки служб и драйверов Windows.

Реализован каскадный механизм резервного выключения:
в случае отказа Native API срабатывает агрессивный вызов ExitWindowsEx с флагом EWX_FORCEIFHUNG и системная команда shutdown.exe /p /f.

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Добавлена функция ForceTerminateProcess
Принудительно завершает процессы, блокирующие доступ к файлам перед их уничтожением.

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Обновлена логика параметра "ram_cleanup_percentage": 100" в файле settings.txt

При значении 100 (по умолчанию):

Теперь при штатном закрытии программы применяется агрессивная тактика "Выжженной земли" (аналогичная режиму "Паника").
Программа циклически захватывает и перезаписывает случайным шумом (паттерном) доступную физическую память компьютера, вплоть до момента, пока операционная система не перестанет выделять ресурсы.

При значении 99 или меньше используется "Вежливый" метод:
Программа очищает и перезаписывает только тот объем памяти, который система помечает как "свободный", оставляя небольшой запас для стабильной работы ОС и других приложений.

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Интересное наблюдение: гематрия названия "Бастион V16" даёт число 112

112 — Экстренная помощь и защита

Самая очевидная ассоциация в современном мире — это телефон службы спасения 112 (действует в России, Европе и многих других странах).

Символизм
Это сигнал "SOS", последняя надежда и помощь в критической ситуации.

Всех с наступающим Новым годом!

Безымянный.webp
 
Улучшена функция принудительного завершения процессов ForceTerminateProcess

Добавлена динамическая загрузка Rstrtmgr.dll (Windows Restart Manager) и вызов RmShutdown для освобождения файловых дескрипторов и завершения процессов, блокирующих целевой файл.

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Улучшен переход в режим генерации пароля из кодовой фразы (Alt + P или ПКМ по кнопке "Генерировать пароль").

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

В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
"Цифровой тайник" (Digital Dead Drop)

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

Как использовать

  • Введите текст и зашифруйте его.
  • Нажмите средней кнопкой мыши (колесом) по кнопке "Отправить".

Программа автоматически попытается загрузить шифр на один из специализированных Pastebin-сервисов (clbin.com, 0x0.st или termbin.com).
При успешной загрузке вы получите короткую ссылку, которая автоматически скопируется в буфер обмена.

Что такое Pastebin-сервисы

Pastebin (Пэйстбин) — это веб-сервис для хранения фрагментов текста.
В отличие от обычных облачных хранилищ, консольные pastebin-сервисы (которые использует Бастион) не требуют регистрации, не ведут логов и созданы для быстрой и анонимной передачи данных.

Сценарии применения

1. Если Телеграм, почта или другие мессенджеры заблокированы в сети или временно недоступны, HTTP-запросы к этим сервисам обычно остаются открытыми.
Это ваш резервный канал связи.

2. Отправка большого массива зашифрованного текста ("каши" из символов) в чате может вызвать подозрения у наблюдателя.
Отправка короткой ссылки выглядит гораздо безобиднее и напоминает обмен обычной информацией.

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

Загруженные примеры




В облаке
disk.yandex.ru/d/pSxwq7mMhKsOwg
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab