Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 02.12.2022
Сообщений: 4

Автоматизировать поисковые операций файлов: по расширению; по содержимому

02.12.2022, 11:18. Показов 1014. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, уважаемые форумчане!

Есть следующая задача: необходимо автоматизировать пару поисковых операций:
1) Поиск файлов по расширению;
2) Поиск файлов по содержимому (например bat/cmd, содержащие пароли, указанные в явном виде).

Зачем мне это?
Для работы. Я специалист по ИБ, но не могу позволить себе специализированное коммерческое ПО. Не денег жалко, такова политика ведомства в данный момент. 10-Strike Network File Search меня бы выручил, но вопросы лицензионного соглашения никто не отменял.

Почему это необходимо автоматизировать?
Парк техники в домене порядка 250 единиц. Искать руками - только этим и заниматься.

Как часто мне необходимо проводить такие поиски?
Что-то еженедельно, что-то ежемесячно.

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

Почему шарп?
Имел небольшой опыт работы с ним (лет 10 назад), мне будет проще разобраться в коде, т.к. я хотел бы развиваться в плане автоматизации таких тривиальных задач. Не командной строкой единой все же спасаться.

Что я могу себе позволить и как я вижу реализацию?
Наверное, это консольное приложение, которое будет запускаться на удаленных машинах задачей из Kaspersky Security Center. Результат - файл с именем ПК, содержание - пути к найденным файлам. Вариант на формах конечно был бы эстетичней, но реализация на много сложнее.

Пишу со всем уважением к вашему времени и труду, буду признателен за любую помощь. Возможно кто-то уже решал подобные задачи и будет готов подсказать или поделиться.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.12.2022, 11:18
Ответы с готовыми решениями:

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

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

Поиск файлов по расширению
Как из папки и подпапок получить список файлов с расширением "txt", например? Спасибо

8
 Аватар для andrey_f
884 / 537 / 228
Регистрация: 21.02.2011
Сообщений: 5,705
02.12.2022, 11:30
Цитата Сообщение от securityofficer Посмотреть сообщение
Я специалист по ИБ, но не могу позволить себе специализированное коммерческое ПО. Не денег жалко, такова политика ведомства в данный момент.
скачать или купить Total Commander уже проблема ?
ваш вопрос, решается любым файловым менеджером, это вполне обычное ПО в любой конторе, которое ставят просто по запросу без доп. согласований
0
0 / 0 / 0
Регистрация: 02.12.2022
Сообщений: 4
02.12.2022, 11:43  [ТС]
Поиск в файловых помойках - да, оптимально. Лицензия на TC есть. Поиск на 250 отдельных компьютерах без снижения интегрального уровня защищенности - не вариант. MaxPatrol отловит "дырки" при ближайшем сканировании, сам себе я не враг. Использование UNC-путей - сводится к отработке каждой машины отдельно. Запустить 250 TC или последовательно работать с каждой - только этим и заниматься.
Не надо думать, что решения "в лоб" не рассматривались.

p.s.: рассуждать на тему того что ставится без согласований не стоит, для пользования TC тоже лицензия нужна Это вам не 1, 2 или 3 по запросу жать.
0
2282 / 1598 / 400
Регистрация: 26.06.2017
Сообщений: 4,732
Записей в блоге: 1
02.12.2022, 12:03
securityofficer, опять же не сильно вникая в детали, а только в проблему, нарисовываются приличные такие задачки. Я вижу себе что-то такое: есть некое центральное ПО, в котором пользователь вводит поисковый запрос и отправляет команду на его выполнение; на машинах в домене должны работать экземпляры ПО (в виде служб или ещё как-то в фоновом режиме или запускаться в виде обычного приложения по команде извне). Эти экземпляры должны получать поисковый запрос и команду на его выполнение. Затем каждый экземпляр должен отправить куда-то, например в серверную БД, результаты выполнения поиска. И всё это должно преодолевать барьеры безопасности, как локальные, так и сетевые. Ну для профи думаю задача реальная, но за денежку, а для новичка ... Попробовать конечно стоит, но стоит ли овчинка выделки?
0
 Аватар для andrey_f
884 / 537 / 228
Регистрация: 21.02.2011
Сообщений: 5,705
02.12.2022, 12:06
Цитата Сообщение от Uswer Посмотреть сообщение
Ну для профи думаю задача реальная, но за денежку, а для новичка ... Попробовать конечно стоит, но стоит ли овчинка выделки?
ну я тоже не понял, что данная тема делает в разделе для новичков,
делать такое ПО бесплатно никто не будет
0
0 / 0 / 0
Регистрация: 02.12.2022
Сообщений: 4
02.12.2022, 12:18  [ТС]
Это решение красивое, но того оно явно не стоит. Даже вышеупомянутый 10-Strike Network File Search такого не предлагает. Это скорее в SecretNet или Блокхосте можно было бы ожидать. Мой вариант максимально прост и с разграничением прав доступа сложностей не вижу.

