Цель этого руководства - описать инструменты для поиска и его упрощения относительно большинства популярных типов файлов и баз данных. В большей степени руководство применимо к поиску в утечках разных сайтов (большие текстовые файлы в архивах, csv/sql), документах (pdf, xls(x), doc(x)) и в специализированных базах (1С, Cronos и т.д.).
Russian version | English version
dnGrep - универсальная утилита с графическим интерфейсом для Windows, умеет искать в текстовых файлах, документах, PDF и во всех популярных форматах архивов. Поддерживается поиск по регулярному выражению и по всем файлам в директории, есть интеграция с Проводником.
Несмотря на некоторые неудобства с подсветкой результатов и сбои применительно к большим архивам, выглядит одной из самых перспективных для массового поиска в файлах с текстовым содержимым.
Эталон отрасли для поиска в текстовых файлах - это unix-утилита grep
. Вы указываете при её запуске два параметра: шаблон для поиска и файл;
после чего утилита выводит строки, совпавшие с шаблоном. В простейшем случае шаблоном является некая строка, которую мы хотим найти в файле
(например, номер телефона или почтовый ящик).
На базе grep
также построены другие утилиты, так что запомним основные параметры для запуска:
-A number
- вывод некоторого количества строк после (after
) найденной: полезно, если дополнительные сведения хранятся в файле после нашей строки
-B number
- вывод некоторого количества строк до (before
) найденной: полезно, если дополнительные сведения хранятся в файле до нашей строки
-С number
- вывод некоторого количества строк до и после найденной
-i
- регистронезависимый поиск, только при этом режиме поиск по Target
и target
найдёт строку "TARGET"
-R
- рекурсивный поиск, в этом режиме утилита сможет искать во всех вложенных директориях (для поиска по любым файлам в текущей достаточно указать * вместо названия файла)
-a
- воспринимать все файлы как текстовые, использовать при ошибке Двоичный файл (стандартный ввод) совпадает
Пример поиска через grep
:
grep -iR target dumps/*
- будет произведён поиск по слову target
во всех регистрах во всех текстовых файлах в директории dumps
Для поиска в документах XLSX можно использовать либо grep
, предварительно сконвертировав таблицу в CSV, либо использовать утилиту
xlsxgrep
. Пример поиска:
xlsxgrep target -H -N -r dumps/*
- Написать универсальный скрипт для поиска во всех типах архивов
Для поиска в архивах .gz, .tgz можно использовать утилиту zgrep
.
Использование аналогично обычному grep
, за исключением следующих особенностей:
- режим рекурсивного поиска
-R
не поддерживается - наряду с архивами утилита также может искать по текстовым файлам
Пример поиска через zgrep
:
zgrep -ia target dumps/*
- будет произведён поиск по слову target
во всех регистрах во всех текстовых файлах и gz-архивах в директории dumps
Для поиска в архивах 7zip
можно использовать соответствующую утилиту для полной распаковки в цепочке с grep
:
Пример использования:
7z x archive.7z -so | grep ...
7zip
также умеет работать со многими другими типами архивов.
Для поиска в архивах rar
можно использовать соответствующую утилиту для полной распаковки в цепочке с grep
:
Пример использования:
unrar p archive.rar | grep ...
Для популярного в России формата баз данных Cronos следует использовать либо соответствующую версию клиента (Cronos, CronosPlus, CronosPro) либо можно сконвертировать базу в формат таблицы CSV с помощью утилиты cronodump:
git clone /~https://github.com/alephdata/cronodump && cd cronodump
python3 setup.py install
croconvert --csv cronos_db_directory/
# будет создана новая директория c файлами
ls cronodump-2022-04-25-02-53-57-293000
БТК.csv Files-FL
grep ...
Для анализа файлов баз данных 1C можно использовать библиотеку onec_dtools или готовую утилиту 1c-database-converter, способную вытащить все текстовые строки и бинарные данные из базы любого формата.
./run.py 8-2-14.1CD
Target: 8-2-14.1CD
Results found: 1
1) Out Dir: 8-2-14.1CD_csv
File Type: 1CD
Status: Exported content of 1CD file
------------------------------
Total found: 1