hashdeep


Описание hashdeep

hashdeep — это кроссплатформенный инструмент для вычисления хешей или дайджестов сообщений для любого числа файлов, поддерживает рекурсивный обход структуры директорий. Также может искать файлы по известным хешам, либо отображать файлы, которые не совпадают с введёнными хешами. Поддерживаются хеши MD5, SHA-1, SHA-256, Tiger и Whirlpool hashes.

hashdeep — это новое название, которое программа получила после того, как поддержка всех хешей была объединена в один исполнимый файл. Ранее программа называлась md5deep, к которой в виде отдельных программ постепенно были добавлены:

  • sha1deep
  • sha256deep
  • sha3deep
  • tigerdeep
  • whirlpooldeep

В некоторых системах программа md5deep или даже все перечисленные программы устанавливаются вместе с hashdeep.

Домашняя страница: https://github.com/jessek/hashdeep

Автор: Jesse Kornblum и Simson Garfinkel

Лицензия: GPLv2

Справка по hashdeep

Использование:

hashdeep [ОПЦИИ]... [ФАЙЛЫ]...

Опции:

-c <alg1,[alg2]> - Только рассчитать хеши. Значения по умолчанию MD5 и SHA-256
                   можно указать: md5,sha1,sha256,tiger,whirlpool,
-p <размер> - кусочный режим. Файлы разбиты на блоки для хэширования
-r        - рекурсивный режим. Делается обход всех поддиректорий
-d        - вывод в DFXML (Digital Forensics XML)
-k <файл> - добавить файл известных хешей
-a        - режим аудита. Валидация ФАЙЛОВ по известным хешам. Требует -k
-m        - режим совпадений. Требует -k
-x        - режим не совпадений. Требует -k
-w        - в -m режиме, показывает, какие файлы совпали
-M и -X действуют как -m и -x, но показывают хеши совпавших файлов
-e        - вычислять предполагаемое оставшееся время для каждого файла
-s        - тихий режим. Подавлять все сообщения об ошибках
-b        - печатать только имя файла, пропуская информацию о пути
-l        - печатать относительные пути для имён файлов
-i/-I     - обрабатывать только файлы меньшие, чем заданный порог
-o        - обрабатывать только файлы определённого типа, экспертный режим
-v        - вербальный режим. Используйте несколько раз для повышения вербальности
-d        - вывод в DFXML; -W ФАЙЛ — писать в ФАЙЛ.
-j <число>  - использовать число потоков (по умолчанию 3)
-f <файл> - Использовать файл как список файлов для обработки.
-V        - показать версию и выйти
-0        - использовать NUL (\0) как новая строка (newline).
-u        - экранировать Юникод
-E        - В режиме аудита при поиске совпадений не учитывать регистр букв
-B        - вербальный режим; повторите для увеличения вербальности
-C        - OS X только --- использовать функции хеширования Common Crypto
-Fb       - I/O режим буфферизации; -Fu без буфферизации; -Fm memory-mapped
-o[bcpflsde] - Экспертный режим. Обрабатывать файлы только определённого вида:
               b=блочные устройства; c=символьные устройства; p=именованные трубы
               f=обычные файлы; l=симлинки; s=сокеты; d=door e=Windows PE
-D <число>  - устанавливает уровень отладки

Справка по md5deep, sha1deep, sha256deep, sha3deep, tigerdeep, whirlpooldeep

Использование:

md5deep [OPTION]... [FILES]...

Опции:


