An open API service indexing awesome lists of open source software.

https://github.com/soxoj/files-search-guide

Guide to searching in different file types (documents, breaches, databases, etc.)
https://github.com/soxoj/files-search-guide

breach-check datashare ediscovery grep grepping regex regexp search

Last synced: 2 months ago
JSON representation

Guide to searching in different file types (documents, breaches, databases, etc.)

Awesome Lists containing this project

README

        

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

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

Russian version | [English version](./README.md)

## Содержание

- [Универсальный поиск](#универсальный-поиск)
- [dnGrep](#dngrep)
- [Текстовые файлы](#текстовые-файлы)
- [Документы](#документы)
- [xlsxgrep](#xlsxgrep)
- [Архивы](#архивы)
- [zgrep](#zgrep)
- [7zip](#7zip)
- [unrar](#unrar)
- [Базы данных](#базы-данных)
- [cronodump (Cronos)](#cronodump)
- [1c-database-converter (1C)](#1c)

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

### dnGrep

[dnGrep](http://dngrep.github.io/) - универсальная утилита с графическим интерфейсом для Windows, умеет искать в текстовых файлах, документах,
PDF и во всех популярных форматах архивов. Поддерживается поиск по регулярному выражению и по всем файлам в директории, есть интеграция с Проводником.

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

![image](https://github.com/dnGrep/dnGrep/wiki/Images/grep-main.png)

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

### 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](https://github.com/alephdata/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](https://github.com/Infactum/onec_dtools) или готовую утилиту [1c-database-converter](https://github.com/soxoj/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
```