
Утилита для работы с криптографией, ориентированная на анализ программ-вымогателей.
Утилита для работы с криптографией, ориентированная на анализ программ-вымогателей.

Все шестнадцатеричные представления, используемые в CryptoTester, имеют несколько расширенных возможностей.
0D 0A) окрашены в фиолетовый цветНа многих представлениях (например, Input и Output) щелчок по строке смещения (00 01 02 03... над соответствующим представлением) открывает диалог с отображением байтов вместе с декодированным представлением.
Большинство полей ввода, принимающих целое число, также принимают специальные значения и функции.
Примеры:
x10 -> 16len -> 400block -> 16 (размер блока выбранного алгоритма)up(60, 16) -> 64down(60, 16) -> 48Простые арифметические действия можно комбинировать с этими функциями.
up(len-x100, b) - вычитает 256 из длины ввода, затем округляет вверх до ближайшего размера блока выбранного алгоритма (например, 16 для AES)Любые отрицательные значения интерпретируются как len - значение, то есть как смещение относительно конца ввода.
Основная панель содержит инструменты для использования криптографических примитивов над входными данными. Шестнадцатеричное представление Input принимает прямое вставку байтов, либо можно использовать меню File для загрузки файла, текста, base64-кодированных байтов и т.д. Файл также можно перетащить непосредственно в область просмотра.
Позволяет задать ключ в различных форматах и содержит опции для различных хеш-функций и функций вывода ключа; эти поля адаптируются к текущему выбранному алгоритму и его поддерживаемым возможностям.
Примечание: Ключ обрабатывается в том же порядке, что отображается в интерфейсе: сначала ключ декодируется в соответствии с
Format, затем хешируется с использованием параметровHash, и наконец, выводится с помощью параметровDeriveперед передачей криптографическому алгоритму. Начиная с версии 1.7.0.0, можно изменить порядок обработкиHashиDerive.
Окончательная длина выведенного ключа отображается над полем ввода. Щелчок по этой длине открывает отдельный диалог с итоговым вычисленным ключом.

Позволяет выбрать криптографический алгоритм и его параметры, если поддерживаются.
Примечание: Поле
IV Bytes(илиNonceв зависимости от алгоритма) автоматически заполняется байтами00соответствующей длины для данного алгоритма, если оно оставлено пустым.
Входные данные можно выбирать двумя способами: «Диапазон» и «Фрагменты».
Простой диапазон, начинающийся со смещения Offset и берущий Length байт.
Поле Length автоматически обновляется при изменении Input, если не установлен флажок Lock Parameters.
Если вы произвели некоторые вычисления в поле Length и хотите вернуться к фактической длине Input, можно просто нажать кнопку Reset Length.
Если установлен флажок Splice Remaining Bytes, то байты до Offset добавляются в начало Output, а байты после Offset+Length добавляются в конец.

Берет Take байт, затем пропускает Skip байт, снова берет Take байт, пропускает Skip байт... пока не закончится Input. Это можно использовать для шифротекста, который фактически «перемежается» между фрагментами открытого текста. Криптографический алгоритм применяется к результирующим фрагментам как один последовательный блок, без сброса ключа/IV/nonce и т.д.
Если установлен флажок Splice Remaining Bytes, то байты из секции Skip снова перемежаются в Output.

В этом разделе отображается простая информация о Input: размер файла, обнаруженный MIME (если это файл), общая энтропия и делимость на 16 (распространённый размер блока).
Представления Input и Output имеют синхронизированную прокрутку; чтобы отключить её, снимите флажок Syncronized scrolling между ними.
Кнопка 🡨 между Input и Output позволяет переместить содержимое Output в представление Input.
Для Input или Output можно вычислить хеш с помощью соответствующих раскрывающихся списков под их представлениями. Для Output также можно запустить алгоритм проверки (ограниченная поддержка ECDSA на данный момент).
Эта панель позволяет сравнить зашифрованный файл с его оригиналом. Оба представления поддерживают перетаскивание, либо можно использовать File -> Open File для последовательного открытия Original и Encrypted.
Представление Original также можно заполнить с помощью любой опции File -> Input; например, сравнить с определённым количеством нулевых байтов или с образцом изображения Windows Chrysanthemum.jpg.
Представления Original и Encrypted имеют синхронизированную прокрутку; чтобы отключить её, снимите флажок Syncronized scrolling между ними.
Кнопка ⇆ между представлениями Original и Encrypted позволяет поменять их содержимое местами.
Любые байты, различающиеся между двумя представлениями, отображаются тёмно-красным цветом.

