DeleteShield

DeleteShield - предотвращение само-уничтожения файлов 1.2

  • Автор темы Автор темы Dragokas
  • Дата начала Дата начала

Переводчик Google

Dragokas

Angry & Scary Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
7,888
Решения
27
Реакции
7,049
Dragokas добавил(а) новый ресурс:

DeleteShield - Блокиратор само-уничтожения создаваемых файлов

Delete‑Shield

DeleteShield — это утилита, которая блокирует удаление недавно созданных файлов.
Она может быть полезна для предотвращения удаления файлов самим собой, например, созданных через 7z SFX скрипты или другие временные распаковщики.

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

Добавление ACE с разрешением Deny в...

Узнать больше об этом ресурсе...
 
Программулина очень помогла в моей задаче
Пришлось ее немного поправить, если интересно (атач)

Исправленные ляпы:​

  1. ✅ Утечки памяти - LockedFile теперь правильно освобождает ресурсы через деструктор
  2. ✅ Глобальная переменная - _createdFiles перемещена в класс FileMonitor
  3. ✅ LocalAlloc/LocalFree - везде используется правильное управление памятью для ACL
  4. ✅ Утечки токенов - ProcessToken теперь корректно закрывает handle
  5. ✅ Обработка Ctrl+C - добавлен ConsoleHandler для graceful shutdown
  6. ✅ Move семантика - добавлен move assignment operator для LockedFile

Добавленный функционал:​

  1. ✅ Wildcard фильтрация - поддержка * и ? (регистронезависимо)
  2. ✅ Командная строка - можно указывать несколько масок: -b C:\Temp *.exe *.dll
  3. ✅ Интерактивный режим - поддержка wildcard'ов в меню
  4. ✅ Обновленная справка - примеры использования

▶️ Примеры запуска:​

bash
# Старое поведение (обратная совместимость)
DeleteShield.exe -b "C:\Temp"

# Блокировка только .exe и .dll файлов
DeleteShield.exe -b "C:\Temp" *.exe *.dll

# Мониторинг временных файлов
DeleteShield.exe -m "D:\Downloads" *.tmp *.temp *.cache

# Интерактивный режим с фильтрацией
DeleteShield.exe
Enter path [and wildcards]: C:\Logs *.log *.txt

# Разблокировка (wildcard'ы игнорируются с предупреждением)
DeleteShield.exe -u "C:\Protected" *.exe
Warning: Wildcards are ignored for unlock operation.

 

Вложения

@my13 спасибо за отзыв, рад что помогло.
Обновленный код выглядит хорошо. Сделал асинхрон и пару правок, чтобы полностью раскрыть потенциал вашей доработки и запушил на git.
 
Dragokas обновил(а) ресурс DeleteShield новой записью:

1.2

1.2
- Асинхронное i/o (умеет справляться с огромным потоком событий)
- Исправлен UAF в Security Descriptor
- Клавишей ESC можно остановить мониторинг и выйти в главное меню
- более безопасная очистка ресурсов в RAII
- улучшено логирование
- поддержка юникодных имён файлов

1.1 от my13
- поддержка фильтра имён файлов по маскам * и ?
- поддержка Ctrl + C для прерывания мониторинга
- исправлены утечки памяти
- другие оптимизации...

Узнать больше об этом обновлении...
 
Назад
Сверху Снизу