-p <размер> - кусочный режим. Файлы разбиты на блоки для хэширования
-r        - рекурсивный режим. Делается обход всех поддиректорий
-e        - вычислять предполагаемое оставшееся время для каждого файла
-s        - тихий режим. Подавлять все сообщения об ошибках
-z        - перед хешированием показать размер файла
-m <файл> - включает режим соответствия.
-x <файл> - включает режим несоответствия.
-M и -X действуют как -m и -x, но показывают хеши совпавших файлов
-w        - показывает, какие известные файлы сгенерировали совпадение
-n        - показать известные хеши, которые не совпали с каким-либо введённым файлом
-a b -A добавить единичный хеш к позитивному или негативному набору совпадений
-b        - печатать только имя файла, пропуская информацию о пути
-l        - печатать относительные пути для имён файлов
-t        - печатать временную метку GMT (ctime)
-i/I <size> - only process files smaller/larger than SIZE
-v        - показать версию и выйти
-d        - вывод в DFXML; -u — Экранировать Юникод; -W FILE - write to FILE.
-j <число>  - использовать число потоков (по умолчанию 3)
-Z - режим сортировки;   -h - справка;   -hh — полная справка
-S        - Тихий режим, но предупреждать о плохих хешах
-0        - использовать NUL (\0) в качестве newline (новой строки).
-k        - напечатать звёздочку перед именем файла
-u        - в именах файлов экранировать символы Юникода Unicode characters in filenames
-B        - вербальный режим; повторите для увеличения вербальности
-C        - OS X только --- использовать функции хеширования Common Crypto
-Fb       - I/O режим буфферизации; -Fu без буфферизации; -Fm memory-mapped
-o[bcpflsde] - Экспертный режим. Обрабатывать файлы только определённого вида:
               b=блочные устройства; c=символьные устройства; p=именованные трубы
               f=обычные файлы; l=симлинки; s=сокеты; d=door e=Windows PE
-D <число>  - устанавливает уровень отладки

Руководство по hashdeep

ИМЯ

hashdeep — поддерживает несколько хешей для вычисления, сравнения и аудита.

СИНОПСИС

       hashdeep -V | -h
       hashdeep [-c <алг1>[,<алг2>]] [-k <файл>] [-i <размер>] [-f <файл>] [-o ] [-amxwMXreEspblvv] [-F] [-j <число>] [ФАЙЛЫ]

ОПИСАНИЕ

Рассчитывает несколько видов хешей (дайджест сообщения) для любого количество файлов, опционально поддерживает рекурсию при обходе директорий. По умолчанию программа вычисляет хеши MD5 и SHA-256, что эквивалентно использованию -c md5,sha256. Также может искать файлы по известным хешам, либо отображать файлы, которые не совпадают с введёнными хешами. Ошибки выводятся в стандартный вывод ошибок. Если ФАЙЛЫ не указаны, читает стандартный ввод.

-c <алг1>[,<алг2>…]

Выжим вычисления. Вычисляет хеши ФАЙЛОВ используя указанные алгоритмы. Допустимыми значениями являются md5, sha1, sha256, tiger и whirlpool.

-k

Загружает файл известных хешей. Этот флаг требуется при использовании любых режимов поиска совпадений или выполнения аудита (т. е. -m, -x, -M, -X или -a). Этот флаг можно использовать более одного раза для добавления нескольких наборов известных хешей.

Загрузка наборов с разными хеш алгоритмами иногда может сгенерировать ложные коллизии хешов. Например, допустим у нас имеется два набора хешей A и B, которые некоторое количество файлов, встречающихся в обоих списках. Например файл /usr/bin/bad присутствует в обоих наборах. В A мы записали MD5 и SHA-256. А в B мы записали MD5, SHA-1 и SHA-256.Поскольку эти два записи различны, они обе будут записаны. Когда программа вычисляет все три хеша и сравнивает их с набором известных, вы получим точное соответствие из записи в B и коллизию из записи в A.

-a

Режим аудита. Каждый введённый файл сравнивается с набором известных. Считается, что аудит пройден, если каждый входной файл соответствует ровно одному файлу в наборе известных. Любые коллизии, новые или отсутствующие файлы приведут к провалу аудита. Используйте вербальные режимы -v, для дополнительных подробностей. Использование -v печатает количество файлов в каждой директории. Использование -v второй раз печатает расхождения. Использование -v в третий раз печатает результаты для каждого исследованного файла и каждого известного файла.

Из-за ограничений программы, все имена файлов с символами Юникода, во время аудита будут выглядеть смещёнными. Смотрите ниже раздел «ПОДДЕРЖКА ЮНИКОДА».

-m

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

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