Добавлено через 5 минут
Не двумерные массивы конечно обрабатывать задача, но и поиск и запись в файл мне не кажется чем-то очень сложным. Ну да ладно, если кто-то куда-то направит, то хорошо, если нет, то лишний раз мозг тренировать буду
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,230
02.12.2022, 12:36
Можно посмотреть в сторону сетевых приложений на голых сокетах, либо чутка повыше - на protobuf.
P2P-приложения - приложение ИБ-шника отправляет широковещательный запрос, кодируя скажем команду целым числом - номером (например ContentSearch=0 - через шарповские enum-ы), и поисковая строка - которую отправлять широковещательно по сети, остальные пиры, которые онлайн - отвечают, мол онлайн и начинают искать. Далее в ответ уже по TCP шлют файлы.
Вполне реально сделать, но делать лень.
Можете начать, а вам помогут.

Очень странно видеть ИБ-шника с такой просьбой на форуме, обычно это технически подкованные и креативные ребята, которые легко ориентируются во всяких разных ИС-ах (не понаслышке говорю), которые и код сваять могут, ибо кодить - это просто лего собирать.
0
0 / 0 / 0
Регистрация: 02.12.2022
Сообщений: 4
03.12.2022, 06:48  [ТС]
Это из разряда "тыж программист"? Могу сваять конечно, практики не было давно. Обычно все, что нужно реализую на cmd, не плохо владею psexec. Я больше по нормативке и криптографии.

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

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
using System;
using System.IO;
using System.Text.RegularExpressions;
 
namespace SearchFiles
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(Environment.MachineName);
            DriveInfo[] allDrives = DriveInfo.GetDrives();
            foreach (DriveInfo drvInfo in allDrives)
            {
                if (drvInfo.IsReady == true && drvInfo.DriveType == DriveType.Fixed)
                {
                    Console.WriteLine("  Drive {0}", drvInfo.Name);
                    DirectoryInfo dirInfo = new DirectoryInfo(drvInfo.Name);
                    Regex extFile = new Regex(@".*\.XSB|XPS$", RegexOptions.IgnoreCase);
                    Search(dirInfo, extFile);
                }
            }
        }
 
        static void Search(DirectoryInfo dInfo, Regex eFile)
        {
            try
            {
                FileInfo[] fInfo = dInfo.GetFiles();
                foreach (FileInfo fi in fInfo)
                {
                    if (eFile.IsMatch(fi.Name))
                    {
                        Console.WriteLine(fi);
                    }
                }
                DirectoryInfo[] di = dInfo.GetDirectories();
                foreach (DirectoryInfo directoryInfo in di)
                {
                    Search(directoryInfo, eFile);
                }
            }
            catch (UnauthorizedAccessException ex)
            {
                Console.WriteLine("  Exception: {0}", ex.Message);
                return;
            }
        }
    }
}
Есть пара вопросов:
1) Отсечет ли проверка drvInfo.DriveType == DriveType.Fixed сетевые диски?
2) Какая функциональная нагрузка у этой проверки?
C#
1
if (eFile.IsMatch(fi.Name))
Нужна ли она мне? Оставил в коде, но не очень понимаю что она могла бы мне дать.
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,230
03.12.2022, 13:59
Цитата Сообщение от securityofficer Посмотреть сообщение
Отсечет ли проверка drvInfo.DriveType == DriveType.Fixed сетевые диски?
Проверить не могу, но должен.

Цитата Сообщение от securityofficer Посмотреть сообщение
2) Какая функциональная нагрузка у этой проверки?
Это проверка имени файла на соответствие паттерну, в вашем случае ".*\.XSB|XPS$" - по расширениям.
У класса Directory есть еще EnumerateFiles метод, который принимает более простые правила подстановки (т.н. wildcards), которые можно использовать для поиска по расширению.
А пока выглядит как стрельба из пушки (RegExp) по воробьям.
У вас только Windows-машины в парке? В Linux-ах есть проверенные временем утилиты find и grep.

Добавлено через 2 минуты
Цитата Сообщение от securityofficer Посмотреть сообщение
Нужна ли она мне?
Конечно, нужна, это, собственно и есть поиск, который вам требуется.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.12.2022, 13:59
Помогаю со студенческими работами здесь

Распределение файлов по их расширению
Всем привет!) Спасайте!! Нужно создать батник который распределяет разные файлы в папке по расширению)) Например в папке word, exel и т.д....

Поиск файлов по расширению
Как выдрать расширение файлов в рассматриваемой папке и ее подпапках подскажите пожалуйста!! Т.е. необходимо сделать обход по всем файлам в...

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

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

Перемещение файлов по расширению
Доброго времени суток. Очень нужна Ваша помощь. Требуется создать bat-ник, который будет ПЕРЕМЕЩАТЬ все файлы с расширением LOG, из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru