Бастион V16 - Шифрование
Цитата: dehote9223 от 18.12.2025, 19:19Улучшена маскировка Unicode-шифров
Теперь зашифрованный текст имитирует структуру естественного азиатского письма.
Вместо сплошного потока символов используются случайные пробелы и полноширинные знаки препинания (, и 。).Это делает переписку визуально неотличимой от обычного общения и снижает вероятность блокировки анти-спам системами мессенджеров.
Было
魶凸扮賽犯ꈘ饃坳鍝颎볆冝屸粳淽옚桡좺崂蟣玖晀刓巭웣榲鋈百꒥찒犁瑱릯瘩쟓溦뫪赼爱秩却摭曏聬普鈻쇔甖唟뽒輡舟ꇁ됀좎쉅鼉牦萹韠악김腅耓圦餑彵끇屄蜛敲玩鸎韍읟犿犷斜錋揉忐缴均쬟삆唄誋嶞豣Стало
뜙챀朴슗 쨍夓쬲 뛃鿠됈靔,載뭢릡 蕀쓏紞嵿뒈 甪鿧띜 逻瓩篝뼼 ꌟ롸。뙮ꡟ읩,뼔슒 唯쓳擰僵 渦뗽,厲ꠙ勆矝寛。ꐞ瘜ꃹ,놔糒췺虨桿 潓욋苈 逃熭넄긨濸,ꥉ秱鶘蜊蠢,魯ꁈ蘪Ꙓ쭧,闘婉湈觘弽 鰃좡臾詀쮦 踔곿侒덩,饘藳쏹。Отключено автоопределение ссылок (EM_AUTOURLDETECT)
RichEdit ошибочно воспринимает части кода (например, "\\*") как ссылки.
Это создает скрытые RTF-теги, которые при сохранении в TXT превращаются в текст "HYPERLINK", искажая исходные данные (баг порчи исходного кода).
Улучшена маскировка Unicode-шифров
Теперь зашифрованный текст имитирует структуру естественного азиатского письма.
Вместо сплошного потока символов используются случайные пробелы и полноширинные знаки препинания (, и 。).
Это делает переписку визуально неотличимой от обычного общения и снижает вероятность блокировки анти-спам системами мессенджеров.
Было
魶凸扮賽犯ꈘ饃坳鍝颎볆冝屸粳淽옚桡좺崂蟣玖晀刓巭웣榲鋈百꒥찒犁瑱릯瘩쟓溦뫪赼爱秩却摭曏聬普鈻쇔甖唟뽒輡舟ꇁ됀좎쉅鼉牦萹韠악김腅耓圦餑彵끇屄蜛敲玩鸎韍읟犿犷斜錋揉忐缴均쬟삆唄誋嶞豣
Стало
뜙챀朴슗 쨍夓쬲 뛃鿠됈靔,載뭢릡 蕀쓏紞嵿뒈 甪鿧띜 逻瓩篝뼼 ꌟ롸。뙮ꡟ읩,뼔슒 唯쓳擰僵 渦뗽,厲ꠙ勆矝寛。ꐞ瘜ꃹ,놔糒췺虨桿 潓욋苈 逃熭넄긨濸,ꥉ秱鶘蜊蠢,魯ꁈ蘪Ꙓ쭧,闘婉湈觘弽 鰃좡臾詀쮦 踔곿侒덩,饘藳쏹。
Отключено автоопределение ссылок (EM_AUTOURLDETECT)
RichEdit ошибочно воспринимает части кода (например, "\\*") как ссылки.
Это создает скрытые RTF-теги, которые при сохранении в TXT превращаются в текст "HYPERLINK", искажая исходные данные (баг порчи исходного кода).
Цитата: dehote9223 от 19.12.2025, 13:55Простая Гематрия для кодовых фраз (Alt + P или нажатие правой кнопкой мыши по "Генерировать пароль")
Теперь программа автоматически подсчитывает и выводит в заголовок окна сумму числовых значений букв введенной фразы.
Это позволяет дополнительно контролировать правильность ввода: вы можете запомнить контрольное число фразы (например, для "Мама мыла раму" это 141) и быть уверенным, что не ошиблись в буквах.Если в тексте случайно введен двойной пробел, программа сообщит об этом в заголовке предупреждением "(во фразе лишний пробел!)".
Следить за пробелами необходимо, потому что для алгоритма генерации "один пробел" и "два пробела" — это разные входные данные.
Даже одна невидимая ошибка в расстановке пробелов приведет к созданию абсолютно другого пароля.
Простая Гематрия для кодовых фраз (Alt + P или нажатие правой кнопкой мыши по "Генерировать пароль")
Теперь программа автоматически подсчитывает и выводит в заголовок окна сумму числовых значений букв введенной фразы.
Это позволяет дополнительно контролировать правильность ввода: вы можете запомнить контрольное число фразы (например, для "Мама мыла раму" это 141) и быть уверенным, что не ошиблись в буквах.
Если в тексте случайно введен двойной пробел, программа сообщит об этом в заголовке предупреждением "(во фразе лишний пробел!)".
Следить за пробелами необходимо, потому что для алгоритма генерации "один пробел" и "два пробела" — это разные входные данные.
Даже одна невидимая ошибка в расстановке пробелов приведет к созданию абсолютно другого пароля.
Цитата: dehote9223 от 19.12.2025, 16:09Добавлена проверка на наличие лишнего пробела в начале и конце кодовой фразы.
Добавлена проверка на наличие лишнего пробела в начале и конце кодовой фразы.
Цитата: dehote9223 от 20.12.2025, 19:31Добавлено предупреждение при переключении со светлой темы на тёмную, если в тексте присутствуют цветные шрифты.
Почему это происходит
Для обеспечения читаемости на тёмном фоне программа вынуждена принудительно менять цвет всего текста на светлый.
Из-за этого индивидуальные цвета шрифта (например, красный текст) неизбежно утрачиваются.Теперь программа предупредит вас об этом, чтобы вы случайно не потеряли важную разметку.
Добавлено предупреждение при переключении со светлой темы на тёмную, если в тексте присутствуют цветные шрифты.
Почему это происходит
Для обеспечения читаемости на тёмном фоне программа вынуждена принудительно менять цвет всего текста на светлый.
Из-за этого индивидуальные цвета шрифта (например, красный текст) неизбежно утрачиваются.
Теперь программа предупредит вас об этом, чтобы вы случайно не потеряли важную разметку.
Цитата: dehote9223 от 22.12.2025, 07:28Восстановлено стандартное поведение клавиши Del.
Теперь она корректно удаляет символы справа от курсора в основном редакторе, поле ответа Телеграм и полях ввода пароля, даже если текст не выделен.В режиме ввода кодовой фразы (Alt + P или правая кнопка мыши по "Генерировать пароль") теперь можно нажать Enter для мгновенной генерации пароля.
Восстановлено стандартное поведение клавиши Del.
Теперь она корректно удаляет символы справа от курсора в основном редакторе, поле ответа Телеграм и полях ввода пароля, даже если текст не выделен.
В режиме ввода кодовой фразы (Alt + P или правая кнопка мыши по "Генерировать пароль") теперь можно нажать Enter для мгновенной генерации пароля.
Цитата: dehote9223 от 22.12.2025, 09:50Переработан механизм отправки файлов и аудиосообщений в Телеграм
Данные теперь передаются в curl напрямую через стандартный ввод (STDIN) из оперативной памяти (--data-binary @-).
Полностью исключено создание временных файлов на диске в процессе шифрования и отправки, что предотвращает возможность восстановления данных средствами форензики (Data Remanence).Добавлена строгая валидация поля Proxy
Запрещено использование спецсимволов (", &, |, <>), которые могли бы нарушить целостность командной строки.
Потокобезопасность
Флаги состояния аудиосистемы (g_isRecording, g_isPlaying, g_isPaused) переведены на std::atomic<bool>.
Это устраняет состояние гонки (race conditions) между интерфейсом и потоками драйвера, повышая стабильность работы при быстрой записи/воспроизведении.
Переработан механизм отправки файлов и аудиосообщений в Телеграм
Данные теперь передаются в curl напрямую через стандартный ввод (STDIN) из оперативной памяти (--data-binary @-).
Полностью исключено создание временных файлов на диске в процессе шифрования и отправки, что предотвращает возможность восстановления данных средствами форензики (Data Remanence).
Добавлена строгая валидация поля Proxy
Запрещено использование спецсимволов (", &, |, <>), которые могли бы нарушить целостность командной строки.
Потокобезопасность
Флаги состояния аудиосистемы (g_isRecording, g_isPlaying, g_isPaused) переведены на std::atomic<bool>.
Это устраняет состояние гонки (race conditions) между интерфейсом и потоками драйвера, повышая стабильность работы при быстрой записи/воспроизведении.
Цитата: dehote9223 от 22.12.2025, 21:32Доработан алгоритм экстренного уничтожения данных
В режим "Паника" (Красная кнопка) добавлена команда принудительного отключения питания как финальный этап.
После перезаписи ОЗУ случайными данными физическое отключение питания ускоряет разрядку конденсаторов в чипах памяти.
Это сводит к минимуму риск восстановления данных методом "Cold Boot Attack" (атака через заморозку памяти) и гарантирует, что система переведена в состояние полного покоя.При работе с секретными данными рекомендуется отключить в настройках Windows файл подкачки и режим гибернации.
Доработан алгоритм экстренного уничтожения данных
В режим "Паника" (Красная кнопка) добавлена команда принудительного отключения питания как финальный этап.
После перезаписи ОЗУ случайными данными физическое отключение питания ускоряет разрядку конденсаторов в чипах памяти.
Это сводит к минимуму риск восстановления данных методом "Cold Boot Attack" (атака через заморозку памяти) и гарантирует, что система переведена в состояние полного покоя.
При работе с секретными данными рекомендуется отключить в настройках Windows файл подкачки и режим гибернации.
Цитата: dehote9223 от 23.12.2025, 10:22Реализована и внедрена отдельная функция SecureBurnStack с атрибутом NOINLINE.
Вместо локальной очистки массива теперь используется рекурсивный алгоритм (глубиной 64 уровня), который перезаписывает кадры стека и локальные переменные нулями, предотвращая восстановление данных из остаточной памяти стека.В режиме паники программа теперь использует стратегию полного исчерпания памяти: циклически выделяются и перезаписываются паттерном 0xAA блоки памяти (от 64 МБ до 4 КБ) до тех пор, пока системе есть что выделить.
Это эффективнее удаляет остаточные данные из "кучи" (heap) других процессов или системы.Изменена логика работы с потоком Телеграм (g_telegram_thread).
В режиме паники поток теперь "отсоединяется" (detach), а не ожидается (join), что позволяет сэкономить драгоценные миллисекунды перед выключением компьютера.
Реализована и внедрена отдельная функция SecureBurnStack с атрибутом NOINLINE.
Вместо локальной очистки массива теперь используется рекурсивный алгоритм (глубиной 64 уровня), который перезаписывает кадры стека и локальные переменные нулями, предотвращая восстановление данных из остаточной памяти стека.
В режиме паники программа теперь использует стратегию полного исчерпания памяти: циклически выделяются и перезаписываются паттерном 0xAA блоки памяти (от 64 МБ до 4 КБ) до тех пор, пока системе есть что выделить.
Это эффективнее удаляет остаточные данные из "кучи" (heap) других процессов или системы.
Изменена логика работы с потоком Телеграм (g_telegram_thread).
В режиме паники поток теперь "отсоединяется" (detach), а не ожидается (join), что позволяет сэкономить драгоценные миллисекунды перед выключением компьютера.
Цитата: dehote9223 от 23.12.2025, 19:40Оптимизация и усиление шредера
Внедрено циклическое переименование уничтожаемых папок (3 прохода) случайными именами для обфускации записей MFT.
Переименование папок теперь выполняется строго в пределах родительской директории, что исключает риск случайного копирования данных между дисками (например, при удалении с флешки) и значительно ускоряет процесс.
Уничтожаемые файлы после перезаписи содержимого перемещаются в системную временную папку под случайными именами для окончательного разрыва связи с исходной директорией.
Оптимизация и усиление шредера
Внедрено циклическое переименование уничтожаемых папок (3 прохода) случайными именами для обфускации записей MFT.
Переименование папок теперь выполняется строго в пределах родительской директории, что исключает риск случайного копирования данных между дисками (например, при удалении с флешки) и значительно ускоряет процесс.
Уничтожаемые файлы после перезаписи содержимого перемещаются в системную временную папку под случайными именами для окончательного разрыва связи с исходной директорией.
Цитата: dehote9223 от 24.12.2025, 08:10Улучшена функция массового уничтожения файлов (DoShredMultipleFiles)
Списки файлов и директорий теперь разделяются: в первую очередь уничтожаются файлы (снимая блокировки с родительских папок), и только затем — сами директории.
Количество рабочих потоков адаптируется под количество уничтожаемых объектов, избегая создания избыточных потоков для малого числа файлов.
Использование std::atomic для распределения задач обеспечивает корректную обработку списка без пропусков и дублирования.
Улучшена функция одиночного уничтожения (PerformSecureShred)
Внедрен "тихий режим" для фоновых потоков.
Это предотвращает взаимную блокировку интерфейса и рабочих процессов при возникновении ошибок доступа (окна ошибок теперь не блокируют основной поток).Реализован механизм повторных попыток (retry loop) с нарастающей задержкой при финальном удалении файлов и папок.
Это решает конфликт с антивирусами и индексаторами Windows, которые могут кратковременно удерживать файл после его перезаписи, предотвращая появление "фантомных" файлов размером 0 байт и неудаляемых пустых папок.
Улучшена функция массового уничтожения файлов (DoShredMultipleFiles)
Списки файлов и директорий теперь разделяются: в первую очередь уничтожаются файлы (снимая блокировки с родительских папок), и только затем — сами директории.
Количество рабочих потоков адаптируется под количество уничтожаемых объектов, избегая создания избыточных потоков для малого числа файлов.
Использование std::atomic для распределения задач обеспечивает корректную обработку списка без пропусков и дублирования.
Улучшена функция одиночного уничтожения (PerformSecureShred)
Внедрен "тихий режим" для фоновых потоков.
Это предотвращает взаимную блокировку интерфейса и рабочих процессов при возникновении ошибок доступа (окна ошибок теперь не блокируют основной поток).
Реализован механизм повторных попыток (retry loop) с нарастающей задержкой при финальном удалении файлов и папок.
Это решает конфликт с антивирусами и индексаторами Windows, которые могут кратковременно удерживать файл после его перезаписи, предотвращая появление "фантомных" файлов размером 0 байт и неудаляемых пустых папок.
Цитата: dehote9223 от 24.12.2025, 19:31Улучшена работа с RTF в тёмной теме
При расшифровке текста с цветовым форматированием теперь появляется предупреждение.
Пользователь может выбрать: сбросить цвета для обеспечения читаемости или сохранить оригинальное форматирование (даже если текст сливается с тёмным фоном).Для корректного просмотра цветного текста рекомендуется расшифровывать данные в светлой теме.
Исправлена вставка текста
При вставке обычного (txt) текста из буфера обмена он теперь автоматически приводится к стандартному виду (сбрасываются цвет, размер шрифта, начертание и гарнитура), не наследуя стиль соседних символов.
Улучшена работа с RTF в тёмной теме
При расшифровке текста с цветовым форматированием теперь появляется предупреждение.
Пользователь может выбрать: сбросить цвета для обеспечения читаемости или сохранить оригинальное форматирование (даже если текст сливается с тёмным фоном).
Для корректного просмотра цветного текста рекомендуется расшифровывать данные в светлой теме.
Исправлена вставка текста
При вставке обычного (txt) текста из буфера обмена он теперь автоматически приводится к стандартному виду (сбрасываются цвет, размер шрифта, начертание и гарнитура), не наследуя стиль соседних символов.
Цитата: dehote9223 от 24.12.2025, 20:56Исправлена ошибка обработки цветного текста при смене темы
Если в тёмной теме был расшифрован цветной текст (и пользователь выбрал сохранить цвета кнопкой Отмена), то при переходе обратно в светлую тему этот цвет теперь сохраняется корректно, вместо сброса в чёрный.
Исправлена ошибка обработки цветного текста при смене темы
Если в тёмной теме был расшифрован цветной текст (и пользователь выбрал сохранить цвета кнопкой Отмена), то при переходе обратно в светлую тему этот цвет теперь сохраняется корректно, вместо сброса в чёрный.
Цитата: dehote9223 от 25.12.2025, 07:46Реализован алгоритм 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;Это предотвратит попадание чувствительных данных в стандартную кучу и исключит необходимость её последующего "скрабинга".
Реализован алгоритм 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;
Это предотвратит попадание чувствительных данных в стандартную кучу и исключит необходимость её последующего "скрабинга".
Цитата: dehote9223 от 25.12.2025, 15:04Оптимизирована функция SecureHeapSanitize для более надежной защиты от forensic-анализа RAM
Переход от случайной/простой аллокации к детерминированной стратегии "ковровой" очистки.
Добавлен массив small_sizes для гарантированного попадания в корзины (buckets) аллокатора Windows, содержащие ключи и строковые данные (16–512 байт).
Добавлен массив io_sizes для затирания крупных буферов чтения/записи (1 КБ – 64 КБ).
Увеличено количество проходов для мелких блоков (LFH) для повышения вероятности перезаписи.
Оптимизирована функция SecureHeapSanitize для более надежной защиты от forensic-анализа RAM
Переход от случайной/простой аллокации к детерминированной стратегии "ковровой" очистки.
Добавлен массив small_sizes для гарантированного попадания в корзины (buckets) аллокатора Windows, содержащие ключи и строковые данные (16–512 байт).
Добавлен массив io_sizes для затирания крупных буферов чтения/записи (1 КБ – 64 КБ).
Увеличено количество проходов для мелких блоков (LFH) для повышения вероятности перезаписи.