Этот флаг не может использоваться вместе с флагами -x, -X или -a. Смотрите ниже раздел «ПОДДЕРЖКА ЮНИКОДА».

-x

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

Этот флаг не может использоваться вместе с флагами -m, -M или -a. Смотрите ниже раздел «ПОДДЕРЖКА ЮНИКОДА».

-f <файл>

Из указанного файла принимает список файлов для хеширования. Каждая строка предполагается именем файла. Этот флаг может использоваться только один раз за вызов. Если он используется второй раз, второй экземпляр замнёт первый.

Помните, что вы всё равно можете использовать другие флаги, такие как режимы -m или -x и отправить дополнительные ФАЙЛЫ в строку команды.


-w

Когда используется с режимами положительного совпадения (-m,-M) отображает имена файлов известных хешей, которые совпали с введённым файлом. Смотрите ниже раздел «ПОДДЕРЖКА ЮНИКОДА».


-M и -X

Как и -m и -x, рассмотренные выше, но отображает хеш для каждого файла, который совпадает (или не совпадает) списку известных хешей.

-r

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

hashdeep -r *.txt

исследует все файлы в директориях, которые оканчиваются на .txt.

-e

Показывает индикатор прогресса и приблизительное время, оставшееся для каждого обрабатываемого файла. Оценки времени для файлов размером более 4 ГБ недоступны в Windows. Этот режим не может использоваться с режимом -p.

-E

В режиме аудита, выполняете регистронезависимое сопоставление имён файлов. Например, \foo\bar будет соответствовать \Foo\BAR. Это может быть важно на системах Windows, где имена файлов являются регистронезависимыми.

-i <размер>

Режим порогового значения. Хешировать только файлы, меньшие заданного порога. Размер можно указывать используя IEC множители b,k,m,g,t,p и e.

-o <bcpflsd>

Включает экспертный режим. Позволяет пользователю указывать, который (и только который) тип файлов обрабатывается. Обработка директорий всё равно контролируется флагом -r. Разрешёнными опциями экспертного режима являются:

f - Обычные файлы

b - Блочные устройства


c - Символьные устройства

p - Именные трубы

l - Символические ссылки

s - Сокеты

d - Solaris Doors

e - Исполнимые PE файлы Windows

-s

Включает тихий режим. Подавляются все сообщения об ошибках.

-p

Кусочный режим. Перед хешированием разбивает файлы на куски. Куски можно указать используя IEC мультипликаторы b,k,m,g,t,p и e.

-b

Режим только имён файлов. Отбрасывать любую предшествующую информацию о директориях от отображаемых имён файлов. Этот флаг не может использоваться с флагом -l.

-l

Включает относительные файловые пути. Вместо печати абсолютных путей для каждого файла, отображает относительные файловые пути. Этот флаг нельзя соединять с флагом -b.

-v

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

-jnn

Контролирует многопоточность. По умолчанию программа создаст один управляющий поток для сканирования файловой системы и один поток хеширования на CPU ядро. Мультипоточность приведёт к выводу файлов в недетерменированном порядке, поскольку те файлы, которые требуют больше времени для хеширования, будут задержаны пока они не обработаны. Если требуется детерминированный порядок, укажите -j0 для отключения многопоточности.

-d

Вывод в формате Digital Forensics (Цифровой Криминалистический) XML (DFXML).

-u

Цитировать Юникод вывод. Например, снеговик будет показан как U+C426.

-F<bum>

Указывает режим ввода, которые используется для чтения файлов. По умолчанию это -Fb (buffered I/O), который читает файлы с fopen(). Указание -Fu будет использовать unbuffered I/O и читать файл с open().

Указание -Fm будет использовать memory-mapped I/O, которые будет быстрее на некоторых платформах, но который (в настоящее время) не будет работать с файлами, которые производят ошибки I/O.

-h

Показать справку и выйти

-V

Показать номер версии и выйти.

ПОДДЕРЖКА ЮНИКОДА

Начиная с версии 3.0, программа поддерживает символы Unicode в именах файлов в системах Microsoft Windows для имен файлов, указанных в командной строке с подстановочными символами (например, *), для файлов, указанных с -f файлов для хеширования, и для файлов, считанных из каталогов с использованием опции -r.