Отображает основную информацию о представлениях Original и Encrypted соответственно.
После заполнения обоих представлений выполняется быстрый анализ.
Original в EncryptedEncryptedEncrypted (UTF-8 или UTF-16)Encrypted (в различных формах и кодировках)EncryptedЭта панель позволяет выполнять базовые операции с несколькими алгоритмами сжатия и имеет функционал, схожий с панелью Encrypt/Decrypt.
Инструмент для анализа CryptoAPI-блобов и CNG-блобов.
BLOB-ы можно импортировать/экспортировать в/из двоичного формата, base64, PEM, XML и ASN.1 (где это поддерживается).

Дополнительные инструменты, связанные с BLOB-ами, которые активируются только для поддерживаемых типов BLOB-ов.
Генерирует CryptoAPI-блоб. Поле Bit Length автоматически обновляется поддерживаемыми значениями для выбранного aiKeyAlg. Обратите внимание, что некоторые комбинации bType и aiKeyAlg недопустимы и вызовут ошибку от провайдера CryptoAPI.

Примечание: Ключи генерируются внутри с помощью CryptGenRandom, но я не могу гарантировать криптографическую безопасность использования ключей, сгенерированных этой утилитой.
Инструмент для анализа/вычисления RSA-ключей. Отображаются отдельные параметры ключа, которые можно показывать в десятичном или шестнадцатеричном виде. Если имеется достаточно параметров, можно вычислить остальные части ключа.
Ключ можно экспортировать в различных форматах, включая CryptoAPI-блоб, CNG-блоб, PEM, XML и ASN.1, в файл, в буфер обмена или в главное окно (Encrypt/Decrypt). Кроме того, при экспорте в главное окно можно экспортировать необработанные целые числа для алгоритма Raw RSA.

Инструмент, который ищет в файле криптографический ключ в нескольких форматах.
Примеры поддерживаемых форматов:

Инструмент для тестирования различных известных алгоритмов PRNG.

Задаёт начальное Seed для PRNG.
Задаёт Algorithm PRNG, а также Length генерируемых выходных данных и опциональный Modulus, применяемый к каждому выходному значению. Например, Modulus равный xFF можно использовать для приведения каждого выходного значения к байту.
Если выбран Alpha:
Также отображается энтропия полученного вывода для режима Alpha. Это приблизительная оценка энтропии (или количества возможностей) для слепого перебора выходных данных (без прямой атаки на PRNG).
Инструмент для использования различных кодировок base. Поддерживает стандартные предустановленные наборы символов, а также можно указать собственный нестандартный набор символов.
За исключением кодировщиков, использующих контрольную сумму (например, Base58Check от Bitcoin), декодирование выполняется без проверки заполнения, поэтому даже частично повреждённые кодировки будут декодированы как есть.

Инструмент для одновременного просмотра текста или байтов в виде ASCII, UTF-8 и UTF-16.

Инструмент для проверки точек на эллиптических кривых. Поддерживает импорт/экспорт из/в ECPoint (несжатая или сжатая форма), PEM или CNG-блоб.

Различные операции, выполняемые на основе текущей панели.
Берёт Original и Encrypted с панели Compare и применяет операцию XOR или AND, отображая поток данных.
Использует информацию об алгоритме с панели Encrypt/Decrypt и генерирует поток ключей заданной длины для сохранения в файл.
Отображает графическую диаграмму разницы между пикселями на панели Compare.

Использует предоставленный ключевой материал и Input с панели Encrypt/Decrypt, а также заданный ожидаемый вывод, и перечисляет все возможные опции в разделе Encryption Options, пытаясь найти совпадение.
Этот инструмент можно использовать для проверки списка или папки известных ключей против Input с использованием заданных параметров шифра.
Byte Count байт из файла за раз.Если ключ найден, активируется кнопка Select, позволяющая передать ключ и его параметры в главное окно.

Используя размер блока выбранного шифра, перебирает каждый возможный блок и пытается расшифровать его с помощью заданного ключа.
Пример: у вас есть закрытый ключ RSA-2048 и блок данных размером 0x1000 байт возможного шифротекста в качестве Input. С помощью этой операции будет предпринята попытка расшифровать Input[0x00:0x100], затем Input[0x01:0x101], затем Input[0x02:0x102] и т.д.
Примечание: В настоящее время эта операция поддерживает только алгоритм RSA. Также она ограничена максимум 10000 входными байтами.
Использовать прямой порядок байтов (little endian) внутри (если алгоритм поддерживает).
Позволяет задать нестандартные параметры, если выбранный алгоритм их поддерживает. Например, семейство алгоритмов Salsa20 поддерживает нестандартные раунды, константу, позицию или ввод необработанной матрицы.
Параметры для IV, такие как ввод из текста или base64, и восстановление IV по известному открытому тексту.
Предустановки для некоторых схем шифрования, например, OpenSSL.
Небольшие инструменты для преобразования.
Преобразование целого числа в DWORD или байтов DWORD в целое число.

Преобразование шестнадцатеричных байтов в список целых чисел или списка целых чисел в байты. Для вывода можно опционально использовать пробелы и запятые.
