Skip to content

Latest commit

 

History

History
138 lines (87 loc) · 7.64 KB

README-RU.md

File metadata and controls

138 lines (87 loc) · 7.64 KB

Руководство по поиску в разных типах файлов

Цель этого руководства - описать инструменты для поиска и его упрощения относительно большинства популярных типов файлов и баз данных. В большей степени руководство применимо к поиску в утечках разных сайтов (большие текстовые файлы в архивах, csv/sql), документах (pdf, xls(x), doc(x)) и в специализированных базах (1С, Cronos и т.д.).

Russian version | English version

Содержание

Универсальный поиск

dnGrep

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

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

image

Текстовые файлы

grep

Эталон отрасли для поиска в текстовых файлах - это unix-утилита grep. Вы указываете при её запуске два параметра: шаблон для поиска и файл; после чего утилита выводит строки, совпавшие с шаблоном. В простейшем случае шаблоном является некая строка, которую мы хотим найти в файле (например, номер телефона или почтовый ящик).

На базе grep также построены другие утилиты, так что запомним основные параметры для запуска:

-A number - вывод некоторого количества строк после (after) найденной: полезно, если дополнительные сведения хранятся в файле после нашей строки

-B number - вывод некоторого количества строк до (before) найденной: полезно, если дополнительные сведения хранятся в файле до нашей строки

-С number - вывод некоторого количества строк до и после найденной

-i - регистронезависимый поиск, только при этом режиме поиск по Target и target найдёт строку "TARGET"

-R - рекурсивный поиск, в этом режиме утилита сможет искать во всех вложенных директориях (для поиска по любым файлам в текущей достаточно указать * вместо названия файла)

-a - воспринимать все файлы как текстовые, использовать при ошибке Двоичный файл (стандартный ввод) совпадает

Пример поиска через grep:

grep -iR target dumps/* - будет произведён поиск по слову target во всех регистрах во всех текстовых файлах в директории dumps

Документы

xlsxgrep

Для поиска в документах XLSX можно использовать либо grep, предварительно сконвертировав таблицу в CSV, либо использовать утилиту xlsxgrep. Пример поиска:

xlsxgrep target -H -N -r dumps/*

Архивы

  • Написать универсальный скрипт для поиска во всех типах архивов

zgrep

Для поиска в архивах .gz, .tgz можно использовать утилиту zgrep.

Использование аналогично обычному grep, за исключением следующих особенностей:

  • режим рекурсивного поиска -R не поддерживается
  • наряду с архивами утилита также может искать по текстовым файлам

Пример поиска через zgrep:

zgrep -ia target dumps/* - будет произведён поиск по слову target во всех регистрах во всех текстовых файлах и gz-архивах в директории dumps

7zip

Для поиска в архивах 7zip можно использовать соответствующую утилиту для полной распаковки в цепочке с grep:

Пример использования:

7z x archive.7z -so | grep ...

7zip также умеет работать со многими другими типами архивов.

unrar

Для поиска в архивах rar можно использовать соответствующую утилиту для полной распаковки в цепочке с grep:

Пример использования:

unrar p archive.rar | grep ...

Базы данных

cronodump

Для популярного в России формата баз данных 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

Для анализа файлов баз данных 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