По умолчанию весь программный ввод и вывод должен быть в UTF-8. Для открываемых файлов программа автоматически преобразует это в UTF-16.

В Unix/Linux/MacOS вы должны использовать эмулятор терминала, который поддерживает UTF-8, и UTF-8 символы в именах файлов будут отображены должным образом.

В Windows программы не отображают символы Unicode на консоли. Вы должны либо перенаправить вывод в файл, либо открыть файл с помощью Wordpad (который может отображать Unicode), либо вы должны указать опцию -u, чтобы цитировать Юникод используя нотацию U+XXXX.

В настоящее время имя файла, содержащего известные хеши, не может быть указано как имя файла Unicode, но вы можете указать имя, используя завершение по табу или звездочку (например, md5deep -m *.txt, где есть только один файл с расширением .txt ).

ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ

Возвращает битвое значение, основанное на успешности операции и состоянии любых совпадающих операций.

0

Успех. Обратите внимание, что программа считает себя успешной даже тогда, когда она сталкивается с ошибками чтения, ошибками отклонения разрешений или находит каталоги, когда не в рекурсивном режиме.

1

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

2

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

64

Ошибка пользователя, например, попытка одновременно выполнить как положительное, так и отрицательное совпадение.

128

Внутренняя ошибка, например, повреждение памяти или не пойманный цикл. Все внутренние ошибки должны сообщаться разработчику!

ИЗВЕСТНЫЕ ПРОБЛЕМЫ

Использование флага -r не может использоваться для рекурсивной обработки всех файлов данного расширения в каталоге. Это особенность, а не ошибка. Если вам нужно это сделать, используйте команду find.

Программа будет терпеть неудачу, если вы попытаетесь сравнить 2^64 или более входных файлов с набором известных файлов.

Примеры запуска hashdeep

Рассчитать md5 хеш (-c md5) строки test:

echo -n 'test' | hashdeep -c md5
%%%% HASHDEEP-1.0
%%%% size,md5,filename
## Invoked from: /home/mial
## $ hashdeep -c md5
##
4,098f6bcd4621d373cade4e832627b4f6,stdin

Рассчитать все поддерживаемые хеши (-c md5,sha1,sha256,tiger,whirlpool) строки test:

echo -n 'test' | hashdeep -c md5,sha1,sha256,tiger,whirlpool
%%%% HASHDEEP-1.0
%%%% size,md5,sha1,sha256,tiger,whirlpool,filename
## Invoked from: /root
## # hashdeep -c md5,sha1,sha256,tiger,whirlpool
##
4,098f6bcd4621d373cade4e832627b4f6,a94a8fe5ccb19ba61c4c0873d391e987982fbbd3,9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08,7ab383fc29d81f8d0d68e87c69bae5f1f18266d730c48b1d,b913d5bbb8e461c2c5961cbe0edcdadfd29f068225ceb37da6defcf89849368f8c6c2eb6a4c4ac75775d032a0ecfdfe8550573062b653fe92fc7b8fb3b7be8d6,stdin

Создание контрольного файла для аудита (/tmp/auditfile), заполненного хешами файлов директории (dir), в которой делается рекурсивный обход (-r):

hashdeep -r dir > /tmp/auditfile

Провести аудит (-a) по указанному файлу известных хешей (-k /tmp/auditfile) рекурсивно обходя (-r) указанную директорию (dir):

hashdeep -a -k /tmp/auditfile -r dir

Установка hashdeep

Установка в Kali Linux

sudo apt install hashdeep

Установка в BlackArch

Программа предустановлена в BlackArch.

Информация об установке в другие операционные системы будет добавлена позже.

Скриншоты hashdeep

Инструкции по hashdeep

Ссылки на инструкции будут добавлены позже.


Близкие программы:

  • omnihash (100%)
  • Hasher (Hashes) (100%)
  • Hashrat (100%)
  • hashID (63.9%)
  • HashTag (63.9%)
  • PW-Inspector (RANDOM - 50%)
  • Рекомендуется Вам:

    Comments are Closed